Backpropagation Algorithm 郝红侠 2006.11.13 2019/5/2
Perceptron : Single Layer Feed-forward Rosenblatt’s Perceptron: a network of processing elements (PE): Input layer of source nodes Output layer of neurons 1957年美国学者罗森布拉特Rosenblatt提出了一类具有自学习能力的感知器模型,它是一个具有单层计算单元的前向神经网络,其神经元为线性阈值单元,称为单层感知器。它和M-P模型相似,当输入信息的加权和大于或等于阈值时,输出为1,否则输出为0或-1。与M-P模型不同之处是神经元之间的连接权值wi是可变的,这种可变性就保证了感知器具有学习能力。 2019/5/2
XOR问题 任何一个逻辑电路都可以只用XOR门来实现, XOR是通用门 (universal logic gate) 异或问题的二层感知器 2019/5/2
Perceptron : Multi Layer Feed- forward Input layer Output Hidden Layer •••• 输入层神经元的个数为输入信号的维数,输出层神经元的个数为输出信号的维数。隐含层个数以及隐节点个数视具体情况而定,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。 2019/5/2
MLP的特性 除了输入输出,MLP含有一层或多层隐单元,隐单元从输入模式中提取更多有用的信息,使网络完成更复杂的任务。 MLP神经元的激励函数一般采用Sigmoid函数,即 式中ni是第i个神经元的输入信号,ai是该神经元的输出信号。 2019/5/2
当隐层神经元足够多时,Sigmoid结构原则上可以以任意精度逼近的多元非线性函数 MLP的适用范围大大超过单程网络 为了提高神经网络的分类能力,必须采用MLP,但当要精确逼近复杂问题时,隐层神经元和连接突触可能会达到“爆炸”量。 2019/5/2
Backpropagation Algorithm 它之所以是一种学习方法,就是因为用它可以对组成前向多层网络的各人工神经元之间的连接权值进行不断修改,从而使该前向多层网络能够将输入它的信息变换成所期望的输出信息。如果将该多层网络看成一个变换,而网络中各人工神经元之间的连接权值看成变换中的参数,那么这种学习算法就是要求得这些参数。 Late 1980’s - NN re-emerge with Rumelhart and McClelland (Rumelhart, D., McClelland, J., Parallel and Distributed Processing, MIT Press, Cambridge, 1986.) Why BP is a learning method? Why a Backpropagation learning method? 之所以将其称作为反向学习算法,是因为在修改各人工神经元的连接权值时,所依据的是该网络的实际输出与期望的输出之差。将这一差值反向一层一层的向回传播,来决定连接权值的修改。 反向传播模型也称B-P(Back Propagation)模型,是一种用于前向多层神经网络的反向传播学习算法,由鲁梅尔哈特D.Rumelhat和麦卡洛克MeClelland于1986年提出。 2019/5/2
Learning Rule Measure error Reduce that error By appropriately adjusting each of the weights in the network 2019/5/2
BP Network Details Forward Pass: Backward Pass: Error is calculated from outputs Used to update output weights Backward Pass: Error at hidden nodes is calculated by back propagating the error at the outputs through the new weights Hidden weights updated 工作信号正向传播,误差信号反向传播 反向传播算法:从后向前(反向)逐层传播输出层的误差,以间接算出隐层误差。分两个阶段: 正向过程:从输入层经隐层逐层正向计算各单元的输出 反向过程:由输出误差逐层反向计算隐层各单元的误差,并用此误差修正前层的权值 2019/5/2
BP Algorithm 正向过程: 输出层所有神经元的误差能量总和 sum squared error, SSE 权值修正: delta学习规则 2019/5/2
Case 1: 输出层权值修正 局部 梯度 对于sigmoid函数: 2019/5/2
Case 2:隐层权值修正 i wji nj aj ni δj wji δi 2019/5/2
BP算法的步骤 初始值选择 前向计算,求出所有神经元的输出 对输出层计算δ 从后向前计算各隐层δ 计算并保存各权值修正量: 修正权值: 判断是否收敛,如果收敛则结束,不收敛则转至Step2 2019/5/2
收敛性和局部极小值 对于多层网络,误差曲面可能含有多个不同的局部极小值,梯度下降可能陷入这些局部极小值中的任何一个 对于多层网络,反向传播算法仅能保证收敛到误差E的某个局部极小值,不一定收敛到全局最小误差 尽管缺乏对收敛到全局最小误差的保证,BP算法在实践中仍是非常有效的函数逼近算法 2019/5/2
BP算法的改进 学习率影响系统学习过程的稳定性。大的学习率可能使网络权值每一次的修正量过大,甚至会导致权值在修正过程中超出某个误差的极小值呈不规则跳跃而不收敛;但过小的学习率导致学习时间过长,不过能保证收敛于某个极小值。所以,一般倾向选取较小的学习率以保证学习过程的收敛性(稳定性),通常在0.01~0.8之间。 增加冲量项的目的是为了避免网络训练陷于较浅的局部极小点。理论上其值大小应与权值修正量的大小有关,但实际应用中一般取正数。通常在0~1之间,而且一般比学习率要大。 2019/5/2
增加冲量项 Here we modify weights of neurons with: (1) (2) 当本次与前一次同符号时,其求和权值增大,使ΔWij较大,从而在稳定调节时加快了w的调节速度。当与前次符号相反时,指数加权求和的结果使得ΔWij减小了,起到了稳定的作用。 1°将(1)式写成以t为变量的时间序列,t由0到n。则(1)式就可以看成是∧wij(n)的一阶查分方程,即(2)式。 右侧第一项就是表4-2中的权值更新法则,第二项被称为冲量项 梯度下降的搜索轨迹就像一个球沿误差曲面滚下,冲量使球从一次迭代到下一次迭代时以同样的方向滚动 冲量有时会使这个球滚过误差曲面的局部极小值或平坦区域 冲量也具有在梯度不变的区域逐渐增大搜索步长的效果,从而加快收敛 2019/5/2
THANK YOU! 2019/5/2