目录
我们以看图说话中的问题为例。
一、问题
看图说话:输入一个图片,训练过程中的某一层,可以作为我们的“桥梁向量”,通常选择倒数第二层输出的向量,然后衔接一个LSTM。之所以不选倒数第一层,是因为可能倒数第一层是即将进行分类用的,并且缺少泛化能力,这一个向量就是为了某个分类问题本身而生成的。
这个向量,在后面生成的每一个环节,都会用到它。
接下来的环节和机器翻译一样,把桥梁向量,前一个输出的单词,前一个的存储,输入给下一个,直到有<end>标志,或者提前结束。
该架构的问题:图片会有自己的重点,因此我们不需要把所有的内容全部看一遍,重点信息重点去看就可以。比如下面的例子:
二、Attention原理
①通过CNN之后,把得到桥梁向量,写成矩阵形式,比如3*3*D
②通过一些转换,生成h0,再转换生成a1,a1也是一个3*3的矩阵,并且是一个权重矩阵
③把a1和前面的桥梁向量矩阵进行element-wise相乘,得到加权平均的结果z1,那么这就相当于对原来的矩阵,添加了注意力,所关注的信息就是权重最高的那部分。
④把加权平均结果z1,融入到<start>输入的节点中,一起输入给模块,得到单词的分布,以及第二个节点的注意力矩阵a2,里面同样是权值,和前面的桥梁向量计算加权平均z2,然后结合输入给第三个节点。
以上步骤重复下去,一直到遇见<end>符号停止。