スタブ トランスフォーマー ニューラル ネットワークとは何ですか? - Unite.AI
私達と接続
AI マスタークラス:

AI 101

トランスフォーマー ニューラル ネットワークとは何ですか?

mm
更新中 on

トランスフォーマー ニューラル ネットワークの説明

トランスフォーマー は、連続データの処理と解釈に特化した機械学習モデルの一種で、自然言語処理タスクに最適です。機械学習トランスフォーマーとは何か、そしてそれらがどのように動作するかをより深く理解するために、トランスフォーマーのモデルとそれを駆動するメカニズムを詳しく見てみましょう。

この記事はカバーします:

  • シーケンス間モデル
  • Transformer ニューラル ネットワーク アーキテクチャ
  • 注意のメカニズム
  • トランスフォーマーと RNN/LSTM の違い

シーケンス間モデル

シーケンスツーシーケンス モデルは、あるタイプのシーケンスを別のタイプのシーケンスに変換するために使用される NLP モデルの一種です。 シーケンス間モデルには、次のようなさまざまなタイプがあります。 リカレントニューラルネットワーク モデルや 長短期記憶(LSTM) モデル。

RNN や LSTMS などの従来のシーケンス間モデルはこの記事の焦点では​​ありませんが、トランスフォーマー モデルがどのように動作するか、またなぜトランスフォーマー モデルが従来のシーケンス間モデルよりも優れているのかを理解するには、それらを理解する必要があります。

簡単に言うと、RNN モデルと LSTM モデルは、さまざまなタイム ステップで入力データを分析するエンコーダー ネットワークとデコーダー ネットワークで構成されます。エンコーダ モデルは、入力データ内の単語のエンコードされた表現を形成する役割を果たします。タイム ステップごとに、エンコーダ ネットワークは入力シーケンスと、一連の前のタイム ステップからの隠れ状態を取得します。隠れ状態値は、データがネットワークを通過するにつれて、「コンテキスト ベクトル」が生成される最後のタイム ステップまで更新されます。次に、コンテキスト ベクトルがデコーダ ネットワークに渡され、各タイム ステップで入力単語とペアになる可能性が最も高い単語を予測することによってターゲット シーケンスを生成するために使用されます。

これらのモデルは、「」を使用して強化できます。注意メカニズム”。 注意メカニズムは、適切な出力を生成するためにネットワークが入力ベクトルのどの部分に焦点を当てる必要があるかを定義します。 別の言い方をすると、アテンション メカニズムにより、トランスフォーマー モデルは XNUMX つの入力単語を処理しながら、他の入力単語に含まれる関連情報にも注意を払うことができます。 注意メカニズムは、関連情報を含まない単語もマスクします。

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

アテンションのメカニズムについては後ほど詳しく説明しますが、ここでは以下を見てみましょう。 トランスフォーマーニューラルネットワークのアーキテクチャ より高いレベルで。

一般に、トランスフォーマー ニューラル ネットワークは次のようになります。

この一般的な構造はネットワーク間で変わる可能性がありますが、位置エンコーディング、ワード ベクトル、アテンション メカニズム、フィードフォワード ニューラル ネットワークなどのコア部分は変わりません。

位置エンコーディングとワードベクトル

トランスフォーマーニューラルネットワークが動作する 一連の入力を取得し、これらの入力を他の XNUMX つのシーケンスに変換します。 トランスフォーマーは、一連の単語ベクトル埋め込みと位置エンコーディングを生成します。

Word ベクトルの埋め込み ニューラル ネットワークが処理できる数値形式で表現された単なるテキストです。 一方、位置エンコーディングは、他の単語との関係で、入力文内の現在の単語の位置に関する情報を含むベクトル化された表現です。

RNN や LSTM などの他のテキストベースのニューラル ネットワーク モデルは、ベクトルを使用して入力データ内の単語を表します。 これらのベクトル埋め込みは単語を定数値にマップしますが、単語はさまざまなコンテキストで使用される可能性があるため、これには制限があります。 変換ネットワークは、正弦関数を使用して単語の値をより柔軟にし、文内の単語の位置に応じて単語ベクトルが異なる値を取るようにすることで、この問題を解決します。

これにより、ニューラル ネットワーク モデルは、ベクトルが変換ネットワークの層を移動した後でも、入力単語の相対位置に関する情報を保存できます。

位置エンコーディングとワード ベクトルの埋め込みが合計されて、エンコーダ ネットワークとデコーダ ネットワークの両方に渡されます。 トランスフォーマー ニューラル ネットワークは、RNN や LSTM と同じようにエンコーダー/デコーダー スキーマを使用しますが、両者の大きな違いの XNUMX つは、すべての入力データが同時にネットワークに供給されるのに対し、RNN/LSTM ではデータが順番に渡されることです。

エンコーダ ネットワークは入力をネットワークが学習できる表現に変換する責任を負いますが、デコーダ ネットワークはその逆を行い、出力文で最も可能性の高い単語を生成するために使用される確率分布にエンコードを変換します。 重要なのは、エンコーダ ネットワークとデコーダ ネットワークの両方にアテンション メカニズムがあることです。

