论文跟读系列(一):反向传播

资源

https://www.iro.umontreal.ca/~vincentp/ift3395/lectures/backprop_old.pdf

【【论文必读#1:反向传播】在错误中学习,在传递中演进】 https://www.bilibili.com/video/BV1954y1o7bh/?share_source=copy_web&vd_source=bd967f0d540a64617b8b612bc0f0f9a3

作者介绍

这篇论文是三位大牛的合作,其中有我们比较了解的Hinton大牛。

知识点

反向传播入门

其实大部分内容,知乎或者CSDN的内容会很详细,而且是中文的带图片。在我之前的博客也有记载。这里不多介绍。这篇文章是深度学习基础中的基础,看视频也好,读原文也好,要读懂反向传播的全流程,对神经网络的学习大有收益。

专业英语

  • Learning representations by back-propagating errors:在反向传播的误差中进行学习。
  • BP:back-propagating 反向传播
  • learning procedure:学习方法
  • self-organizing neural networks:自训练神经网络
  • symmetrical pattern:对称图案
  • perceptron:感知机

出发点,目的

反向传播与感知机来说,他能够发现新的特征(features),来自代价函数的信息通过网络向后流动,以便计算梯度。本质上,他只是用来计算梯度的。

方法,创新

http://t.csdnimg.cn/PCQVn

链式法则是反向传播的基本传递方式,它大大简化了反向传播计算的复杂程度。对反向传播算法的过程进行一下总结:

**输入:**总层数L,以及各隐藏层与输出层的神经元个数,激活函数,损失函数,迭代步长 α\alpha ,最大迭代次数MAX与停止迭代阈值 ϵ\epsilon ,输入的m个训练样本 ((x1,y1),(x2,y2),…(xm,ym))((x_{1},y_{1}),(x_{2},y_{2}),…(x_{m},y_{m}))

1. 初始化参数W,b

2. 进行前向传播算法计算,for l=2l=2 to L

z(l)=W(l)a(l−1)+b(l)z^{(l)}=W^{(l)}a^{(l-1)}+b^{(l)}

a(l)=σ(z(l))a^{(l)}=\sigma(z^{(l)})

3. 通过损失函数计算输出层的梯度

4. 进行反向传播算法计算,for l=L−1l=L-1 to 2

img

5. 更新W,b

通过梯度下降算法更新权重ww和偏置bb的值,α\alpha为学习率其中α∈(0,1]\alpha\in(0,1]。

img

6. 如果所有W,b的变化值都小于停止迭代阈值ϵ,则跳出迭代循环

7. 输出各隐藏层与输出层的线性关系系数矩阵W和偏置b

结果,贡献

从另一个角度理解深度学习:通过多层处理,逐渐将初始的”低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务,由此可将深度学习理解为进行特征学习或表示学习。