深度学习3——深度学习(十一)RNN入门学习
来源:互联网 发布:mac对战平台 编辑:程序博客网 时间:2024/06/08 10:14
转载自:hjimce的专栏 - 博客频道 - CSDN.NET
RNN入门学习
原文地址:http://blog.csdn.NET/hjimce/article/details/49095371
作者:hjimce
一、相关理论
RNN(Recurrent Neural Networks)中文名又称之为:循环神经网络(原来还有一个递归神经网络,也叫RNN,搞得我有点混了,菜鸟刚入门,对不上号)。在计算机视觉里面用的比较少,我目前看过很多篇计算机视觉领域的相关深度学习的文章,除了OCR、图片标注、理解问答等这些会把CNN和RNN结合起来,其它的很少见到。RNN主要用于序列问题,如自然语言、语音音频等领域,相比于CNN来说,简单很多,CNN包含:卷积层、池化层、全连接层、特征图等概念,RNN基本上就仅仅只是三个公式就可以搞定了,因此对于RNN我们只需要知道三个公式就可以理解RNN了。说实话,一开是听到循环神经网络这个名子,感觉好难的样子,因为曾经刚开始学CNN的时候,也有很多不懂的地方。还是不啰嗦了,……开始前,我们先回顾一下,简单的MLP三层神经网络模型:
简单MLP模型
上面那个图是最简单的浅层网络模型了,x为输入,s为隐藏层神经元,o为输出层神经元。然后U、V就是我们要学习的参数了。上面的图很简单,每层神经元的个数就只有一个,我们可以得到如下公式:
(1)隐藏层神经元的激活值为:
s=f(u*x+b1)
(2)然后输出层的激活值为:
o=f(v*s+b2)
这就是最简单的三层神经网络模型的计算公式了,如果对上面的公式,还不熟悉,建议还是看看神经网络的书,打好基础先。而其实RNN网络结构图,仅仅是在上面的模型上,加了一条连接线而已,RNN结构图:
RNN结构图
看到结构图,是不是觉得RNN网络好像很简单的样子,至少没有像CNN过程那么长。从上面的结构图看,RNN网络基础结构,就只有一个输入层、隐藏层、输出层,看起来好像跟传统浅层神经网络模型差不多(只包含输出层、隐藏层、输出层),唯一的区别是:上面隐藏层多了一条连接线,像圆圈一样的东东,而那条线就是所谓的循环递归,同时那个圈圈连接线也多了个一个参数W。还是先看一下RNN的展开图,比较容易理解:
我们直接看,上面展开图中,Ot的计算流程,看到隐藏层神经元st的输入包含了两个:来自xt的输入、来自st-1的输入。于是RNN,t时刻的计算公式如下:
(1)t时刻,隐藏层神经元的激活值为:
st=f(u*xt+w*st-1+b1)
(2)t时刻,输出层的激活值为:
ot=f(v*st+b2)
是不是感觉上面的公式,跟一开始给出的MLP,公式上就差那么一点点。仅仅只是上面的st计算的时候,在函数f变量计算的时候,多个一个w*st-1。二、源码实现
下面结合代码,了解代码层面的RNN实现:
参考文献:
1、http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/
2、http://blog.csdn.net/danieljianfeng/article/details/42931721
**********************作者:hjimce 时间:2015.10.23 联系QQ:1393852684 原创文章,转载请保留原文地址、作者等信息***************
- 深度学习3——深度学习(十一)RNN入门学习
- 深度学习(十一)RNN入门学习
- 深度学习(十一)RNN入门学习
- 深度学习(十一)RNN入门学习
- 深度学习(十一)RNN入门学习
- 深度学习——RNN和LSTM
- 深度学习笔记——RNN(LSTM、GRU、双向RNN)学习总结
- 一天搞懂深度学习—学习笔记3(RNN)
- 【深度学习】RNN(循环神经网络)
- 深度学习---情感分析(Rnn,LSTM)
- 深度学习与CNN、RNN(二)
- 深度学习与CNN、RNN(三)
- tensorflow RNN初探(30)---《深度学习》
- 深度学习之三:RNN
- 深度学习:循环神经网络RNN
- 深度学习——keras训练RNN模型
- 深度学习(入门)
- 深度学习笔记——深度学习框架TensorFlow(十一)
- 使用crosswalk时html页面中meta 标签 theme-color的设置问题
- 滚动文字显示
- 这可能是最详细的iOS学习入门指南(含书目/文档/学习资料)
- CUDA & HOG descriptor
- Dokuwiki的安装、配置管理以及中文文件名出现乱码等问题解决
- 深度学习3——深度学习(十一)RNN入门学习
- 错误解决方法_"编码GBK的不可映射字符"
- 后台事务无权限执行凭证
- 后端网络编程知识点总结
- HDMI介绍与流程
- WebService优势分析
- 汇编指令基础(二)——以IA32学习
- 64位Linux下安装mysql-5.7.13-linux-glibc2.5-x86_64 || 转载:http://www.cnblogs.com/gaojupeng/p/5727069.html
- AnimatedPathView实现自定义图片标签