ホーム›Part 3 ディープラーニングとAI›3.11

Part 3 · ディープラーニングとAI

3.11 AIのテスト手法

正解が作れないものを、どう確かめるか

読了目安 10分前提:3.10 安全のための評価指標、1.8 稀な事象の統計▶ 動画(約5分)

この回で分かること

  • AI のテストで「正解」を用意しにくい理由(テストオラクル の問題)を説明できる
  • メタモルフィックテスト、回帰試験と ネガティブフリップ、スライス試験 の考え方を説明できる
  • 違反ゼロのときの上限、悪化した件数、条件ごとの弱さを、簡単な計算で確かめられる

直感で理解する

ふつうのソフトウェアなら、「この入力にはこの出力が正しい」と決めて試験できます。ところがカメラの画像は、天気・明るさ・角度・写っているものの組み合わせで無限にあり、そのすべてに正解(どこに何があるか)を人が付けることはできません。何が正しいかを判定する仕組みを テストオラクル と呼び、AI のテストでは、これをどう用意するかがいちばんの課題になります。そこで、正解そのものの代わりに、次の3つの考え方を組み合わせます。

  • 関係を確かめる(メタモルフィックテスト):画像を左右反転したら、検出の枠も左右反転するはず。明るさを少し変えても、検出は変わらないはず。こうした「入力の変え方と出力の変わり方の関係」なら、正解がなくても確かめられます。
  • 前の版と比べる(回帰試験):新しいモデルが、前のモデルができていたことを失っていないかを、同じ試験データで確かめます。
  • 条件ごとに分けて探す(スライス試験):夜・雨・遠距離・子ども、のように条件ごとに試験データを分け、弱いところを探します。
新モデルが正解 新モデルが不正解 旧モデルが正解 旧モデルが不正解 9,300 両方正解 200 悪化(ネガティブフリップ) 300 改善 200 両方不正解 正解率:旧 95.0% → 新 96.0%(1万件)
旧モデルと新モデルを同じ 1 万件で比べた結果(数値は説明用)。全体の正解率は上がったが、旧モデルが正解していた 200 件を新モデルは間違えている。

数式で確かめる

① メタモルフィックテスト:違反がゼロなら上限を出す

5,000 枚の画像を左右反転し、「検出の枠も左右反転しているか」を確かめます。正解のラベルは要らないので、画像さえあれば件数をいくらでも増やせます。違反が 1 件もなければ、違反の起きる割合の上限は、1.8 の3の法則で(信頼度 95%)

$$\frac{3}{n} = \frac{3}{5000} = 0.06\%$$

です。違反が見つかれば、それ自体が「モデルが何かに頼って判断している」手がかりになります(3.9 の近道学習)。ただし、関係が守られていても、答えそのものが正しいとは限りません。反転の前も後も同じように見逃していれば、違反にはならないからです。メタモルフィックテストは、正解付きの試験を置き換えるものではなく、補うものです。

② 回帰試験:平均が上がっても、悪化した件数を数える

図のように、1 万件で旧モデルの正解率が 95.0%(9,500 件)、新モデルが 96.0%(9,600 件)だったとします。旧モデルが正解していたもののうち 200 件を新モデルが間違え、旧モデルが間違えていたもののうち 300 件を新モデルが直したとすると、

$$9500 - 200 + 300 = 9600$$

で、平均は 1 ポイント上がっています。この 200 件(2.0%)が ネガティブフリップ です。使う人から見ると「前はできていたことが、更新でできなくなった」ことになり、その中に危険な場面(近くの歩行者など)が含まれていれば、平均が上がっても安全は下がるかもしれません。回帰試験では、平均の比較(3.10 の対応のある比較)に加えて、ネガティブフリップの件数と中身を確かめます。

③ スライス試験:条件ごとに、弱さを見分けられる件数を用意する

全体の見逃し率が 2% のモデルで、「夜の雨」の条件だけが弱いかを確かめます。この条件の画像を n 枚試し、見逃しが x 件だったとき、全体と同じ 2% なら見逃しの見込みは 0.02n 件です。見逃しの数をポアソン分布(1.3)で考えると、ずれの大きさは

$$z = \frac{x - 0.02\,n}{\sqrt{0.02\,n}}$$

です。本当はこの条件の見逃し率が 6%(全体の 3 倍)だとすると、n = 50 枚では見込み 3 件に対して基準が 1 件で、z = (3 − 1) / 1 = 2 と、見分けられるかどうかの境目です。n = 200 枚なら 12 件に対して基準が 4 件で、z = (12 − 4) / 2 = 4 となり、はっきり見分けられます。条件ごとに十分な件数をそろえないと、弱いところは平均に埋もれたままです(5.9)。

自動運転との接点

  • 関係は運転の知識から作る:左右反転、明るさ・雨・霧の加工、少し離れた位置から見た画像など、「こう変えても判断は変わらないはず」「こう変えたらこう変わるはず」という関係を、運転の場面の知識から作ります。加工した画像が現実にありうるかも確かめます(3.8、5.7)。
  • カバレッジだけで安心しない:ニューラルネットワークのどの部分が動いたかを数える「ニューロンカバレッジ」のような指標がありますが、それが高いことと危険な場面を試したことは別です。試した場面の網羅性は、ODD の条件やシナリオで測ります(5.6)。
  • 記録データでの試験と、動かす試験:記録した画像での試験(オープンループ)では、判断が変わったあとに車の動きがどう変わるかが分かりません。シミュレーションで車を動かす試験(クローズドループ)と組み合わせます(4.6、5.7)。
  • 最終試験のデータは使い回さない:試験結果を見てモデルを直すことをくり返すと、試験データに合わせすぎてしまいます。安全の証拠にする最終試験のデータは別に管理します(2.6)。
  • 市場でも比べ続ける:新しいモデルを車に載せて、判断だけを記録して動かさない「シャドーモード」で、旧モデルとの違いを実際の走行で確かめる方法もあります(5.11)。

まとめ

  • AI のテストでは、すべての入力に正解を用意できない(テストオラクルの問題)。入力と出力の関係を確かめるメタモルフィックテストで補い、違反ゼロなら3の法則で上限を出す
  • 更新では、平均の比較に加えて、前にできていたことを失った件数(ネガティブフリップ)とその中身を確かめる
  • 条件ごとに試験データを分けるスライス試験で、弱いところを探す。見分けるには条件ごとに十分な件数が要る

確認クイズ

Q1. 明るさを変えた画像 3 万枚で、検出の変化(違反)が 1 件もありませんでした。違反の割合の上限(信頼度 95%)は?

3 / 30,000 = 0.01% です。

Q2. 1 万件で旧モデルの正解が 9,000 件、新モデルが 9,200 件、ネガティブフリップが 150 件でした。新モデルが直した(改善した)のは何件?

9,000 − 150 + x = 9,200 より、x = 350 件です。

Q3. 全体の見逃し率が 2% のモデルで、「逆光」の画像 400 枚を試したら見逃しが 20 件でした。逆光で弱いと言える?

見込みは 0.02 × 400 = 8 件なので、z = (20 − 8) / √8 ≈ 4.2 です。2 を大きく超えるので、逆光で弱いと言えます。

Q4. 「試験データでニューロンカバレッジが 100% になったので、テストは十分だ」。この考えの問題点は?

ニューロンカバレッジは、ネットワークのどの部分が動いたかを数えるだけで、危険な場面(夜・雨・近くの歩行者など)を試したかどうかは分かりません。ODD の条件やシナリオで網羅性を確かめ、条件ごとの性能やネガティブフリップも調べる必要があります。

もっと知りたい人へ