1 出力層の基本概念

1.1 定義役割

出力層はニューラルネットワークの最終層であり、入力データからネットワークが計算した特徴表現を、外部に解釈可能な形式へ変換する役割を担う。回帰タスクでは実数値、分類タスクではクラス確率など、問題の目的に応じた出力を生成する。出力層の設計はネットワーク全体の出力形式と学習目標を直接決定するため、モデルの性能に決定的な影響を与える。

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

ニューラルネットワークは一般に入力層、隠れ層、出力層の三層構造を持つ。出力層は隠れ層から伝達された高次元の特徴ベクトルを受け取り、最終的な予測値に変換する。誤差逆伝播法においては、損失関数から計算された誤差が最初に出力層に伝わり、そこから隠れ層へと勾配が伝播するため、出力層は学習の出発点としても重要な役割を果たす。

1.3 活性化関数との関係

出力層では適切な活性化関数を選択することで、出力値の範囲や分布を制御する。活性化関数は出力層のニューロンの出力を非線形変換し、タスクに適したスケールや確率解釈を可能にする。例えば、二値分類ではシグモイド関数により出力を0〜1の確率に拘束し、多クラス分類ではソフトマックス関数により全クラスの確率を総和1に正規化する。

2 活性化関数の種類と用途

2.1 線形活性化関数

線形活性化関数は入力値をそのまま出力する関数(恒等写像)であり、回帰タスクの出力層でよく用いられる。出力に制約がなく、任意の実数値を表現できる。ただし、隠れ層で線形関数を使うとネットワーク全体が線形モデル等価になるため、出力層でのみ使用される。

2.2 シグモイド関数

シグモイド関数はS字型の非線形関数で、出力を(0, 1)の範囲に圧縮する。数式では σ(x)=1/(1+e^{-x}) と表される。出力を確率として解釈できるため、二値分類問題の出力層に広く利用される。

2.2.1 二値分類への適用

二値分類では出力層のニューロンを1つとし、シグモイド関数を適用する。出力値pはクラス1に属する確率を表し、1-pがクラス0の確率となる。通常、閾値0.5でクラス判定を行うが、問題に応じて調整される。

2.3 ソフトマックス関数

ソフトマックス関数は多クラス分類の出力層で標準的に使用される活性化関数である。入力ベクトルの各要素を指数関数で変換し、全要素の和で割ることで、出力ベクトルの各要素が(0,1)かつ総和が1の確率分布となる。

2.3.1 多クラス分類への適用

ソフトマックス関数はKクラス分類問題の出力層に配置され、K個のニューロンで構成される。各ニューロンは対応するクラスの予測確率を出力し、最大値を持つクラスを最終的な分類結果とする。

2.3.1.1 確率出力の解釈
ソフトマックス出力は条件付き確率 P(クラスk入力) と解釈できる。ただし、ネットワークが過学習している場合やデータ分布訓練データと異なる場合、確率値が過信される傾向があるため、キャリブレーション手法が併用されることもある。

2.4 その他の活性化関数(tanh、ReLUの特殊ケース)

tanh関数は出力を(-1,1)に圧縮するが、出力層では回帰や特定の埋め込みタスク以外ではあまり使われない。ReLU(正規化線形関数)は隠れ層では一般的だが、出力層では正の実数に制限されるため、回帰でも使用可能だが、出力が0未満にならない場合に限定される。出力層ではタスクに合わせた専用関数の使用が推奨される。

3 タスク別の出力層設計

3.1 回帰タスク

回帰タスクでは、出力層のニューロン数は予測したい変数の次元数に等しい。活性化関数には線形関数(恒等写像)を用いることが一般的で、出力値に上下限制約を設けない。損失関数には平均二乗誤差(MSE)や平均絶対誤差(MAE)が使用される。

3.1.1 出力数と誤差関数の設計

出力数は回帰の目的変数の数に一致させる。単変量回帰なら1ニューロン、多変量回帰なら複数ニューロンとなる。誤差関数は各出力次元の誤差を統合する形で設計され、MSEの場合は全次元の二乗誤差の平均が計算される。

3.2 二値分類タスク

二値分類では出力層に1ニューロンを配置し、シグモイド活性化関数を適用する。損失関数にはバイナリクロスエントロピーを用いる。ネットワークは入力が正クラス(クラス1)である確率を出力する。

3.2.1 出力層の解釈と閾値設定

出力値p∈(0,1)を確率と解釈し、通常は0.5を閾値としてクラス判定を行う。ただし、クラス不均衡が大きい場合や誤分類コストが非対称な場合は、閾値を調整することでF値やコストを最適化できる。

3.3 多クラス分類タスク

