李宏毅机器学习学习笔记汇总
课程链接


Learning Target

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Learning

RNN是也用梯度下降训练的,有一套新的算法,Backpropagation through time,在high sequence上做运算,所以BPTT要考虑时间的信息。
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Unfortunately

基于RNN的的网络不总是容易去学习

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

The error surface is rough.

要不很扁平要不很陡峭
在悬崖上的gradient很大,但是之前的gradient很小learning rate很大,所以现在很大的gradient乘以很大的learning rate,导致参数update很大,起飞。
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
解决方法——clipping
设置一个阈值,高于这个阈值的值就都设置为这个阈值。
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Why?为什么不好训练

举个例子
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

梯度爆炸,梯度消失

RNN的训练问题来自于,把同样的东西反复使用,w的改变可能会几乎没有影响(上图下面的情况),有影响的话就会是很严重的影响。(上图上面的情况)。

RNN不好训练的原因不在于**函数,而是来自于他有high sequence,同样的weight在不同的时间点被反复地使用。

Helpful Techniques

Long Short-term Memory(LSTM)

LSTM可以让error surface不那么崎岖,可以把那些平坦的地方去除。

LSTM可以解决梯度消失的问题,但是不能解决梯度爆炸的问题。

在使用LSTM的时候,大部分地方都是变化很剧烈地,所以需要把learning rate设置的很小,进行训练。

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

关键点:用lstm overfitting严重,可以尝试改用GRU

GRU简介

GRU只有两个gate,需要参数量变少,所以在训练的时候比较鲁棒。 在用lstm overfitting严重,可以尝试改用GRU,GRU的精神是旧的不去新的不来,把input gate和forget gate联系起来,当input gate打开的时候,forge gate会关闭,洗掉内存中的值,只有把内存中的值清除掉,才能存入新的值。

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

当用一般RNN的网络时候,用单位矩阵初始化transition matrix weight转换矩阵的权重,再使用ReLU的**函数的时候,可以得到很好的效果。

一般的训练方法,初始化weight是random的时候,ReLU与sigmoid相比,sigmoid的效果会更好,但是如果用单位矩阵初始化transition matrix weight转换矩阵的权重的情况下,使用ReLU效果更好。

当用了上述方法,使用普通RNN,他的performance就可以吊打原来的LSTM,玄学。。。

More Applications……

输入和输出都是一个向量序列

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

输入一个向量序列,输出是一个向量,多对一

情绪分析
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

输入和输出都是向量序列,但是输出更短,多对多

语音辨识
Trimming:把重复的东西删掉
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

CTC

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

CTC:Training

枚举,把所有可能的都假设做正确的。
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

CTC:Example

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

输入和输出都是向量序列,向量长度不同,多对多,sequence to sequence learning

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
推出一个断就停止
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

这样减少中间转换,会较少误差传播

Beyond Sequence

Syntactic parsing 句法分析

给machine一个句子,得到这个句子的文法树
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Sequence-to-sequence Auto-encoder-Text

为了理解一个词项序列的含义,词的顺序很重要,而不可以简单使用bag of word
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

所以我们需要使用Sequence-to-sequence Auto-encoder的做法,来在考虑词项序列顺序的情况下,使一个document变成一个vector。

输入一个词项序列,通过一个RNN把他变成一个embedding的vector,再把这个embedding的vector作为decoder的输入,找回一个一模一样的句子。

如果RNN做到了这个事情,那么这个encoding的vector就代表了输入的词项序列的重要的信息。

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Sequence-to-sequence Auto-encoder-Speech

把一段音频序列变成一个定长的向量。
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
具体用途
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
最后一个时间点存在内存里的值,代表了整个输入音频信号的信息。
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

只有一个RNN encoder没办法训练,我们还需要一个RNN decoder来把encoder存在内存中的值来当作输入,产生一个序列,希望y1和x1越接近越好,再依次产生y2,y3。。。

RNN的encoder和decoder是同时训练的。单独是无法训练的。
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Demo:Chat-bot

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Attention-based Model

根据一个问题,搜集组织记忆里的信息,得到一个回答
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
把输入传给一个中央处理器(DNN/RNN),中央处理器操控一个读控制头,读控制头来控制Reading Head的位置,读取内容,传给中央处理器,得到输出。
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
V2.0比前面的多一个Writing Head Controller,功能类似
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Attention-based Model的应用

阅读理解

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
蓝色是reading head的位置,可以看到机器处理的思路过程
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Visual Question Answer

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Speech Question Answering

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Mode Architecture

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

RNN vs Structured Learning

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

Integrated Together

输入先通过RNN,LSTM,输出再作为HMM,CRF的输入。。。
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
渐渐地听不懂了,,,

Is structured learning practical?

【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记
后面就没怎么听懂了QAQ