李宏毅机器学习笔记第11周_Recurrent Neural Network

文章目录

  • 一、Example Application
  • 二、Elman Network & Jordan Network
  • 三、Bidirectional RNN
  • 四、Long Short-term Memory(LSTM)
  • 五、LSTM – Example
  • 六、Learning Target
    • 1.Loss Function
    • 2.Training
    • 3.Error surface
  • 七、Why?
  • 八、Helpful Techniques
  • 九、More Applications
    • 2.Many to one
    • 3.Many to Many
  • 十、RNN v.s. Structured Learning


一、Example Application

1. 举例说明Slot Filling,假设有一个人对订票系统说“I would like to arrive Taipei on November 2nd”,那么系统要自动识别出Taipei属于Destination这个slot,November 2nd属于Time of arrival这个slot,其它词汇不属于任何slot。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第1张图片
2. 用Feedforward network来解决这个问题,输入是一个词汇,词汇需要向量(vector)的形式来表示,然后希望输出是一个Probability distribution,这个代表输入的词汇属于每一个slot的概率。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第2张图片
3. 但是只有这样是不够的,Feedforward network不能解决这个问题。因为在Slot Filling的任务中,我们需要neural network是有记忆的,要记住在Taipei之前出现过的arrive和leave,而这种有记忆的neural network叫做Recurrent Neural Network。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第3张图片
4. 在Recurrent Neural Network中,Hidden Layer的neuron产生的输出会储存到memory里面,对于下次的输入,Hidden Layer的neuron不只考虑输入的x1、x2,还会考虑到memory中的值。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第4张图片
5. 初次使用Recurrent Neural Network时,需要给memory设置初始值。RNN会考虑input sequence的次序,如果改变input sequence的次序,output sequence会随之发生改变。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第5张图片
6. 如下图所示,图中不是3个network,而是同一个network在3个不同时间点被使用了3次,这里同样的weight使用同一种颜色表示。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第6张图片
7. 如下图所示,虽然两边的x2是一样的,但是存在memory里面的值不同,所以Hidden Layer的输出也会不同。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第7张图片

二、Elman Network & Jordan Network

Elman Network就是指把Hidden Layer的值存储起来,在下一个时间点读出来;而Jordan Network存储的是network的output的值,并且Jordan Network能得到较好的performance。因为在Elman Network中Hidden Layer是没有target的,有点难控制它学到什么东西放到memory里面,而在Jordan Network中Hidden Layer是有target的,我们比较清楚放到memory中是什么东西。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第8张图片

三、Bidirectional RNN

Recurrent Neural Network还可以是双向的,在之前的例子中,输入一个句子,从句首读到句尾,这里的顺序是可以倒转的。现在同时训练正向的RNN和逆向的RNN,把它们的Hidden Layer都接到一个Output Layer,然后输出y。Bidirectional RNN的好处是network产生输出时看到的范围比较广,能看到整个sequence。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第9张图片

四、Long Short-term Memory(LSTM)

1. 现在常用的memory是LSTM(Long Short-Term Memory),结构比较复杂,有3个gate。当外界想要进入Memory Cell里面,必须通过Input Gate,只有Input Gate被打开后,才可以将值写入Memory Cell里面。Input Gate的开或关,是由Neuron Network自己学的。同理,Output Gate与之类似。Forget Gate是决定什么时候把Memory Cell里的内容忘掉,它的开或关,是由Neuron Network自己学的。因此,可以将LSTM看作Special Neuron(4 inputs,1 output),其中4 inputs是指外界想要存到Memory里面的值和控制3个gate的信号。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第10张图片
2. 如下图所示,可以更加清晰地看到LSTM的结构。Zi、Zf、Zo这3个通过的activation function采用sigmoid function,因为sigmoid的值介于0到1之间。如果值为1,代表gate被打开,反之,则gate被关闭。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第11张图片

五、LSTM – Example

1. 如下图所示,输入都是3维向量,输出是1维向量。当x2 = 1时,就把x1的值加到memory里面;当x2 = -1时,就把memory清为0;当x3 = 1时,就把memory里面的值输出。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第12张图片
2. 如下图所示,LSTM的实际运算结果。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第13张图片
3. 在Original Network里面,我们有很多的neuron。现在把input乘上不同的weight,然后当作neuron的输入,每一个neuron都是一个function,输入一个scalar,输出另外一个scalar。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第14张图片
4. 对于LSTM来说,我们只需要把neuron换成LSTM。假设LSTM的network跟Original Network的neuron数量一样时,LSTM需要的参数量会是一般Neuron Network的4倍。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第15张图片
5. 如下图所示,现在有一层n个LSTM,把n个memory的值连接起来变成一个向量c(t-1)。现在有zf、zi、z、z^o这4个n维向量,这4个向量会合起来控制Memory Cell的运作。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第16张图片
6. 如下图所示,这里会把某一时刻的输出作为下一时刻的输入,而peephole就是把存在Memory Cell里面的值作为LSTM下一时刻的输入。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第17张图片

