機械学習ではなぜlogを取るのか:五つの理由を整理する コピー
ロス関数とは何か:情報量からクロスエントロピー誤差までを順を追って理解する
こんにちは。ゆうせいです。
ニューラルネットワークが学習するとき、その裏側では必ずロス関数というものが働いています。しかし、代表的なロス関数であるクロスエントロピー誤差の式を初めて見ると、対数が並んでいて、なぜこの形なのかが分かりません。実は、この式は情報量という概念から段階的に組み立てられたものです。情報量、エントロピー、クロスエントロピーという順にたどっていけば、なぜこの形が損失として使われるのかが、無理なく理解できます。本記事では、ロス関数に求められる性質から出発し、情報量の定義を経て、クロスエントロピー誤差にたどり着くまでを解説します。
ロス関数とは何か
学習とは何をしているのか
まず、ニューラルネットワークの学習とは何かを確認します。
学習とは、ネットワークを構成するパラメータを調整して、最も正解が得られやすい状態にすることです。
ここでいうパラメータとは、たとえば全結合層であれば、入力ノードと出力ノードを結ぶ重み行列の、一つひとつの値です。
尺度がなければ最適化できない
ここで、一つ問題が生じます。
「最も正解が得られやすいようにする」ためには、「今どれくらい正解が得られているか」を測る尺度が必要です。
尺度がなければ、パラメータをどちらに動かせばよいかも判断できません。
この尺度を提供するのが、ロス関数です。損失関数、誤差関数とも呼ばれます。
ロス関数の役割
ロス関数は、ニューラルネットワークが入力に対して予測した出力を、正解と比較します。
そして、どれだけ損をしたか、どれだけまずい予測だったかを、一つの数値として弾き出します。
学習とは、このロス関数の値がより小さくなるように、パラメータを調整していく処理です。
ロス関数に望まれる二つの性質
どんな関数でもロス関数として使えるわけではありません。次の二つの性質が求められます。
性質1:常に正であること
ロス関数の値は、常に0以上でなければなりません。
理由は、最適化の処理を起動するためです。
常に正であれば、「この値をできるだけ0に近づける」という、明確な目標が立てられます。
もし負の値も取り得るなら、どこまで小さくすればよいのかが定まりません。無限にマイナスへ向かってしまいます。
性質2:正解から遠いほど大きく、近いほど小さいこと
出力が正解から遠いときは、損の度合いが大きいということですから、ロス関数の値も大きくなるべきです。
逆に、出力が正解に近いときは、値が小さくなるべきです。
この対応があって初めて、「値を小さくする」という操作が「正解に近づける」という意味を持ちます。
この二つの性質を満たす関数が、ロス関数の候補になります。
情報量という考え方
ここから、クロスエントロピー誤差を理解するための道具立てを整えます。まず、情報量から始めます。
定義
ある事象が起こる確率をPとするとき、その事象が持つ情報量は、次のように定義されます。
Pの対数を取って、マイナスをつけたものです。
高校数学で習った対数を思い出してください。底が2の対数は、「2を何乗したらその数になるか」を表します。
コインの例で確認する
コインを投げたとき、表が出る確率は です。
情報量を計算します。
情報量は1になりました。
なぜこれが「情報量」なのか
ここで、興味深い対応があります。
コインの裏表は、1ビットで表現できます。0を表、1を裏と決めれば、1ビットで裏表が特定できるからです。
計算した情報量も1でした。
つまり、情報量とは、何ビットあればその事象を特定したり表現したりできるか、という量なのです。
他の例で確認する
いくつか計算してみます。
トランプのマークは、スペード、ハート、ダイヤ、クラブの4種類です。特定のマークが出る確率は です。
情報量は2ビットです。4種類を区別するには、2ビット必要です。00、01、10、11の4通りで表せます。
方角を8つに分けた場合、特定の方角の確率は です。
情報量は3ビットです。8種類を区別するには、3ビット必要です。
情報量が表す意味
これらの例から、次の関係が読み取れます。
起こる確率が低い事象ほど、情報量が大きくなります。
直感的にも理解できます。「明日は晴れです」という、よくある出来事の知らせより、「明日は雪が降ります」という、めったにない出来事の知らせのほうが、多くの情報を含んでいると感じられます。
より詳しい情報であるほど、情報量が多い。この対応が、定義に組み込まれています。
エントロピー:情報量の平均
平均を考える理由
ここまでは、一つの事象について情報量を考えてきました。
次に、ある確率分布に含まれる、すべての事象についての情報量の平均を考えます。
なぜ平均を考えるのでしょうか。
それぞれの事象は、それぞれ異なる確率を持っているかもしれないからです。天気であれば、晴れの確率が高く、雪の確率が低い、といった具合です。
このような場合、単純に情報量を足して個数で割るのでは、実態を表しません。
確率で重み付けする
そこで、それぞれの情報量を、その事象が起こる確率で重み付けして足し合わせます。
これを平均情報量、別名エントロピーと呼びます。
起こりやすい事象の情報量には大きな重みがかかり、起こりにくい事象の情報量には小さな重みがかかります。
具体例で確認する
コインの裏表について計算します。表も裏も確率は です。
エントロピーは1です。
トランプのマークであれば、4つの事象それぞれが確率 ですから、エントロピーは2になります。
8つの方角であれば、エントロピーは3です。
いずれも、情報量と同じ値になりました。すべての事象が同じ確率を持つ場合、平均を取っても値は変わらないためです。
クロスエントロピー:二つの分布を比べる
エントロピーとの違い
エントロピーは、一つの確率分布について、情報量の平均を取ったものでした。
ここからが、クロスエントロピーの発想です。
今度は、二つの確率分布を考えます。
そして、平均を取るときの重み付けは、一方の分布から取ってきます。
一方、情報量の計算に使う確率は、もう一方の分布から取ってきます。
定義
式で書くと、次のようになります。
が重み付けに使う確率、
が情報量の計算に使う確率です。
これを交差平均情報量、あるいはクロスエントロピーと呼びます。
「交差」という言葉は、二つの分布が交差して使われていることを表しています。
二つの分布の違いを測る尺度になる
クロスエントロピーは、二つの確率分布がどれだけ違うかを測る尺度としても機能します。
二つの分布が一致していれば、クロスエントロピーは小さくなります。
大きく異なっていれば、クロスエントロピーは大きくなります。
ロス関数としてのクロスエントロピー
何を代入するか
ここで、機械学習の話に戻ります。
重み付けに使う確率として、正解ラベルを代入します。
情報量の計算に使う確率として、ニューラルネットワークの予測結果を代入します。
この組み合わせにより、次のことが言えます。
クロスエントロピーは、常に正になります。
予測結果の確率が正解と異なるほど、クロスエントロピーは大きくなります。
予測結果が正解に近いほど、クロスエントロピーは小さくなります。
ロス関数に求められた性質と一致する
冒頭で挙げた、ロス関数に望まれる二つの性質を思い出してください。
常に正であること。正解から遠いほど大きく、近いほど小さいこと。
クロスエントロピーは、この両方を満たしています。
つまり、クロスエントロピーは、まさにロス関数として望まれる性質を持っているのです。
これが、クロスエントロピー誤差が損失関数として広く使われている理由です。
二値問題で具体的に見る
ここまでの内容を、より具体的に確認します。話を単純にするため、二値問題に限定します。
正解ラベルは1か0
二値問題では、正解ラベルは1か0のどちらかです。
式の は、1か0の値しか取りません。
式が単純になる
が0であれば、その項は0になり、消えてしまいます。
したがって、実際に残るのは、正解ラベルが1である項だけです。
つまり、クロスエントロピー誤差とは、正解ラベルが1のときの予測出力値の対数を足し込むだけの、単純な形になります。
グラフで確認する
のグラフを考えます。
横軸が予測出力 、縦軸がロス
です。
まず、値が常に正であることが確認できます。 が0から1の範囲にある限り、
は必ず0以上になります。
次に、 が正解である1に近いほど、値が小さくなります。
のとき、
となり、ロスはちょうど0です。
そして、 が正解から遠いほど、値が大きくなります。

