周志华----第5章神经网络(误差逆传播算法)
周志华—-第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和当前梯度,来逐渐步进参数,以求拟合一个局部最优的参数。
一般的参数迭代过程如下:
\begin{split} V:&=V+ \Delta V \\\Delta V&=\eta*grad(V)& \end{split}
我们以隐藏层中第h个神经元为参照对象,求解它的输入权重v和输出权重w,以及阙值Y,以输出层第J个神经元为输出参照,求解它的阙值 θθ\theta.
隐藏层到输出层的权重WhjWhjW_{hj}:
\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:(也就是说它们分别存在对应的函数关系)
\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}}
注:上述性质推导公式如下:
\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,不影响最终结果):
\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):
\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
故:
\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章神经网络(误差逆传播算法)相关推荐
- 机器学习 -- 《机器学习》(周志华) 第三章
机器学习 – <机器学习>(周志华) 第三章 笔记 文章目录 机器学习 -- <机器学习>(周志华) 第三章 笔记 注 常用数学符号 正交回归 点距离线的距离是正交回归 线性回 ...
- 《机器学习与数据挖掘》实验五 编程实现误差逆传播算法(BP算法)
前言: 摘要:本文对机器学习实验五 标准BP算法的代码进行实现,如果不了解的BP算法的话,可以自行上网搜索BP算法的详解. 实验题目:编程实现误差逆传播算法(BP算法) 实验目的:掌握误差逆传播算法( ...
- 【读书笔记】周志华 机器学习 第二章 模型评估和选择
第二章 模型评估和选择 1 欠拟合和过拟合 偏差和方差 1.1 欠拟合和过拟合 1.2 偏差和方差 2 评估方法 性能度量 2.1 评估方法 2.1.1 留出法 2.2.2 交叉验证法 2.2.3 自 ...
- 机器学习(周志华)第一章至第三章笔记
关于周志华老师的<机器学习>这本书的学习笔记 记录学习过程 本博客记录Chapter1 to Chapter3 文章目录 1 绪论 1.1 引言 1.2 基本术语 1.3 假设空间 1.4 ...
- 机器学习(周志华) 第九章聚类
关于周志华老师的<机器学习>这本书的学习笔记 记录学习过程 本博客记录Chapter9 文章目录 1 聚类任务 2 性能度量 3 距离计算 4 原型聚类 4.1 k均值算法 4.2 学习向 ...
- 机器学习(周志华) 第一章 引言
第一章 引言 1.1引言 机器学习的定义: Machine Learning is Fields of study that gives computers the ability to learn ...
- 《机器学习》周志华第10章降维与度量学习 思维导图+笔记+习题
K-Means与LVQ都试图以类簇中心作为原型指导聚类,其中K-Means通过EM算法不断迭代直至收敛,LVQ使用真实类标辅助聚类:高斯混合聚类采用高斯分布来描述类簇原型:密度聚类则是将一个核心对象所 ...
- 《机器学习》周志华 --第3章 线性模型 思维导图+笔记+习题
基本形式 问题描述:给定由d个属性描述的示例x=(x1;x2;x3-xd),其中xi是x的第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测函数, 函数形式:f(x) = w1x1+ ...
- 人工智能知识全面讲解:多层神经网络与误差逆传播算法
7.3.1 从单层到多层神经网络 明斯基教授曾表示,单层神经网络无法解决异或问题,但是当增加一个计 算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分 类效果.只是两层神经网络的计算 ...
- BP(BackPropagation)误差逆传播算法
上篇文章介绍了多层前馈神经网络,那么这种网络是怎样训练生成的呢,BP算法就是其中一种生成多层神经网络的算法 ,又称为反向传播算法,下面来了解一下BP算法. 举例: 下图中是根据一个手写数字辨识的神经网 ...
最新文章
- UIButton设置图片 在导航条上的 不显示
- 专访Niclas Hedhman:Apache欢迎什么样的开源项目?
- mybatis 思维导图,让 mybatis 不再难懂(二)
- asp.net机器人注册原理
- php 获取ip mac,php获取IP、MAC地址函数
- input输入框自动消除空格
- Flutter 实例 - 加载更多的ListView
- 【iOS】使用storyboard界面跳转报错:unrecognized selector sent to instance 0x7
- 三次样条插值算法C++实现
- 小米路由器MINI架设WEB服务
- js通过浏览器批量下载图片代码
- 基于ASP.NET的企业进销存管理系统
- 网站服务器记录攻击日志ctf,通过网站日志分析sql注入攻击的痕迹
- PPT里面如何插入斜体文字
- 工作十年的程序员,却拿着毕业三年的工资……
- 30岁有哪些方向可以转型?
- T3备份提示原先格式化该文件时所用扇区大小为512
- F28335舵机控制器(4)——第三版PCB配套程序
- HTML黑白触摸变彩色,使用HTML5 转换彩色图片为黑白色知识讲解.doc
- 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份, * 多了一个,这只猴子把多的一个扔入海中,拿走了一份