1 ログ損失の概要
1.1 定義と基本的な考え方
1.1.1 予測確率と実ラベルの関係
ログ損失は、モデルが出力する確率(予測確率)と、データに付与された正解ラベル(実ラベル)との食い違いを数値化する。分類では正解に対応する確率が大きいほど小さくなり、正解に対応する確率が小さいほど大きくなる。特に正解に十分な確率を割り当てない予測は強いペナルティを受ける。
1.1.2 負の対数としての意味
予測確率に対して対数をとり、その符号を反転させる形で定義される。確率は0に近づくと対数が非常に負になり、その反転で損失は急増する。したがって、モデルが「ほぼ起きない」とみなしていた事象が正解で現れたとき、損失が大きく跳ね上がる性質がある。
1.2 数学的定式化
1.2.1 二値分類の式
二値分類では、ラベルを実数の集合として \(y\in\{0,1\}\) とし、モデルの予測確率を \(p\in(0,1)\) とする。ログ損失は次式で与えられる。 \[ \mathcal{L}(y,p)=-(y\log p+(1-y)\log(1-p)) \] 正解が1のときは \(-\log p\)、正解が0のときは \(-\log(1-p)\) となる。
1.2.2 多クラス分類の式
多クラス分類では、クラス集合を \(K\) 個とし、正解クラスを \(y\) とする。モデルは各クラスに対して確率 \(\{p_k\}_{k=1}^{K}\) を出力し、正しいクラス \(y\) に対応する確率 \(p_y\) を用いて次式で表される。 \[ \mathcal{L}(y,\mathbf{p})=-\log p_y \] データ集合上では、この損失をサンプルごとに計算し平均する(詳細は後述)。
1.3 典型的な用途
1.3.1 機械学習の学習目的関数
ログ損失は、モデルが出力する確率がデータの発生頻度やラベルの分布をうまく表すように学習する目的関数として用いられる。確率的な説明に基づく最適化のため、確率モデルの学習と整合的であり、尤度最大化に相当する状況が多い。
1.3.2 モデル評価指標としての利用
学習済みモデルの性能評価でも利用される。特に、誤分類の有無だけでなく「どれだけ自信のある確率を出したか」まで反映するため、同程度に誤っている場合でも、誤りに対する確信が大きい予測はより低く評価される。
2 二値分類におけるログ損失
2.1 予測確率の解釈
2.1.1 正例確率のとり方
二値分類では、一般にモデル出力 \(s\) を通して正例(\(y=1\))の確率 \(p\) を得る。典型的にはシグモイド関数で \(p=\sigma(s)=\frac{1}{1+e^{-s}}\) と変換する。こうして得られた \(p\) は、1である確信度として解釈され、損失は \(p\) に直接作用する。
2.1.2 しきい値と損失の違い
しきい値(例:0.5)を用いると、最終的には分類結果が0/1に離散化される。一方ログ損失は連続量である確率を扱うため、同じ最終判定でも確率の度合いで損失が変わる。つまり、境界付近の予測と強い確信を伴う予測は、分類精度が同じでも評価が異なる。
2.2 計算手順
2.2.1 予測確率の算出
実装では、まず各データ点についてモデルの出力(logitなど)から確率 \(p\) を求める。学習時には、これを含めた計算グラフの上で損失を算出し、勾配によりパラメータを更新する。評価時も、同様に確率を得てから損失を計算する。
2.2.2 損失の平均・合計の扱い
サンプル数を \(N\) とすると、全体の損失はしばしば平均 \(\frac{1}{N}\sum_{i=1}^{N}\mathcal{L}(y_i,p_i)\) として扱われる。実装ライブラリによっては合計を返す設定もあるが、学習率やバッチサイズに影響し得るため、比較の際には集計規則を一致させることが重要となる。
2.3 数値安定化
2.3.1 ログの特異点への対処
ログ損失は \(\log 0\) を含むと無限大になる。数値計算では確率が理論上0や1に到達しなくても、丸めの結果として極端な値をとることがあるため、特異点を避ける工夫が必要になる。
2.3.2 確率のクリッピング
よく用いられる方法として、確率を小さな下限 \(\epsilon\) と大きな上限 \(1-\epsilon\) の間に収めるクリッピングがある。例えば \(p\leftarrow \min(\max(p,\epsilon),1-\epsilon)\) としてから \(-\log p\) や \(-\log(1-p)\) を計算する。これにより発散を防ぎつつ、極端な確率が与える過大な罰を有限に保てる。
2.4 例題と直感
2.4.1 自信がある誤りの罰則
正解が1であるのに対し、モデルが \(p=0.01\) のように極端に小さい確率を返した場合、損失は \(-\log(0.01)\) に相当し大きくなる。誤りであることに加えて「誤りである可能性がほぼない」と判断していた点が強く罰せられる。
2.4.2 自信がない予測の影響
正解が1で、モデルが \(p=0.6\) を返している場合と、\(p=0.5\) を返している場合を比べると、前者の損失は小さくなる。完全な正解確率が得られなくても、正しい方向に確率が寄っていることが反映されるため、確率の改善が連続的に損失へ現れる。
3 多クラス分類におけるログ損失
3.1 ソフトマックスと組み合わせ
3.1.1 出力の正規化
多クラスでは生のスコア(logit)から確率への変換にソフトマックスが用いられる。logitを \(s_k\) とすると、確率は \[ p_k=\frac{e^{s_k}}{\sum_{j=1}^{K} e^{s_j}} \] となる。これにより各クラス確率の総和が1になり、ログ損失の前提である確率解釈が成立する。
3.1.2 ラベル形式(one-hot等)
正解ラベルは、クラス番号(例:2)として与えることも、one-hotベクトル(例:3クラスなら [0,0,1])として与えることもある。one-hotのときは、正解クラスの成分だけを取り出した確率に対して \(-\log\) を適用する形に整理されるため、入力表現の違いは実装上のインデックス処理に吸収される。
3.2 マスク・不均衡データへの配慮
3.2.1 サンプル重みの導入
クラス不均衡が大きい場合、全サンプルを同一重みで平均すると支配的なクラスの影響を強く受ける。そこで各サンプルに重み \(w_i\) を掛け、\(\sum_i w_i\mathcal{L}_i/\sum_i w_i\) のように集計することで、重要な事例や少数クラスの寄与を調整する。
3.2.2 無効ラベルの扱い
系列データなどでは、パディング部分や欠損位置が「学習対象外」になることがある。これらはマスクで除外し、無効な位置の損失を計算しないようにする。損失を正しく平均するため、除外後の要素数で割る設計が求められる場合がある。
3.3 損失の比較と解釈
3.3.1 クラス確率の割当ての評価
ログ損失は正解クラスに割り当てた確率 \(p_y\) のみに依存するため、「正解以外の配分が多少崩れているか」は直接評価されにくい。その代わり、正解確率を高める方向で学習が進む性質が明確に出る。
3.3.2 期待値としての意味
データ分布が固定されているとみなすと、損失の平均は「正解ラベルが出現する確率に対する予測の当てはまり」を反映する。したがってモデル間の比較は、単なる誤分類率では捉えられない確率整合性の差として現れることがある。
4 最適化と実装上の論点
4.1 勾配(勾配降下)との関係
4.1.1 直感的な勾配の性質
学習では損失の勾配がパラメータ更新の方向を決める。ログ損失は、正解クラスに対して十分な確率が与えられていないとき、勾配が大きめに働きやすい。これにより、誤りへの修正が優先される傾向がある。
4.1.2 クリップ時の注意点
確率のクリッピングを損失計算の前段に入れると、極端な領域では勾配が鈍る可能性がある。そこで、ログ損失を「logit」から安定に計算する手法(例:内部で安全な計算を行う関数の利用)が選ばれることが多い。実装の選択は、安定性と学習ダイナミクスの両面で影響を与える。
4.2 学習時の実務的な選択
4.2.1 正則化との併用
ログ損失は確率の当てはめを促すが、過学習を抑えるためには正則化を併用することが一般的である。代表例としてL2正則化やドロップアウトがあり、損失に対して追加項を加えることでモデルの複雑さを制御する。
4.2.2 学習率・バッチサイズの影響
ログ損失の値域や勾配の大きさは学習の挙動に影響する。バッチサイズが変わると損失の平均推定の分散が変わり、勾配の揺れ方が変化する。そのため学習率の調整や、安定な正則化・正規化(データやモデル側のスケーリング)との組み合わせが実務上重要になる。
4.3 実装例に見る要点
4.3.1 主要フレームワークでの計算
多くの深層学習フレームワークでは、ログ損失を数値的に安定な内部実装として提供している。典型的には、別途ソフトマックスを計算してから \(-\log\) を取るのではなく、ソフトマックスと対数を一体化した計算(stableな演算)を用いることでオーバーフローやアンダーフローを抑える。
4.3.2 前処理と入力形式の整合
ラベルの型(整数クラス番号か、one-hotか)、出力の次元(バッチ×クラス数)、マスクの適用範囲など、入出力の前処理は損失計算と密接に関係する。整合が崩れると損失の意味が変わるため、学習前にミニバッチで単純な検算(損失が妥当な大きさか、勾配が得られるか)を行う手順が推奨される。
4.4 関連概念との違い
4.4.1 二乗誤差との対比
二乗誤差は回帰でよく使われ、予測値と正解の差を二乗で罰する。一方ログ損失は確率の対数に基づき、確率の相対的なずれを強く反映する。特に確率が小さい領域では、二乗誤差よりも対数ベースの罰が目立ちやすい。
4.4.2 ヒンジ損失などとの比較
ヒンジ損失のような手法は、分類境界のマージンを直接最大化する方向に設計されることが多い。ログ損失は確率推定と相性が良く、確率校正の観点でも解釈しやすい一方で、極端な確率に対する罰が大きくなりやすい。目的が「確率の正確さ」か「境界の分離」かによって選択が分かれることがある。