深度学习与CNN、RNN(一)(反向传…

来源:互联网 发布:淘宝代运营被骗 编辑:程序博客网 时间:2024/06/18 11:37
在之前的斯坦福阅读笔记中简单介绍了神经网络,这两周梳理了一下从神经网络到RNN、CNN再到深度学习的主要内容,这里简单整理一下

一、BP(反向传播算法)
在介绍RNN、CNN之前,需要先讲一下神经网络的训练学习中,一个常用的训练算法,即反向传播。从一般的神经网络到RNN等,均是用该算法进行参数训练。这段内容主要参照了下列博客http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html

以下图的神经网络为例,有两个输入和一个输出
深度学习与CNN、RNN(一)(反向传播)
另外回顾一下之前在斯坦福机器学习中提到的,网络中每个神经元都是如下图一样,先通过w参数与输入加成,再由一个函数f()处理,最后得到该神经元的输出。

深度学习与CNN、RNN(一)(反向传播)
首先,我们从输入端开始逐层推进得到该网络的输出,深度学习与CNN、RNN(一)(反向传播)
然后通过实际输出y与理想输出z(即训练样本的label)相比,得到它们的差距,这里称之为残差(errorsignal)

深度学习与CNN、RNN(一)(反向传播)
然后通过系数之间的加减,将残差往输出端(反向)传播,如下图,得到各个神经元对应的残差。
深度学习与CNN、RNN(一)(反向传播)
然后再次正向传播,逐个更新各个节点的权值参数w
深度学习与CNN、RNN(一)(反向传播)
可以看到,第一层隐藏层是以x1,x2作为参数,后面的隐藏层,就已前一层输出的y值作为更新参数即可。根据文意推断,这里的y值是第一次正向传播记录下来的,而不是更新权值之后再计算的。
另外,η这个符号影响的是网络的学习速度,这个类似于之前斯坦福机器学习中,提到的梯度下降里面的步长α,过大过小都会对学习过程有负面影响。

9月22日更新:
在看完Ng的反向传播讲义后,发现上面写过的权值变化参数不对,对于权值Wij而言,它的变化应该是
深度学习与CNN、RNN(一)(反向传播)
而其中的偏导数计算方法如下:

深度学习与CNN、RNN(一)(反向传播)
具体推导过程可以参考Ng讲义中文版的残差推导过程(注:必须是中文版,因为推导过程是译者给出,英文原版并没有,果然还是我国好人多[泪奔]),自行手动推导。

原创粉丝点击