周志华—-第5章神经网络(误差逆传播算法)

简介

多层网络的训练需要一种强大的学习算法,其中BP(errorBackPropagation)算法就是成功的代表,它是迄今最成功的神经网络学习算法。 简单来说,它可总结为两种模式:信息的正向传播和误差的反向传播。

正向传播:输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层之后,则传向输出层,在逐层处理的过程中,每一层神经元的状态只会对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程

反向传播:反向传播时,把原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。


BP误差逆传播算法的数学推导

对训练例(xk,yk)(xk,yk)(x_k,y_k),假定神经网络的输出为y¯¯¯k=(y1¯¯¯¯¯k,y2¯¯¯¯¯k,⋯,yl¯¯¯¯k)y¯k=(y1¯k,y2¯k,⋯,yl¯k) \overline y_k=(\overline{y_1}^k,\overline{y_2}^k,\cdots,\overline{y_l}^k ),即yj¯¯¯¯k=f(βj−θj)yj¯k=f(βj−θj)\overline{y_j}^k=f(\beta_j-\theta_j),其中βjβj\beta_j是第j个输出层神经元的输入值,θjθj\theta_j是第j个输出层神经元的阙值,这里的f(x)是激活函数,常用sigmoid函数。

则网络在(xk,yk)(xk,yk)(x_k,y_k)上的均方误差为:Ek=12∑lj=1(yj¯¯¯¯k−yjk)2Ek=12∑j=1l(yj¯k−yjk)2E_k=\frac{1}{2} \sum_{j=1}^{l} (\overline{y_j}^k-{y_j}^k)^2

BP误差逆传播算法的核心其实就是误差最小化的过程,它的主要策略是负梯度方向的梯度下降算法,即设定参数的初始值,通过一个学习速率ηη\eta和当前梯度,来逐渐步进参数,以求拟合一个局部最优的参数。

一般的参数迭代过程如下:

V:ΔV=V+ΔV=η∗grad(V)V:=V+ΔVΔV=η∗grad(V)

\begin{split} V:&=V+ \Delta V \\\Delta V&=\eta*grad(V)& \end{split}
我们以隐藏层中第h个神经元为参照对象,求解它的输入权重v和输出权重w,以及阙值Y,以输出层第J个神经元为输出参照,求解它的阙值 θθ\theta.

隐藏层到输出层的权重WhjWhjW_{hj}:

ΔWhj=−η∗dEkdWhjΔWhj=−η∗dEkdWhj

\Delta W_{hj}=-\eta *\frac{d{E_k}}{d{W_{hj}}}

由复合函数求导公式可得,即链式法则,可归纳为h(a)=f(g(x))h(a)=f(g(x))h(a)=f(g(x)), 则h′(a)=f′(g(x))g′(x)h′(a)=f′(g(x))g′(x)h'(a)=f'(g(x))g'(x),WhjWhjW_{hj}先影响到第jjj个输出层神经元的输入值βj" role="presentation" style="position: relative;">βjβj\beta_j,再影响到其输出值yj¯¯¯¯kyj¯k\overline {y_j}^k,最后影响到误差EkEkE_k:(也就是说它们分别存在对应的函数关系)

dEkdWhj=dEkdyj¯¯¯¯k∗dyj¯¯¯¯kdβj∗dβjdWhj dEkdWhj=dEkdyj¯k∗dyj¯kdβj∗dβjdWhj

\begin{split} \frac{d{E_k}}{d{W_{hj}}} &=\frac{d{E_k}}{d{\overline {y_j}^k }}*\frac{d{\overline {y_j}^k}}{d{\beta_{j}}}*\frac{d{\beta_{j}}}{d{W_{hj}}} \\ & \end{split}\

另外,由于sigmoid函数的性质:f′(x)=f(x)(1−f(x))f′(x)=f(x)(1−f(x))f'(x)=f(x)(1-f(x)),又sigmoid(net)=11+e−netsigmoid(net)=11+e−netsigmoid(net)=\frac{1}{1+e^{-net}}

:上述性质推导公式如下:

sigmoid′(net)=e−net(1+e−net)2=1+e−net−1(1+e−net)2=11+e−net−1(1+e−net)2=sigmoid(net)−sigmoid2(net) sigmoid′(net)=e−net(1+e−net)2=1+e−net−1(1+e−net)2=11+e−net−1(1+e−net)2=sigmoid(net)−sigmoid2(net)

