数学之路(3)-机器学习(3)-机器学习算法-神经网络[10]
来源:互联网 发布:淘宝主图尺寸高度 编辑:程序博客网 时间:2024/05/01 17:04
多层感知器利用非线性神经元做为中间隐藏层神经元,输出端可以直接使用非线性神经元,也可以使用线性神经元
在对单个样本计算的过程中分为前向计算和反向计算
前向计算根据权值矩阵由前向后一层层神经元推进,每次推进根据权值计算每层的输出值
反向计算根据输出结果与目标输出的误差来由后向前调整神经网络的权值,同时,加上运量常数,动量参数可以调整学习速度,,此外,可体现时间延迟
非线性 函数本身使用双曲正切函数,当然也要可以使用logistic函数,2个函数都是非线性的
本博客所有内容是原创,未经书面许可,严禁任何形式的转载
http://blog.csdn.net/u010255642
部分python代码如下:
def train(): '''训练样本,多次迭代''' global hidelevel_count nowtraincount=[] nowtraincount.append(0) #sigmoid函数指定 delta_sigfun=ann_delta_atanh sigmoid_func=ann_atanh while True: print u"-------开始第%d次训练"%(nowtraincount[0]+1) iscontinue,iscountout,mymse=train_update(hidelevel_count,nowtraincount,sigmoid_func,delta_sigfun) if not iscontinue: if iscountout: print u"训练次数已到,误差为:%f"%mymse else: print u"训练成功,误差为:%f"%mymse break def simulate(myx,sigmoid_func,delta_sigfun): '''一个样本的仿真计算''' print u"====仿真计算=======" global ann_yi global ann_w global ann_wj0 global ann_y0 global hidelevel_count global alllevel_count global d myd=d[0] myx=np.array(myx) n=len(myx) level=hidelevel_count allevel=alllevel_count #清空yi输出信号数组 hidelevel=hidelevel_count alllevel=alllevel_count for i in xrange(0,alllevel): #第一维是层数,从0开始 for j in xrange(0,n): #第二维是神经元 ann_yi[i][j]=0.0 ann_yi=np.array(ann_yi) yi=ann_yi #前向计算 myo=np.array([]) myy=np.array([]) for nowlevel in xrange(0,alllevel): #一层层向前计算 #计算诱导局部域 my_y=[] myy=yi[nowlevel-1] myw=ann_w[nowlevel-1] if nowlevel==0: #第一层隐藏层直接采用样本X加上偏置做为输出 my_y=myx+ann_y0*ann_wj0[nowlevel] yi[nowlevel]=my_y elif nowlevel==(alllevel-1): #线性输出层,使用线性激活 my_y=o_func(yi[nowlevel-1]) yi[nowlevel,:len(myd)]=my_y elif nowlevel==(hidelevel-1): #最后一层隐藏输出层,使用线性激活 for i in xrange(0,len(myd)): temp_y=sigmoid_func(np.dot(myw[:,i],myy)) my_y.append(temp_y) yi[nowlevel,:len(myd)]=my_y else: #中间隐藏层 #中间隐藏层需要加上偏置 for i in xrange(0,len(myy)): temp_y=sigmoid_func(np.dot(myw[:,i],myy)+ann_y0*ann_wj0[nowlevel,i]) my_y.append(temp_y) yi[nowlevel]=my_y print "=============" print u"***权值矩阵***" print ann_w print u"***输出矩阵***" print yi print "=============" return yi[alllevel-1,:len(myd)] train()delta_sigfun=ann_delta_atanhsigmoid_func=ann_atanhi=0for xn in x: print "%d===%d => "%(xn[0],xn[1]) print simulate(xn,sigmoid_func,delta_sigfun) print "=====正确目标值=====" print d[i] i+=1
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[10]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[3]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[1]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[2]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[4]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[5]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[6]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[7]【感知器】视频教程
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[8]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[9]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[11]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[13]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[12]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[15]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[14]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[16]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[17]
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[18]
- Valabind
- JavaBean 之Hello World(入门实例)
- 内存映射nopage()
- 图形界面库Windows Forms、 MFC、WTL、WxWidgets、Qt、GTK 综合比较
- ctags详解
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[10]
- 设计: ListView 接口,and the missing read-only interfaces in java collection framework
- Ubuntu中安装查看chm帮助文档的文件格式
- 在Tomcat中配置SSL
- Flex代码格式化工具安装
- 华为机试——1.字串转换
- 黑马程序员-开始
- svn 上传源代码、下载源代码
- VS2010 vcpkgsrv.exe进程CPU占用高的解决方法 -