社区编辑申请
注册/登录
图解 RNN (循环神经网络) 背后的数学原理
人工智能
今天我们就来讨论下循环神经网络及其背后的基本数学原理,这些原理使得循环神经网络能够做到其他神经网络做不到的事情。

引言

现在,关于机器学习、深度学习和人工神经网络的讨论越来越多了。但程序员往往只想把这些魔幻的框架用起来,大多并不想知道背后到底是如何运作的。但是如果我们能够掌握这些背后的原理,对于使用起来岂不更好。

今天我们就来讨论下循环神经网络及其背后的基本数学原理,这些原理使得循环神经网络能够做到其他神经网络做不到的事情。

〄 RNN(循环神经网络)。

这篇文章的目的是对循环神经网络的功能、结构提供一个直观的认识。

一个神经网络通常取自变量 X(或一组自变量)和因变量y ,然后它学习X 和 y之间的映射(我们称之为训练),一旦训练完成,当给定一个新的自变量,就能预测相应的因变量。

但如果数据的顺序很重要呢?想象一下,如果所有自变量的顺序都很重要呢?

让我来直观地解释一下吧。

只要假设每个蚂蚁是一个独立变量,如果一个蚂蚁朝着不同的方向前进,对其他蚂蚁来说都没关系,对吧?但是,如果蚂蚁的顺序很重要怎么办?

此时,如果一只蚂蚁错过或者离开了群体,它将会影响到后面的蚂蚁。

那么,在机器学习空间中,哪些数据的顺序是重要的呢?

  • 自然语言数据的词序问题
  • 语音数据
  •  时间序列数据
  • 视频/音乐序列数据
  • 股市数据
  • 等等

那么 RNN 是如何解决整体顺序很重要的数据呢?我们用自然文本数据为例来解释 RNN。

假设我正在对一部电影的用户评论进行情感分析。

从这部电影好(This movie is good) — 正面的,再到这部电影差(This movie is bad) — 负面的。

我们可以通过使用简单的词汇袋模型对它们进行分类,我们可以预测(正面的或负面的),但是等等。

如果影评是这部电影不好(This movie is not good),怎么办?

BOW 模型可能会说这是一个积极的信号,但实际上并非如此。而 RNN 理解它,并预测它是消极的信息。

一. RNN 如何做到的呢?

1.各类 RNN 模型

(1)、一对多

RNN 接受一个输入,比如一张图像,并生成一个单词序列。

(2)、多对一

RNN 接受一个单词序列作为输入,并生成一个输出。

(3)、多对多

接下来,我们正专注于第二种模式多对一。RNN 的输入被视为时间步长。

示例: 输入(X) = [" this ", " movie ", " is ", " good "]

this 的时间戳是 x(0),movie 的是 x(1),is 的是 x(2),good 的是 x(3)。

2. 网络架构及数学公式

下面让我们深入到 RNN 的数学世界。

首先,让我们了解 RNN 单元格包含什么!我希望并且假设大家知道前馈神经网络,FFNN 的概括,

〄 隐藏层只有单一神经元的前馈神经网络示例。

〄 具有单一隐藏层的前馈神经网络。

在前馈神经网络中,我们有 X(输入)、H(隐藏)和 Y(输出)。我们可以有任意多的隐藏层,但是每个隐藏层的权值 W 和每个神经元对应的输入权值是不同的。

上面,我们有权值 Wy10 和 Wy11,分别对应于两个不同的层相对于输出 Y 的权值,而 Wh00、Wh01 等代表了不同神经元相对于输入的不同权值。

由于存在时间步长,神经网络单元包含一组前馈神经网络。该神经网络具有顺序输入、顺序输出、多时间步长和多隐藏层的特点。

与 FFNN 不同的是,这里我们不仅从输入值计算隐藏层值,还从之前的时间步长值计算隐藏层值。对于时间步长,隐藏层的权值(W)是相同的。下面展示的是 RNN 以及它涉及的数学公式的完整图片。

