前馈网络(Feedforward Neural Network)は、ニューラルネットワークの最も基本的なアーキテクチャの一つである。情報入力層から隠れ層を経由して出力層へと一方向にのみ流れ、再帰的な結合やフィードバックループを持たない。各層のニューロンは前の層の出力のみを受け取り、関数近似器として機能する。活性化関数による非線形変換を通じて、画像認識、音声処理自然言語処理など多様なタスクに応用される。学習には誤差逆伝播法勾配降下法が一般的に用いられる。

1.1 ニューラルネットワークにおける位置づけ

前馈ネットワークは、再帰型ニューラルネットワーク(RNN)や畳み込みニューラルネットワーク(CNN)など他のアーキテクチャと比較して、構造が最も単純で解析が容易である。時系列データや空間構造を持つデータには適さないが、固定長の入力と出力を持つ問題において基本的な構成要素として広く利用される。多層パーセプトロンMLP)はその代表例であり、深層学習の基礎をなす。

1.2 情報の一方向流れの原理

情報が循環せず一方向に流れることにより、ネットワークは純粋な関数写像として振る舞う。各層の計算は前の層にのみ依存し、因果関係が明確である。この性質は誤差逆伝播法による勾配計算を効率的にし、学習の安定性を高める。ただし、動的な挙動や長期依存性の学習は不可能であるため、適用範囲は静的なパターン認識や関数近似に限られる。

前馈ネットワークは、入力層、一つ以上の隠れ層、出力層の三種類の層から構成される。各層は複数のニューロン(ユニット)を持ち、隣接層間は全結合(密結合)されることが多い。

2.1 入力層

入力層は外部からデータを受け取る最初の層である。各ニューロンは入力ベクトルの一つの特徴に対応し、生のデータをそのまま次の層に渡す。通常、活性化関数は適用されず、単に値を中継する役割を担う。入力層のニューロン数はデータの次元数に等しい。

2.2 隠れ層

隠れ層は入力層と出力層の間に位置し、非線形変換を担う層である。層数は任意に設定でき、深いネットワークほど複雑な表現が可能となる。各ニューロンは前層のすべての出力を受け取り、重み付き和を計算した後、活性化関数を適用して出力を生成する。

2.2.1 ニューロンと重み

各ニューロンは前層の出力に重みを乗じて総和を取る。重みは学習によって調整されるパラメータであり、入力の重要度を決定する。複数のニューロンが並列に配置されることで、特徴空間の異なる方向を捉えることができる。

2.2.2 バイアス

バイアス項は各ニューロンに付加される定数パラメータであり、重み付き和に加算される。活性化関数のしきい値を調整する役割を持ち、ネットワークの表現力を高める。バイアスがない場合、活性化関数の出力が原点を通る制約が生じるが、バイアスを加えることで任意のオフセットを学習可能となる。

2.3 出力層

出力層はネットワークの最終的な予測を生成する層である。ニューロン数と活性化関数はタスクに応じて選択される。回帰問題では線形活性化(恒等関数)を用い、二値分類ではシグモイド関数、多クラス分類ではソフトマックス関数が一般的である。損失関数に応じて出力形式が決定される。

活性化関数はニューロンの出力に非線形性を導入する重要な要素である。線形変換だけでは多層化の意味が失われるため、非線形活性化が必要不可欠である。

3.1 シグモイド関数

シグモイド関数は出力を0から1の間に押し込むS字型の関数である。確率として解釈しやすく、二値分類の出力層でよく用いられる。しかし、入力が極端な値になると勾配がほぼ0になり、勾配消失問題を引き起こしやすいため、近年の深層学習では隠れ層での使用は減少している。

3.2 正規化線形関数(ReLU)

ReLU(Rectified Linear Unit)は入力が正のときはそのまま出力し、負のときは0とする関数である。計算が単純で勾配消失が起こりにくく、スパースな表現を促す。深層ネットワークで広く採用されているが、負の領域で勾配が0になる「死んだReLU」問題も存在する。

3.3 ソフトマックス関数

ソフトマックス関数は多クラス分類の出力層で使用され、ベクトルの各要素を非負かつ合計1に正規化する。これにより出力を確率分布として解釈できる。温度パラメータによる調整や、交差エントロピー損失との親和性が高い。

前馈ネットワークの学習は、損失関数を最小化するように重みとバイアスを調整する過程である。代表的な手法として誤差逆伝播法と勾配降下法がある。

4.1 誤差逆伝播法

誤差逆伝播法(バックプロパゲーション)は、出力層の誤差を各層へ逆方向に伝播させ、損失関数に対する各パラメータの勾配を効率的に計算するアルゴリズムである。連鎖律を基盤とし、計算グラフ上で微分を実行する。

