akon2.00βのよっぱらいの戯言

色しょく是食、食しょく是色 当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

AIソフトウェアのテスト

 

・メタモルフィックテスティング
ニューロンカバレッジテスティング
・最大安全半径
・網羅検証


メタモルフィックテスティング
テストオラクル問題(テストオラクルとは「出力が期待通りか、そうでないか」を判定する方法。テストオラクル問題とはそのような判定を行う方法がない)のあるソフトウェアのテスト手法として考案された。

 

手順
テスト用の入力データxを用意
xを加工・変換したデータx'を用意
それぞれのデータで推論してyとy'を用意
yとy'の関係を評価

例としては、画像xと回転や反転させたx'で推論結果が一致するかを評価する。
ここでのポイントとして、一致しない場合はモデルに誤りがあると判断されるが、一致した場合はそれが正しいとも誤っているとも判断できないという。評価にはテストデータ自体が正しいかどうかの確認も必要。

手軽で、大量のデータや多様な加工・変換を施しテストすることでモデルが誤りやすいパターンを発見でき、モデルの改善につながる。

 

ニューロンカバレッジテスティング
ニューラルネットを構成する全ての中間ニューロンが少なくとも一度は活性化するようテストを実行する手法。このテストによって非活性ニューロンが活性する入力データを作ることで、稀な誤りを検出できる。

 

手順

既存のテストデータのカバレッジを計測し、次にテストデータを加工しながら徐々にカバレッジを上げていく。加工結果や勾配に基づいてカバレッジを上げる手法を検討していく。

このテストで全ての誤りを検出できるわけではないが、やみくもに行うよりは効率的に誤りを検出できる。

 

最大安全半径
入力データxに対して、ノイズなどを付加しても同一の推論結果が得られる最大の安全半径を求めるテスト手法。モデルのロバスト性を評価する目的で使用する。本書ではCNN-Certを紹介している。

 

手順
入力データに加えるノイズの初期値εと最小値と最大値を設定。
初期値εをデータに加えて推論。元のデータの場合と推論結果が一致するか確認。
推論結果が一致しない場合はεを最大値に、一致する場合は最小値として保存する。(最大値+最小値)/2を新しいεとして手順2に戻る。
規定回数繰り返して最小値を最大安全半径として出力する。
これを一つのテストデータだけではなく、複数で確認し、平均値等で評価する。

 

網羅検証
想定される運用時の入力データの範囲で網羅的に検証することで推論結果が妥当もしくは誤っている入力データの範囲・パターンを明確にする。これによって、モデルの改善や運用上での回避策を検討する。