六、Learning Target

1.Loss Function

如下图所示,这是一个Slot Filling的例子,我们要将输出的y与映射到slot的reference vector做cross entropy。例如,Taipei对应到的slot是dest,那reference vector在dest上的值为1,其余的值都为0。RNN的输出与reference vector的cross entropy的和就是要minimize的对象。注意:句子里面的词语必须按照语序输入,不能打乱语序!
李宏毅机器学习笔记第11周_Recurrent Neural Network_第18张图片

2.Training

1) 有了Loss Function之后,Training也用Gradient Descent,这里为了计算简便,采用了BPTT(Backpropagation through time)。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第19张图片
2) 如下图所示,RNN的Training是比较困难的,我们希望随着Epoch地增加,loss跟图中蓝色线一样慢慢下降,但是很不幸的是我们在训练过程中会出现绿色线的结果。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第20张图片

3.Error surface

1)如下图所示,RNN的error surface(Total Loss对参数变化)是非常崎岖的,这里的意思就是loss在某些地方比较平坦,在某些地方又比较陡峭。假如把橙色点当作起始点,用Gradient Descent调整参数,然后更新参数,可能会得到loss猛增的结果。最坏的情况是一脚踩在悬崖上,由于之前一直处在平坦区域,gradient很小,那么就会把learning rate调的比较大,因此踩在悬崖上时gradient变得很大,就会整个飞出去。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第21张图片
2) 我们用Clipping来解决这个问题。Clipping就是当gradient大于某个threshold时,就不让它继续增长,然后继续做RNN的Training。

七、Why?

如下图所示,当w从1变到1.01后,y^1000从1变到了20000,此时L对w的微分值很大,所以需要较小的Learning rate;当w从0.99变到0.01后,y^1000从0变到了0,此时L对w的微分值很小,所以需要较大的Learning rate;因此我们可以得到,RNN训练困难原因是同样weight在不同的时间点被反复使用。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第22张图片

八、Helpful Techniques

1. 使用LSTM(Long Short-term Memory)可以解决上面的问题,它会把error surface平坦的地方拿掉,从而解决掉gradient vanshing的问题,但是它无法拿掉崎岖的地方,所以无法解决gradient explode的问题。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第23张图片
2. 为什么LSTM可以替换RNN?因为在RNN里面,在每一个时间点,memory里面的信息都会被清理掉;在LSTM里面,会把原来memory里面的值乘上一个值,然后再加上input的值放到Cell里面。对LSTM来说,除非forget gate被使用,否则不会把memory之前的信息给清除掉。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第24张图片
3. 另外一个版本是GRU(Gated Recurrent Unit),只有两个gate操作memory,需要的参数少,不容易过拟合。它秉承的是只有memory里面的信息被清除掉,才会新的信息给添加进来。
4. 其它的技术,Clockwise、SCRN(Structurally Constrained Recurrent Network)等。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第25张图片

九、More Applications

1. 在Slot Filling中,输入一个vector,输出它的label。除此之外,RNN还可以做更多事情。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第26张图片

2.Many to one

1) sentiment Analysis
这是一个语句情绪分析系统,我们给它某影片的相关评价,然后分析语句是Positive or Negative。输入是一个vector sequence,在不同时间点输入不同的字符,在最后时间输出语句的情绪。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第27张图片
2) Key Term Extraction
这里是一个关键词分析系统,给它一篇文章,提取出文章中的关键词,然后把含有关键词标注的文章作为RNN的训练资料。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第28张图片

3.Many to Many

1)如果input和output都是sequence,但output比input更短时,RNN可以解决这类问题。用语音辨识举例说明,输入一段声音讯号,每隔一段时间就用1个vector表示,现在使用Slot Filling来处理,得到识别结果是“好好好棒棒棒棒”,这与我们想要不同,所以使用Trimming把结果重复部分清除掉,得到“好棒”。但是现在没法辨识“好棒棒”,可以用CTC解决问题,它就是在输出中加上NULL,只需要去除NULL,就可以得到我们想要的结果。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第29张图片
2)CTC的训练过程,采用了穷举的方法。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第30张图片
3)得出结果,如下图所示。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第31张图片

十、RNN v.s. Structured Learning

1. 如下图所示,两者各有所长。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第32张图片
2. 如下图所示,其实两者是可以结合起来的。input的feature先通过RNN和LSTM,RNN和LSTM的output再作为HMM等的input。
李宏毅机器学习笔记第11周_Recurrent Neural Network_第33张图片


你可能感兴趣的:(机器学习,深度学习)