フィードフォワードネットワーク(Feed-Forward Network, FFN)

はじめに

自然言語処理(NLP)の分野において、トランスフォーマー(Transformer)はその革新的なアーキテクチャにより、徒来のモデルを凌駆する性能を発揮しています。トランスフォーマーの中核を成す構成要素の一つがフィードフォワードネットワーク(Feed-ForwardNetwork,FFN)です。FFNは、モデルの表現力を高め、各トークンの特徴を豊かにするために不可欠な役割を果たしています。本米では、FFNの構造、機能、トランスフォーマー内での役割、そしてその詳細な動作メカニズムについて解説します。

トランスフォーマーの概要

トランスフォーマーは、2017年にVaswaniらによって提案されたモデルであり、自己注意機構(Self-AttentionMechanism)を基盤としています。トランスフォーマーはエンコーダとデコーダから構成され、エンコーダは入力シーケンスを処理し、デコーダは出力シーケンスを生成します。エンコーダおよびデコーダの各層には、自己注意機構とフィードフォワードネットワーク(FFN)が含まれており、これらが層ごとに繰り返し適用されることで、深い表現を学習します。

ネーミングの由来

フィードフォワードネットワーク(Feed-Forward Network, FFN)の名前は、そのネットワークの情報の流れに由来しています。具体的には、「フィードフォワード(Feed-Forward)」という言葉は、情報がネットワーク内を一方向に進むことを指します。つまり、入力から出力に向かって順方向に計算が行われ、ループやフィードバックがないことを特徴としています。この特徴により、情報が効率的に処理され、次の層へと受け渡されるというシンプルな構造を持っています。

また、FFNは複数の線形変換層と非線形活性化関数から構成されており、これが「ネットワーク」と呼ばれる理由です。非線形活性化関数を絡めることで、モデルは単純な線形変換では得られない複雑な関数近似を行うことが可能になります。線形変換のみを使用した場合、モデル全体は線形性を保持し、入力と出力の関係が単純な一次関数に限定されます。例えば、線形変換をいくら重ねても、それは結局一つの線形変換と同等であり、複雑なパターンを学習することは困難です。一方、非線形変換を挟み込むことで、モデルは入力の異なる領域に対して異なる反応を示すことができ、複雑なデータパターンを捉える能力を得られます。具体的には、線形変換層の後に非線形活性化関数を適用し、さらにもう一度線形変換層を適用するという形で、線形変換と非線形変換が交互に「サンドイッチ」されます。このサンドイッチのような構造により、入力データに対する多層的な変換が可能となり、多様な入力に対して適切な出力を生成する能力を持たせることができます。

具体的には、FFNはアテンション層で出力された値を加工する役割を担っており、スカラ値にはならずベクトルのまま変換されます。この層は、単なる重み付け変換にとどまらず、非線形活性化関数を通じてモデル全体の表現力を大幅に向上させる重要な要素です。FFNは、情報の非線形変換と特徴の強化を行うことで、単なる調整や最適化を超えて、深層学習における強力な学習能力を提供します。

複数の変換と活性化関数の組み合わせにより、複雑な関数近似が可能となり、深層学習におけるネットワークとしての特性を持っています。この名前は、その構造と動作原理を端的に表現しています。

フィードフォワードネットワーク(FFN)の位置付け

トランスフォーマーの各エンコーダおよびデコーダ層は、下記の二つの主要なサブレイヤーから構成されています:

1.自己注意機構(Self-AttentionMechanism)
-入力トークン間の相関を計算し、文脈情報を統合します。

2.フィードフォワードネットワーク(Feed-ForwardNetwork,FFN)
-各トークンごとに独立して適用される全統合層で、非線形変換を行います。

これらのサブレイヤーは、それぞれに残存接続(ResidualConnection)と層正規化(LayerNormalization)が適用されます。特にFFNは、自己注意機構が捕捉した文脈情報をさらに変換し、モデルの表現力を強化する役割を担います。

FFNの構造

FFNは、トランスフォーマーの各層において、以下のような構造を持ちます:

1.線形変換層(LinearLayer)
-入力次元\(d_{ \text{model}}\)から中間次元\(d_{ \text{ff}}\)への線形変換を行います。
-重み行列\(W_1∈ℝ^{d_{ \text{ff}}×d_{ \text{model}}}\)とバイアス\(b_1∈ℝ^{d_{ \text{ff}}}\)を持ちます。

