ソフトのウェアは、品質を確認するためにテストを行います。
テストに合格するかどうかの基準は
どのような入力に対してどのような出力が期待されるか?
で決まります。
処理が明確なプログラムの場合、期待値も明確になり
その期待値のパターン分、テストケースを作成します。
これをテストオラクルといいます。
テストオラクルは、人が仕様書を基に作ったり、自動化してプログラムで生成することもできます。
ただ、プログラムの内容が不明確な場合があります。ブラックボックスなんて言います。
そういう場合、期待値が分からずテストオラクルが作れません。
このようなプログラムのテストに用いられるのが、疑似オラクルです。
AI学習によって出来上がったモデルは、ブラックボックスなので疑似オラクルを用意します。
一例を示すと
「猫の画像1000枚」を用意してあるアルゴリズムで学習されたAIモデルがあって
猫画像を入力したときに、判定結果は「猫」となります。
「犬の画像1000枚」を用意して猫の時と同じアルゴリズムで学習されたAIモデルがあって
犬画像を入力したときに、判定結果は「犬」となってほしいですね。
このように入力画像の変化によって理論的に期待される変化があり、
これらを疑似オラクルとして用意し確認します。