ニューラルネットワークの出力層と損失関数は、解きたいタスクの種類によって決まるペアです。この項目では、回帰・2値分類・多クラス分類・マルチラベル分類・順序回帰それぞれに対する出力層の設計と損失関数の選び方を学びます。E資格では組み合わせの正誤判定や損失の計算が頻出です。

📖 概要

ネットワークの中間層の設計はタスクによらず共通化できますが、出力層の活性化関数と損失関数はタスクに合わせて選ぶ必要があります。基本の対応関係は「回帰→恒等写像の出力+二乗誤差系」「2値分類→シグモイド+バイナリクロスエントロピー」「多クラス分類→ソフトマックス+クロスエントロピー誤差」です。

この対応は場当たり的なものではなく、出力を確率分布とみなし、その分布のもとでの負の対数尤度を最小化する(最尤推定を行う)という統一的な原理から導かれます。例えば、正規分布を仮定した最尤推定は平均二乗誤差の最小化に、ベルヌーイ分布の仮定はバイナリクロスエントロピーの最小化に一致します。この見方を押さえておくと、各組み合わせを丸暗記ではなく理屈で整理できます。

🔍 キーワード解説

回帰: 平均二乗誤差(MSE)と平均絶対誤差(MAE)

回帰では連続値を予測するため、出力層は活性化関数をかけない(恒等写像の)ユニットとし、誤差の大きさを損失にします。

平均二乗誤差(MSE)MSE = (1/n) Σ (y_i - t_i)^2 で、予測と正解の差の二乗の平均です。微分が容易で最適化しやすい反面、誤差を二乗するため外れ値に敏感です。出力の正規分布を仮定した最尤推定と等価であることが知られています。

平均絶対誤差(MAE)MAE = (1/n) Σ |y_i - t_i| で、差の絶対値の平均です。MSEに比べて外れ値の影響を受けにくい(頑健な)損失ですが、誤差0の点で微分不可能という性質があります。誤差が大きいときはMAE的、小さいときはMSE的に振る舞うHuber損失のような折衷案が使われることもあります。

2値分類: バイナリクロスエントロピー

2値分類では、出力層に1ユニットを置きシグモイド関数で0〜1の値に変換して「正例である確率 p」と解釈します。損失にはバイナリクロスエントロピーを用います。正解ラベルを t(0または1)とすると

L = -( t log p + (1 - t) log(1 - p) )

です。これは出力をベルヌーイ分布のパラメータとみなした負の対数尤度であり、正解が1なのに p が小さい(またはその逆の)とき損失が大きくなります。シグモイドとの組み合わせでは、損失の出力前の値(ロジット)に関する勾配が p - t という簡潔な形になることも重要です。

多クラス分類: ソフトマックス関数・クロスエントロピー誤差・one-hotベクトル

K個のクラスから1つを選ぶ多クラス分類では、出力層にKユニットを置き、ソフトマックス関数で確率分布に変換します。各ロジット z_k に対して

y_k = exp(z_k) / Σ_j exp(z_j)

で、全出力は0〜1の値になり合計は1になります。実装上は、指数関数のオーバーフローを防ぐため各 z_k から最大値を引いてから計算するのが定石です。

正解ラベルはone-hotベクトルで表します。これは正解クラスの要素だけが1で残りが0のベクトル(例: 4クラスをクラス0〜3と数え、クラス2が正解なら [0, 0, 1, 0])です。

損失はクロスエントロピー誤差を用います。one-hot表現の正解 t とソフトマックス出力 y に対して

L = -Σ_k t_k log y_k

であり、t がone-hotなら正解クラスの確率の対数に符号を付けた -log y_correct に一致します。ソフトマックスとクロスエントロピーの組み合わせでも、ロジットに関する勾配は y - t という簡潔な形になります。

マルチラベル分類

マルチラベル分類は、1つの入力に複数のラベルが同時に付きうるタスクです(例: 1枚の画像に「犬」と「屋外」の両方)。クラスどうしが排他的でないため、合計が1になるソフトマックスは不適切です。代わりに、出力層のK個の各ユニットに独立にシグモイド関数を適用し、ラベルごとに「付くか付かないか」の2値分類とみなして、バイナリクロスエントロピーをラベルごとに計算して合計(または平均)します。「多クラス=排他的でソフトマックス、マルチラベル=非排他的でシグモイド」という対比が要点です。

順序回帰

順序回帰(ordinal regression)は、「低・中・高」や5段階評価のように、カテゴリ間に順序があるラベルを予測するタスクです。通常の多クラス分類として扱うと順序の情報が失われ、回帰として扱うとカテゴリ間の間隔が等しいという不適切な仮定を置くことになります。そこで、「レベルk以上か?」という2値分類をレベルごとに並べて解くなど、順序構造を保った定式化が用いられます。分類と回帰の中間に位置するタスクとして、出力層設計の選択肢の一つに位置づけられます。

📝 試験でのポイント

💡 ポイント
  • 「タスク→出力層の活性化関数→損失関数」の対応表(回帰=恒等+MSE/MAE、2値=シグモイド+BCE、多クラス=ソフトマックス+CE、マルチラベル=シグモイド+BCE)の正誤判定は最頻出です
  • ソフトマックスの計算(数値を代入して確率を求める)や、オーバーフロー対策として最大値を引く実装は計算・コード問題で問われます
  • クロスエントロピー誤差にone-hotの正解を代入すると -log(正解クラスの確率) になることを使った計算問題が出ます
  • ソフトマックス+クロスエントロピーの勾配が y - t になる点は、誤差逆伝播の問題と絡めて問われやすいポイントです
  • MSEとMAEの外れ値への感度、多クラスとマルチラベルの違い(排他的かどうか)という対比を明確にしておきましょう

📚 まとめ

出力層と損失関数はタスクで決まるペアであり、回帰にはMSE/MAE、2値分類にはシグモイド+バイナリクロスエントロピー、多クラス分類にはソフトマックス+クロスエントロピー誤差(正解はone-hotベクトル)を用います。マルチラベル分類はラベルごとのシグモイド、順序回帰は順序を保つ定式化を使います。いずれも「出力を確率分布とみなした最尤推定」という統一原理で整理できます。