RNN条件生成问题:
图像生成文本(一对多), 情感分析,文本密集度,分类..,机器翻译(多对多,离线的),解说视频,输入法 (实时多对多)
机器翻译
V1: Encoder-Decoder
LSTM的参数比较多,嵌入手机端不太好。GRU参数比较少,是可以的!
缺点:前面输入进入RNN的信息会被稀释,尽管处理了梯度弥散的问题,但是长度太长前面的记忆还是会稀释的!因为没有一个遗忘之后,在记起来的一个机制!
ps:seq2seq属于encoder-decoder结构的一种。
ps:通过引入注意力机制进行再学习来解决记忆信息稀释的问题。
V2: Attention-based Encoder-Decoder
模型引入Attention机制
加入Attentin机制,通过每个输出加权重的方法,解决信息只会被遗忘而不会被重新记录起来的问题!
每预测一个词,都要重新计算编码信息和更新权重!这样就真的会对信息会忘记,也会重新记忆
完整的流程:(注意力机制!!)
缺点:计算量太大了,每次都要先基于(t-1时刻的信息)更新权重
V3: Bi-directional encode layer(双向RNN)
模型引入双向RNN
通过双向RNN来利用上下文的信息!
V4: Residual-based Encoder-Decoder(添加残差)
模型引入残差来防止过拟合,预防梯度弥散。
残差网络先在CNN里出现的,本质就是层与层之间加一个通道,把链式求导变为了加法!层数一般比较深!
总结
step 1:利用V1,V2,V3,V4来进行一个总结!
step 2:RNN首先是双向结构的!
step 3:其次呢在RNN模型中间还有残差连接!
step 4:enocder和decoder是一个多层的RNN
step 5 :enocder会通过attention机制,传送到decoder中,
step 6:在不断通过隐含量h对权重进行更新,在不断的进行预测,最后进行softmax进行分类!
Attention机制
Global Attention
全局的权重都会有,说明信息都比较重要
Local Attention
会有局部的权重,对信息进行了筛选
Self Attention(自注意机制)
传统的attention只有decoder和encoder之间的关系,
但是忽略了decoder和encoder端分别的自身关联关系
self attention可以捕捉到词与词之间的关系,来确定权重
Hierarchical Attention(层次注意机制)
主要应用在文本分类里,
思想:进行分层处理,从词到句子,在从句子到段落。
这是encoder层!
多层attention的优势,主要还是对信息提取更加的全面!
图像生成文本
问题引入
图像搜索:对于搜索引擎,可以对输入的一段话来搜索图片,所以我们需要先找到这幅图片的一段描述,然后在进行搜索!
也是百度,Goole,公司图像搜索编号的原因之一!
盲人导航,少儿教育(看图说话)...........................
模型变迁
Encoder-Decoder模型
M-RNN
原始的Embedding(嵌入)和RNN抽象的Embedding(嵌入)和图像的(Feature)同时给分类器!
Show And Tell
模型引入了更好的CNN和LSTM来做的
图像特征使用更强大的CNN来提取,例如Goolnet,residual net,而且只提取一次
然后利用LSTM来生成文本
Show attend And Tell
模型引入了attention机制
Top-down bottom-up attention
模型引入了分层的机制