ディープラーニング シリーズ 25: アテンション メカニズム

1. エンベディングからエンコーダ・デコーダまで

1.1 埋め込み

埋め込みでは、テキストと画像をベクトル (k 次元浮動小数点特徴ベクトル) に変換できます。
たとえば、入力した文の長さは 7、辞書サイズは 100 です。各整数を 2 次元の小数に変換する埋め込みの直感的なコードは次のとおりです。

from keras.models import Sequential
from keras.layers import Embedding
model = Sequential()
model.add(Embedding(100,2, input_length=7))#输入维,输出维
data = np.array([[0,2,0,1,1,0,0],[0,1,1,2,1,0,0],[0,1,12,1,15,0,1]])
model.predict(data) # 输入维度(3,7)整型,输出维度(3,7,2)浮点类型

写真は埋め込みにも使用できます。N ∗ N ∗ 256 N*N*256 が必要ですNN2 5 6 (最初の 2 つはサイズ、最後の 2 つはグレースケール)N / 16 ∗ N / 16 ∗ 1000 N/16*N/16*1000 のN / 1 6N / 1 61 0 0 0を表すには、16 ピクセルごとをピクセル ブロックとみなします。その場合、ピクセル ブロックは 16 16の整数となり、1000 次元の浮動小数点数にマッピングする必要があります。
埋め込みネットワークは[ 16 ∗ 16 ∗ 256 , 1000 ] [16*16*256,1000][ 1 61 62 5 6 1 0 0 0 ]浮動小数点行列では、各行の 1000 次元データが各ブロックの埋め込み表現になります。

1.2 エンコーダ-デコーダ構造

Encoder-Decoder は次のモデルを指します。
ここに画像の説明を挿入
基本的な Encoder-Decoder について、説明する点は 2 つあります。
1) 入力と出力の長さに関係なく、中央の「ベクトル c」の長さは固定です (これはその欠点でもあり、以下で詳しく説明します)
さまざまなタスクに応じて、さまざまなエンコーダとデコーダを選択できます (RNN の場合もありますが、通常はそのバリアント LSTM または GRU)。 2) に準拠している限り
、上記のフレームワークでは、エンコーダー デコーダー モデルと総称される場合があります。Encoder-Decoder モデルに関しては、Seq2Seq という用語がよく使われます。

Seq2Seq (Sequence-to-sequence の略) は、文字通りの意味と同じように、シーケンスを入力し、別のシーケンスを出力します。この構造で最も重要なことは、入力シーケンスと出力シーケンスの長さが可変であることです。Seq2Seq (目的の強調) は特定のメソッドを特に指すものではなく、「入力シーケンスと出力シーケンス」の目的を満たす場合、総称して Seq2Seq モデルと呼ぶことができます。一般的なアプリケーションは、機械翻訳、会話ロボット、詩の生成、コード補完、記事の要約 (テキスト-テキスト) です。Encoder-Decoder は Seq2Seq の一種です。つまり、中央に固定長ベクトル C があります。
ここに画像の説明を挿入

2 注意

2.1 アテンションメカニズム

エンコーダ・デコーダ 入力情報が長すぎる場合、一部の情報が失われます(エンコード長が優先され、エンコード時に圧縮されるため、情報の損失は避けられません)。アテンションの仕組みは、「情報が長すぎて情報が失われる」という問題を解決するもので、簡単に言うと、エンコーダが入力シーケンス全体を固定長の「中間ベクトル C」にエンコードしなくなったことです。ですが、それをベクトルシーケンスにエンコードします。
アテンションを導入するEncoder-Decoderモデルは下図のとおりで、簡単に言うと、X(コードK)を連続的に入力し、C(アテンション)を連続的に計算し、それを連続的にY(コードQ)にデコードするというものです。例として「この
ここに画像の説明を挿入
映像がきらい」と X を入力すると、日本語と英語の語順が異なります。
ここに画像の説明を挿入
ここでのアテンション配列は、hate と元の日本語テキストを掛け合わせて得られます。最初の単語「この」に注目してください。つまり、「私は嫌い」に相当するこの単語の始まりは「この」という単語です。
アテンションデータの計算方法を見てみましょう。その入力は、変換される特徴ベクトルKKです。K (キー ベクトル)、現在の出力特徴ベクトルQ i Q_iQ私は(クエリ ベクトル)、計算関数はai = F ( Q i , K ) a_i=F(Q_i,K)です。ある私は=F ( Q私はK )q と k の次元が同じ場合、ドット乗算を直接使用できます:a = q T ka=q^Tkある=qT k; 次元が異なる場合は、学習パラメータ行列 W を追加できます:a = q TW ka=q^TWkある=qT Wk. また、正規化を行うことをお勧めします:a = q T k / ∣ k ∣ a=q^Tk/\sqrt{|k|}ある=qT k/k

