独家解读 | 矩阵视角下的BP算法

作者:孙裕道

背景介绍

有深度学习三巨头之称的YoshuaBengio、Yann LeCun、Geoffrey Hinton共同获得了2018年的图灵奖,得奖理由是他们在概念和工程上取得的巨大突破,使得深度神经网络成为计算的关键元素。其中九项选定的技术成就分别是:反向传播,玻尔兹曼机,提出卷积神经网络,序列的概率建模,高维词嵌入与注意力机制,生成对抗网络,对卷积神经网络的修正,改进反向传播算法,拓宽神经网络的视角。这其中两项成就技术与反向传播有关。

独家解读 | 矩阵视角下的BP算法_第1张图片

图1:深度学习三剑客

关注文章公众号

对话框回复反向传播 ”获反向传播资料


BP算法前言

神经网络参数的更新的时候,经常会混淆两个概念链式法则与BP 算法。BP算法其实是链式法则求解参数梯度的一种优化方法,它可以简化梯度计算量,降低计算的冗余度。当我们提到BP反向传播的时候,不禁会问反向传播的对象是什么呢,BP算法的目的是求解各个层参数的梯度,而传播的对象其实是“变种”的误差信息。

标量视角下的链式法则

3.1 标量形式的神经网络

下图为标量形式的神经网络,并且为了说明方便不考虑偏置项。

独家解读 | 矩阵视角下的BP算法_第2张图片

图2:神经网络的标量形式

给定一个训练样本   ,假设模型输出为   ,则均方误差为

根据梯度下降法更新模型的参数,则各个参数的更新公式为:

 

链式法则求解   会有如下推导形式:

链式法则求解   会有如下推导形式: 

可以发现,当计算前一层   梯度分量时候,后一层已经计算好的   结果并不能给它提供任何有益的信息,而是重新从均方误差开始进行复杂的偏导计算,这样会导致计算冗余度太大,而且标量视角下的链式法则求解梯度会给人一种很混乱的感觉。


矩阵视角下的BP算法

下面的内容会涉及到大量矩阵求导运算,这确实是一个非常难啃的部分。矩阵求导法则本文中不做介绍,感兴趣的人可以阅读《The Matrix Cookbook》这本书详细学习。

关注文章公众号回复“反向传播”获取此书电子版。

独家解读 | 矩阵视角下的BP算法_第3张图片

图3:matrix book

4.1 矩阵形式的神经网络

下图为3层不考虑偏置项的全连接神经网络示意图:

独家解读 | 矩阵视角下的BP算法_第4张图片

图4:全连接神经网络

上图[network]可以描述为如下公式:

θ σ σ ( ) 损失函数如下所示: 

( ) 优化的目标函数为: 

( ) 其中   ,表示的权重矩阵,   为隐层向量。

4.2 随机梯度

采用随机梯度下降法求解优化深度神经网络的问题,如下式所示:

( ) 上式中,主要的问题是在于计算  θ  ,通常采用的方法是链式法则求导。而反向传播就是一种很特殊的链式法则的方法。反向传播非常有效的避免大量的重复性的计算。

4.3 无激活函数的神经网络

L层神经网络的无激活函数的目标函数定义为:

( )

有如下形式:

( )

其中,   

4.4 含有激活函数的神经网络

首先,考虑2层的有激活函数的神经网络,目标函数定义为:

θ σ ( ) 则有

( ) 其中  σ  ,   ,   是   导数。再考虑L层有激活函数的神经网络,目标函数定义为:

( )

中,  σ σ  ,并且   。

4.5 BP反向传播的原理示意

首先定义如下形式:

( ) 具体会有:

( ) 综上所述会有:

( )

BP反向传播的工作原理示意图如下所示:

独家解读 | 矩阵视角下的BP算法_第5张图片

上图精练准确的阐释了BP算法的原理,图中蓝色箭头是神经网络前向传播的过程,图中紫色箭头是网络反向传播的过程。可以知道,前向传播的对象是特征提取信息   ,反向传播的对象是“变种形式”的误差信息   (其中   的递推公式为图中的黑体字部分),并且每一层网络参数的梯度   用到了前一层的特征信息   ,后一层的误差信息   。

独家解读 | 矩阵视角下的BP算法_第6张图片

独家解读 | 矩阵视角下的BP算法_第7张图片

历史文章推荐

  • 论文解读 | 知识图谱最新研究综述

  • StegaStamp:加州大学伯克利分校开源神奇的照片隐写术,打印的照片能当二维码用

  • 字节跳动基于深度强化学习的广告推荐模型——DEAR详解

  • 你的毕业论文过了吗?《如何撰写毕业论文?》

  • 卡尔曼滤波系列——经典卡尔曼滤波推导

  • 谈谈CNN中的位置和尺度问题

  • 目标检测和感受野的总结和想法

  • 一代传奇 SIFT 算法 专利到期!

  • CNN真的需要下采样(上采样)吗?

  • 人体姿态估计的过去,现在,未来

  • 2018-2019年度 Top10 综述

  • 【Awesome】Few-Shot Learning论文阅读列表

  • 你有哪些deep learning(rnn、cnn)调参的经验?

  • 给研究新生的建议,光看论文是学不好的,一定要看书,看书,看书!

  • 不是我们喜新厌旧,而是RAdam确实是好用,新的State of the Art优化器RAdam

你正在看吗?????

你可能感兴趣的:(独家解读 | 矩阵视角下的BP算法)