1 基本概念

1.1 定義役割

全結合層とは、ニューラルネットワークの構成要素の一つであり、前層のすべてのニューロンが次層のすべてのニューロンと個別に結合される層構造である。層内の各ニューロンは入力ベクトルの全要素に対して線形変換重み付き和とバイアス加算)を施した後、活性化関数を適用して非線形性を導入する。その主な役割は、入力特徴の高次元空間への写像、特徴の組み合わせ、および最終的な予測出力の生成である。多層パーセプトロン畳み込みニューラルネットワークの最終段、Transformerモデルのフィードフォワード部分など、多様なアーキテクチャで中核的な役割を担う。

1.2 他の層との違い

1.2.1 畳み込み層との比較

畳み込み層は局所受容野と重み共有により空間的な局所パターンを抽出するのに対し、全結合層は全入力要素を考慮して大域的な特徴関係を学習する。畳み込み層がパラメータ数が少なく位置不変性を持つ一方、全結合層は入力サイズに応じてパラメータ数が急増する。

1.2.2 再帰層との比較

再帰層は時系列データの順序依存性をモデル化するため内部状態と時間方向の重みを持つが、全結合層は入力を独立に一度に変換する静的構造である。再帰層が長期依存性の学習に勾配消失問題を抱えるのに対し、全結合層は時間的構造を持たず、系列情報を扱うには入力のフラット化が必要となる。

2 数学的定式化

2.1 線形変換

2.1.1 重み行列とバイアスベクトル

入力ベクトルx∈R^mに対し、全結合層の出力ベクトルy∈R^nはy=Wx+bで表される。ここでW∈R^{n×m}は重み行列であり、各出力ニューロンはm個の入力すべてに個別の重みを持つ。b∈R^nはバイアスベクトルであり、各ニューロン固有のオフセットを提供する。学習過程では、これらのパラメータが誤差逆伝播法により更新される。

2.1.2 バッチ処理におけるテンソル演算

バッチサイズBのミニバッチ入力X∈R^{B×m}に対して、全結合層の出力Y∈R^{B×n}はY=XW^T+b(ブロードキャスト加算)で計算される。このテンソル演算は行列積として効率的に実装され、GPUなどの並列計算ハードウェアで高速処理される。

2.2 活性化関数

2.2.1 シグモイドとTanh

シグモイド関数σ(z)=1/(1+e^{-z})は出力を(0,1)範囲に制限するため確率解釈に適するが、勾配消失が深刻である。Tanh関数tanh(z)=(e^z-e^{-z})/(e^z+e^{-z})は出力を(-1,1)に制限し、ゼロ中心である点でシグモイドより優れるが、やはり飽和領域での勾配消失が問題となる。

2.2.2 ReLUとその変種

ReLU活性化関数f(z)=max(0,z)は正領域で線形、負領域でゼロを出力し、勾配消失を緩和してスパース性を促進する。変種には負領域に小さな勾配を許容するLeaky ReLU、パラメータ化されたPReLU指数関数を用いたELUなどがあり、ReLUの「死滅ニューロン」問題を改善する。

3 ニューラルネットワークにおける配置

3.1 隠れ層としての利用

隠れ層として全結合層を積み重ねることで、多層パーセプトロンは任意の連続関数を近似する万能近似能力を得る。各隠れ層は入力特徴の非線形変換を繰り返し、抽象度の高い表現を学習する。層の幅(ニューロン数)と深さはモデルの容量を決定する主要なハイパーパラメータであり、タスクの複雑さに応じて調整される。

3.2 出力層としての利用

3.2.1 回帰タスクにおける線形活性化

回帰問題では、出力層に恒等写像(線形活性化)を用いる。層の出力はy=Wx+bそのままであり、出力値に範囲制限がないため、連続値の予測に適する。損失関数には平均二乗誤差が一般的に使用される。

3.2.2 分類タスクにおけるソフトマックス

多クラス分類では、出力層にソフトマックス関数softmax(z_i)=e^{z_i}/∑_j e^{z_j}を適用する。これにより出力ベクトルの各要素が(0,1)の確率値に変換され、全クラスの合計が1となる。損失関数には交差エントロピー誤差が用いられ、モデルは真のクラスに高い確率を割り当てるように学習する。

4 学習と最適化

4.1 パラメータ数と勾配計算

m次元入力、n次元出力の全結合層のパラメータ数は重み行列のm×n個とバイアスベクトルのn個で合計(m+1)×n個である。勾配計算では、誤差逆伝播法により損失関数の重みとバイアスに対する偏微分を計算し、確率的勾配降下法などの最適化アルゴリズムでパラメータを更新する。バッチ演算により勾配の計算も効率化される。

4.2 初期化手法

4.2.1 Xavier初期化

Xavier初期化(Glorot初期化)は、入出力のニューロン数に基づいて重みを一様分布U(-√(6/(n_in+n_out)), √(6/(n_in+n_out)))または正規分布N(0, √(2/(n_in+n_out)))からサンプリングする。シグモイドやTanhなどの飽和型活性化関数に対して、信号の分散を層間で保つのに有効である。

4.2.2 He初期化

He初期化(Kaiming初期化)はReLU系の活性化関数向けに設計され、重みをN(0, √(2/n_in))の正規分布からサンプリングする。ReLUが負の出力をゼロにする性質を考慮し、入力の分散を適切に維持する。

4.3 過学習対策

4.3.1 ドロップアウト

ドロップアウトは訓練時に各ニューロンを確率pでランダムに無効化する正則化手法である。これによりニューロン間の共適応を防ぎ、アンサンブル効果を得る。テスト時には全ニューロンを使用し、出力を(1-p)倍にスケーリングするか、訓練時に出力を1/(1-p)倍して逆ドロップアウトを適用する。

4.3.2 L1/L2正則化

L2正則化(リッジ回帰)は損失関数に重みの二乗和λ∑w^2を追加し、重みを減衰させる。L1正則化(ラッソ回帰)は重みの絶対値和λ∑wを追加し、スパースな重みを促進する。両者は過学習を抑制し、モデルの一般化性能を向上させる。正則化係数λはハイパーパラメータとして調整される。

5 限界と改良手法

5.1 パラメータ爆発問題

全結合層は入力と出力の次元が大きくなるとパラメータ数が急激に増加する。例えば、1000次元入力を1000次元出力に変換する層は100万個の重みパラメータを持つ。これによりメモリ消費の増大、計算コストの上昇、過学習リスクの高まりが生じる。特に高解像度画像や大語彙の自然言語処理では深刻な問題となる。

5.2 近似手法

5.2.1 低ランク近似

重み行列Wを低ランク分解、すなわちW≈UV(U∈R^{n×r}, V∈R^{r×m}, r≪min(m,n))で近似することでパラメータ数を削減する。これにより元の(m×n)個からr×(m+n)個に減少し、計算量も低減する。モデル圧縮や高速化の有効な手法である。

5.2.2 スパース全結合層

重み行列の大部分を強制的にゼロにするスパース化により、パラメータ数を削減する。訓練後に重要度の低い重みを刈り込むプルーニングや、学習中にスパース構造を強制する手法がある。計算にはスパース行列演算ライブラリを利用し、メモリ効率と推論速度を向上させる。