神经网络bp算法推导

2017 年 11 月 17 日 统计学习与视觉计算组 刘珊兵


一、基本概念

  1. 生物神经元

    树突(输入)→ 细胞体(处理)→轴突(输出)

  2. 人工神经元

 其中g函数代表整合函数,f为激活函数。

(1)整合函数一般有以下两种:


(2)激活函数有以下几种:

二、人工神经网络结构

  1.  前馈型网络:没有回路。根据层数不同又可分为单层,双层和多层网络,在多层网络中又根据神经元的功能划分为输入层、隐含层和输出层。


  2.  反馈型:有回路,一般也被称为动态神经网络或循环网络。



  3. 单层感知器,只能解决线性可分问题,不可解决线性不可分和非线性问题,如异或问题。所以出现了多层感知器,如下图:


三、bp算法的推导过程

      

第二层神经元的输出:

即第二层的输出可以表示为:

因此可以得到前向传播公式为:

1.代价函数

(1)单个样本的代价函数:

(2)所有K个样本的代价函数: 

以上定义中的第一项是一个均方差项。第二项是一个正则化项,防止过拟合

2.梯度下降算法求解最优参数w (l)和b(l)

我们先来看对于第 l+1 层第 i 个神经元来说,第 l 层第 j 个神经元的权值可按如下方式迭代更新:

类似的,对于 l+1 层第 i 个神经元来说,第 l 层的单元的偏置权值可按如下方式迭代更新:    

 

 我们现在的目的是求出以下两个式子就可以对参数进行迭代了                                             

 我们知道第 l+1 层第 i 个神经元的输入可以由以下式子计算:

 

进一步对上面的式子进行变形:

        


接下来引入残差的概念, 残差表明了该节点对最终输出值的残差产生了多   少影响。k个样本在第l层第i个神经元上产生的残差表示为:  


所以参数更新公式进一步可表示为下式:

因此参数更新公式为下:

 

现在的核心问题只剩下一个了,这个残差该如何求?接下来计算残差:

我们先计算最后一层第 i 个神经元上的残差,这里为了简单起见,不再指定为第 k 个样本。

接着计算倒数第二层即第 nl−1 层第 i 个神经元的残差:

 

     

上面是残差传播的示意图,从图中我们可以看出紧挨着的两层神经元之间的残差是有关系的,这也是反向传播的由来。更一般的,可以将上述关系表述为:

四、向量化表示

这里我们尝试将上述结果表示成向量或矩阵的形式,比如我们希望能一次性更新某一层神经元的权值和偏置,而不是一个一个的更新。 

整个第 l+1 层神经元的残差是:

      

 

 

 

五、bp算法的求解步骤

1.进行前馈传导计算,利用前向传导公式,得到 L2,L3直到输出层Ln的激活值;

2.对输出层(第Ln层),计算:

  

3.对于 的各层,还算:

  

4.计算最终需要的偏导数值:

  

 在2,3步计算中   


















     







登录查看更多
11

相关内容

神经网络的拓扑结构,TOPOLOGY OF DEEP NEURAL NETWORKS
专知会员服务
30+阅读 · 2020年4月15日
麻省理工学院MIT-ICLR2020《神经网络能推断出什么?》
专知会员服务
50+阅读 · 2020年2月19日
复旦大学邱锡鹏老师《神经网络与深度学习》书册最新版
神经网络与深度学习,复旦大学邱锡鹏老师
专知会员服务
116+阅读 · 2019年9月24日
一文搞懂反向传播
机器学习与推荐算法
16+阅读 · 2020年3月12日
BP神经网络
Datartisan数据工匠
5+阅读 · 2018年8月9日
基础 | GRU神经网络
黑龙江大学自然语言处理实验室
27+阅读 · 2018年3月5日
干货|深度神经网络(DNN)反向传播算法(BP)
全球人工智能
7+阅读 · 2018年1月12日
理解神经网络的激活函数
论智
7+阅读 · 2018年1月8日
CNN 反向传播算法推导
统计学习与视觉计算组
28+阅读 · 2017年12月29日
干货|代码原理教你搞懂SGD随机梯度下降、BGD、MBGD
机器学习研究会
12+阅读 · 2017年11月25日
干货 | 深度学习之CNN反向传播算法详解
机器学习算法与Python学习
17+阅读 · 2017年11月21日
入门 | 一文概览深度学习中的激活函数
深度学习世界
4+阅读 · 2017年11月3日
Arxiv
3+阅读 · 2018年10月25日
Arxiv
6+阅读 · 2018年10月3日
Arxiv
19+阅读 · 2018年6月27日
Arxiv
21+阅读 · 2018年2月14日
Arxiv
5+阅读 · 2018年1月16日
Arxiv
5+阅读 · 2017年9月8日
VIP会员
相关资讯
一文搞懂反向传播
机器学习与推荐算法
16+阅读 · 2020年3月12日
BP神经网络
Datartisan数据工匠
5+阅读 · 2018年8月9日
基础 | GRU神经网络
黑龙江大学自然语言处理实验室
27+阅读 · 2018年3月5日
干货|深度神经网络(DNN)反向传播算法(BP)
全球人工智能
7+阅读 · 2018年1月12日
理解神经网络的激活函数
论智
7+阅读 · 2018年1月8日
CNN 反向传播算法推导
统计学习与视觉计算组
28+阅读 · 2017年12月29日
干货|代码原理教你搞懂SGD随机梯度下降、BGD、MBGD
机器学习研究会
12+阅读 · 2017年11月25日
干货 | 深度学习之CNN反向传播算法详解
机器学习算法与Python学习
17+阅读 · 2017年11月21日
入门 | 一文概览深度学习中的激活函数
深度学习世界
4+阅读 · 2017年11月3日
相关论文
Arxiv
3+阅读 · 2018年10月25日
Arxiv
6+阅读 · 2018年10月3日
Arxiv
19+阅读 · 2018年6月27日
Arxiv
21+阅读 · 2018年2月14日
Arxiv
5+阅读 · 2018年1月16日
Arxiv
5+阅读 · 2017年9月8日
Top
微信扫码咨询专知VIP会员