机器学习 李宏毅 L36L37-RNN

RNN介绍

这里介绍slot fillng,可以使用Feedforward network。对于输入的词汇,可以采用1 of N编码或者其他方式,输入后,进行归类操作。但是,由于网络没有记忆力,所以对于前后语句有关联的问题,很难解决。需要采用recurrent neural network。每一次hidden layer的输出会被存储,然后作为共同输入进行网络操作。也就是说,输入的顺序会影响输出的结果。

L36_1

当然,RNN可以采用deep structure的形式。RNN可以采用hidden layer的值进行存储而后续使用,称为Elman network,当然也可以采用Output layer输出值进行存储,称为Jordan Network。RNN可以采用双向的形式,如下图所示,其好处是RNN能够接触到的数据范围既包括正向的信息,也包括反向的信息,因此其信息利用率较高。

L36_2

一个较为广泛的例子是LSTM,long short-term memory,其memory形式较为常用。包含三个部分,首先是input gate,如果网络的一部分想要写入memory,则需要通过input gate,该gate由signal control(scalar)进行控制,这个控制信号同样由网络的一部分进行控制,这些都是通过训练数据学习得到。对于memory数据读取,同样也存在一个output gate,决定其他网络是否可以从中读取数据。第三个部分是forget gate,可以决定memory cell什么时候檫除内部数据,进行format操作,这也是有网络其他部分决定的。因此,如下图所示,可以认为LSTM有四个输入,一个输出。

L36_3

更详细的LSTM如下图所示,包含了输入信号z,输入控制信号zi,forget gate控制信号zf,输出控制信号zg。一般的三个控制信号多采用sigmoid function,值范围为0~1,代表gate打开的程度。

L36_4

与神经网络的原形有所差异,LSTM需要四个输入,因此需要将输入乘以不同的权重,作为各个输入的情况,然后将LSTM作为神经元进行训练操作。
与RNN的关系是,可以将memroy cell里面数据表示成一个vector,表示为 ct1 c t − 1 ;而对于输入数据,可以通过矩阵乘法转换为四个向量, z,zi,zo,zf z , z i , z o , z f

L36_5

2018年2月8日


同样可以采用GD进行训练,对于RNN可以采用BPTT进行参数更新。但是很多情况下,RNN的误差曲线可能会出现不收敛的情况,其可能原因是程序出现bug或者是由于RNN的误差曲线存在问题。如下图所示,RNN的error surface很崎岖,要么非常平坦,要么非常陡峭。这种特性来自于memory效应,由于具有记忆效应,因此对于输入的一点变化,可能会造成 gradient explode或者gradient vanishing。

L37_1

采用LSTM进行训练,可以解决gradient vanishing。LSTM存在一个forget gate,可以在适当时候将memory进行清空。

一个较为有趣的模型为Attention-based Model,对于能够操作reading head controller和writing head controller的情况,最终形成了neural turing machine。使用的场景包括reading comprehension。

L37_2

Deep and structured learning的区别

Deep learning能够实现较好的功能。

L37_3

二者可以结合,可以通过RNN进行预处理,然后进行structured learning。例如,语音处理可以如下图处理,将二者进行结合。还可以进行semantic tagging,
L37_4

2018年2月9日

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值