AI | RNN | 基础学习

01 | 从最初的MLP开始

神经网络模拟人脑神经元结构,抽象为多层感知机(简称为MLP),其简化模型如下。其中输入X是一个多维度向量,经过中间的隐藏层处理变换后,输出需要的向量Y。如果用公式表达即(假定只有一个隐藏层):

Y = G ( W X + b ) Y=G(WX+b) Y=G(WX+b)

02 RNN基本模型

上述MLP模型可以刻画复杂的非线性关系,但是却无法很好地刻画序列数据。理想主义者的眼中,世界满是Markov链;或许理想主义者的定论过于绝对,但是不可否认,现实世界确实充满了彼此关联的因果序列。简单来说,时刻t的行为或状态应由其之前的多个时刻行为或状态共同影响决定。

简单的例子:早上出门就是一个典型的Markov链
假定每日早上工作流是:7点起床→20分钟洗漱穿衣→20分钟准备食用早餐→10分钟步行到教室→8点上课。
若起床时晚了5分钟,后续环节就必须缩减省出5分钟以保证总用时不变;但是若后续环节均出现延迟,再碰上突发事件(出门后发现忘记带手机再返回),则大概率无法8点准时坐到教室上课。
一言以蔽之,8点是否准时上课的状态,取决于7点开始的一系列行为是否顺利。

传统MLP模型无法体现Markov链的时间序列关联,对其改进的一种方式就是为每个MLP添加一个向前传递的状态变量,从而实现信息在时间序列中的传递,即递归神经网络RNN。常见的RNN结构如下。
可以看出,RNN结构最大的特点,是添加了新的数据流将不同的MLP连接起来,其中的数据流公式如下,其中a^{t-1} 表示t-1时刻传递的状态信息,x^t表示t时刻输入,可见t时刻的输出与向前传递的新状态信息均是t时刻输入和t-1时刻状态信息的函数。
同时需要注意,对于RNN采用权值共享原则,不同神经元之间的权重W与偏置b采用相同设置。

y t = g y ( W y a × a t − 1 + W y x × x t + b y ) a t = g a ( W a a × a t − 1 + W a x × x t + b a ) y^t=g_y(W_{ya}\times a^{t-1}+W_{yx}\times x^t+b_y) \\ a^t=g_a(W_{aa}\times a^{t-1}+W_{ax}\times x^t+b_a) yt=gy(Wya×at1+Wyx×xt+by)at=ga(Waa×at1+Wax×xt+ba)


如果采用单神经元递归形式,可以将RNN写成更为简化的形式,更加符合其“递归”特性,即:

在这里插入图片描述

03 | RNN应用举例

NN基本模型中,输入向量X与Y个数相同,因此称为同维度RNN,典型应用为特定信息识别,如一句话中的人名信息。
如对于例句:The courses are taught by Flane Zhao and David Zhao.显然加粗部分为教师人名,那么如何让RNN可以自动识别呢?
关键的工作是预处理语言数据。 计算机无法直接理解处理字符串语义信息,必须转换为其可理解的数值信息,因此需要对原始语句的每个单词建立词典进行编码。
一种简单的方式可以采用自定单词字典的形式,如下。这样一旦出现特定单词,如“the”,直接用数值“100”代替即可,原始语句可以转换为数值序列。

在这里插入图片描述另一种可行的方式是采用“one-hot”编码, 即对所有不同的单词设定与数量相同的一个长向量,比如分析语料库中总计10000个单词,则建立一个维度10000的向量,当某个单词出现时,在其对应的位置上标记“1”,其余位置标记“0”即可。
当然,还有一种更有效的方式,即采用预训练。推荐使用大名鼎鼎的fasttext预训练框架,可以针对字符级别关联性训练得到对应的数值向量。
最终可以将训练语句转化为数值向量,同时按照是否人名标记输出为“1|0”,即可建立监督训练的数据集,然后使用最小损失函数的方式,采用后向传播算法迭代找到训练数据对应RNN模型的最优参数即可。

在这里插入图片描述

04 | RNN几种变体

基本的RNN模型中,输入X与输出Y数量相同,但实际中二者数量可以不一致,并分别对应不同的应用场景。

041 | 多输入单输出RNN

此时输入多个语料数据,但是只有一个输出。典型应用场景如文本情感分析,如:

Example: I feel happy watching the moive.
Output: Positive to the moive.

在这里插入图片描述

042 | 单输入多输出RNN

此时常可用于生成序列数据,比如生成文本、音乐等。

在这里插入图片描述

043 | 多输入多输出RNN

此外如果输入与输出数据数量不相同的形式,常见见于文本翻译领域。如

Example:
Input: what is artifical intelligence?
Output: 什么是人工智能?

在这里插入图片描述

044 | 深层RNN

为了解决更复杂的序列任务,可以把单层RNN叠起来或者在输出前和普通MLP结构结合使用。

在这里插入图片描述

05 | RNN的不足与LSTM

无论何种RNN,都存在共同的问题,即前部序列信息在传递到后部时,信息权重逐渐下降,导致对后续重要意义的前部信息丢失。如:

Example

  1. The student, who got A+ in the exam, ______excellent.
  2. The students, who got A+ in the exam, ______excellent.
    前置主语的单复数决定后需要填“was | were”但是对于更长的语句,前置重要信息可能在后续RNN中丢失权重,导致预测失败

在这里插入图片描述为了应对RNN中梯度消失的问题,人们引入了一个新状态用于记录过去重要信息,提出了LSTM模型。一般的LSTM模型如下,其中遗忘门(F)用于删除已有状态信息,更新们用于将新信息筛选后更新到状态变量中,输出门用于输出新预测值。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值