深度学习大数据,机器学习,人工智能

自然语言处理—自注意机制(self-attention)

2021-01-01  本文已影响0人  zidea

今天是 2021 年第一天,在此祝大家新年快乐! 相关视频都发布在西瓜视频上,西瓜视频账号为 zidea。

cover.jpg

自注意力机制(Self Attention)

\hat{g}(x) = \frac{\sum_{i=1}^n|X_i - 1 \le h|y_i}{\sum_{i=1}^n|X_i - 1 \le h|}

\frac{\sum_{i=1}^n (\frac{X_i - x}{h})y_i}{(\sum_{i=1}^n \frac{X_i - x}{h})}

g(x) = E(y_i|X_i = x)

有关自注意力层应用,在原始论文中是将 self-attention 和 LSTM 结合使用,这里介绍将 self-attention 和 SimpleRNN 结合使用,其实道理都是一样的,我们主要是学习如何将 self-attention 融入到循环神经网络中。

h_1 = \tanh(A \cdot \begin{bmatrix} x_1\\ h_0 \end{bmatrix} + b)

在之前介绍 SimpleRNN 中,我们知道更新 h_1 是通过上一个时刻和当前时刻输入 x_1 一起来更新当前的隐含状态 h_1

h_1 = \tanh(A \cdot \begin{bmatrix} x_1\\ c_0 \end{bmatrix} + b)

引入自注意力机制后,我们更新隐含状态 h_1 就是用当前上时刻得到 c_0 来代替 h_0 来和输入 x_0 一起更新隐含状态 h_1

h_1 = \tanh(A \cdot \begin{bmatrix} x_1\\ h_0\\ c_0 \end{bmatrix} + b)

\alpha_i = align(h_i,h_2)

self_attention_001.png self_attention_002.png self_attention_003.png

然后以此类推来更新下一个时刻隐含状态,用隐含状态 h_1 后,利用 h_1c_1 计算得到得到当前时刻的隐含状态 h_2

self_attention_005.png

然后通过计算 \alpha = align(h_i,h_2) 可以得到隐含状态 \alpha_1,\alpha_2

self_attention_006.png

这样我们可以使用这些权重 \alpha_1,\alpha_2h_1,h_2

self_attention_007.png self_attention_008.png self_attention_009.png self_attention_010.png
上一篇下一篇

猜你喜欢

热点阅读