多クラス分類では出力層のニューロン数をクラス数Kに設定し、ソフトマックス活性化関数を用いる。各ニューロンの出力は対応するクラスの確率を表し、全出力の和は1となる。損失関数にはカテゴリカルクロスエントロピーを標準的に使用する。

3.3.1 クロスエントロピー損失との連携

ソフトマックス関数とカテゴリカルクロスエントロピー損失は数値的に安定な組み合わせであり、出力層の勾配は (予測確率 - 正解ラベルのワンホットベクトル) という形で簡単に計算できる。この性質により、勾配消失が起こりにくく学習が効率的に進む。

3.4 マルチラベル分類タスク

マルチラベル分類では各サンプルが複数のクラスに属することが許される。出力層にはクラス数と同じ数のニューロンを配置し、各ニューロンに独立にシグモイド活性化関数を適用する。損失関数にはバイナリクロスエントロピーの合計(または平均)を用いる。

3.4.1 独立したシグモイド出力の利用

各ニューロンはクラスごとに独立した確率を出力するため、出力の総和が1になるとは限らない。各クラスの閾値(通常0.5)を超えたものを正と判定する。この設計により、同一入力に対して複数のクラスが活性化することを表現できる。

4 出力層の実装と訓練

4.1 初期化手法とその影響

出力層の重みとバイアスの初期化は訓練の安定性に影響する。回帰や二値分類では小さなランダム値(例:Xavier初期化やHe初期化)が使われる。多クラス分類のソフトマックス層では、バイアスを0、重みを小さな値に初期化しないと、出力確率が極端になり学習初期に勾配が不安定になることがある。

4.2 損失関数との結合

出力層は損失関数と密接に結合して訓練される。誤差逆伝播法では、損失関数の出力層の活性化に対する微分が勾配計算の起点となる。

4.2.1 カテゴリカルクロスエントロピー

多クラス分類でソフトマックス出力との組み合わせに用いる。損失関数 L = -Σ y_i log(p_i) で表され、y_iは正解ラベルのワンホット表現、p_iはソフトマックスの出力確率である。

4.2.2 バイナリクロスエントロピー

二値分類およびマルチラベル分類でシグモイド出力と組み合わせる。損失関数 L = -[y log(p) + (1-y) log(1-p)] で定義され、出力が確率解釈可能な場合に適している。

4.2.3 平均二乗誤差

回帰タスクで線形出力と組み合わせる。損失関数 L = (1/N) Σ (y_i - p_i)^2 で表され、出力の値と正解値のユークリッド距離を最小化する。

4.3 勾配降下法における出力層の勾配計算

出力層の重みに関する勾配は、損失関数の出力活性化に対する勾配と、活性化関数の微分、および入力の積で計算される。この計算は誤差逆伝播法の最終段階として位置づけられる。

4.3.1 バックプロパゲーションの最終段階

バックプロパゲーションでは、損失関数の出力層の出力に対する勾配(δ_L)をまず計算する。次に、活性化関数の導関数を乗じて出力層のニューロンの活性化前の勾配(δ_a)を得る。最後に、この勾配と出力層への入力ベクトルから重みの勾配が算出される。出力層の勾配計算が正確であることは、誤差が隠れ層に正しく伝播するための前提条件である。

5 出力層の応用と発展

5.1 転移学習における出力層の再利用

転移学習では、大規模データで事前学習済みのモデルから出力層を除去し、新しいタスク用の出力層に置き換える。元の出力層はタスク固有のためそのままでは使えず、新しい出力層のみを訓練するか、全体を微調整する。出力層の設計が新しいタスクの性質に合致しているか確認することが重要である。

5.2 カスタム出力層の設計例

汎用的な活性化関数では対応できない特殊なタスク(例:物体検出におけるバウンディングボックス出力、音声生成における波形出力)では、カスタム出力層が設計される。出力形式に合わせた活性化関数や損失関数の組み合わせが検討される。

5.2.1 画像認識におけるソフトマックス層

画像分類の標準的なCNNモデルでは、全結合層の後にソフトマックス層を配置する。近年では全結合層の代わりにグローバルアベレージプーリングを用いる手法もあり、その後にソフトマックス層を直接接続することでパラメータ数を削減し、過学習を抑制する。

5.2.2 自然言語処理における系列出力

系列生成(機械翻訳、テキスト生成など)では、出力層が各タイムステップで語彙全体に対する確率分布を出力する。活性化関数にはソフトマックスを用い、損失関数にはカテゴリカルクロスエントロピーを適用する。大規模語彙では計算コストが高くなるため、階層的ソフトマックスやビームサーチなどの工夫が導入される。