3.11 AIのテスト手法
正解が作れないものを、どう確かめるか
この回で分かること
- AI のテストで「正解」を用意しにくい理由(テストオラクル の問題)を説明できる
- メタモルフィックテスト、回帰試験と ネガティブフリップ、スライス試験 の考え方を説明できる
- 違反ゼロのときの上限、悪化した件数、条件ごとの弱さを、簡単な計算で確かめられる
直感で理解する
ふつうのソフトウェアなら、「この入力にはこの出力が正しい」と決めて試験できます。ところがカメラの画像は、天気・明るさ・角度・写っているものの組み合わせで無限にあり、そのすべてに正解(どこに何があるか)を人が付けることはできません。何が正しいかを判定する仕組みを テストオラクル と呼び、AI のテストでは、これをどう用意するかがいちばんの課題になります。そこで、正解そのものの代わりに、次の3つの考え方を組み合わせます。
- 関係を確かめる(メタモルフィックテスト):画像を左右反転したら、検出の枠も左右反転するはず。明るさを少し変えても、検出は変わらないはず。こうした「入力の変え方と出力の変わり方の関係」なら、正解がなくても確かめられます。
- 前の版と比べる(回帰試験):新しいモデルが、前のモデルができていたことを失っていないかを、同じ試験データで確かめます。
- 条件ごとに分けて探す(スライス試験):夜・雨・遠距離・子ども、のように条件ごとに試験データを分け、弱いところを探します。
数式で確かめる
① メタモルフィックテスト:違反がゼロなら上限を出す
5,000 枚の画像を左右反転し、「検出の枠も左右反転しているか」を確かめます。正解のラベルは要らないので、画像さえあれば件数をいくらでも増やせます。違反が 1 件もなければ、違反の起きる割合の上限は、1.8 の3の法則で(信頼度 95%)
です。違反が見つかれば、それ自体が「モデルが何かに頼って判断している」手がかりになります(3.9 の近道学習)。ただし、関係が守られていても、答えそのものが正しいとは限りません。反転の前も後も同じように見逃していれば、違反にはならないからです。メタモルフィックテストは、正解付きの試験を置き換えるものではなく、補うものです。
② 回帰試験:平均が上がっても、悪化した件数を数える
図のように、1 万件で旧モデルの正解率が 95.0%(9,500 件)、新モデルが 96.0%(9,600 件)だったとします。旧モデルが正解していたもののうち 200 件を新モデルが間違え、旧モデルが間違えていたもののうち 300 件を新モデルが直したとすると、
で、平均は 1 ポイント上がっています。この 200 件(2.0%)が ネガティブフリップ です。使う人から見ると「前はできていたことが、更新でできなくなった」ことになり、その中に危険な場面(近くの歩行者など)が含まれていれば、平均が上がっても安全は下がるかもしれません。回帰試験では、平均の比較(3.10 の対応のある比較)に加えて、ネガティブフリップの件数と中身を確かめます。
③ スライス試験:条件ごとに、弱さを見分けられる件数を用意する
全体の見逃し率が 2% のモデルで、「夜の雨」の条件だけが弱いかを確かめます。この条件の画像を n 枚試し、見逃しが x 件だったとき、全体と同じ 2% なら見逃しの見込みは 0.02n 件です。見逃しの数をポアソン分布(1.3)で考えると、ずれの大きさは
です。本当はこの条件の見逃し率が 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 の条件やシナリオで網羅性を確かめ、条件ごとの性能やネガティブフリップも調べる必要があります。
もっと知りたい人へ
- 次の回:4.1 自動運転レベルとODD
- 関連:3.10 安全のための評価指標、3.8 頑健性と敵対的サンプル、1.8 稀な事象の統計(3の法則)、5.6 シナリオベース検証、5.9 AIコンポーネントの安全
- 用語集:テストオラクル、メタモルフィックテスト、ネガティブフリップ、スライス試験、3の法則
- 解説動画:YouTube(約5分)(静止画のスライドと音声で要点を説明。英語版の記事には英語の動画があります)
- 参考文献
- T. Y. Chen, S. C. Cheung, S. M. Yiu, “Metamorphic Testing: A New Approach for Generating Next Test Cases,” Technical Report HKUST-CS98-01, 1998.
- Y. Tian, K. Pei, S. Jana, B. Ray, “DeepTest: Automated Testing of Deep-Neural-Network-driven Autonomous Cars,” ICSE, 2018.
- S. Yan et al., “Positive-Congruent Training: Towards Regression-Free Model Updates,” CVPR, 2021.
- Z. Li, X. Ma, C. Xu, C. Cao, “Structural Coverage Criteria for Neural Networks Could Be Misleading,” ICSE (NIER), 2019.
- J. M. Zhang, M. Harman, L. Ma, Y. Liu, “Machine Learning Testing: Survey, Landscapes and Horizons,” IEEE Transactions on Software Engineering, 2020.