联系我们
- 地 址:北京市海淀区北四环西路9号 ,主 营:人脸识别,活体检测,身份证识别,银行卡识别,名片识别,车牌识别,OCR识别等及智能识别技术。
- 电 话:13146317170 廖经理
- 传 真:
- 邮 箱:398017534@qq.com
机器学习神经网络
机器学习神经网络
神经元模型
神经网络中最根本的成分是神经元(neuron)模型。在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改动这些神经元内的电位;假如某神经元的电位超越了一个“阈值”(threshold),那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物资。
这里写图片描绘
图5.1所示的简单模型就是沿用至今的“M-P神经元模型”。在这个模型中,神经元接纳到来自n个其他神经元传送过来的输入信号,这些输入信号经过带权重的衔接(connection)停止传送,神经元接纳到总输入值将与神经元的阈值停止比拟,然后经过“激活函数”(activation function)处置以产生神经元的输出。
阶跃函数是理想的激活函数,它将输出值映射为输出值“0”或“1”,“1”对应与神经元兴奋,“0”对应于神经元抑止。但阶跃函数具有不连续、不润滑等不太好的性质,因而常用Sigmoid函数作为激活函数,如下图:
这里写图片描绘
把许多这样的神经元按一定的层次构造衔接起来,就得到了神经网络。
感知机与多层网络
感知机(Perceptron)由两层神经元组成,如图5.3所示。输入层接纳外界输入信号后传送给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(threshold logic unit)。
这里写图片描绘
给定锻炼数据集,权重wi(i=1,2,...,n)wi(i=1,2,...,n)以及阈值θθ都能够经过学习得到。我们把阈值θθ也看做神经元的一个固定输入为−1.0−1.0的“哑结点”(dummy node),其所对应的衔接权重为wn+1wn+1,这样,权重和阈值的学习就能够统一为权重的学习(由于实践阈值是−1.0×wn+1−1.0×wn+1)。
感知机的学习规则:对锻炼样例(x,y)(x,y),若当前感知机的输出为y^y^,则感知机权重将这样调整:
wi←wi+Δwi
wi←wi+Δwi
Δwi=η(y−y^)xi
Δwi=η(y−y^)xi
其中η∈(0,1)η∈(0,1)称为学习率(learning rate)。ηη通常设置为一个小正数,例如0.10.1。当预测正确时,感知机不发作变化,否则将依据错误的水平停止权重调整。
若我们需求处理的问题是线性可分问题(linearly separable),就会存在一个线性超平面能将它们分开,如图5.4(a)-(c)所示,则感知机的学习过程一定会收敛(converge),从而求得恰当的权重向量w=(w1;w2;...;wn+1)w=(w1;w2;...;wn+1),否则感知机学习过程将会发作振荡(fluctuation)。如图5.4(d)的非线性可分问题。
这里写图片描绘
要处理非线性可分问题,需思索运用多层功用神经元。如图5.5中两层感知机处理异或问题。
这里写图片描绘
这里的输入层和输出层之间的一层神经元,被称为隐层或隐含层(hidden layer),隐含层和输出层神经元都是具有激活函数的功用神经元。
这里写图片描绘
我们常见的神经网络是如图5.6所示的层级构造,每层神经元与下一层神经元全互连,神经元枝江不存在同层衔接,也不存在跨层衔接。这样的神经网络构造通常称为“多层前馈神经网络”(multi-layer feed forward neural network)。由于输入层神经元仅是承受输入,不停止函数处置,隐层与输出层包含功用神经元。因而,通常被称为“两层网络”,或“单隐层网络”。
神经网络的学习过程,就是依据锻炼数据来调整神经元之间的“衔接权”(connection weight)以及每个功用神经元的阈值。
误差逆传播算法
欲锻炼多层神经网络,上述的简单感知机学习规则显然不够,我们需求更强大的学习算法。误差逆传播(error BackPropagation,简称BP)算法就是一种出色的神经网络学习算法。
有锻炼集D={(x1,y1),(x2,y2),...,(xm,ym)},xi∈Rd,yi∈RlD={(x1,y1),(x2,y2),...,(xm,ym)},xi∈Rd,yi∈Rl,即输入示例由dd个属性描绘,输出ll维实值向量。
这里写图片描绘
如图5.7是一个具有dd个输入神经元、ll个输出神经元、qq个隐层神经元的多层前馈网络构造。其中输出层第jj个神经元的阈值用θjθj表示,隐层第hh个神经元的阈值用γhγh;输入层第ii个神经元与隐层第hh个神经元之间的衔接权为vihvih,隐层第hh个神经元与输出层第jj个神经元之间的衔接权为whjwhj;记隐层第hh个神经元接纳到的输入为αh=∑di=1xihxiαh=∑i=1dxihxi,输出层第jj个神经元接纳到的输入为βj=∑qh=1whjbhβj=∑h=1qwhjbh,bhbh为隐层第hh个神经元的输出。并假定隐层和输出层神经元都运用图5.2(b)中的Sigmoid函数。
对锻炼例(xk,yk)(xk,yk),假定神经网络的输出为yk^=(yk1^,yk2^,...,ykl^)yk^=(y1k^,y2k^,...,ylk^),即
ykj^=f(βj−θj)(5.3)
(5.3)yjk^=f(βj−θj)
,则网络(x_k,y_k)上的均方误差为
Ek=12∑j=1l(ykj^−ykj^)2(5.4)
(5.4)Ek=12∑j=1l(yjk^−yjk^)2
图5.7的网络中有d×q+l×q+q+ld×q+l×q+q+l个参数需肯定。我们以图5.7中隐层到输出层的衔接权whjwhj为例停止推导。
BP算法基于梯度降落(gradient descent)战略,以目的的负梯度方向对参数停止调整。
上一条:机器学习中的随机森林方法
下一条:安卓身份证识别API