资源描述:
《机器学习之神经网络【感知器】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、机器学习之神经网络【感知器】主讲:麦好工作室计算与数学老师课程地址:www.duobei.com/course/1544246134myhaspl@qq.com机器学习之Rosenblatt感知器与大家共同进步麦好工作室让我们的生活越来越好myhaspl@qq.com感知器•Rosenblatt感知器建立在一个非线性神经元上,神经元模型的求和节点计算作用于突触上的输入的线性组合,同时结合外部作用的偏置。诱导局部域是指求和节点计算得到的结果,然后这个结果被应用于硬限幅器。当硬限幅器输入为正时,神经元输出+1,反之输出-1。感知器m•vwixibi1•其最终结果是把外部输入x
2、1,x2,...,xm正确分成两类,分类规则是,如果感知器输出是+1,则为类1,否则输出为-1为类2。感知器被超平面分开为2类,这个超平面为•得到权值w的过程就是一个误差修正的学习过程。感知器•我们用python来实现一个Rosenblatt感知器。相关的数值计算使用numpy包,numpy是一个用python实现的科学计算包,它基于BSD协议开源,官网为:http://www.numpy.org/,下载地址为:https://pypi.python.org/pypi/numpy,关于如何使用python进行科学计算可参考《用Python做科学计算》,可从http://cfa.e
3、verpcpc.com/scipydoc/index.html上免费下载。感知器收敛算法1、设w(0)0Tx(n)(1,x(n).......,x(n))1nTw(n)(b,w(n).........,w(n))1mb:偏置2、激活在时间步n,通过输入向量x(n)和期望输出d(n)激活感知器3、计算感知器输出Ty(n)sgn(w(n)x(n))1ifv0sgn1ifv04、更新感知器的权值向量w(n1)w(n)(d(n)y(n))x(n)011ifx(n)属于1类d(n)1ifx(n)属于2类•#!/usr/bin/envpy
4、thon•#-*-coding:utf-8-*-•importnumpyasnp•b=0•a=0.5•x=np.array([[b,1,1],[b,1,0],[b,0,0],[b,0,1]])•d=np.array([1,1,0,1])•w=np.array([b,0,0])•defsgn(v):•ifv>0:•return1•else:•return0•defcomy(myw,myx):•returnsgn(np.dot(myw.T,myx))•defneww(oldw,myd,myx,a):•printcomy(oldw,myx)•returnoldw+a*(myd-comy
5、(oldw,myx))*myx•i=0•forxninx:•printxn•w=neww(w,d[i],xn,a)•i+=1•printw••forxninx:•print"%dand%d=>%d"%(xn[1],xn[2],comy(w,xn))•求解及验证结果如下:•>>>[011]•0•[0.0.50.5]•[010]•1•[0.0.50.5]•[000]•0•[0.0.50.5]•[001]•1•[0.0.50.5]•1and1=>1•1and0=>1•0and0=>0•0and1=>1•>>>•我们下面测试一个更有难度的,一组数值,(x,y)其关系为x*2+1=y为1类
6、,x*7+1=y为2类•#!/usr/bin/envpython•#-*-coding:utf-8-*-•importnumpyasnp•b=1•a=0.3•x=np.array([[b,1,3],[b,2,3],[b,1,8],[b,2,15],[b,3,7],[b,4,29]])•d=np.array([1,1,-1,-1,1,-1])•w=np.array([b,0,0])•defsgn(v):•ifv>0:•return1•else:•return-1•defcomy(myw,myx):•returnsgn(np.dot(myw.T,myx))•defneww(oldw,
7、myd,myx,a):•printcomy(oldw,myx)•returnoldw+a*(myd-comy(oldw,myx))*myx•i=0•forxninx:•printxn•w=neww(w,d[i],xn,a)•i+=1•printw••forxninx:•print"%dand%d=>%d"%(xn[1],xn[2],comy(w,xn))•test=np.array([b,9,19])•print"%dand%d=>%d"%(test[1],test[2],com