760 likes | 1.25k Views
BP 神经网络. The Backpropagation Neural Network. Werbos 于 1974 年, Parker 于 1985 年, Rumelhart 等人于 1986 年各自独立地提出了误差往回传播的思想和算法。. 之后, BP 网络迅速成为最流行的神经计算模型,并得到极其广泛的应用。. 内容要点. 1 BPN 的体系结构. 2 BPN 的工作算法. 3 BP 学习算法. 4 BPN 表达 (1):映射实现. 5 BPN 表达 (2):泛化. 第一节. BPN 的体系结构.
E N D
BP 神经网络 The Backpropagation Neural Network
Werbos 于 1974 年,Parker 于 1985 年,Rumelhart 等人于 1986 年各自独立地提出了误差往回传播的思想和算法。 之后,BP 网络迅速成为最流行的神经计算模型,并得到极其广泛的应用。 The BP Neural Network
内容要点 1 BPN 的体系结构 2 BPN 的工作算法 3 BP 学习算法 4 BPN 表达 (1):映射实现 5 BPN 表达 (2):泛化 The BP Neural Network
第一节 BPN 的体系结构 The Configuration of the BPN The BP Neural Network
x1 w1 x2 w2 v o f(v) xm wm 图 6.1 BPN 神经元 BPN 的神经元 (1) • BPN 神经元结构: 其中: wi: 联结强度系数 : 阈值 : 整合函数 v: 膜电位 f(v): 传递函数 The BP Neural Network
x1 w1 x2 w2 v o f(v) xm wm 图 6.1 BPN 神经元 BPN 的神经元 (2) • BPN 神经元结构: • 整合运算:求人工神经元的膜电位 整合即加权求和: The BP Neural Network
x1 w1 o 1.0 x2 w2 v o 0.5 v 0 xm wm 图 6.2 Sigmoid 神经元 BPN 的神经元 (3) • BPN 神经元的 Sigmoid 传递函数 (1): The BP Neural Network
x1 w1 o 1.0 x2 w2 v o v 0 -1 xm wm 图 6.3 Sigmoid 神经元 BPN 的神经元 (4) • BPN 的神经元的 Sigmoid 传递函数 (2): The BP Neural Network
O Layer • 输入层 Input Layer H Layer • 隐含层 Hidden Layer • 输出层 I Layer Ouptut Layer 图 6.4 BPN 结构 BPN 的拓扑结构 (1) 如图 6.3 所示,结构上,BPN 与感知器一样被设想为一个三元组: The BP Neural Network
(1) (2) (L-1) (L) 图 6.5 BPN 的 前 向 型 结 构 x1 y1 x2 y2 xm yn W(2) W(L) Input Layer Hidden Layer Output Layer BPN 的拓扑结构 (2) • BPN 是一种前向型人工神经网络: The BP Neural Network
第二节 BPN 工作算法 BPN Working Algorithm The BP Neural Network
BPN 算法的变量定义 (1) • 符号与记法: • BPN 层数:L • 第 l层神经元数:nl (1lL) • 第 l层第 i个神经元:Ni(l) (1inl, 1lL) • 第 l层神经元:N(l)={Ni(l)︱i=1,2,…, nl} (1lL) • BPN 输入向量:X=(x1,x2,…,xm)T • BPN 输出向量:Y=(y1,y2,…,yn)T The BP Neural Network
N(l) 输出向量 / N(l+1) 输入向量 : 其中,oi(l) 为 Ni(l)的输出,O(L)=Y • N(l) 电位向量: 其中,vi(l) 为 Ni(l)的膜电位 BPN算法的变量定义(2) • 符号与记法: The BP Neural Network
N(l-1)Nj(l) (1jnl, 2lL) 联系效率向量: • Ni(l-1)Nj(l) 联系效率:wij(l) (1inl-1, 1jnl, 2lL) • N(l-1)N(l)(2lL) 联系效率矩阵: BPN算法的变量定义(3) • 符号与记法: The BP Neural Network
N(l)(1lL) 阈值向量: BPN算法的变量定义(4) • 符号与记法: • Ni(l)(1inl, 1lL) 传递函数:fi(l) • 如果限定每层的神经元具有相同的传递函数,则定义,N(l)(1lL) 传递函数:f(l) The BP Neural Network
BPN 的工作算法 WA 描述 BPN 由给定输入信号产生输出信号的过程,即: WA:XY BPN 的工作算法 (1) 作为前向型网络,BPN 的信号由输入层,一层一层地向前传递,直至传递到输出层,并产生其输出信号。 BPN 工作时信号前馈的信息处理方式是前向型网络 (Feed-forward Network) 的特征。 The BP Neural Network
O(2) O(L-1) O(1) O(L) X Y WA:XY BPN 的工作算法 (1) BPN 信息的前馈过程为: BPN 第一层每一个神经元只有一个输入端子,接收其对应输入信号,与输入信号的联结效率为 1。 BPN 第一层神经元只对输入信号 X 进行处理工作,并将输入信号 X 分配给隐含层。 The BP Neural Network
输入: 循环:from l=2 to l=L (j=1,2,…,nl) 输出: BPN 的工作算法 (2) • 标量工作算法: The BP Neural Network
输入: 循环:from l=2 to l=L 输出: BPN 的工作算法 (3) • 向量工作算法: The BP Neural Network
第三节 BP 学习算法 BP Learning Algroithm The BP Neural Network
引述 BP 学习算法 (Backpropagation Training Algorithm) 是一种监督学习算法 (Supervised Learning Algorithm)。 与感知器一样,BPN 学习的学习过程是:从样本中选取输入模式作为 BPN 的输入,并测试其输出,即测试实际输出与期望输出的一致性,以指导 BPN 权值和阈值的修改。 与感知器一样,BPN 学习的目标是使感知器表达某种映射。 The BP Neural Network
阈值的处理 为了 BP 算法的简单性,我们需要将 BPN 的阈值与权值统一起来。 为了将阈值与权值的调节统一起来,我们需要对 BPN 的阈值进行处理,将其转化为权值。 阈值的变换来自于 BPN 结构上的等价变换和工作算法的等价变换。 在 BPN 上附加结点是解决问题的方法。 附加神经元输出恒等于 1,无输入。 The BP Neural Network
图 6.6 BPN 的 附 加 结 点 结 构 o0(2)=1 o0(L-1)=1 o0(1)=1 x1 y1 x2 y2 xm yn ~ ~ W(L) W(2) 阈值的处理(2) The BP Neural Network
N(l) 输出扩展向量 / N(l+1) 输入扩展向量 : 阈值的处理 (3) • 符号与记法: • 附加神经元: N0(l) (1lL-1) • 附加神经元的输出: o0(l)=1(1lL-1) The BP Neural Network
N0(l-1)Nj(l) 联系效率:w0j(l) =-j(l) • N(l-1)Nj(l) (1jnl+1, 2lL) 扩展权值向量: (1jnl, 2lL) • N(l-1)N(l)(2lL) 扩展权值矩阵: 阈值的处理 (4) • 符号与记法: The BP Neural Network
输入: 循环:from l=2 to l=L (j=1,2,…,nl) 输出: 阈值的处理 (5) • 标量工作算法: The BP Neural Network
输入: 循环:from l=2 to l=L 输出: 阈值的处理 (6) • 向量工作算法: The BP Neural Network
定义:(能量函数) 设有样本集合 其中,(X(s),Y(s)) 为第 s个样本对: (1) X(s)=(x1(s),x2(s),…,xm(s))T:样本输入模式 (2) Y(s)=(y1(s),y2(s),…,yn(s))T:样本期望输出 N为样本数,s为样本序号。 能量函数 (1) The BP Neural Network
记 X(k,s)=X(s)为 BPN 在第 k (0) 轮对第 s个样本进行学习时的输入,其产生的输出为: 期望输出与实际输出的差为: 则 BPN 第 k轮学习的能量函数定义为: 能量函数 (2) The BP Neural Network
如果我们定义 BPN 第 k轮对第 s个样本的能量函数为: 则 BPN 第 k轮学习的能量函数可写作: 能量函数 (3) The BP Neural Network
能量函数的梯度与权值 BPN 能量函数即 BPN 关于误差的性能函数。 BPN 学习的基本目标,就是通过修正或调节 BPN 中神经元的联结系数和神经元的阈值,使其能量函数趋于极小。 按梯度下降的原则,若能求得 BPN 能量函数对权值的偏导数,则可如下调节权值。 The BP Neural Network
复合函数求导问题 (1) 设有二元复合函数: z 关于 s和 t的偏导数为: The BP Neural Network
复合函数求导问题 (2) 一般地,设有 n 元复合函数: 其关于 i (i=1,2,…,m) 的偏导数为: The BP Neural Network
n 元复合函数: 的运算可以用一个网络来描述。 图 6.7 复合函数运算网络 复合函数求导问题中 蕴含的误差反馈思想 (1) 假设 y代表网络输出误差,则这一误差可能来自 xj (j=1,2,…,m)的误差和/或 i (i=1,2,…,n) 的误差。 The BP Neural Network
y/xj 是可以直接计算的: 图 6.7 复合函数运算网络 复合函数求导问题中 蕴含的误差反馈思想 (2) 根据梯度下降原理,y关于 xj (j=1,2,…,n)的导数 y/xj 意味着 xj 关于 y的误差。 这一公式意味着误差 y 传递给了 xj (j=1,2,…,n)。 The BP Neural Network
y/i 需要通过复合函数求导公式间接计算: 图 6.8 复合函数运算网络 复合函数求导问题中 蕴含的误差反馈思想 (3) 同样,y关于 i (i=1,2,…,m)的导数 y/i 意味着 i 关于 y的误差。 这一公式意味着 i 关于 y的误差与误差 y 传递给 xj (j=1,2,…,n) 的误差 y/xj 和 xj 关于 i的误差相关,既, y 的误差传递给 xj后现在又传递到了 i。 The BP Neural Network
由梯度下降原理可知 xj ~ y/xj,即: 复合函数求导问题中 蕴含的误差反馈思想 (4) The BP Neural Network
同样,i ~ y/i,即: 这就是误差反馈。 复合函数求导问题中 蕴含的误差反馈思想 (5) The BP Neural Network
图 6.9 能量复合函数 BPN 能量函数求导问题 (1) BPN 能量函数可视为复合函数 其关于 oi(l-1) (i=1,2,…,nn-1) 的偏导数为: The BP Neural Network
BPN Delta 算法 (1) 定义 Nj(l)(1jnl, 2lL) 的 Delta 函数: j(l)(k,s) 意味着 BPN 第 k轮第 s个样本学习时第 l 层第 j个神经元产生的误差。 The BP Neural Network
和 BPN Delta 算法 (2) 因为 yi =yi(s)-oi(L),故对于输出层,即 l=L时: The BP Neural Network
和 BPN Delta 算法 (3) 对于隐含层,即 1<l<L时: The BP Neural Network
BPN Delta 算法 (4) 统一的 BPN Delta 算法: BPN Delta 算法显示,第 l 层的误差,可由第 l+1层的误差来计算。即: 这就是 BP 算法的误差往回传播思想。 The BP Neural Network
BPN 权值修正算法 (1) 设定学习因子 ,依梯度下降原理: The BP Neural Network
BPN 权值修正算法 (2) 如果令: 则 BPN 权值修正算法可记作: The BP Neural Network
BPN 权值修正算法 对于 BPN 权值修正算法: 可变换为如下形式吗? The BP Neural Network
前馈 运算 BP 算法 (1) • BP 算法实现 (1) step 1. Set k=0, and initialize , , W and . step 2. Set s=1 and E=0. step 3. Input X=X(s) to BPN, and generate Y. step 4. Set j=1. step 5. Calculate E=E+0.5(yj(s)-yj)2. step 6. If j < n, then j=j+1 and go to step 5. step 7. If s < N, then s=s+1, and go to step 3. step 8. Test BPN, and if E, stop. The BP Neural Network
反馈 运算 BP 算法 (2) step 9. Set s=1 and W(l)(k)=0. step 10. Input X=X(s) to BPN, and generate Y. step 11. Set l=L. step 12. Set j=1. step 13. Calculate j(l). step 14. Set i=0. step 15. Calculate wij(k,s). step 16. If i < nl-1, then i=i+1 and go to step 15. step 17. If j < nl, then j=j+1 and go to step 13. step 18.W(l)(k)= W(l)(k)+ W(l)(k,s). step 19. If l > 2, then l=l-1 and go to step 12. step 20. If s < N, then s=s+1, and go to step 10. step 21.W(l)(k+1)= W(l)(k)+ W(l)(k). step 22.k=k+1, go to step 2. The BP Neural Network
前馈 运算 BP 算法 (3) • BP 算法实现 (1) step 1. Set k=0, and initialize , , W and . step 2. Set s=1 and E=0. step 3. Input X=X(s) to BPN, and generate Y. step 4. Memorize all information generated with X(s). step 5. Set j=1. step 6. Calculate E=E+0.5(yj(s)-yj)2. step 7. If j < n, then j=j+1 and go to step 6. step 8. If s < N, then s=s+1, and go to step 3. step 9. Test BPN, and if E, stop. The BP Neural Network
反馈 运算 BP 算法 (4) step 10. Set s=1 and W(l)(k)=0. step 11. Set l=L. step 12. Set j=1. step 13. Calculate j(l). step 14. Set i=0. step 15. Calculate wij(k,s). step 16. If i < nl-1, then i=i+1 and go to step 15. step 17. If j < nl, then j=j+1 and go to step 13. step 18.W(l)(k)= W(l)(k)+ W(l)(k,s). step 19. If l > 2, then l=l-1 and go to step 12. step 20. If s < N, then s=s+1, and go to step 10. step 21.W(l)(k+1)= W(l)(k)+ W(l)(k). step 22.k=k+1, go to step 2. The BP Neural Network