一文搞懂CNN
参考来源:0基础入门深度学习(5)
神经网络基础
神经网络可以当作是能够拟合任意函数的黑盒子,只要训练数据足够,给定特定的x,就能够特到特定的y。结构图如下:
https://pic2.zhimg.com/80/v2-dbd25d81a8537985345a3e46077931ed_1440w.jpg
那么为何还需要RNN?
为什么需要RNN(循环神经网络)
普通的神经网络只能处理独立的输入,两个输入之间是没有关系的,但是某些任务要求处理序例,即要求前面与后面的输入是完全有关系的。
一个小列子
比如理解一句话,单独理解每个词的含义不够,需要处理整个序例,同样的还有树立视频的时候,不能光看某帧,还需要分析整个序例。
RNN结构图
PICTURE:/home/syli/.config/tencent-qq//AppData/file//sendpix2.jpg
https://pic2.zhimg.com/v2-b0175ebd3419f9a11a3d0d8b00e28675_r.jpg
其中,x,s,o均为列向量。u,w和v均为矩阵。u代表输入层到隐藏层的权重矩阵,w是隐藏层上一次的值作为这一次输入的权重,是跟普通的神经网络区别最大的地方,即隐藏层的输入不仅仅取决于这次的输入x,还取决于上一次隐藏值的输入。v是隐藏层到输出层的权重矩阵。
https://pic4.zhimg.com/80/v2-9524a28210c98ed130644eb3c3002087_1440w.jpg
将上式的2式带入1式,我们就可以得到:
PICTURE:/home/syli/.config/tencent-qq//AppData/file//sendpix4.jpg
所以循环神经网络可以往前看多个值。
双向循环神经网络
单向的神经网络只能实现往前看n个词,而有的时候,是不仅仅需要往前看,还需要往后。所以需要双向的神经网络。
http://upload-images.jianshu.io/upload_images/2256672-039a45251aa5d220.png
双向的涉及两个中间结果A与A1,其中A涉及正向计算,A1设计反向计算。
正向与反向不共享权重。
深度循环神经网络
前面我们介绍的村还神经网络只有一个隐藏曾,当增加到多个隐藏层的时候,就u得到了深度循环神经网络。
http://upload-images.jianshu.io/upload_images/2256672-df137de8007c3d26.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/480
未完待续:看到RNN的应用举例这里在——基于RNN的语言模型