在图片中,我们正在计算隐藏层的时间步长 t 的值:


〄 不同的激活函数。

上面我们只计算了 Ht,类似地,我们可以计算所有其他的时间步长。

步骤:

 

   需要注意的是:

一旦前馈输入完成,我们就需要计算误差并使用反向传播法来反向传播误差,我们使用交叉熵作为代价函数。

3. BPTT(时间反向传播)

如果你知道正常的神经网络是如何工作的,剩下的就很简单了,如果不清楚,可以参考本号前面关于人工神经网络的文章。

我们需要计算下面各项,

  • 1、相对于输出(隐藏和输出单元)的总误差如何变化?
  • 2、相对于权重(U, V, W)的输出如何变化?

因为 W 对于所有的时间步长都是一样的,我们需要返回到前面,来进行更新。

〄 RNN 中的 BPTT。

记住 RNN 的反向传播和人工神经网络的反向传播是一样的,但是这里的当前时间步长是基于之前的时间步长计算的,所以我们必须从头到尾遍历来回。

如果我们运用链式法则,就像这样

〄 反向传播链式法则。

在所有时间步长上的 W 都相同,因此按链式法则展开项越来越多。

回到实例

现在我们回过头来谈谈我们的情感分析问题,这里有一个 RNN,

我们给每个单词提供一个词向量或者一个热编码向量作为输入,并进行前馈和 BPTT,一旦训练完成,我们就可以给出新的文本来进行预测。它会学到一些东西,比如不+积极的词 = 消极的。

RNN 的问题 → 消失/爆炸梯度问题

由于 W 对于所有的时间步长都是一样的,在反向传播过程中,当我们回去调整权重时,信号会变得要么太弱要么太强,从而导致要么消失要么爆炸的问题。

责任编辑:庞桂玉 来源: Python开发者
相关推荐

2022-06-20 22:37:25

Linux操作系统命令

2022-06-15 11:02:40

网络安全运营

2022-06-07 09:59:21

网络安全安全漏洞

2022-06-30 11:03:27

DDoS攻击WAF

2022-06-29 08:00:49

2022-06-16 15:42:16

攻击面管理ASM

2022-06-23 12:03:00

网络安全网络安全事故

2022-06-03 09:41:03

DockerKubernetes容器

2022-05-24 15:22:09

网络安全企业风险

2022-06-07 14:31:09

K8S网络模型容器网络

2022-06-24 11:14:00

美团开源

2022-06-16 10:29:33

神经网络图像分类算法

2022-06-20 13:34:46

漏洞网络攻击

2022-07-01 17:19:33

网络安全零信任

2022-07-01 15:46:20

网络安全数字化智能制造

2022-06-07 10:09:42

新技术人工智能5G

2022-07-01 08:26:22

区块链去中心化以太坊

2022-06-30 14:23:56

机器学习工具算法

2022-06-27 07:32:00

2022-07-01 18:24:36

勒索软件病毒网络攻击

同话题下的热门内容

李飞飞划重点的「具身智能」,走到哪一步了?新出生的机器狗,打滚1小时后自己掌握走路,吴恩达大弟子成果在我的世界中,B站UP主搭建世界首个纯红石神经网络,图灵奖得主Yann LeCun转赞2022年Nature年度指数出炉,涨幅最快50机构,中国占31席!科技巨头几百亿研发AI被质疑吹嘘:曾击败人类的AI要被卖了从机器学习中受益最大的四个行业人工智能在网络安全中的作用人工智能和物联网融合后的应用场景是什么?

编辑推荐

转转公司架构算法部孙玄:AI下的微服务架构Facebook开源相似性搜索类库Faiss,超越已知最快算法8.5倍运维:对不起,这锅,我们不背快消品图像识别丨无人店背后的商品识别技术最全面的百度NLP自然语言处理技术解析
我收藏的内容
点赞
收藏

51CTO技术栈公众号