视频链接:李宏毅机器学习(2016)_演讲•公开课_科技_bilibili_哔哩哔哩

课程资源:Hung-yi Lee

课程相关PPT已经打包命名好了:链接:https://pan.baidu.com/s/1c3Jyh6S 密码:77u5

我的第二十一讲笔记:李宏毅机器学习2016 第二十一讲 隐马尔可夫模型与条件随机场

Recurrent Neural Network

本章主要介绍了循环神经网络

1.引言

槽填充(Slot Filling)是现今比较常见的问题,例如在一个订票系统中,用户输入“我想本周六去北京”,需要填充槽(slot),目的地:北京,时间:2018.1.27

如何解决这个问题,考虑使用前馈神经网络(Feedforward network)。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

比较常见的是使用1-of-N encoding方法将每一个单词表示成一个向量。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

当然也有其他的改进版本。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

但是问题是可能用户输入的是离开北京而不是去北京,这就要求北京是起点,而不是目的地。

显然解决此类问题要求网络是要有记忆(memory)的。

2.循环神经网络(Recurrent Neural Network,RNN)

简单思想是将隐藏层的输出存储在记忆中,然后将记忆也作为网络的一个输入。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

当然也可以将网络的输出存储在记忆中。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

再者考虑多个隐藏层的结构,深度网络。如果是将隐藏层的输出存储在记忆中称为Elman Network,将输出层的输出值存储在记忆中就称为Jordan Network。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

双向(Bidirectional)RNN从顺逆两个方向上考虑。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

3.长短时记忆网络(Long Short-term Memory,LSTM)

长短时记忆网络(Long Short-term Memory,LSTM)指的是具有多个长的短时间记忆网络。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

其网络形状有四个输入,一个输出。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

网络详细情况如上图所示,1代表的是开,0代表的是关。值得注意的是在Forget Gate中,如果值为1则表示不忘记,保持原值;值为0时则表示将记忆值清为0,忘记。(打开其实是不忘记)

在学习训练RNN时可以用梯度下降(gradient descent)方法。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

然而基于RNN的网络是不好训练的。损失曲面要不是平的要不就是陡峭的,不易训练。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

通过LSTM可以很好的解决此问题。

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

这是因为与普通RNN不同的是,LSTM的记忆和输入是相加的,而不是直接清零的。除非Forget Gate关闭时,影响才会消失。因此只要确保大多数情况下Forget Gate是开启的,就可以解决梯度消失(gradient vanishing)的问题,不是梯度爆炸(gradient exploding)。

3.应用

循环神经网络有很多种应用情景。

①语义分析

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

②关键词提取

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

③语音识别

李宏毅机器学习2016 第二十二讲 循环神经网络RNN

应用广泛。

3.总结

本章主要讲解了循环神经网络(Recurrent Neural Network,RNN)的原理及应用,重点讲述了LSTM。