一文搞懂RNN(循环神经网络)基础篇

作者: 忆臻 2017-11-29 13:55:55

一文搞懂RNN(循环神经网络)基础篇

1.神经网络基础

神经网络可以当做是能够拟合任意函数的黑盒子,只要训练数据足够,给定特定的x,就能得到希望的y,结构图如下:

将神经网络模型训练好之后,在输入层给定一个x,通过网络之后就能够在输出层得到特定的y,那么既然有了这么强大的模型,为什么还需要RNN(循环神经网络)呢?

 2.为什么需要RNN(循环神经网络)

他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。

比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列; 当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。

以nlp的一个最简单词性标注任务来说,将我 吃 苹果 三个单词标注词性为 我/nn 吃/v 苹果/nn。

那么这个任务的输入就是:

我 吃 苹果 (已经分词好的句子)

这个任务的输出是:

我/nn 吃/v 苹果/nn(词性标注好的句子)

对于这个任务来说,我们当然可以直接用普通的神经网络来做,给网络的训练数据格式了就是我-> 我/nn 这样的多个单独的单词->词性标注好的单词。

但是很明显,一个句子中,前一个单词其实对于当前单词的词性预测是有很大影响的,比如预测苹果的时候,由于前面的吃是一个动词,那么很显然苹果作为名词的概率就会远大于动词的概率,因为动词后面接名词很常见,而动词后面接动词很少见。

所以为了解决一些这样类似的问题,能够更好的处理序列的信息,RNN就诞生了。

 3.RNN结构

首先看一个简单的循环神经网络如,它由输入层、一个隐藏层和一个输出层组成:

不知道初学的同学能够理解这个图吗,反正我刚开始学习的时候是懵逼的,每个结点到底代表的是一个值的输入,还是说一层的向量结点集合,如何隐藏层又可以连接到自己,等等这些疑惑~这个图是一个比较抽象的图。

我们现在这样来理解,如果把上面有W的那个带箭头的圈去掉,它就变成了最普通的全连接神经网络。

x是一个向量,它表示输入层的值(这里面没有画出来表示神经元节点的圆圈);s是一个向量,它表示隐藏层的值(这里隐藏层面画了一个节点,你也可以想象这一层其实是多个节点,节点数与向量s的维度相同);

U是输入层到隐藏层的权重矩阵,o也是一个向量,它表示输出层的值;V是隐藏层到输出层的权重矩阵。

那么,现在我们来看看W是什么。循环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。

我们给出这个抽象图对应的具体图:

我们从上图就能够很清楚的看到,上一时刻的隐藏层是如何影响当前时刻的隐藏层的。

如果我们把上面的图展开,循环神经网络也可以画成下面这个样子:

现在看上去就比较清楚了,这个网络在t时刻接收到输入  之后,隐藏层的值是  ,输出值是  。关键一点是,  的值不仅仅取决于  ,还取决于  。我们可以用下面的公式来表示循环神经网络的计算方法:

用公式表示如下:

 4.总结

好了,到这里大概讲解了RNN最基本的几个知识点,能够帮助大家直观的感受RNN和了解为什么需要RNN,后续总结它的反向求导知识点。

***给出RNN的总括图:

神经网络 循环神经网络 RNN
上一篇:机器学习怎么学?阿里程序员只用七步带你掌握Python机器学习! 下一篇:带你深入剖析递归神经网络
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

神经网络技术帮自主驾驶汽车识别幻影物体

以色列本古里安大学内盖夫网络安全研究中心的研究人员表示,在道路上投影图像形成幻影物体,可导致行驶中的半自主或全自主驾驶汽车误判并急刹车,从而危及车内驾驶员和乘客的生命。他们正在研究的神经网络技术,将解决自主驾驶汽车无法识别幻影物体的缺陷。

毛黎 ·  2020-02-07 13:33:13
二次元少女生成器、会开车的神经网络...2019年优秀的17个机器学习项目

为了挑选出2019年优秀的开源项目,最近某位Medium网友整理了2019年Reddit机器学习板块热门高赞项目资源汇总,一起来看看都有哪些项目上榜。

猿妹 ·  2019-12-25 14:29:35
避免神经网络过拟合的5种技术

最近一年我一直致力于深度学习领域。这段时间里,我使用过很多神经网络,比如卷积神经网络、循环神经网络、自编码器等等。我遇到的最常见的一个问题就是在训练时,深度神经网络会过拟合。

THU数据派 ·  2019-12-20 09:15:48
诠释图形处理器(GPU)和神经网络加速器芯片如何为汽车应用提供智能优势

汽车行业是推动人工智能(AI)发展的重要行业之一,这是因为该行业致力于自动驾驶汽车和高级驾驶员辅助系统(ADAS)的泛在利益。

Imagination Technologies汽车产品部总监Bryce Johnst ·  2019-12-18 14:00:33
如何对机器学习做单元测试

养成良好的单元测试的习惯,真的是受益终身的,特别是机器学习代码,有些bug真不是看看就能看出来的。

AI公园 ·  2019-12-18 10:25:12
如何在Keras中创建自定义损失函数?

Keras 是一个创建神经网络的库,它是开源的,用 Python 语言编写。Keras 不支持低级计算,但它运行在诸如 Theano 和 TensorFlow 之类的库上。

skura ·  2019-12-02 21:29:45
一文搞懂神经网络

人工智能是这几年非常火的技术,上至九十九下至刚会走都对人工智能或多或少的了解。神经网络是人工智能的核心,也就是说没有神经网络就没有人工智能,那么这篇文章就带大家学习一下神经网络相关的知识。这篇文章没有数学公式、没有代码,旨在帮助读者快速掌握神经网络的核心知识。

朱钢 ·  2019-11-19 08:00:00
一文理清深度学习前馈神经网络 精选

前馈神经网络(feedforward neural network)是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层间没有反馈。

SAMshare ·  2019-11-06 17:00:51
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载