Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Difference between testing ordinary software an...

Matsu
July 13, 2022

Difference between testing ordinary software and testing software using machine learning

This slide explains difference between testing ordinary software and testing software using machine learning.
Also, Introduce testing methods of machine learning.

このスライドは、これまでのソフトウェアのテストと機械学習を用いたソフトウェアのテストの違いを記載しています。
また、機械学習のテストの手法や、ガイドラインの紹介も行っています。

Matsu

July 13, 2022
Tweet

More Decks by Matsu

Other Decks in Technology

Transcript

  1. 機械学習のテスト手法の簡単な紹介(ネコ本より) • メタモルフィックテスティング ◦ 「入力をこう変えると出力はこう変わるはず」という関係をテストする方法 • ニューロンカバレッジテスティング ◦ DNNの中間層のニューロンが全体の内どれだけが活性化したかがニューロンカバレッジ ▪

    C0カバレッジやC1カバレッジなどの考え方の DNN版 ◦ ニューロンカバレッジが 100%になるようにテストデータを追加し検証 • 最大安全半径 ◦ 最大どれくらいのノイズまで推論結果が変わらないかを求める(保証されたロバスト性) • 網羅検証 ◦ 入力データの範囲と期待される推論結果の条件を指定し、範囲内のすべての入力データに対して 推論結果がその条件を満たすことを検証
  2. メタモルフィックテスティング • 推薦ランキング生成で、1位商品を候補から抜いてランキング再生成 ◦ →2位だった商品が1位になるはず • 時系列の異常分析で、入力信号をすべて定数値ずらして再分析 ◦ →異常と検出されていた入力は、やはり異常と検出されるはず •

    ドローンの探索プランニングで、入力地図を90度回転させる ◦ →出力されるルートも90度回転されるはず • OCRで文字に下線を入れる ◦ →出力される文字列は変更されないはず JaSST’22 Kansai JaSST’19 Hokkaido より
  3. メタモルフィックテスティング • メリット ◦ 出力の期待値が定められない場合でも利用可能 ▪ 正解を確認する手法というより「こうした場合は問題がありそう」がわかる • 例:ラベルづけしてない5万枚の動物画像で、オリジナルの結果とノイズ加えたときの 出力結果を比較

    ◦ 何の動物か知らんけど 2万4300枚目の画像はオリジナルとノイズ入れたデータ で出力結果が変わったからそこに何か問題がありそう、など ◦ 既存のテストから新しいテストを作ることができる ▪ 自動テストしやすい • 文字の下に線、文字の回転など • デメリット ◦ そもそもの「~ならば〇〇」というメタモルフィック関係を見出すのが難しい ▪ ロジックも関係してくる。テストする人だけで判断せず開発者など含め判断 ◦ 費用対効果の判断が難しい
  4. AIプロダクト品質保証ガイドライン AIプロダクトの品質保証において考慮すべき軸として、Data Integrity, Model Robustness, System Quality, Process Agility, Customer

    Expectationの5軸を挙げ、こ れらのバランスを取ることを推奨している。ドキュメントにはそれぞれの軸のチェックリス トも用意されている。 • Data Integrity ◦ 質においても量においても適切かつ充分なデータの確保、学習用データと検証用データが独立してい るかなどについて考慮 • Model Robustness ◦ モデルの精度と頑健性、デグレードなどについて考慮 • System Quality ◦ AI プロダクト全体の品質の確保について考慮 • Process Agility ◦ プロセスの機動性について考慮 • Customer Expectation ◦ よい顧客との関係性について考慮