单层感知器
来源:互联网 发布:java map.foreach用法 编辑:程序博客网 时间:2024/05/01 05:53
单层感知器
题目:假设平面有三个点,(3,3),(4,3)两个点的标签为1,(1,1)这个点的标签为-1.构建神经网络来分类。
思路:我们要分类的数据是2维数据,所以只需要2个输入节点,我们可以把神经元的偏置也设置为一二节点,这样我们需要3个输入节点。
输入数据有3个(1,3,3),(1,4,3),(1,1,1)
数据对应的标签为(1,1,-1)
初始化权值
学习率(learning rate)设置为0.11
激活函数为sign函数
import numpy as npimport matplotlib.pyplot as plt#输入数据X=np.array([[1,3,3], [1,4,3], [1,1,1]])#标签Y=np.array([1,1,-1])#权值初始化,1行3列,取值范围-1到1W=(np.random.random(3)-0.5)*2print W#学习率设置lr=0.11#计算迭代次数n=0#神经网络的输出O=0def update(): global X,Y,W,lr,n n+=1 O=np.sign(np.dot(X,W.T)) W_C=lr*((Y-O.T).dot(X))/int(X.shape[0]) W=W+W_Cfor _ in range(100): update()#更新权值 print (W)#打印当前权值 print (n)#打印迭代次数 O=np.sign(np.dot(X,W,T))#计算当前输出 if(O==Y.T).all():#如果实际输出等于期望输出,模型收敛,循环结束 print "Finished" print "epoch:",n break#正样本x1=[3,4]y1=[3,3]#负样本x2=[1]y2=[1]#计算分界线的斜率以及结局k=-W[1]/W[2]d=-W[0]/W[2]print 'k=',kprint 'd=',dxdata=np.linspace(0,5)plt.figure(1)plt.plot(xdata,xdata*k+d,'r')plt.plot(x1,y1,'bo')plt.plot(x2,y2,'yo')plt.show()
阅读全文
0 0
- 单层感知器
- 单层感知器神经网络
- 单层感知器
- 单层感知器
- 单层感知器-学习实践
- 单层感知器的MATLAB实现
- 单层感知器的MATLAB实现
- 单层感知器的学习与练习
- C语言实现单层感知器
- 神经网络学习之单层感知器
- [深度学习PART I] 单层感知器
- 人工神经网络(二)单层感知器
- 人工神经网络(二)单层感知器
- 单层感知器的python实现
- 单层感知机
- 单层感知机
- 使用nntool神经网络工具箱建立单层感知器
- 文本分类算法之--单层感知器的神经网络
- Java-----Semaphore信号量
- android版集成双解码器的视频播放器
- 基于深度学习的自动上色程序,以及其实际应用
- 系统架构师——搭建SpringMVC,Spring,Mybatis框架——从模块开发到系统架构搭建
- HTML5中点击那个图片显示那个图片
- 单层感知器
- 继承中的原则
- HTML5
- servlet基础
- mysql事务和锁InnoDB
- android百度地图开发V4.5最新版(4)---显示自己的位置在地图上
- 初学C++正则表达式(regex)
- VBA自定义函数-选择文件夹对话框
- Java 多线程编程之synchronized 和 volatile关键字