第5章
画像分類の結果を評価する
前章の衣服分類の結果を振り返り、混同行列や適合率・再現率を使って間違い方を調べます。
この章で学ぶこと
- CNNの学習から誤分類の確認までを体験する
- 混同行列、正解率、適合率、再現率を読み取る
- モデルの出力と実際の正しさを区別する
1. 衣服画像の分類結果を振り返る
前章のニューラルネットワークで衣服の画像を分類するで得た結果を使います。すでに実行した人は、保存した画像と評価結果を用意してください。まだ実行していない人は、前章の環境構築、完成コードのダウンロード、実行手順に沿って準備します。
初めて実行する場合の手順は次の通りです。結果がそろっていれば、下の記録表から進めます。
- リンク先の手順で仮想環境と必要なライブラリを準備する。
- 完成コードを保存し、画像の形状とラベルを確認する。
python fashion_mnist_cnn.pyを実行する。- 学習用と検証用の正解率、最後のテスト正解率を記録する。
- 出力された
fashion_mnist_errors.pngを開き、正解と予測が違う画像を観察する。
記録には次の表を使えます。値は実行結果を記入し、教材の数値に合わせることを目標にしないでください。
| 記録する項目 | 実行結果・観察 |
|---|---|
| 最後のエポックの学習正解率 | |
| 最後のエポックの検証正解率 | |
| テスト正解率 | |
| 間違えた種類の組み合わせ | |
| 判断しにくかった画像の特徴 |
学習回数などを比較するときは検証用データで選びます。リンク先の完成コードは実行ごとにテスト評価も行うため、繰り返して試す場合も、そのテスト値を設定選択の基準にしないでください。
2. 正解率だけでは見えないこと
ここからは計算しやすい別の架空の例を使います。衣服分類の実行結果ではありません。不良品10個、良品90個の合計100個を評価すると、すべてを「良品」と答えるだけで正解率は90%になります。しかし、不良品は一つも見つけられません。
混同行列は、正解と予測の組み合わせを数えた表です。不良品を検出するあるモデルが、次の結果になったとします。行が正解、列が予測です。
| 正解 \ 予測 | 不良品と予測 | 良品と予測 | 合計 |
|---|---|---|---|
| 実際に不良品 | 8 | 2 | 10 |
| 実際に良品 | 9 | 81 | 90 |
| 合計 | 17 | 83 | 100 |
不良品を「陽性」とすると、8個は正しく検出した真陽性、2個は見逃した偽陰性、9個は誤って検出した偽陽性、81個は正しく除外した真陰性です。
| 指標 | この例の計算 | 分かること |
|---|---|---|
| 正解率(accuracy) | (8 + 81) / 100 = 89% |
全体でどれだけ正しかったか |
| 適合率(precision) | 8 / (8 + 9) ≈ 47.1% |
不良品と予測した中で、本当に不良品だった割合 |
| 再現率(recall) | 8 / (8 + 2) = 80% |
実際の不良品をどれだけ見つけたか |
すべてを良品と答える方法より正解率は低くても、不良品を検出できています。見逃しと誤検出のどちらが重要かは用途で変わります。分母が0になる場合は指標をそのまま計算できないので、件数と計算時の扱いを明記します。
3. 確信度と判断のしきい値
モデルの出力が0.9でも、実際に90%正しいとは限りません。学習で見ていない種類の画像にも、高い値を出すことがあります。衣服10種類の分類器に動物の画像を渡しても、自動的に「対象外」と答えられるわけではありません。
不良品のスコアが一定以上なら検出する、という方式では、その境界をしきい値と呼びます。同じ評価画像とスコアでしきい値を下げると、検出する数が増え、見逃しは減るか変わらない一方、誤検出は増えるか変わりません。しきい値は検証用データで選び、最後にテスト用で確認します。
4. 実際の写真へ広げる前に
衣服分類の実習は、小さなグレースケール画像が対象です。スマートフォンの写真では、背景、照明、角度、対象の大きさが異なります。単に28×28へ縮小するだけでは、実習と同じ条件にはなりません。
自分の課題へ進むときは、利用時に近い画像を集め、対象の種類ごと・撮影条件ごとに間違い方を調べます。判断しにくい画像や対象外の入力を、人が確認できるようにすることも設計の一部です。
やってみよう
- 表のモデルが見逃した不良品は何個ですか。
- すべてを良品と予測した場合、不良品に対する再現率はいくつですか。
- 衣服分類の誤分類例を三つ選び、画像から分かる事実と、間違いの原因についての仮説を分けて書いてください。
- ペンと消しゴムの分類を作るなら、どの背景や撮影条件で評価するか計画してください。
解答例
- 実際に不良品なのに良品と予測した2個です。
0 / 10 = 0%です。- 事実は「シャツをTシャツと予測した」、仮説は「袖や襟の形が小さな画像では判別しにくかった」などです。原因を確かめるには、追加の比較が必要です。
- 明るい机と暗い机、異なる角度、未知の個体などを含めます。学習用と評価用で同じ個体や連写画像を共有しないようにします。
次のステップ
次章からはOpenCVによる画像処理へ進みます。画像全体の分類から、YOLOによる複数物体の検出、位置関係、カメラ自身の位置・姿勢の推定へと広げていきましょう。