第1篇-《Deep Learning》阅读心得分享(包括反向传播公式推导)

论文原文链接

《Deep Learning》

读完论文后的感想

    这篇文章是一篇综述性质得论文,文章主要从以下几个结构来说明最近几十年深度学习的发展:背景介绍、监督学习、反向传播算法(也就是修正权重和偏置得参数)、卷积神经网络、使用卷积神经网络的图像理解、分布式表示和语言处理、循环神经网络(特指RNN系列,不是递归神经网络,好多人弄错,大家可以自行百度下)以及深度学习的未来。

背景介绍

    文章粗略的介绍了下什么是深度神经网络,深度学习近几年在哪些领域有应用,以及深度神经网络和传统的特征抽取器+机器学习算法这种模型的对比。比如对图片进行分类,传统的模型是首先设计一个特征抽取器,然后再使用分类方法(比方二分类模型好了)将特征映射到二分超平面上去,从而判断这个图像是属于哪个类别。但是,这种方法存在几点缺点:

  1. 特征抽取器的设计非常依赖工程师的领域知识,如果是非资深工程师,将很难设计一个好的特征抽取器。
  2. 即使设计了一个非常优秀的特征抽取器,可是由于特征存在一些噪音(论文中拿萨摩耶和狼举了例子),比如萨摩耶在图片中的姿势,图片中的亮度,背景以及一些其他对分类无关紧要的特征,使模型的分类效果无法达到非常好。而深度神经网络,仅仅是很多层,并且每一层都是一些简单的函数,对原始特征进行不断的映射,映射,再映射,直到达到最后一层,在最后一层对该图片进行分类,就是这么一个简单的思路,使得不再需要人工设计特征抽取器(因为深度神经网络在不断的映射的过程中,已经进行特征抽取了),并且,随着不同层不断地映射,最终,那些对分类无关紧要的特征(也就是上面说的这些),便会被抑制了,从而模型对这些特征“不敏感”,而对那些对分类有很大作用的细节部位非常“敏感”。深度神经网络的模型效果还比传统的模型效果好。

监督学习

    监督学习简单来说,就是使用带有标签的数据,来训练模型(传统机器学习模型或者深度神经网络)。标签可以指导模型的参数该往什么方向去调整,从而让模型不断的拟合训练集的数据。那这个标签是如何体现它的价值呢?模型会在输出层将输出和标签进行作差,所得的函数(或者差值),我们称它为目标函数,训练的过程就是让这个目标函数的值不断的减少,从而达到某个条件(认为设定的条件,比如误差少于某个数值)时,停止训练,模型便收敛了。而参数该如何知道我该增加多少数值,或减少多少数值呢?这个时候就要将目标函数对参数进行求导,然后让目标函数往负梯度方向变化。举个例子来说,假如模型有100个参数(也就是变量,可以理解为自变量,目标函数可以理解为因变量),那么目标函数也就是相当于包含了100个自变量的函数,然后对每个参数进行求偏导,便会得到100个偏导数,将这100个导数写成向量的形式,这个向量便代表了目标函数的梯度方向(梯度方向就是这样定义的)。往梯度方向变化,就是目标函数增长最快的方向。而我们是要让目标函数达到全局最小值,那就是往负梯度方向变化。

    那为什么我们要乘上一个学习率呢?因为梯度意味是一个极限值,也就是当往梯度方向迈的步子趋于0时,目标函数才会增长的最大。因此,我们会在求完梯度后,在这个梯度上乘以一个学习率。如果每次参数变化的值很大,那么这个梯度的意义就变了。因为梯度是一个极限值!大家可以细细品味下,或者可以翻开《高等数学》同济大学第7版下册中,把梯度相关的内容看一下。

    在现实中,从业者往往会使用随机梯度下降的方法来进行模型参数的调整,因为这种方法相较于使用整个训练集进行参数调整来说,收敛快。(这里我个人认为由于异常数据所占比例往往很少,因此有时候单个样本或者小批次的样本,也同样会让模型往正确的方向去改变。)

