# 交差エントロピーとは？AIの「間違い度合い」を測る公式と計算例を分かりやすく解説！

> 交差エントロピー（クロスエントロピー）とは、分類問題でAIの予測がどれだけ間違っているかを測るものさしです。本記事では、意味と公式、犬・猫の分類を使った計算例、自信満々の間違いを強く罰する理由、MSEとの使い分け、Pythonでの計算方法を図解で分かりやすく解説します！

- URL: https://toukei-lab.com/cross-entropy
- 公開: 2026.10.28
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
当サイト【スタビジ】の本記事では、AIの世界でとても大事な「交差エントロピー（クロスエントロピー）」について分かりやすく解説していきます！意味と公式から、計算例、なぜ分類問題で使われるのかまで見ていきましょう！
:::

こんにちは！ウマたんです！

AIはすごく賢そうに見えますが、実は学び始めのころは、よく間違えます。

たとえば、画像を見て「これは犬？猫？」と聞かれたAIが、「90%の確率で猫だと思う」と答えたとします。

でも、実はその画像が犬だったら、AIの答えは正しくありませんよね。

このとき、<mark>AIが「どれくらい間違えているか」を数字で表す方法</mark>が必要になります。

その方法のひとつが、今回のテーマ「**交差エントロピー**」です。

:::talk{who="man" side="left"}
ディープラーニングの本で「損失関数は交差エントロピー」ってよく見るけど、何を計算しているの？
:::

:::talk{who="woman"}
エントロピーって名前が難しそう…。式の意味が知りたい！
:::

本記事では、次の5つを順番に解説していきます。

:::point
**・交差エントロピーとは？**\
**・交差エントロピーの公式と計算例**\
**・交差エントロピーが分類問題で使われる理由**\
**・分類と回帰で使う指標のちがい**\
**・Pythonで交差エントロピーを計算してみよう**
:::

以下のYouTube動画でも解説していますので、あわせてチェックしてみてください！