\begin{split} sigmoid'(net)&=\frac{e^{-net}}{(1+e^{-net})^2} \\ &=\frac{1+e^{-net}-1}{(1+e^{-net})^2}\\ &=\frac{1}{1+e^{-net}}-\frac{1}{(1+e^{-net})^2}\\ &=sigmoid(net)-{sigmoid^2(net)} \end{split}\

又,由于yj¯¯¯¯k=f(βj−θj)yj¯k=f(βj−θj)\overline{y_j}^k=f(\beta_j-\theta_j),则有(因为θjθj\theta_j相当于常数,故可以在βjβj\beta_j处添加,因为求导后常数的部分结果为0,不影响最终结果):

dyj¯¯¯¯kdβj=df(βj−θj)d(βj−θj)=f(βj−θj)(1−f(βj−θj))=yj¯¯¯¯k(1−yj¯¯¯¯k) dyj¯kdβj=df(βj−θj)d(βj−θj)=f(βj−θj)(1−f(βj−θj))=yj¯k(1−yj¯k)

\begin{split} \frac{d{\overline {y_j}^k}}{d{\beta_{j}}}&= \frac{d{f(\beta_j-\theta_j)}}{d{(\beta_j-\theta_j)}} \\ &=f(\beta_j-\theta_j)(1-f(\beta_j-\theta_j))\\ &=\overline{y_j}^k(1-\overline{y_j}^k) \end{split}\

又(注:只有j=j时,函数求导才有意义,其他j等于非j的时候,求导相当于常数求导等于0):

dEkdyj¯¯¯¯k=d12∑lj=1(yj¯¯¯¯k−yjk)2dyj¯¯¯¯k=d12(yj¯¯¯¯k−yjk)2dyj¯¯¯¯k=yj¯¯¯¯k−yjk dEkdyj¯k=d12∑j=1l(yj¯k−yjk)2dyj¯k=d12(yj¯k−yjk)2dyj¯k=yj¯k−yjk

\begin{split} \frac{d{E_k}}{d{\overline {y_j}^k}}&= \frac{d{\frac{1}{2} \sum_{j=1}^{l} (\overline{y_j}^k-{y_j}^k)^2}}{d{\overline {y_j}^k}} \\ &=\frac{d{\frac{1}{2} (\overline{y_j}^k-{y_j}^k)^2}}{d{\overline {y_j}^k}}\\ &=\overline{y_j}^k-{y_j}^k \end{split}\

同理(注:sumsumsum_{}能删掉是因为WijWijW_{ij},当i不等于h时,相当于常数项导数为0),其中bhbhb_h为隐藏层第h个神经元的输出:

dβjdWhj=d∑mi=1WijbidWhj=bhdβjdWhj=d∑i=1mWijbidWhj=bh \frac{d{\beta_j}}{d{W_{hj}}}=\frac{d{\sum_{i=1}^{m}W_{ij}b_i}}{d{W_{hj}}}=b_h

故:

ΔWhj=−η∗dEkdWhj=−η∗dEkdyj¯¯¯¯k∗dyj¯¯¯¯kdβj∗dβjdWhj$=−bhη∗(yj¯¯¯¯k−yjk)∗yj¯¯¯¯k(1−yj¯¯¯¯k)ΔWhj=−η∗dEkdWhj=−η∗dEkdyj¯k∗dyj¯kdβj∗dβjdWhj$=−bhη∗(yj¯k−yjk)∗yj¯k(1−yj¯k)

\begin{split}\Delta W_{hj}=-\eta *\frac{d{E_k}}{d{W_{hj}}}&=-\eta*\frac{d{E_k}}{d{\overline {y_j}^k }}*\frac{d{\overline {y_j}^k}}{d{\beta_{j}}}*\frac{d{\beta_{j}}}{d{W_{hj}}}$\\ &=-b_h\eta*(\overline{y_j}^k-{y_j}^k)*\overline{y_j}^k(1-\overline{y_j}^k)\\ & \end{split}

