机器学习Basics-第十一期-循环神经网络RNN

https://www.toutiao.com/a6655276573958078987/

 

2019-02-08 17:34:05

背景

本系列已经经历十期,上一期涵盖了卷积神经网络。从上一期大家也能知道,由于对于高清图片,不能将图片的每一个像素点作为特征,而卷积神经网络最大特点就是通过卷积操作提取出图片的主要特征;并且该特征数量大幅减少并且能够代表图片的原始主要特征。 通俗并不精确的讲,卷积神经网络的操作就是 将 一个高清图片 还原成 一个素描图片的过程。

而本期将开始讲解循环神经网络。而这个神经网络框架尤其注重Sequential “顺序”信息的抓取。而在现实社会中很多场景“顺序”非常重要。例如,音乐、文字等等。我之前写过一篇文章说hi用RNN来生成音乐片片段的,也是非常有意思的实践。https://www.toutiao.com/i6568248442403947022/

对于基础神经网络不太熟悉的朋友可以看下本系列以前的文章或者本系列第八期;

而本期将介绍RNN循环神经网络的结构及特征。另外,需要申明的是本文章图片大部分来自于DENNY BRITZ,并且部分内容也翻译于其文章。

循环神经网络

要了解循环神经网络,最好的方式就是了解其与基础神经网络的差别。下图是一个典型的基础神经网络结构,而大家能看出来,输入层、隐藏层、输出层 每层之间每个神经元都是相互关联的。这也就意味着 X1、X2、X3 的顺序是不重要的,或者不相关的。这种神经网络结构在应对一些简单的Classification问题,是没有问题的。但是对于文字翻译、音乐、声音处理等“顺序”非常重要的场景来说,基础神经网络就不够用了。

机器学习Basics-第十一期-循环神经网络RNN

 

那么什么是RNN循环神经网络呢?

循环神经网络最重要的特点就是运用了“顺序Sequential”信息。在传统的神经网络中,我们假设所有的输入值是相互独立的。但是对于很多场景来说,并不是如此的。假设,你需要预测一句话的下一个单词,你可能需要知道它之前的几个单词是什么。一种理解RNN的方式是,RNN有一个“memory”来记忆储存目前已经计算的信息。理论上RNN能够处理任意长的信息,但是实际操作过程中只能处理比较短的信息(原因后续会提到)。

下面是一个RNN神经网络的框架

机器学习Basics-第十一期-循环神经网络RNN

 

上图就是展示了一个RNN的基础框架。与基础神经网络不同的是,右边其中一列就是一个单独的基础神经网络了。而RNN所做的是将几个神经网络按照顺序的拼接在一起,而输入值也按照顺序依次输入。然后每个“小神经网络”的一些输出会进入下一个“小神经网络”。 RNN这么操作,依次输入 输入值X,依次输出。就是这样将“Sequential顺序”这个要素加入到了这个神经网络框架中。感觉有点像套娃。哈哈

上图展示来RNN被展开成一个完整的网络。例如,假设有一个五个单词的句子,这个网络就会被展开成5层神经网络。公式中各个参数如下:

  • Xt 是在时间t 的输入值,丽日,X1 是对应着第二个单词的 one-hot 向量;
  • St 是在时间t的Hidden State(隐藏状态)。它是该神经网络的储存记忆。St是基于上一层的Hidden State和本层的输入值X计算得出的。

机器学习Basics-第十一期-循环神经网络RNN

 

  • Ot 是在时间t的输出值。例如,我们如果想预测下一个单词,那么就会转化成一个通过softmax计算出来的概率分布

机器学习Basics-第十一期-循环神经网络RNN

 

有一些需要特别解释的点:

  • 大家可以将St 理解成网络的记忆,它储存了之前所有步骤的信息。输出值Ot 是基于第t步骤的 记忆计算得出。不过,有一点需要值得注意的是,St由于复杂的原因(后面会解释)无法储存太长的信息;
  • 上图在每一个步骤中都有输出值,但是基于不同的任务,并不是每个步骤都需要输出值。例如,我们需要计算一句话的情感值(sentiment),我们只需要一个最终输出,而不是每个单词的输出值。另外,RNN的主要特征是储存在 hidden state中;

Vanishing Gradients

Vanishing Gradients 应该翻译成逐渐消失的梯度。 当然名字并不重要,其实质是因为Vanishing Gradients 导致RNN无法有效的应对较长的Sequential 顺序信息。

大家可以看到下面的GIF图,其中绿色的相当于 Hidden State(St),这也是储存信息的地方。而在第二列的绿色圈的数值是基于上一列 和 本列的 红色输入值而得来的。

而每个信息传递到下一层的时候都有一个参数W(在GIF每列之间的位子)。通俗点比喻,这有点像俄罗斯套娃。假设已经套了10层套娃且W小于1,那么最里面那层套娃就特别小,体现在数字上也变得更小。 那么第十层虽然理论上涵盖了 前面10层的信息,但是由于“套娃”导致第一层已经逐渐变小或者逐渐被遗忘。

Vanishing Gradient 其实理解起来比较容易,上面的例子是通过比喻方式使得更好理解,需要说明的是其并不准确。 如果大家对Vanishing Gradient 比较感兴趣可以搜索DENNY BRITZ的文章

机器学习Basics-第十一期-循环神经网络RNN

 

Vanishing Gradient 的影响

如果觉得Vanishing Gradient过程比较复杂,可以只关注其影响。 Vanishing Gradient的影响就是最基础的RNN神经网络框架在较长的信息流场景下表现不佳。

当然应对该问题也有其他的RNN优化后的框架,如LSTM 、GRU等等。这些后续也会带来

总结

总结下,本期涵盖了循环神经网络的基础内容。也提到了其中的缺陷。

整体来说,循环神经网络的核心是“循环”,其通过构建一个按照“顺序”的神经网络框架、按照“顺序”输入的输入值,最终形成了一个能够处理“顺序”信息的神经网络框架

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值