深度学习与CNN、RNN(一)(反向传…
来源:互联网 发布:淘宝代运营被骗 编辑:程序博客网 时间:2024/06/18 11:37
在之前的斯坦福阅读笔记中简单介绍了神经网络,这两周梳理了一下从神经网络到RNN、CNN再到深度学习的主要内容,这里简单整理一下
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
可以看到,第一层隐藏层是以x1,x2作为参数,后面的隐藏层,就已前一层输出的y值作为更新参数即可。根据文意推断,这里的y值是第一次正向传播记录下来的,而不是更新权值之后再计算的。
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
一、BP(反向传播算法)
在介绍RNN、CNN之前,需要先讲一下神经网络的训练学习中,一个常用的训练算法,即反向传播。从一般的神经网络到RNN等,均是用该算法进行参数训练。这段内容主要参照了下列博客http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
以下图的神经网络为例,有两个输入和一个输出
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
另外回顾一下之前在斯坦福机器学习中提到的,网络中每个神经元都是如下图一样,先通过w参数与输入加成,再由一个函数f()处理,最后得到该神经元的输出。
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
首先,我们从输入端开始逐层推进得到该网络的输出,![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
然后通过实际输出y与理想输出z(即训练样本的label)相比,得到它们的差距,这里称之为残差(errorsignal)
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
然后通过系数之间的加减,将残差往输出端(反向)传播,如下图,得到各个神经元对应的残差。
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
然后再次正向传播,逐个更新各个节点的权值参数w
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
然后通过系数之间的加减,将残差往输出端(反向)传播,如下图,得到各个神经元对应的残差。
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
然后再次正向传播,逐个更新各个节点的权值参数w
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
可以看到,第一层隐藏层是以x1,x2作为参数,后面的隐藏层,就已前一层输出的y值作为更新参数即可。根据文意推断,这里的y值是第一次正向传播记录下来的,而不是更新权值之后再计算的。
另外,η这个符号影响的是网络的学习速度,这个类似于之前斯坦福机器学习中,提到的梯度下降里面的步长α,过大过小都会对学习过程有负面影响。
9月22日更新:
在看完Ng的反向传播讲义后,发现上面写过的权值变化参数不对,对于权值Wij而言,它的变化应该是
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
而其中的偏导数计算方法如下:
![深度学习与CNN、RNN(一)(反向传播) 深度学习与CNN、RNN(一)(反向传播)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
具体推导过程可以参考Ng讲义中文版的残差推导过程(注:必须是中文版,因为推导过程是译者给出,英文原版并没有,果然还是我国好人多[泪奔]),自行手动推导。
阅读全文
0 0
- 深度学习与CNN、RNN(一)(反向传…
- 深度学习与CNN、RNN(二)
- 深度学习与CNN、RNN(三)
- 深度学习——循环神经网络RNN(一)_反向传播算法
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题
- Deep Learning(深度学习)整理,RNN,CNN,BP
- Deep Learning(深度学习)整理,RNN,CNN,BP
- 深度学习算法之CNN、RNN、LSTM公式推导
- Deep Learning(深度学习)整理,RNN,CNN,BP
- CNN、RNN与LSTM(转)
- CNN、RNN与LSTM
- 浅谈CNN与RNN
- 深度学习之CNN一 卷积与池化
- Nginx基本配置(PHP)
- 用JS写的一个简单的导航栏
- leetcode:4sum以及快慢指针
- SparkInternal阅读笔记(一)
- linux杂项命令笔记(scp、tar、find…
- 深度学习与CNN、RNN(一)(反向传…
- 深度学习与CNN、RNN(二)
- 深度学习与CNN、RNN(三)
- 在Ubuntu上安装caffe
- Opencv—张正友标定流程及标定结果评价
- ubuntu安装cuda
- 类和对象练习
- Fourier Temporal Pyramid原论文阅…
- 从安装cudnn拓展开的故事。。。