::youtube{#jGrkTrbj4oE}

## 交差エントロピーとは？

**交差エントロピーとは、AIの予測がどれだけ間違っているかを測るための「ものさし」のこと**です。

英語では「**cross entropy**（クロスエントロピー）」と呼ばれます。

AIは学習するときに、この交差エントロピーをできるだけ小さくしようと頑張ります。

そうすることで、少しずつ予測の精度を上げていくんです。

<mark>なるべく正確な予測ができるように調整していくための「点数」</mark>として、交差エントロピーが使われているわけですね。

このように、AIが学習で小さくしようとする「間違いの大きさ」を表す関数は、「**損失関数**」と呼ばれます。交差エントロピーは、分類問題でもっともよく使われる損失関数です。

<https://toukei-lab.com/loss-function>

### 当たっているほど小さく、外れているほど大きくなる

猫と犬を分類する問題で、正しい答えが「猫」のときを考えてみましょう。

| AIの予測 | 予測の良さ | 交差エントロピー |
|---|---|---|
| 猫 0.9、犬 0.1 | 正解の猫に高い確率をつけている（良い予測） | 約0.11（小さい） |
| 猫 0.5、犬 0.5 | どちらとも言えない | 約0.69 |
| 猫 0.2、犬 0.8 | 正解の猫に低い確率しかつけていない（悪い予測） | 約1.61（大きい） |

猫に0.9をつけた予測は、交差エントロピーが小さくなり、比較的良い予測ということになります。

一方で、猫に0.2しかつけなかった予測は、交差エントロピーが大きくなり、悪い予測となります。

<mark>交差エントロピーは、小さければ小さいほど精度が良い</mark>、ということを覚えておきましょう！

## 交差エントロピーの公式と計算例

では、具体的な公式はどのようになるのでしょうか？

### 2クラス分類の公式

「1か0か」を当てる問題（2クラス分類）で考えます。

正解ラベルを $y$（1か0）、モデルが出した「1である確率」を $p$ とすると、交差エントロピー $L$ は次のように書けます。

$$
L = -\{\, y \log p + (1 - y) \log (1 - p) \,\}
$$

ここで $\log$ は、ふつう自然対数（底が $e$ の対数）を使います。

式は少しややこしく見えますが、$y$ に1か0を入れてみると、とてもシンプルになります。

| 正解 | 式に入れると | 意味 |
|---|---|---|
| $y = 1$ のとき | $L = -\log p$ | 「1」につけた確率 $p$ だけを見る |
| $y = 0$ のとき | $L = -\log (1 - p)$ | 「0」につけた確率 $1 - p$ だけを見る |

つまり、<mark>「正解のクラスに、どれだけ高い確率をつけられたか」だけを見ている</mark>んです！

### 計算してみよう

実際に計算してみましょう。

まず、正解ラベル $y$ が1で、予測 $p$ が0.9の場合です。モデルが「1である確率が高い」と予測していて、それが当たっている状況ですね。

$$
L = -\log 0.9 \approx 0.105
$$

交差エントロピーは約0.1。比較的小さくなりました。

一方で、正解ラベル $y$ が1なのに、予測 $p$ が0.01の場合。予測がかなり外れてしまっている状況です。

$$
L = -\log 0.01 \approx 4.6
$$

交差エントロピーは約4.6。先ほどと比べて、非常に大きくなったのが分かりますね！

正解のクラスにつけた確率 $p$ と、交差エントロピー（$-\log p$）の関係をグラフにすると、次のようになります。

![正解のクラスにつけた確率が低いほど、交差エントロピーは急に大きくなる。確率1（完璧な予測）で0になる](/wp-content/uploads/2026/10/cross-entropy-curve.jpg)

正解に確率1をつけた完璧な予測なら、交差エントロピーは0。

そこから確率が下がるにつれて大きくなり、0に近づくと一気に跳ね上がります。

### 3クラス以上のときの公式

犬・猫・鳥のように、3つ以上のクラスに分ける問題（多クラス分類）では、次の式を使います。

$$
L = -\sum_{k} y_k \log p_k
$$

$y_k$ は、クラス $k$ が正解なら1、そうでなければ0。$p_k$ は、モデルがクラス $k$ につけた確率です。

正解のクラスだけ $y_k = 1$ になるので、結局は2クラスのときと同じく、<mark>「正解のクラスにつけた確率 $p$ の $-\log p$」</mark>を計算していることになります。

| | 犬 | 猫 | 鳥 |
|---|---|---|---|
| 正解（$y_k$） | 0 | 1 | 0 |
| AIの予測（$p_k$） | 0.2 | 0.7 | 0.1 |

この例なら、$L = -\log 0.7 \approx 0.36$ です。

ニューラルネットワークでは、最後に「**ソフトマックス関数**」を通して、各クラスの確率（合計が1）を出すのが定番です。その確率を、この交差エントロピーで評価するわけですね。

<https://toukei-lab.com/softmax>

なお、データがたくさんあるときは、1件ずつ計算した交差エントロピーを平均したものを使います。

## 交差エントロピーが分類問題で使われる理由

実は、AIがどれだけ間違えているかを測る指標は、ほかにも存在します。

その中でも、なぜ分類問題では交差エントロピーが使われるのでしょうか？

### 自信満々の間違いを、強く罰する

ひとつ目の理由は、<mark>「自信満々に間違えたとき」に、とても大きなペナルティを与えられる</mark>ことです。

たとえば、確率の予測を「2乗誤差」で評価した場合とくらべてみましょう。正解が1のとき、2乗誤差は $(1 - p)^2$ です。

![2乗誤差は、どんなに外しても最大で1。交差エントロピーは、自信満々に外すほど際限なく大きくなる](/wp-content/uploads/2026/10/cross-entropy-mse.jpg)

2乗誤差は、正解に確率0をつけるような大外れでも、最大で1にしかなりません。

一方、交差エントロピーは、正解の確率が0に近づくほど、どこまでも大きくなります。

| 正解につけた確率 $p$ | 2乗誤差 $(1-p)^2$ | 交差エントロピー $-\log p$ |
|---|---|---|
| 0.9 | 0.01 | 0.11 |
| 0.5 | 0.25 | 0.69 |
| 0.1 | 0.81 | 2.30 |
| 0.01 | 0.98 | 4.61 |

だからこそ、交差エントロピーで学習したAIは、「とんでもない外し方」をしないように、強く矯正されていくんです。

また、ソフトマックス関数やシグモイド関数と組み合わせると、学習で使う傾き（勾配）が「予測の確率 − 正解」というシンプルな形になり、学習が進みやすいことも知られています。

### 「最尤法」と同じことをしている

ふたつ目の理由は、統計学の「**最尤法（さいゆうほう）**」とつながっていることです。

最尤法は、「手元のデータが一番起こりやすくなるように、モデルのパラメータを決める」方法です。

実は、2クラス分類で交差エントロピーを小さくすることは、この最尤法で「尤度（もっともらしさ）」を大きくすることと、数学的に同じなんです。

<mark>交差エントロピーを使うのは、統計学的にも筋の通ったやり方</mark>というわけですね。

<https://toukei-lab.com/maximum_likelihood_method>

### 名前の「エントロピー」と「交差」の意味

ちなみに、「エントロピー」はもともと情報理論の言葉で、「どれくらい予測がつかないか（不確かさ）」を表す量です。

交差エントロピーは、<mark>「正解の分布」と「AIの予測の分布」という2つの分布を交差させて</mark>、そのずれを測っています。

正解の分布と予測の分布がぴったり一致したときに、交差エントロピーは一番小さくなります。

名前は難しそうですが、やっていることは「正解にどれだけ高い確率をつけられたか」の採点、と覚えておけば大丈夫です！

## 分類と回帰で使う指標のちがい

交差エントロピーは、犬・猫を判別するような<mark>クラス分類の問題で使う指標</mark>だと覚えておきましょう。

逆に、売上の予測のように数値を当てる回帰の問題では、平均2乗誤差（MSE）や平均絶対誤差（MAE）などが使われます。

| 問題の種類 | 例 | よく使われる指標 |
|---|---|---|
| 分類 | 犬か猫か、スパムかどうか、病気かどうか | 交差エントロピー（ログロス） |
| 回帰 | 売上、気温、家の価格 | 平均2乗誤差（MSE）、平均絶対誤差（MAE） |

### 正解率だけでは見えないものが見える

分類の問題では、「正解率（何%当たったか）」もよく使いますよね。

でも、正解率は「当たったか、外れたか」しか見ていません。

たとえば、正解が猫の画像に対して、猫0.51と予測しても、猫0.99と予測しても、どちらも「当たり」です。

交差エントロピーなら、前者は約0.67、後者は約0.01と、<mark>予測の自信の度合いまで含めて評価できる</mark>んです。

だからこそ、AIの学習では、細かな改善が数字に表れる交差エントロピーを使い、人が結果を確かめるときには正解率なども合わせて見る、という使い分けがよくされます。

分類・回帰で使われる評価指標については、以下の記事でまとめています。

<https://toukei-lab.com/evaluation>

## Pythonで交差エントロピーを計算してみよう

それでは最後に、Pythonで交差エントロピーを計算してみましょう！

### 公式どおりに計算する

まずは、2クラス分類の公式をそのまま関数にしてみます。

```python
import numpy as np

def cross_entropy(y, p):
    """2クラス分類の交差エントロピー（y：正解ラベル0か1、p：1である確率）"""
    return -(y * np.log(p) + (1 - y) * np.log(1 - p))

print(cross_entropy(1, 0.9))   # 正解1に0.9をつけた（よく当たっている）
print(cross_entropy(1, 0.01))  # 正解1に0.01しかつけなかった（大外れ）
```

```text
0.10536051565782628
4.605170185988091
```

先ほど手で計算した、約0.1と約4.6になりましたね！

### scikit-learnで計算する

scikit-learnでは、`log_loss` という名前で用意されています。交差エントロピーは「**ログロス**」とも呼ばれるんです。

```python
from sklearn.metrics import log_loss

y_true = [1, 1, 0, 0]          # 正解ラベル
y_prob = [0.9, 0.6, 0.2, 0.4]  # モデルが出した「1である確率」

print(log_loss(y_true, y_prob))  # 4件の交差エントロピーの平均
```

```text
0.3375388286260044
```

4件それぞれの交差エントロピー（約0.11・0.51・0.22・0.51）を平均した値が出てきます。

:::warn
**・確率がちょうど0のときに $\log 0$ を計算すると無限大になってしまうので、ライブラリの中では確率を0や1から少しだけ離して計算する工夫がされている**\
**・PyTorchの `nn.CrossEntropyLoss` は、ソフトマックス関数を通す前の値（ロジット）を受け取る作り。自分でソフトマックスを通してから渡さないように注意**
:::

ディープラーニングのライブラリでも、交差エントロピーは損失関数の定番として、最初から用意されています。

## 交差エントロピーのまとめ

最後に、今回のポイントをおさらいしましょう！

:::point
**・交差エントロピーは、AIの予測がどれだけ間違っているかを測る「ものさし」で、小さいほど良い**\
**・正解のクラスにつけた確率を $p$ とすると、計算しているのは $-\log p$**\
**・正解に0.9をつければ約0.1、0.01しかつけなければ約4.6と、外れるほど急に大きくなる**\
**・自信満々の間違いを強く罰し、最尤法とも同じ意味を持つので、分類問題の定番になっている**\
**・回帰の問題では、平均2乗誤差（MSE）や平均絶対誤差（MAE）などを使う**
:::

:::talk{who="umatan"}
要は、交差エントロピーとは「正解にどれだけ自信を持って答えられたか」の採点表なんです！損失関数として見かけたら、「正解の確率の −log をとっているんだな」と思い出してください！
:::

機械学習やディープラーニングを体系的に学びたいのであれば、当メディアが運営するスクール「**[スタアカ](https://toukei-lab.com/achademy/)**」がオススメです！

:::box
**[業界最安級のAIデータサイエンス特化スクール「スタアカ」](https://toukei-lab.com/achademy/)**
:::