GPU は並列処理が可能なため、複数のアテンション メカニズムが並列して使用され、すべての入力単語の関連情報が計算されます。 「マルチヘッド」アテンションと呼ばれる、一度に複数の単語に注意を向けるこの機能は、ニューラル ネットワークが文内の単語のコンテキストを学習するのに役立ちます。これは、トランスフォーマー ネットワークが RNN や LSTM に対して持つ主な利点の XNUMX つです。

注意のメカニズム

アテンション メカニズムは、変圧器ネットワークの最も重要な部分です。 アテンション メカニズムは、変圧器モデルが一般的な RNN または LSTM モデルのアテンション制限を超えることを可能にするものです。 従来のシーケンスツーシーケンス モデルは、入力シーケンスに関する予測を生成するためにデコーダー ネットワークを初期化するときに中間状態をすべて破棄し、最終状態/コンテキスト ベクトルのみを使用します。

入力シーケンスがかなり小さい場合、最後のコンテキスト ベクトル以外のすべてを破棄しても問題なく機能します。 ただし、入力シーケンスの長さが増加すると、この方法を使用するとモデルのパフォーマンスが低下します。 これは、長い入力シーケンスを単一のベクトルとして要約することが非常に困難になるためです。 解決策は、モデルの「注意力」を高め、中間のエンコーダー状態を利用してデコーダーのコンテキスト ベクトルを構築することです。

アテンション メカニズムは、特定のトークンに対してエンコーディングが作成されるときに、モデルにとって他の入力トークンがどの程度重要であるかを定義します。 たとえば、「それ」は一般代名詞であり、性別が不明な動物を指すのによく使用されます。 アテンション メカニズムにより、入力文内のすべての関連単語を調べることができるため、トランスフォーマー モデルは現在のコンテキストで「それ」がリスを指していると判断できます。

アテンション メカニズムは、エンコーダからデコーダ、エンコーダのみ、デコーダのみの XNUMX つの異なる方法で使用できます。

エンコーダ-デコーダ アテンションにより、デコーダは出力を生成するときに入力シーケンスを考慮できるようになりますが、エンコーダのみおよびデコーダのみのアテンション メカニズムにより、ネットワークはそれぞれ以前および現在のシーケンスのすべての部分を考慮できます。

注意メカニズムの構築は XNUMX つのステップに分けることができます。

  1. すべてのエンコーダ状態のスコアを計算します。
  2. アテンションの重みを計算する
  3. コンテキストベクトルの計算
  4. 前のタイムステップ出力によるコンテキスト ベクトルの更新
  5. デコーダによる出力の生成

最初のステップは、デコーダにすべてのエンコーダ状態のスコアを計算させることです。 これは、基本的なフィードフォワード ニューラル ネットワークであるデコーダ ネットワークをトレーニングすることによって行われます。 デコーダが入力シーケンスの最初のワードでトレーニングされるとき、内部/隠れ状態はまだ作成されていないため、通常、エンコーダの最後の状態がデコーダの前の状態として使用されます。

アテンションの重みを計算するには、ソフトマックス関数を使用してアテンションの重みの確率分布を生成します。

注意の重みが計算されたら、コンテキスト ベクトルを計算する必要があります。 これは、時間ステップごとにアテンションの重みと隠れ状態を乗算することによって行われます。

コンテキスト ベクトルが計算された後、前のタイム ステップで生成された単語と一緒に使用されて、出力シーケンス内の次の単語が生成されます。 デコーダには最初のタイム ステップで参照する以前の出力がないため、多くの場合、代わりに特別な「開始」トークンが使用されます。

トランスフォーマーと RNN/LSTM の違い

RNN と LSTM の違いのいくつかを簡単に説明しましょう。

RNN は入力を順番に処理しますが、隠れ状態ベクトルは維持され、入力単語がネットワーク内を移動するときに入力単語によって変更されます。 RNN の隠れた状態には、通常、以前の入力に関する関連情報がほとんど含まれていません。 多くの場合、新しい入力によって現在の状態が上書きされるため、情報が失われ、時間の経過とともにパフォーマンスが低下します。

対照的に、トランスフォーマー モデルは入力シーケンス全体を一度に処理します。 アテンション メカニズムにより、すべての出力単語がすべての入力および非表示の状態から通知されるため、長いテキストに対するネットワークの信頼性が高まります。

LSTM は RNN の修正バージョンであり、より長い入力シーケンスを処理できるように調整されています。 LSTM アーキテクチャは、「入力ゲート」、「出力ゲート」、および「フォーゲット ゲート」を備えた「ゲート」と呼ばれる構造を使用します。 ゲート設計は、RNN モデルに共通する情報損失に対処します。 データは依然として順次処理され、アーキテクチャの再帰的設計により、並列コンピューティングを使用して LSTM モデルをトレーニングすることが困難になり、全体のトレーニング時間が長くなります。

LSTM エンジニアは、モデルのパフォーマンスを向上させることが知られているアテンション メカニズムをネットワークに頻繁に追加していました。 しかし、最終的には、注意メカニズムだけで精度が向上することが判明しました。 この発見は、アテンション メカニズムと GPU による並列コンピューティングを使用するトランスフォーマー ネットワークの作成につながりました。

専門分野を持つブロガーおよびプログラマー 機械学習 および 深層学習 トピック。 ダニエルは、他の人が社会利益のために AI の力を活用できるよう支援したいと考えています。