Attention(注意力机制)
- Attention for Image
- Attention for Machine Translation
- Self-Attention
没有image-Attention:看图说话
整个网络属于分类任务。Question:为什么不采用最后一层?
因为最后一层缺乏泛化能力(Lack of generalization capability)LSTM部分
将CNN全连接层(FC4096)获得的向量称为v,通过线性转换获得矩阵Wih,引入LSTM网络中,获得函数: $$h=tanh(W_{xh} imes x+w_{hh} imes h+Wih imes v)$$ 同时,通过$Softmax$函数获得一个分布输出,得到概率最大值。循环训练模型
缺陷!!!
- 错误叠加 如果某一部分错误,那后面也会错误
- Debug:错误在哪里? 上述方法生成的每一个描述,依赖于上一描述。
- 图像中的多个对象可能输出不同结果
image-Attention:看图说话
将注意力集中到图像中的某个或某几个对象,从而提高准确度。大致流程
图片 -> CNN ->分为$N imes N = L$个区域,每个区域提取特征向量D -> 非线性转换f获得$h_0$ -> 获得$a_1$表示相关性: $z$是加权平均值完整表示生成第一个单词:
生成所有单词:
No attendtion:机器翻译-Seq2Seq模型
缺陷:
- Long-term Dependence 可以捕获短时间的关系,但是长时间的关系无法捕获。例如$W_3$可以捕获$W_1$,但是$W_{50}$难以捕获$W_1$。在利用梯度下降的方法进行计算的是时候,很容易出现梯度爆炸或者梯度消失。 所以长句子的翻译通常不是很准确
bottleneck problem 在Multimodel Learning中的中间向量来自左侧的输出结果,但是中间向量直接影响输出结果,所以中间向量被称为bottleneck 一但中间向量出现问题,那么后面就出现输出错误。这个问题称为bottlenect problem
注意力较差,可解释性较差。
Attention:机器翻译-Seq2Seq模型