数値で確認する
具体的な値を見てみます。
| 予測出力 y | ロス −log y | 状態 |
|---|---|---|
| 0.99 | 約0.010 | ほぼ正解 |
| 0.9 | 約0.105 | 自信を持って正解 |
| 0.5 | 約0.693 | 迷っている |
| 0.1 | 約2.303 | 外している |
| 0.01 | 約4.605 | 自信を持って誤り |
| 0.001 | 約6.908 | 確信を持って大きく誤り |
この形が優れている理由
この数値の並びには、学習を進めるうえで、二つの重要な意味があります。
意味1:間違えたときは大いに学習させる
予測出力が正解から遠ければ遠いほど、ロスの値はとても大きくなります。
が0.1から0.01へ、さらに0.001へと小さくなると、ロスは2.3、4.6、6.9と、急激に増えていきます。
これは、間違えたときにペナルティを大きく与えていることに対応します。
ペナルティが大きければ、パラメータの修正も大きくなります。つまり、間違えたときには大いに学習させる、という設計になっているのです。
意味2:正解に近づいたら慎重に探す
一方、正解に近づくにつれて、値の変化はゆるやかになります。
が0.9から0.99へ変わっても、ロスは0.105から0.010へ、わずかに減るだけです。
これは、慎重に最適点を探していることに対応します。
すでにほぼ正解している状態で、パラメータを大きく動かしてしまえば、かえって悪化します。変化をゆるやかにすることで、細かな調整が可能になります。
二つの意味をまとめると
大きく外しているときは大胆に、正解に近いときは慎重に。
この使い分けが、対数という関数の形によって、自動的に実現されています。
このような性質があるため、クロスエントロピーはロス関数として好まれているのです。
初学者がつまずきやすい点
つまずき1:なぜマイナスがつくのか
情報量の定義には、マイナスがついています。
理由は、確率が0から1の範囲にあるためです。
この範囲では、対数は必ず0以下になります。 、
といった具合です。
情報量は、負の値では扱いにくいものです。そこでマイナスをつけて、正の値にしています。
つまずき2:対数の底の違いを気にしすぎる
情報量の説明では、底が2の対数を使いました。ビットという単位に対応するためです。
一方、機械学習の実装では、自然対数がよく使われます。
底が違っても、値が定数倍だけ変わるだけです。損失を最小化するという目的では、最小値を取る位置が変わらないため、影響はありません。
つまずき3:正解以外のクラスの予測値も影響すると思う
二値問題の説明で見たとおり、正解ラベルが0であるクラスの項は、掛け算によって消えてしまいます。
したがって、クロスエントロピー誤差の値そのものには、正解以外のクラスの予測確率は直接影響しません。
ただし、実際には、予測確率はソフトマックス関数などによって合計が1になるよう作られています。したがって、他のクラスの確率が高ければ、正解クラスの確率は自動的に低くなります。間接的には影響している、という理解が正確です。
理解度を確認する問い
次の問いで、理解を確認してみてください。
ロス関数に求められる二つの性質を挙げ、それぞれがなぜ必要なのかを説明してみてください。
サイコロを1回振って特定の目が出る事象の情報量は、何ビットになるでしょうか。
エントロピーとクロスエントロピーの違いを、使われる確率分布の数という観点から説明してみてください。
クロスエントロピー誤差が、間違えたときには大きなペナルティを与え、正解に近いときには変化がゆるやかになるのは、なぜでしょうか。
まとめ
ロス関数とは、ニューラルネットワークの予測を正解と比較し、どれだけまずい予測だったかを一つの数値として表すものです。学習とは、このロス関数の値がより小さくなるよう、パラメータを調整していく処理です。
ロス関数に求められる性質は二つあります。常に正であること。そして、正解から遠いほど大きく、近いほど小さくなることです。
代表的なロス関数であるクロスエントロピー誤差は、情報量という概念から組み立てられています。
情報量とは、ある事象が起こる確率の対数を取ってマイナスにしたものであり、その事象を何ビットで表現できるかという量に対応します。コインの裏表は1ビット、トランプのマークは2ビット、8方角は3ビットです。
ある確率分布に含まれるすべての事象について、確率で重み付けした情報量の平均を取ったものが、エントロピーです。
二つの確率分布を用い、重み付けは一方から、情報量の計算はもう一方から取ってきたものが、クロスエントロピーです。二つの分布の違いを測る尺度としても機能します。
重み付けに正解ラベルを、情報量の計算にニューラルネットワークの予測結果を代入すると、常に正であり、予測が正解から離れるほど大きくなるという、ロス関数に望まれる性質がそのまま得られます。
二値問題では、正解ラベルが1か0であるため、式は正解クラスの予測値の対数を取るだけの単純な形になります。予測が大きく外れているときはロスが急激に大きくなり、間違えたときに大いに学習させる働きをします。一方、正解に近づくと変化がゆるやかになり、慎重に最適点を探す働きをします。
次の学習ステップとして、まずは表計算ソフトや簡単なプログラムで、予測出力を0.001から0.999まで変化させながら、ロスの値がどう変わるかを計算してみてください。そのうえで、そのグラフを描いてみると、間違えたときの急峻さと、正解付近でのゆるやかさが、目で見て理解できるようになります。さらに、多クラス分類の場合について、正解以外の項が消える様子を式の上で追ってみると、二値問題との対応が明確になります。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。
最新の投稿
新人エンジニア研修講師2026年8月11日第13章 線形だけでは足りない理由
新人エンジニア研修講師2026年8月11日第12章 次元の拡大と縮小の意味
新人エンジニア研修講師2026年8月11日第11章 2次元で見る線形変換:回転、伸縮、射影
新人エンジニア研修講師2026年8月11日第10章 形を合わせる:転置、reshape、ブロードキャスト
