机器学习系列26-循环神经网络(Ⅰ)

Recurrent Neural Network(Ⅰ)

RNN,或者说最常用的LSTM,一般用于记住之前的状态,以供后续神经网络的判断,它由input gate、forget gate、output gate和cell memory组成,每个LSTM本质上就是一个neuron,特殊之处在于有4个输入: z z z和三门控制信号 z i z_i zi z f z_f zf z o z_o zo,每个时间点的输入都是由当前输入值+上一个时间点的输出值+上一个时间点cell值来组成

Introduction
Slot Filling

在智能客服、智能订票系统中,往往会需要slot filling技术,它会分析用户说出的语句,将时间、地址等有效的关键词填到对应的槽上,并过滤掉无效的词语

词汇要转化成vector,可以使用1-of-N编码,word hashing或者是word vector等方式,此外我们可以尝试使用Feedforward Neural Network来分析词汇,判断出它是属于时间或是目的地的概率

但这样做会有一个问题,该神经网络会先处理“arrive”和“leave”这两个词汇,然后再处理“Taipei”,这时对NN来说,输入是相同的,它没有办法区分出“Taipei”是出发地还是目的地

这个时候我们就希望神经网络是有记忆的,如果NN在看到“Taipei”的时候,还能记住之前已经看过的“arrive”或是“leave”,就可以根据上下文得到正确的答案

这种有记忆力的神经网络,就叫做Recurrent Neural Network(RNN)

在RNN中,hidden layer每次产生的output a 1 a_1 a1 a 2 a_2 a2,都会被存到memory里,下一次有input的时候,这些neuron就不仅会考虑新输入的 x 1 x_1 x1 x 2 x_2 x2,还会考虑存放在memory中的 a 1 a_1 a1 a 2 a_2 a2

注:在input之前,要先给内存里的 a i a_i ai赋初始值,比如0

注意到,每次NN的输出都要考虑memory中存储的临时值,而不同的输入产生的临时值也尽不相同,因此改变输入序列的顺序会导致最终输出结果的改变(Changing the sequence order will change the output)

Slot Filling with RNN

用RNN处理Slot Filling的流程举例如下:

  • “arrive”的vector作为 x 1 x^1 x1输入RNN,通过hidden layer生成 a 1 a^1 a1,再根据 a 1 a^1 a1生成 y 1 y^1 y1,表示“arrive”属于每个slot的概率,其中 a 1 a^1 a1会被存储到memory中
  • “Taipei”的vector作为 x 2 x^2 x2输入RNN,此时hidden layer同时考虑 x 2 x^2 x2和存放在memory中的 a 1 a^1 a1,生成 a 2 a^2 a2,再根据 a 2 a^2 a2生成 y 2 y^2 y2,表示“Taipei”属于某个slot的概率,此时再把 a 2 a^2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值