2.非線形活性化関数(ActivationFunction)
-通常、ReLU(RectifiedLinearUnit)やGELU(GaussianErrorLinearUnit)などが用いられます。

3.再度線形変換層(LinearLayer)
-中間次元\(d_{ \text{ff}}\)から出力次元\(d_{ \text{model}}\)への線形変換を行います。
-重み行列\(W_2∈ℝ^{d_{ \text{model}}×d_{ \text{ff}}}\)とバイアス\(b_2∈ℝ^{d_{ \text{model}}}\)を持ちます。

この一連の処理は以下の数式で表されます:

\[
\text{FFN}(x)=W_2·\text{Activation}(W_1·x+b_1)+b_2
\]

ここで、\(x\)は入力ベクトル(各トークンの表現)です。

FFNの詳細な動作メカニズム

FFNは各トークンに対して独立に適用される「位置ごとの全統合ネットワーク(Position-wiseFeed-ForwardNetwork)」です。これにより、各トークンの特徴を文脈に依存せずに変換できます。以下に、各ステップの詳細を説明します。

1.入力ベクトルの線形変換

入力\(x\)は、トランスフォーマーの自己注意機構や前段の層からの出力であり、次元\(d_{ \text{model}}\)を持ちます。FFNの最初の線形変換は、以下のように表されます:

\[
h_1=W_1·x+b_1
\]

ここで、\(h_1\)は中間表現であり、次元\(d_{ \text{ff}}\)を持ちます。一般に、\(d_{ \text{ff}}\)は\(d_{ \text{model}}\)よりも大きく設定されることが多く、例えば\(d_{ \text{model}}=512\)の場合、\(d_{ \text{ff}}=2048\)などとします。これにより、モデルはより豊かな特徴表現を学習することが可能となります。

2.非線形活性化関数の適用

次に、活性化関数を適用して非線形性を広げます。典型的には下記のいずれかが使用されます:

ReLU(RectifiedLinearUnit)

\[
\text{ReLU}(x)=\max(0,x)
\]

ReLUは計算が簡便であり、加速減退問題を緩和する特性があります。

GELU(GaussianErrorLinearUnit)

\[
\text{GELU}(x)=x·Φ(x)
\]

ここで、\(Φ(x)\)は標準正規分布の累積分布関数です。GELUはReLUに比べて滑らかな非線形性を持ち、特にBERTなどのモデルで広く使用されています。

活性化関数の適用後の出力は以下の通りです:

\[
h_2=\text{Activation}(h_1)
\]

3.再度の線形変換

活性化関数を通過した中間表現\(h_2\)に対して、再度線形変換を適用します:

\[
h_3=W_2·h_2+b_2
\]

ここで、\(h_3\)は最終的なFFNの出力であり、元の入力と同じ次元\(d_{ \text{model}}\)を持ちます。

FFNの特性と利点

FFNはトランスフォーマーの各層において以下の特性と利点を持っています:

1.位置ごとの独立性
-FFNは各トークンに対して独立に適用されるため、並列処理が可能であり、効率的な計算が実現されます。

2.表現力の向上
-高次元の中間表現を介することで、非線形な変換が可能となり、モデルの表現力が大幅に向上します。

3.パラメータの効率的な利用
-位置ごとに同じFFNを共有するため、全体のパラメータ数を抑えつつ、各トークンの特徴を豊かにすることができます。

4.階層的な特徴抽出
-複数のFFN層を重ねることで、階層的な特徴抽出が可能となり、より深い文脈理解が実現されます。

FFNと他のサブレイヤーとの相互作用

FFNは、自己注意機構と連携して機能します。具体的には、自己注意機構がトークン間の相関を捉え、文脈情報を統合した後、FFNが各トークンの特徴をさらに変換・強化します。これにより、モデルは文脈に依存した豊かな表現を学習することが可能です。

例えば、エンコーダの各層において、以下のような処理が行われます:

1.自己注意機構
-各トークンの表現が、他のトークンとの相関を考慮して更新されます。

2.FFN
-更新されたトークンの表現が、位置ごとに変換され、非線形な特徴が付与されます。

この一連の処理は、デコーダ層においても同様に行われ、自己注意機構に加えてエンコーダからの情報も取り入れられます。

以上が、トランスフォーマーのFFNについての詳細な解説です。FFNは自己注意機構と組み合わせることで、文脈上の正確な特徴抽出と表現の強化を実現しています。