[机器学习入门] 李宏毅机器学习笔记-33 (Recurrent Neural Network part 2;循环神经网络 part 2)
来源:互联网 发布:com顶级域名注册局 编辑:程序博客网 时间:2024/04/29 21:56
[机器学习入门] 李宏毅机器学习笔记-33 (Recurrent Neural Network part 2;循环神经网络 part 2)
RNN
Learning Target
cost就是每一个时间点的output与reference的cross entropy的合,就是minimize的对象。
有了这个lost后,training要怎么做呢?
不幸的是,RNN的training是比较困难的,我门期望蓝色的线,可是现实骨感如绿色那条线…
这是一个经常遇到的问题,该方法的作者也有解释。
橙色点的跳跃过程非常震荡,甚至可以飞出去hhh,所以他用工程师的思路来解决该问题,叫做clapping,给gradient设一个最大值,比如当大于15时,都等于15.
为什么RNN会有这种奇特的特性,来自sigmod function?并不是,因为实验表明,ReLu表现的更差一些。
直观地评测,将某参数微小变化,看gradient变化多大。假设输入10000….,在最后一个时刻的output就是w^999,改变w的值,对output有多大影响?
可以看出,gradient非常不好训练,它有high sequent,同一个weight 在不同的时间点会被反复利用。
LSTM就是一种解决该问题的好方法,能够解决过于平坦问题(gradient vanish),但不能解决崎岖问题(gradient explode)。
听说这还还存在几个面试题。
为什么RNN换成LSTM?
因为可以解决gradient vanish 问题。
为什么能解决呢?
如上图,forget gate。
这里有个point,有一种升级版的LSTM叫做Gated Recurrent Unit(GRU),它只有两个gate,参数量是LSTM的一半,所以如果LSTM 过拟合可以考虑这种方法。(原理是将input合output gate 关联)
还有一些其他方法。
其实RNN有很多应用,在上面slot filling 中,input 和output 是同数量的。
其他应用:
Sentiment Analysis
情感分析,negative positive
Key Term Extraction
关键字抽取
Speech Recognition
语音辨识
哈哈哈,关于上面triming方法的语音辨识没法区分‘好棒’和‘好棒棒’,还有方法来解决它,叫做,Conntctionist Temporal Classification(CTC),就是加了一个符号,来表示没有任何东西。
CTC怎么训练呢?
CTC 取得的结果
传说,Google的语音系统已经全面换成CTC了。
Machine Translation
还有一个神奇的应用是机器翻译,把RNN一串input读过去,在最后一个时间点memory中存的就是all information about input sequence。
就像推文接龙一样。
而它什么时候能停下来呢? 当推出‘断’就停。
在RNN中也可以这样做。
在翻译上,这个是很奏效的。
下图是Google 的研究成果,input一种语言的文字,output另一种语言的文字,同理能否input语音,output另一种语音做到语音翻译呢?比如台语转英语的翻译,只需要搜集台语的声音讯号和英文翻译就可以了,而不需要台语语音辨识的文字结果。
Beyond Sequence
那么这种sequence to sequence 的方法还可以用于Syntactic parsing 句法分析上,得到树桩结构。
这一篇内容很多啦~part 3 续
- [机器学习入门] 李宏毅机器学习笔记-33 (Recurrent Neural Network part 2;循环神经网络 part 2)
- [机器学习入门] 李宏毅机器学习笔记-32 (Recurrent Neural Network part 1;循环神经网络 part 1)
- [机器学习入门] 李宏毅机器学习笔记-34 (Recurrent Neural Network part 3;循环神经网络 part 3)
- Stanford机器学习笔记-4. 神经网络Neural Networks (part one)
- Stanford机器学习笔记-5.神经网络Neural Networks (part two)
- 李宏毅机器学习课程笔记9:Recurrent Neural Network
- [机器学习入门] 李宏毅机器学习笔记-36(Ensemble part 2;集成方法 part 2)
- [机器学习入门] 李宏毅机器学习笔记-11(Convolutional Neural Network;卷积神经网络)
- 机器学习: Python with Recurrent Neural Network
- [机器学习入门] 李宏毅机器学习笔记-22(Transfer Learning part 2;迁移学习 part 2)
- [机器学习入门] 李宏毅机器学习笔记-19 (Deep Generative Model-part 2:深度生成模型-part 2)
- [机器学习入门] 李宏毅机器学习笔记-27(Structured SVM part 2;结构化支持向量机 part 2)
- [机器学习入门] 李宏毅机器学习笔记-30 (Sequence Labeling Problem part 2 ;结构化预测-序列标记 part 2)
- [机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)
- coursera机器学习笔记之“Neural Networks (part one)”
- coursera机器学习笔记之“Neural Networks (part two)”
- 机器学习笔记-Neural Network
- 台湾大学机器学习笔记——Neural Network 神经网络
- unique_ptr
- 孤儿进程
- 并查集:CDOJ1594-老司机的奇幻漂流 (食物链)
- 大数据 (六)Hadoop-HDFS Federation
- SpringMVC札集(05)——SpringMVC参数回显
- [机器学习入门] 李宏毅机器学习笔记-33 (Recurrent Neural Network part 2;循环神经网络 part 2)
- CSS3盒模型的有关属性
- hdu 3853(期望dp)
- B
- 对傅里叶变换的理解
- Whooshalchemyplus 加 jieba 实现flask支持中文全文搜索
- 29. Divide Two Integers/49. Group Anagrams/96. Unique Binary Search Trees/560. Subarray Sum Equals K
- HDU5785Hints of sd0061
- Shell字符串比较相等、不相等方法小结