RNN,LSTM,GRU都是序列学习的基本构建,GRU是对LSTM的简化,一般而言效果不如LSTM
在翻译这种场景下,seq2seq,也就是encoder-decoder的模式,encoder输出一个向量C作为decoder的输入
在sequence比较长的时间丢失信息严重,因此attention做了一个类似对encoder的每一个时间步做加权平均,获得对当前最有用的焦点信息;
作为decoder的每一步输出的一部分输入,其他的输入包括上一个时间步的隐状态,前一个输出;attention机制对序列学习是一个重要的方法和完善。
attention的加权平均机制中的权重怎么学习到? 实际上你可以理解为一个函数,这个函数的输入1)encoder的每个时间步的状态s1 2)decoder的当前状态h1
将这两个s, h输入一个单层神经网络(W矩阵就是权重),通过sigmoid或者tanh变换得到一个0-1的概率值aij;BP的时候这个aij就会被反馈并更新;
也可以设计一些更复杂的函数,但基本逻辑都是类似的
体会:对于不懂得技术点,一定要多找,多搜,总有人能够搞明白并share到网上;