【セルフアテンションニューラルネットワーク】トランスフォーマーアーキテクチャ

I. 概要

        Transformer アーキテクチャと従来の CNN および RNN の最大の違いは、畳み込み/ループ演算を行わずにセルフ アテンション メカニズムのみに依存していることです。RNN と比較して、タイミング操作を実行する必要がなく、より適切に並列化できます。CNN と比較して、一度に画像全体に焦点を合わせることができ、受容野のサイズに制限されません。

2. モデルのアーキテクチャ

        1. 機能モジュール

                汎用モジュールの構造を次の図に示します。

                入力: エンコーダー入力

                出力: デコーダ入力 (直前のデコーダの出力が入力として使用されます)

                位置エンコーディング

                トランスフォーマー ブロック(エンコーダー):残りの接続を持つマルチヘッド アテンション レイヤーと残りの接続を持つ順方向転送ネットワークで構成されます。エンコーダの出力はデコーダの入力として使用されます。

                 トランス ブロック(デコーダー): エンコーダーと比較して、Masked Multi-Head Attendance (マスク マルチヘッド アテンション) メカニズムがあります。

         2. ネットワーク構造

                ①エンコーダ_

                        6 つのTransformer ブロックが積み重ねられ、各ブロックには 2 つのSublyaer (サブレイヤー) ( Multi-head self-attention機構(マルチヘッド セルフ アテンション メカニズム) + MLP (多層パーセプトロン)) があり、最後にLayer  Normalizationを通過します。

                        その式は次のように表すことができます: LayerNorm(x+サブレイヤー(x))<残留接続あり>

                        Layer Normは Batch Nrom に似ていますが、どちらも平均化アルゴリズムです。違いは、Batch Nrom がバッチ (列) の平均値を見つけるのに対し、Layer Norm はサンプル (行) の平均値を見つけることです

                ②デコーダー_

                        Transformer ブロックが6 つ積み重ねられ、各ブロックに3 つのSublyaer (サブレイヤー) があり、デコーダー内で自己回帰が実行されます (現時点の入力が前回の出力になります)。時間 t で後続の出力が表示されないことを保証するために、シールドのために最初のマルチヘッド アテンション ブロックにマスキングメカニズムが追加されます。

                ③アテンションの仕組み

                        アテンション関数 (クエリといくつかのキーと値のペアを出力にマッピングする関数。各値の重みは、対応するキーとクエリ クエリ間の類似性から取得されます)

                        その式は次のように記述できます。注意(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d_k}})V

                        クエリとキーの長さが等しくd_k、値の長さも等しいd_v;クエリキーの各セットの内積が類似度として使用されます(値が大きいほど類似度が高くなります -- cos 関数)。結果を\sqrt{d_k}(ベクトルの長さ) で割って、最後にソフトマックスで重みを取得します。

                        重みを取得したら、それを vale と乗算して出力を取得します。

                        実際の運用ではクエリもキーも行列として記述することができ、下図のような方法で計算します。

                        マスキングの仕組み: 時刻 k の入力に対して、Q_t計算ではその時点k_1までの値しか見られないはずk_{t-1}ですが、実際には注目計算はQ_tすべての k に対して動作します。マスキングメカニズムをしっかりと導入します。具体的な方法は、k_t計算値を大きな負の数置き換えることです。ソフトマックス後には 0 になります。

                        マルチヘッドメカニズム: クエリ、キー、値全体を低次元(h 回、原文では h=8) に投影し、h 回の注目関数を実行し、各関数の出力を結合して投影します。結果を得るには高次元に戻ります。以下に示すように:

                                 図の線形は低次元投影に使用され、スケーリングされたドット積アテンションはアテンション メカニズムです。concatは結果を結合する役割を果たします。

                                その式は次のとおりです。MultiHead(Q,K,V)=Concat(head_1,...head_h)W^O

                                                                どこ  head_i=注意(QW_i^Q,KW_i^K,VW_i^V)

三、VIT(ビジョントランスフォーマー)

         Transformer を画像処理に適用する場合には、もう 1 つの困難があります。画像のピクセルを入力シーケンスとして直接使用すると、入力シーケンスが長すぎるという問題に直面することになります。VIT ネットワークは、画像を小さなパッチに分割することでこの問題を解決します。

VIT は16x16        のサイズをパッチに分割し、標準的な 224x224 の画像入力を例にとると、パッチ後は 196 パッチとなり、入力シーケンスのサイズが大幅に削減されます。

         1. モデルの構造

                まず、画像を複数のパッチに分割し、これらのパッチを線形投影層(平坦化パッチの線形投影、つまり全結合層) に配置し、各パッチに位置エンコード情報を追加します(画像の破損を防ぐため)。 1 つのトークンにマージされます(マージされずに直接追加されます)。次に、このトークンをトランスフォーマーのエンコーダーに送信します。同時に、トークンの先頭には、それが属するカテゴリを示すcls トークン(分類情報) を置く必要があり、セルフ アテンション機構によって最終的に出力されるcls が分類情報となります。

         2.トランスエンコーダー

おすすめ

転載: blog.csdn.net/weixin_37878740/article/details/129343613