4.1.1 損失関数の定義

損失関数はネットワークの予測と真の値との不一致を定量化する。回帰では平均二乗誤差(MSE)、分類ではクロスエントロピー損失が一般的である。損失関数の選択はタスクと出力層の活性化関数に依存する。

4.1.2 勾配の計算

各層の勾配は、連鎖律を用いて出力側から順に計算される。まず損失関数の出力層による微分を求め、それを前の層へと逆向きに伝播させる。具体的には、各ニューロンの活性化前の値に対する損失の偏微分を計算し、そこから重みとバイアスの勾配を導出する。

4.2 勾配降下法

勾配降下法は、計算された勾配に基づいてパラメータを更新する最適化手法である。学習率と呼ばれるステップサイズを乗じてパラメータを損失関数の減少方向に移動させる。

4.2.1 確率的勾配降下法(SGD)

SGDは各訓練サンプルごとに勾配を計算しパラメータを更新する。計算コストが低く、局所的最適解から抜け出しやすいが、勾配の分散が大きく収束が不安定になることがある。

4.2.2 ミニバッチ勾配降下法

ミニバッチ勾配降下法は、少数のサンプルからなるミニバッチ単位で勾配を計算し更新する。バッチ勾配降下法とSGDの中間的な手法で、計算効率と収束安定性のバランスが取れている。深層学習で最も一般的な最適化手法である。

前馈ネットワークには様々な派生形が存在する。基本構造を拡張することで、特定のタスクに特化した性能が発揮される。

5.1 多層パーセプトロン(MLP)

MLPは少なくとも一つの隠れ層を持つ前馈ネットワークの標準的な形態である。ユニバーサル近似定理により、適切な幅と深さがあれば任意の連続関数を近似できることが知られている。シンプルながら強力なモデルであり、多くの応用で基盤として利用される。

5.2 畳み込みニューラルネットワークとの関係

CNNは前馈ネットワークの一種であり、畳み込み層とプーリング層を用いて局所受容野と重み共有の性質を導入したものである。画像のような空間構造を持つデータに対して高い性能を発揮する。通常の前馈ネットワークが全結合であるのに対し、CNNは結合数を大幅に削減している。

5.3 深層前馈ネットワーク

層数を増やした深い前馈ネットワークは、階層的な特徴表現を学習できる。しかし、勾配消失や過学習の問題が顕著になるため、残差接続(ResNet)やバッチ正規化などの工夫が施される。深層化により表現力が向上し、大規模データセットでの精度が飛躍的に高まった。

前馈ネットワークはその汎用性から多岐にわたる分野で応用されている。基本的な機械学習タスクの多くに適用可能である。

6.1 パターン認識

画像内の物体認識や音声の話者識別など、入力パターンを識別するタスクに用いられる。隠れ層が特徴を抽出し、出力層でクラスを判別する。単純なパターンから複雑なパターンまで対応可能である。

6.2 回帰問題

住宅価格予測や気温予測など、連続値を出力する問題に適用される。出力層の活性化関数を線形にし、損失関数に平均二乗誤差を用いる。入力と出力の間の非線形関係を学習できる。

6.3 分類タスク

二値分類や多クラス分類などの離散的なラベル予測に利用される。出力層にシグモイドやソフトマックスを用い、クロスエントロピー損失で学習する。手書き数字認識(MNIST)や文書分類などの古典的な例が挙げられる。

前馈ネットワークにはいくつかの本質的な限界が存在し、それらを克服するための改良手法が研究されている。

7.1 勾配消失問題

深いネットワークほど逆伝播時の勾配が指数関数的に減衰し、初期層の学習が進まなくなる問題である。シグモイドやtanhなどの飽和型活性化関数が原因となる。ReLUや勾配クリッピング、適切な初期化法(He初期化など)によって緩和される。

7.2 過学習対策(ドロップアウト、正則化)

訓練データへの過適合を防ぐため、ドロップアウトは訓練時にランダムにニューロンを無効化し、アンサンブル効果を生む。L1/L2正則化は重みの大きさにペナルティを課すことでモデルの複雑さを抑制する。その他、データ拡張や早期停止なども有効である。

7.3 深層学習への展開

前馈ネットワークを深層化する過程で、残差接続(スキップ接続)やバッチ正規化、学習率スケジューリングなどの技術が開発された。これにより100層を超えるネットワークの学習が可能となり、画像認識や自然言語処理で大きな成功を収めた。前馈構造は深層学習の基盤として現在も進化を続けている。