ラビットチャレンジ【深層学習Day4】~Transformer~

概要

Tranformerは機械翻訳を目的としたモデルがあったが、非常に汎用性のあるモデルであるため現在では画僧認識や様々な用途で使用されている

構造自体はEncoder-Decoderである

TranformerはAttention、Residual Connection、Layer Normalizationなどの技術が使用されている

この章では以下の項目を学んだ

・モデル構造

・Add&Layer Normalization

・Feed Forward Network

・Position Encoding

・Scaled Dot-Product Attention

・Multi-Head Attention

・ハンズオン

モデル構造

RNNを使用せずAttentionのみで使用するモデルであり、光速に学習&推論ができる

Attentionについては、この記事を参照(https://maruring.hatenablog.com/entry/2021/07/17/171620)

以下のような構造をしている

f:id:Maruring:20210718103917p:plain

Add&Layer Normalization

Add(Residual Connection)とNorm(Layer Normalization)の組み合わせである

Add(Residual Connection)

・入出力の差分を学習させる

・実装上は出力に入力をそのまま加算するだけ

・効果:学習・テストエラーの低減

Norm(Layer Normalization)

・各層においてバイアスを除く活性化関数への入力を平均0、分散1に正則化

・効果:学習の高速化

Feed Forward Network

位置情報を保持したまま順伝播させる役割をしており以下のような数学的記述ができる


FFN(x) = ReLU(xW_{1}+b_{1})W_{2} + b_{2}
Position Encoding

RNNを用いないので単語列の語順情報を追加する必要がある

sinやcosを使用して単語の位置情報をエンコードしている

Scaled Dot-Product Attention

Multi-Head AttentionはScaled Dot-Product Attentionが前提としてある

Scaled Dot-Product Attentionは以下のような数学的記述ができる

f:id:Maruring:20210718104814p:plain

f:id:Maruring:20210718105022p:plain

つまり、クエリーとキーの類似度を計算してそれに応じたValueを足す

Multi-Head Attention

数学的記述は以下のようにScaled Dot-Product Attentionを前提としてしている

f:id:Maruring:20210718105426p:plain

ハンズオン

線形回帰

noiceが大きい時ほどデータが散らばり、上手く予測できていないことがわかる

f:id:Maruring:20210718163959p:plain

非線形回帰

dの次元数を上げるほど上手く予測できていないことがわかる

学習率を下げるかepoch数を増やすことで精度が上がる

f:id:Maruring:20210718163805p:plain

f:id:Maruring:20210718163920p:plain

単純パーセプトロンの学習

誤分類をおこしていることがわかる

f:id:Maruring:20210718164042p:plain

分類 (iris)

reluとSDG(lr=0.1)の組み合わせが最も精度がよい

f:id:Maruring:20210718165547p:plain

分類 (mnist)

学習率を下げることで学習が収束していることがわかる。epoch数を上げると精度がもう少し上がると思われる

f:id:Maruring:20210718170453p:plain

RNN

最も精度が高いのはoptimizerをadamにした場合であった。drop_out, recurrent_dropがある場合にには、精度が下がった。

reluとadamの組み合わせが最も精度が良くなるのではないかと考えられる

f:id:Maruring:20210718174521p:plain