把词汇变成一个向量,方法:
用other表示不在词汇组里的向量 以及用26个字母表示
希望如此:但是不理解出发还是到达
我们希望neural network有记忆力,可以根据上下文产生不同output,所以产生了RNN:
举例说明:
给memory一个初始值[1,1]蓝色格子,带入计算
蓝色格子被更新为之前绿色格子的[2,2],再次计算并更新RNN中要考虑input sequence的顺序
问题就变成:
->存在memory中词不同,最后就不同
不同RNN模型:
+双向RNN
现在常用的memory是LSTM:
外界neural想要写入memory cell,必须通过一个input gate闸门什么时候打开还是关闭由neural network自己学。output gate决定外界能不能从memory cell取出,同样由network自己学。forget gate决定什么时候放弃memory中值,也是自己学。可以看成4个input:想要存入memory中的值,操控input的讯号,操控output的讯号,操控forget的讯号。
举例说明:人体LSTM
->[3,1,0]输入->
[4,1,0]输入->[2,0,0]输入
->[1,0,1]输入->[3,-1,0]输入
原本:现在引入LSTM变成
LSTM与RNN关联:
把所有memory中存的scalar组合起来成为ct-1,x乘以某个matrix变为vector z,z的每一维丢给一个LSTM,同理构造4个vector
----
RNN怎么算loss?
同样梯度下降
可能会损失变化极大,采用clipping方法,设置一个threshold阈值
用最简单的模型解释一下原因:
有什么小技巧可以解决呢?
RNN还可以做到:
提取关键词
情感分类
语音辨识机器翻译
RNN和结构学习优缺点:
等看了Structured learning后再来补RNN和structured learning的结合使用