奥深く悩ましく、そして楽しいソフトウェアテストの世界

Testing for AIの考察

»

AI(人工知能)を用いるサービス、製品は今や珍しくもなく一般社会に馴染んできたように思います。
テスト案件においても機能の一つとしてAIが実装されていると、当然テストをしなければなりません。

私自身もAIを用いた製品のテストをする機会に恵まれ、
それがきっかけでAIを学び、体系化されていないテストアプローチに四苦八苦している内に、自社の外部向けセミナーとしてこれまでの取り組みをお話する機会を頂きました。
そしてAIに対するテストへの挑戦は今も続いています。

今回はTesting for AI、つまりAIをテストする、への考察を少し書きたいと思います。
人間を超える知能に対し、一体何をどうテストするのか、
これは大げさに表現すると、神の領域に挑戦するような気持ちです。

AIの進化はプロ棋士でも読めなかった

AIの将棋プログラム「ponanza」が男性のプロ棋士に平手(ハンデ無し)で初めて勝利したのが2013年。
現在ではAIにプロ棋士は勝てないと言われています。

余談ですが、私も小学生時代に将棋をしていて、
プロ棋士の道場や研究会に参加し、アマチュアですが有段者でありました。
将棋の雑誌を常に読んでいると、こうした話題が時折取り上げられていましたが、
20年以上前はコンピュータが人間に勝つなんてまずありえないと言われていました。
市販のゲームでも話にならないくらい弱かったですね。

そんな昔の記憶から、最近コンピュータと対戦してみたいのですが、
私自身今は指していないので弱くなっているのは差し引いても、まるで勝てなくなっていることに驚きました。
それより何より、将棋の"筋"が出来ていることに驚きました。
筋というのは説明は難しいのですが、綺麗で正統である指し方だったということです。
野球で例えると、ピッチングマシーンが機械的に140km出しているのではなく、
桑田真澄投手のような流れるフォームも兼ねているといった具合です。

AIやコンピュータの進化に伴い、将棋雑誌などではプロ棋士という職業が衰退するのではという危機感が論じられるようになってきましたが、それは2021年現在杞憂に終わりそうです。むしろ盛り上がっているように思えます。
これは将棋界でも予想外だったかも知れません。

プロ棋士の強さをテストできない、という難しさ

話は逸れましたが、将棋のAI、つまりプロ棋士のデータを大量に学習したモデルをテスト、評価すると考えるとTesting for AIの難しさがわかります。

なぜなら、それをエンジニアがテストしようとしても、正解がわからないからです。
正解をわかろうとすると、最低限プロ棋士のレベルに達する必要があって、現実的には不可能ですし、プロ棋士のレベルでも局面局面での最適解が導けるならその人は圧倒的強さを誇る名人になっているはずです。

さらに「AlphaZero」のようにプロ棋士のデータすら必要とせず、
ルールのみを教え、AI同士の学習にて強くなっていくアプローチを取られると、
もはや人間の頭脳が追い付かない領域に踏み込んでいると言えます。

それでは人間はこうした人間を超えた学習モデルには何もテストアプローチはできないのでしょうか。

神も人間社会では人間のルールに従わなければ生きていけない(はず)

ディープラーニングでは、学習データの特徴を人の手を介さず自身で捉えながら学習するため、作られた学習モデルを用いた予測や判断結果は、どのように導いたかがわからないと言われています(※説明可能なAIも出てきています)。
これは子供に例えると、どのように覚えていったかはわからないが、リンゴと梨の違いは皆だいたいわかるということになります。

このように知識獲得のメカニズムを人間が理解できない以上、
同じ土俵に立とうとすることは、Testing for AIにおいても誤った選択肢であると考えます。
逆に、人間以上の知能に対しては、
人間社会の枠に当てはめ、知識誘導する必要があるように思います。

つまり、ディープラーニングがどのようにリンゴと梨を識別できているかはわからないが、人間社会では赤く光沢(「油上がり」と言うそうです)があるものをリンゴと呼ぶのだから、そう判断しなさい。そう判断できないなら、今からその考えを見直しなさい、というアプローチです。

上記のテストによって誤判断したテストデータを学習データにインプットし、再学習させることで人間社会に適合するモデルへと逆・進化させるということです。

また、AIプロダクトとしては、光沢がりんごと梨を区別する重要なファクターなのだから、判断する工程では適切な光量を確保しましょう、といった評価・提案も必要になってくると思います。

AIによって人間以上の知能を獲得していても、それを使用し判断するのはあくまでも人間社会の中である以上、そのルールの中に収まるように導くのがTesting for AIの役割・役目なのではないかと考えた次第です。

Comment(2)

コメント

おたみ

現在主流の AI(説明不可能な AI)の妥当性をどのように評価するのか(テストするのか)に関しては私も非常に興味があります。


説明可能な AI の存在は寡聞にして知りませんでしたので、参考にさせていただきました。

コメントを投稿する