1 / 66

BP 神经网络

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 的体系结构.

Download Presentation

BP 神经网络

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BP 神经网络 The Backpropagation Neural Network

  2. Werbos 于 1974 年,Parker 于 1985 年,Rumelhart 等人于 1986 年各自独立地提出了误差往回传播的思想和算法。 之后,BP 网络迅速成为最流行的神经计算模型,并得到极其广泛的应用。 The BP Neural Network

  3. 内容要点 1 BPN 的体系结构 2 BPN 的工作算法 3 BP 学习算法 4 BPN 表达 (1):映射实现 5 BPN 表达 (2):泛化 The BP Neural Network

  4. 第一节 BPN 的体系结构 The Configuration of the BPN The BP Neural Network

  5. x1 w1 x2 w2 v o f(v)   xm wm 图 6.1 BPN 神经元 BPN 的神经元 (1) • BPN 神经元结构: 其中: wi: 联结强度系数 : 阈值 : 整合函数 v: 膜电位 f(v): 传递函数 The BP Neural Network

  6. x1 w1 x2 w2 v o f(v)   xm wm 图 6.1 BPN 神经元 BPN 的神经元 (2) • BPN 神经元结构: • 整合运算:求人工神经元的膜电位 整合即加权求和: The BP Neural Network

  7. 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

  8. 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

  9. O Layer • 输入层 Input Layer H Layer • 隐含层 Hidden Layer • 输出层 I Layer Ouptut Layer 图 6.4 BPN 结构 BPN 的拓扑结构 (1) 如图 6.3 所示,结构上,BPN 与感知器一样被设想为一个三元组: The BP Neural Network

  10. (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

  11. 第二节 BPN 工作算法 BPN Working Algorithm The BP Neural Network

  12. BPN 算法的变量定义 (1) • 符号与记法: • BPN 层数:L • 第 l层神经元数:nl (1lL) • 第 l层第 i个神经元:Ni(l) (1inl, 1lL) • 第 l层神经元:N(l)={Ni(l)︱i=1,2,…, nl} (1lL) • BPN 输入向量:X=(x1,x2,…,xm)T • BPN 输出向量:Y=(y1,y2,…,yn)T The BP Neural Network

  13. N(l) 输出向量 / N(l+1) 输入向量 : 其中,oi(l) 为 Ni(l)的输出,O(L)=Y • N(l) 电位向量: 其中,vi(l) 为 Ni(l)的膜电位 BPN算法的变量定义(2) • 符号与记法: The BP Neural Network

  14. N(l-1)Nj(l) (1jnl, 2lL) 联系效率向量: • Ni(l-1)Nj(l) 联系效率:wij(l) (1inl-1, 1jnl, 2lL) • N(l-1)N(l)(2lL) 联系效率矩阵: BPN算法的变量定义(3) • 符号与记法: The BP Neural Network

  15. N(l)(1lL) 阈值向量: BPN算法的变量定义(4) • 符号与记法: • Ni(l)(1inl, 1lL) 传递函数:fi(l) • 如果限定每层的神经元具有相同的传递函数,则定义,N(l)(1lL) 传递函数:f(l) The BP Neural Network

  16. BPN 的工作算法 WA 描述 BPN 由给定输入信号产生输出信号的过程,即: WA:XY BPN 的工作算法 (1) 作为前向型网络,BPN 的信号由输入层,一层一层地向前传递,直至传递到输出层,并产生其输出信号。 BPN 工作时信号前馈的信息处理方式是前向型网络 (Feed-forward Network) 的特征。 The BP Neural Network

  17. O(2) O(L-1) O(1) O(L) X Y WA:XY BPN 的工作算法 (1) BPN 信息的前馈过程为: BPN 第一层每一个神经元只有一个输入端子,接收其对应输入信号,与输入信号的联结效率为 1。 BPN 第一层神经元只对输入信号 X 进行处理工作,并将输入信号 X 分配给隐含层。 The BP Neural Network

  18. 输入: 循环:from l=2 to l=L (j=1,2,…,nl) 输出: BPN 的工作算法 (2) • 标量工作算法: The BP Neural Network

  19. 输入: 循环:from l=2 to l=L 输出: BPN 的工作算法 (3) • 向量工作算法: The BP Neural Network

  20. 第三节 BP 学习算法 BP Learning Algroithm The BP Neural Network

  21. 引述 BP 学习算法 (Backpropagation Training Algorithm) 是一种监督学习算法 (Supervised Learning Algorithm)。 与感知器一样,BPN 学习的学习过程是:从样本中选取输入模式作为 BPN 的输入,并测试其输出,即测试实际输出与期望输出的一致性,以指导 BPN 权值和阈值的修改。 与感知器一样,BPN 学习的目标是使感知器表达某种映射。 The BP Neural Network

  22. 阈值的处理 为了 BP 算法的简单性,我们需要将 BPN 的阈值与权值统一起来。 为了将阈值与权值的调节统一起来,我们需要对 BPN 的阈值进行处理,将其转化为权值。 阈值的变换来自于 BPN 结构上的等价变换和工作算法的等价变换。 在 BPN 上附加结点是解决问题的方法。 附加神经元输出恒等于 1,无输入。 The BP Neural Network

  23. 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

  24. N(l) 输出扩展向量 / N(l+1) 输入扩展向量 : 阈值的处理 (3) • 符号与记法: • 附加神经元: N0(l) (1lL-1) • 附加神经元的输出: o0(l)=1(1lL-1) The BP Neural Network

  25. N0(l-1)Nj(l) 联系效率:w0j(l) =-j(l) • N(l-1)Nj(l) (1jnl+1, 2lL) 扩展权值向量: (1jnl, 2lL) • N(l-1)N(l)(2lL) 扩展权值矩阵: 阈值的处理 (4) • 符号与记法: The BP Neural Network

  26. 输入: 循环:from l=2 to l=L (j=1,2,…,nl) 输出: 阈值的处理 (5) • 标量工作算法: The BP Neural Network

  27. 输入: 循环:from l=2 to l=L 输出: 阈值的处理 (6) • 向量工作算法: The BP Neural Network

  28. 定义:(能量函数) 设有样本集合 其中,(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

  29. 记 X(k,s)=X(s)为 BPN 在第 k (0) 轮对第 s个样本进行学习时的输入,其产生的输出为: 期望输出与实际输出的差为: 则 BPN 第 k轮学习的能量函数定义为: 能量函数 (2) The BP Neural Network

  30. 如果我们定义 BPN 第 k轮对第 s个样本的能量函数为: 则 BPN 第 k轮学习的能量函数可写作: 能量函数 (3) The BP Neural Network

  31. 能量函数的梯度与权值 BPN 能量函数即 BPN 关于误差的性能函数。 BPN 学习的基本目标,就是通过修正或调节 BPN 中神经元的联结系数和神经元的阈值,使其能量函数趋于极小。 按梯度下降的原则,若能求得 BPN 能量函数对权值的偏导数,则可如下调节权值。 The BP Neural Network

  32. 复合函数求导问题 (1) 设有二元复合函数: z 关于 s和 t的偏导数为: The BP Neural Network

  33. 复合函数求导问题 (2) 一般地,设有 n 元复合函数: 其关于 i (i=1,2,…,m) 的偏导数为: The BP Neural Network

  34. n 元复合函数: 的运算可以用一个网络来描述。 图 6.7 复合函数运算网络 复合函数求导问题中 蕴含的误差反馈思想 (1) 假设 y代表网络输出误差,则这一误差可能来自 xj (j=1,2,…,m)的误差和/或 i (i=1,2,…,n) 的误差。 The BP Neural Network

  35. 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

  36. 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

  37. 由梯度下降原理可知 xj ~ y/xj,即: 复合函数求导问题中 蕴含的误差反馈思想 (4) The BP Neural Network

  38. 同样,i ~ y/i,即: 这就是误差反馈。 复合函数求导问题中 蕴含的误差反馈思想 (5) The BP Neural Network

  39. 图 6.9 能量复合函数 BPN 能量函数求导问题 (1) BPN 能量函数可视为复合函数 其关于 oi(l-1) (i=1,2,…,nn-1) 的偏导数为: The BP Neural Network

  40. BPN Delta 算法 (1) 定义 Nj(l)(1jnl, 2lL) 的 Delta 函数: j(l)(k,s) 意味着 BPN 第 k轮第 s个样本学习时第 l 层第 j个神经元产生的误差。 The BP Neural Network

  41. BPN Delta 算法 (2) 因为 yi =yi(s)-oi(L),故对于输出层,即 l=L时: The BP Neural Network

  42. BPN Delta 算法 (3) 对于隐含层,即 1<l<L时: The BP Neural Network

  43. BPN Delta 算法 (4) 统一的 BPN Delta 算法: BPN Delta 算法显示,第 l 层的误差,可由第 l+1层的误差来计算。即: 这就是 BP 算法的误差往回传播思想。 The BP Neural Network

  44. BPN 权值修正算法 (1) 设定学习因子 ,依梯度下降原理: The BP Neural Network

  45. BPN 权值修正算法 (2) 如果令: 则 BPN 权值修正算法可记作: The BP Neural Network

  46. BPN 权值修正算法 对于 BPN 权值修正算法: 可变换为如下形式吗? The BP Neural Network

  47. 前馈 运算 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

  48. 反馈 运算 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

  49. 前馈 运算 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

  50. 反馈 运算 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

More Related