视频链接:李宏毅机器学习(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)。
比较常见的是使用1-of-N encoding方法将每一个单词表示成一个向量。
当然也有其他的改进版本。
但是问题是可能用户输入的是离开北京而不是去北京,这就要求北京是起点,而不是目的地。
显然解决此类问题要求网络是要有记忆(memory)的。
2.循环神经网络(Recurrent Neural Network,RNN)
简单思想是将隐藏层的输出存储在记忆中,然后将记忆也作为网络的一个输入。
当然也可以将网络的输出存储在记忆中。
再者考虑多个隐藏层的结构,深度网络。如果是将隐藏层的输出存储在记忆中称为Elman Network,将输出层的输出值存储在记忆中就称为Jordan Network。
双向(Bidirectional)RNN从顺逆两个方向上考虑。
3.长短时记忆网络(Long Short-term Memory,LSTM)
长短时记忆网络(Long Short-term Memory,LSTM)指的是具有多个长的短时间记忆网络。
其网络形状有四个输入,一个输出。
网络详细情况如上图所示,1代表的是开,0代表的是关。值得注意的是在Forget Gate中,如果值为1则表示不忘记,保持原值;值为0时则表示将记忆值清为0,忘记。(打开其实是不忘记)
在学习训练RNN时可以用梯度下降(gradient descent)方法。
然而基于RNN的网络是不好训练的。损失曲面要不是平的要不就是陡峭的,不易训练。
通过LSTM可以很好的解决此问题。
这是因为与普通RNN不同的是,LSTM的记忆和输入是相加的,而不是直接清零的。除非Forget Gate关闭时,影响才会消失。因此只要确保大多数情况下Forget Gate是开启的,就可以解决梯度消失(gradient vanishing)的问题,不是梯度爆炸(gradient exploding)。
3.应用
循环神经网络有很多种应用情景。
①语义分析
②关键词提取
③语音识别
应用广泛。
3.总结
本章主要讲解了循环神经网络(Recurrent Neural Network,RNN)的原理及应用,重点讲述了LSTM。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:李宏毅机器学习2016 第二十二讲 循环神经网络RNN - Python技术站