周志华----第5章神经网络(误差逆传播算法)相关推荐

  1. 机器学习 -- 《机器学习》(周志华) 第三章

    机器学习 – <机器学习>(周志华) 第三章 笔记 文章目录 机器学习 -- <机器学习>(周志华) 第三章 笔记 注 常用数学符号 正交回归 点距离线的距离是正交回归 线性回 ...

  2. 《机器学习与数据挖掘》实验五 编程实现误差逆传播算法(BP算法)

    前言: 摘要:本文对机器学习实验五 标准BP算法的代码进行实现,如果不了解的BP算法的话,可以自行上网搜索BP算法的详解. 实验题目:编程实现误差逆传播算法(BP算法) 实验目的:掌握误差逆传播算法( ...

  3. 【读书笔记】周志华 机器学习 第二章 模型评估和选择

    第二章 模型评估和选择 1 欠拟合和过拟合 偏差和方差 1.1 欠拟合和过拟合 1.2 偏差和方差 2 评估方法 性能度量 2.1 评估方法 2.1.1 留出法 2.2.2 交叉验证法 2.2.3 自 ...

  4. 机器学习(周志华)第一章至第三章笔记

    关于周志华老师的<机器学习>这本书的学习笔记 记录学习过程 本博客记录Chapter1 to Chapter3 文章目录 1 绪论 1.1 引言 1.2 基本术语 1.3 假设空间 1.4 ...

  5. 机器学习(周志华) 第九章聚类

    关于周志华老师的<机器学习>这本书的学习笔记 记录学习过程 本博客记录Chapter9 文章目录 1 聚类任务 2 性能度量 3 距离计算 4 原型聚类 4.1 k均值算法 4.2 学习向 ...

  6. 机器学习(周志华) 第一章 引言

    第一章 引言 1.1引言 机器学习的定义: Machine Learning is Fields of study that gives computers the ability to learn ...

  7. 《机器学习》周志华第10章降维与度量学习 思维导图+笔记+习题

    K-Means与LVQ都试图以类簇中心作为原型指导聚类,其中K-Means通过EM算法不断迭代直至收敛,LVQ使用真实类标辅助聚类:高斯混合聚类采用高斯分布来描述类簇原型:密度聚类则是将一个核心对象所 ...

  8. 《机器学习》周志华 --第3章 线性模型 思维导图+笔记+习题

    基本形式 问题描述:给定由d个属性描述的示例x=(x1;x2;x3-xd),其中xi是x的第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测函数, 函数形式:f(x) = w1x1+ ...

  9. 人工智能知识全面讲解:多层神经网络与误差逆传播算法

    7.3.1 从单层到多层神经网络 明斯基教授曾表示,单层神经网络无法解决异或问题,但是当增加一个计 算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分 类效果.只是两层神经网络的计算 ...

  10. BP(BackPropagation)误差逆传播算法

    上篇文章介绍了多层前馈神经网络,那么这种网络是怎样训练生成的呢,BP算法就是其中一种生成多层神经网络的算法 ,又称为反向传播算法,下面来了解一下BP算法. 举例: 下图中是根据一个手写数字辨识的神经网 ...

最新文章

  1. UIButton设置图片 在导航条上的 不显示
  2. 专访Niclas Hedhman:Apache欢迎什么样的开源项目?
  3. mybatis 思维导图,让 mybatis 不再难懂(二)
  4. asp.net机器人注册原理
  5. php 获取ip mac,php获取IP、MAC地址函数
  6. input输入框自动消除空格
  7. Flutter 实例 - 加载更多的ListView
  8. 【iOS】使用storyboard界面跳转报错:unrecognized selector sent to instance 0x7
  9. 三次样条插值算法C++实现
  10. 小米路由器MINI架设WEB服务
  11. js通过浏览器批量下载图片代码
  12. 基于ASP.NET的企业进销存管理系统
  13. 网站服务器记录攻击日志ctf,通过网站日志分析sql注入攻击的痕迹
  14. PPT里面如何插入斜体文字
  15. 工作十年的程序员,却拿着毕业三年的工资……
  16. 30岁有哪些方向可以转型?
  17. T3备份提示原先格式化该文件时所用扇区大小为512
  18. F28335舵机控制器(4)——第三版PCB配套程序
  19. HTML黑白触摸变彩色,使用HTML5 转换彩色图片为黑白色知识讲解.doc
  20. 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份, * 多了一个,这只猴子把多的一个扔入海中,拿走了一份

热门文章

  1. 程序员不应该错过的 6大导航
  2. 基于ROS的机器人模型建立及3D仿真【物理/机械意义】
  3. 三国论(16-20章)
  4. 99乘法表图片java_【Java案例】九九乘法表
  5. HDU 2079 选课时间 组合题
  6. vue3 使用sass/scss
  7. 微博分享代码怎么显示自定义来源
  8. 计算机键盘图 指法,键盘指法练习图
  9. 2022苹果开发者账号续费问题
  10. input隐藏边框、设置透明背景色