2.2 自己注意のメカニズム

Q と K が同じ場合、それは自己注意メカニズムと呼ばれます。一般的な単語埋め込みモジュールは単語間の関係を学習しますが、セルフアテンション モジュールは文のコンテキスト内の単語間の関係を学習します (トランスフォーマーは位置エンコーディングも明示的に追加します)。注意メカニズムとは異なることに注意してください。注意には一対のトレーニング データがありますが、自己注意にはそれがありません。
別の言い方をすると、入力テキストが与えられ、テキスト内の単語埋め込み W から始めるとします。W に関して同じテキスト内の他の単語埋め込みの重要性を測定し、それらの情報を組み合わせて更新された埋め込み W' を作成する埋め込み方法を見つける必要があります。
具体的な方法は次のとおりです。セルフ アテンション メカニズムは、埋め込み入力テキスト内の各単語を 3 つの異なる空間 (これらの行列はトレーニング プロセス中に学習する必要があります) に線形に投影し、それによって 3 つの新しい表現 (クエリ query 、 key key 、および key ) を生成します。価値の価値。これらの新しい埋め込みは、W と各 Wn の間の依存関係を表すスコアを取得するために使用されます (W が W' に依存する場合、結果は絶対値で大きな正の数になります。W が W' 相関に依存しない場合、結果は絶対値で非常に負の値になります)。このスコアは、さまざまな Wn 単語埋め込みからの情報を組み合わせて、単語 W の値 v に対する更新された埋め込み e を作成するために使用されます。
ここに画像の説明を挿入
行列形式の直感的な表現は次のとおりです。
ここに画像の説明を挿入
ここに画像の説明を挿入
マルチヘッドの計算を行うために、これらの新しいベクトルの次元は入力単語ベクトルの次元 (512–>64) よりも小さいことに注意してください。必ずしも小さい必要はありません。注意力がより安定します。

以下は例です。「思考が一致」という文に対して、「思考」の注意スコアを計算します (pos#1)。各単語と「思考」の評価スコアを計算する必要があります。これは、「思考」を(固定位置で)エンコードする際に、各入力単語がどの程度注意を払う必要があるかを決定します。
このスコアは、「Thing」に対応するクエリ ベクトルとすべての単語のキー ベクトルの内積を順番に計算することによって取得されます。したがって、位置 #1 を扱う場合、最初のスコアは q1 と k1 の内積であり、2 番目のスコアは q1 と k2 の内積です。8 で割ると、勾配がより安定します。次に、ソフトマックス演算を追加し、スコアがすべて正となり合計が 1 になるようにスコアを正規化します。ソフトマックス スコアに value-vec をビット単位で乗算します。関連する単語の価値を維持し、関連しない単語の価値を弱めます。すべての重み付けされたベクトルが合計されて、その位置での自己注意の出力が生成されます。
ここに画像の説明を挿入

次の図は、セルフアテンションの視覚化の例です。
ここに画像の説明を挿入
トレーニングに使用されるエンコーダー/デコーダーが図に示されています。
ここに画像の説明を挿入

2.3 画像/ビデオのセルフアテンション メカニズムとクロスアテンション メカニズム

画像と動画を一体化させるために、画像を3次元データ(幅、高さ、フレーム)で表現します。画像X ∈ R h × w × s X\in R^{h\times w\times s}の場合バツRh × w × s ( i , j , k ) (i,j,k)上の任意の点(j k )
ここに画像の説明を挿入
ここで N は点( i , j , k ) (i,j,k)(j k )隣接エリア(位置コーディングの追加と同等)。

クロスアテンション メカニズムには 2 つの入力 X と C があり、C は N の計算に使用され、その他は同じです。この 2 つをデコーダとして単純に加算することができます。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/kittyzc/article/details/124660656