らんだむな記憶

blogというものを体験してみようか!的なー

詳解ディープラーニング 第2版 (10)

クエリ・キー・値もよく聞くがよく分からないやつだ。

ちょっと雰囲気で読むと、ドット積 Attention をエンコーダの出力シーケンスに適用したものを素朴に抽象化すると

\begin{align*}
\mathrm{Attention}(Q, K, V) = \left[ \mathrm{softmax}(QK^T) \right] V
\end{align*}

で、$\mathrm{softmax}(QK^T)$ の部分が Attention ウェイトになっていて、これを $V$ にかけこむと、重要な値が抽出される感じだということ。まぁ、ちょっと転置するところが後ろに移動したりしている部分が気になるが、ちょっと気にしないことにするとそんな感じかな?という気はする。計算の都合で Attention ウェイトをスケールすると

\begin{align*}
\mathrm{Attention}(Q, K, V) = \left[ \mathrm{softmax} \left(\frac{QK^T}{\sqrt{d_k}} \right) \right] V
\end{align*}

という [1706.03762] Attention Is All You Need の式 (1) の形になる。なんかあの謎の式の雰囲気は分かったような・・・気がする。

Positional Encoding については Transformer の位置エンコーディング - らんだむな記憶 で少し触れた。

6/08_transformer_torch.py を K80 上で実行したところ、30 エポックで 15 分だった。思ったより早い・・・。

epoch: 30
loss: 0.531, val_loss: 2.12
> she doesn 't have any <unk> .
= <s> 彼女 に は 敵 は い な い 。 </s>
< <s> 彼女 に は 急 が な い 。 </s> は 。 </s> </s> </s> </s> </s> </s> </s> </s>

> she played the piano well enough .
= <s> 彼女 は かなり うま く ピアノ を 弾 い た 。 </s>
< <s> 彼女 は 料理 が 十分 だ 。 </s> し た 。 </s> </s> </s> </s> </s> </s> </s> </s>

> i don 't like sad movies .
= <s> 私 は 悲し い 映画 は 嫌い だ 。 </s>
< <s> 私 は 映画 が 好き で は な い 。 </s> 、 馬鹿 だ 。 </s> </s> </s> </s>

> i 'll be here by monday .
= <s> 月曜 日 まで に ここ に 来 て い ま す 。 </s>
< <s> 月曜 から ここ に 来 ま す 。 </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>

結果の良し悪しは分からない部分もあるが、ここまでの他のモデルと比べてもそこまで悪くもないだろう。

付録の部分はよくある内容なので飛ばすことにして、p.438 まで完了ということにする。

この後は、以下のような感じだろうか?