反向传播算法及其推导

    文章也描述了深度神经网络是使用反向传播算法进行参数修正的。那么在这里,我给大家详细说明下如何进行参数修正。

Alt
假如给定我们一个全连接的神经网络,如上图。

根据这个图,我们可以写出以下式子来。

[ T 1 T 2 ]   =   R e l u ( [ X 11 X 12 X 13 ] [ W 11 W 12 W 21 W 22 W 31 W 32 ] + [ b 1 b 2 ] ) ( 1 ) \begin{bmatrix}T_1&T_2\end{bmatrix}\ =\ Relu(\begin{bmatrix}X_{11}&X_{12}&X_{13}\end{bmatrix} \begin{bmatrix}W_{11}&W_{12}\\W_{21}&W_{22}\\W_{31}&W_{32}\end{bmatrix}+\begin{bmatrix}b_1&b_2\end{bmatrix})\qquad(1) [T1T2] = Relu([X11X12X13]W11W21W31W12W22W32+[b1b2])(1)

y p r e 1 = e T 1 ∑ i = 1 2 e T i ( 2 ) y_{pre1}=\frac{e^{T_1}}{\sum_{i=1}^2 e^{T_i}}\qquad (2) ypre1=i=12eTieT12

y p r e 2 = e T 2 ∑ i = 1 2 e T i ( 3 ) y_{pre2}=\frac{e^{T_2}}{\sum_{i=1}^2 e^{T_i}}\qquad (3) ypre2=i=12eTieT23

由(1)式可得

T 1 = R e L U ( X 11 ∗ W 11 + X 12 ∗ W 21 + X 13 ∗ W 31 + b 1 ) ( 4 ) T_1=ReLU(X_{11}*W_{11}+X_{12}*W_{21}+X_{13}*W_{31}+b_1)\qquad (4) T1=ReLU(X11W11+X12W21+X13W31+b1)4

T 2 = R e L U ( X 11 ∗ W 12 + X 12 ∗ W 22 + X 13 ∗ W 32 + b 2 ) ( 5 ) T_2=ReLU(X_{11}*W_{12}+X_{12}*W_{22}+X_{13}*W_{32}+b_2)\qquad (5) T2=ReLU(X11W12+X12W22+X13W32+b2)5

t 1 = X 11 ∗ W 11 + X 12 ∗ W 21 + X 13 ∗ W 31 + b 1 ( 6 ) t_1=X_{11}*W_{11}+X_{12}*W_{21}+X_{13}*W_{31}+b_1\qquad(6) t1=X11W11+X12W21+X13W31+b16

t 2 = X 11 ∗ W 12 + X 12 ∗ W 22 + X 13 ∗ W 32 + b 2 ( 7 ) t_2=X_{11}*W_{12}+X_{12}*W_{22}+X_{13}*W_{32}+b_2\qquad(7) t2=X11W12+X12W22+X13W32+b27

T 1 = R e L U ( t 1 ) ( 8 ) T_1=ReLU(t_1)\qquad(8) T1=ReLU(t1)8

T 2 = R e L U ( t 2 ) ( 9 ) T_2=ReLU(t_2)\qquad(9) T2=ReLU(t2)9

因此

y p r e 1 = e R e L U ( X 11 ∗ W 11 + X 12 ∗ W 21 + X 13 ∗ W 31 + b 1 ) ∑ i = 1 2 e R e L U ( X 11 ∗ W 1 i + X 12 ∗ W 2 i + X 13 ∗ W 3 i + b i ) ( 10 ) y_{pre1}=\frac{e^{ReLU(X_{11}*W_{11}+X_{12}*W_{21}+X_{13}*W_{31}+b_1)}}{\sum_{i=1}^2 e^{ReLU(X_{11}*W_{1i}+X_{12}*W_{2i}+X_{13}*W_{3i}+b_i)}}\qquad(10) ypre1=i=12eReLU(X11W1i+X12W2i+X13W3i+bi)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值