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

今までのテストととAIを含んだプロダクトのテストの違い

Matsu
October 14, 2022

 今までのテストととAIを含んだプロダクトのテストの違い

今日、AIという言葉を聞かない日はないといってもよいくらいAI技術が普及してきています。既に近未来の技術などではなく、様々なプロダクトにAI技術は組み込まれているのです。今後より多くのプロダクトにAIが組み込まれていくことは明白です。ソフトウェアテストに関する仕事をする方々は必ずAIプロダクトと接する日が来るでしょう。
そこでこの講演では、AIに関する基本的な知識や仕組みのお話を行います。それらからこれまでのプロダクトに対するテストとAIプロダクトに対するテストの違い、今言われているテスト手法や私の経験からのテスト方法についてお話します。

Matsu

October 14, 2022
Tweet

More Decks by Matsu

Other Decks in Technology

Transcript

  1. © rinna Co.,Ltd. All rights reserved. 3 Name : 松谷

    峰生(まつやみねお) Twitter : mty_mno(まつ) お仕事 • rinna株式会社 / QA Lead その他 • QA4AI (AIプロダクト品質保証コンソーシアム) • JaSST Kyushu(ソフトウェアテストシンポジウム九州) • たぶんマンガ家 ◦ 新人さんからわかるソフトウェアテスト解説マンガ「テスターちゃん」 自己紹介
  2. © rinna Co.,Ltd. All rights reserved. 6 さて、AIという言葉に触れない日はないというくらいAIプロダクトが 普及してきました。 今後より多くのプロダクトにAIが組み込まれていくことは間違いな

    いでしょう。 ソフトウェアテストに関わる仕事をする皆様も、今後ほぼ必ずAIプ ロダクトと接する日が来ます。 さいしょに
  3. © rinna Co.,Ltd. All rights reserved. 7 何も知識がなければ 今後の対策も考えようがありません。 今回の講演(というより学校の講義っぽい)で、AIについての基本

    知識を仕入れ、テストの違いについて理解し、今後の業務のため にベースを固めておきましょう。 さいしょに
  4. © rinna Co.,Ltd. All rights reserved. 8 • AIの基本的な用語、仕組みがわかる •

    これまでのテストとAIのテストの違いがわかる • AIのテスト手法のひとつである「メタモルフィックテスティング」 について概要がわかる ゴール
  5. © rinna Co.,Ltd. All rights reserved. 9 • AIの基礎知識 ◦

    AI周りの言葉の整理 ◦ 学習の種類 ◦ 機械学習を使うメリット ◦ 機械学習の基本的な仕組み • 今までのテストとAIを含んだプロダクトのテストの違い ◦ 今までのソフトウェアの開発 ◦ 機械学習を用いたソフトウェアの開発 ◦ 今までのソフトウェアとのテストの違い • 手法、ガイドラインの紹介 ◦ メタモルフィックテスティング ◦ 弊社で行っている方法の一部紹介 ◦ AIプロダクト品質保証ガイドライン 目次
  6. © rinna Co.,Ltd. All rights reserved. 11 全体像 AI 機械学習

    ニューラルネットワーク ディープラーニング AIという概念を実現するために機械学習という考え方があり、 機械学習にはニューラルネットワークという技術が使われることが最近の主流で、 ニューラルネットワークの中でもディープラーニングという技術が熱いです。
  7. © rinna Co.,Ltd. All rights reserved. 12 AIはArtifical Interlligence、つまり人工知能です。 コンピューターに人と同じような知識を持たせる仕組み全般を指します。

    最近はその仕組みが入ったプロダクトを指すことも多いです。 『AI』 なんらかの仕組みで、人と 同じような知識を持たせてい る
  8. © rinna Co.,Ltd. All rights reserved. 13 『機械学習』 AI 機械学習

    ニューラルネットワーク ディープラーニング
  9. © rinna Co.,Ltd. All rights reserved. 14 機械学習(Machine Learning/ML)はたくさんのデータをもとにコンピューターが自ら学 習する仕組みです。様々な技術があり、今主流のニューラルネットワークの他にも遺伝

    子アルゴリズムなどがあります。 『機械学習』 機械学習…機械が自ら学ぶ仕組み 遺伝子アルゴリズム ニューラル ネットワーク 決定木 サポートベクター マシン etc
  10. © rinna Co.,Ltd. All rights reserved. 16 『ニューラルネットワーク』 昨今主流なのが脳にある神経細胞(ニューロン)を真似ようという試みです。 神経細胞を模したものがニューラルネットワークです。

    ただ、初期(1950年代から研究は続いていた)のニューラルネットワークは単純構造で、 期待した結果は得られませんでした。 入力 出力
  11. © rinna Co.,Ltd. All rights reserved. 17 『ディープラーニング』 AI 機械学習

    ニューラルネットワーク ディープラーニング
  12. © rinna Co.,Ltd. All rights reserved. 18 『ディープラーニング』 ニューラルネットワークを多層化し、フィードバック機能をつけたものが「ディープラーニ ング」です。

    ディープラーニングは画像認識の実験で人間を上回る精度を発揮したのです。 ニューラルネットワークの学習層を深くした 入力 出力 ニューラルネットワークの深 い層での学習がディープ ラーニングだ ジェフリー・ヒントン
  13. © rinna Co.,Ltd. All rights reserved. 19 ディープラーニングの何がすごいのか(仕組みは後程) 今まで他にも様々な機械学習がありましたが、どんな特徴に注目するかを人間が決め て学習させる必要がありました。

    どのような特徴に注目するかで答えを予測する精度は大きく変わります。 りんごとみかん…… 色と大きさに注目して仕分け すればいいな 青りんご は?
  14. © rinna Co.,Ltd. All rights reserved. 20 ディープラーニングの何がすごいのか(仕組みは後程) ディープラーニングでは、大量のデータをもとに、データが持つ様々な「特徴」をAI自ら 見つけ出すことができるようになりました。

    しかも画素と画素の複雑な関係のような人間では捉えられない特徴を見つけたりと、人 が特徴を教えるよりもずっと精度が高い予測ができるようになりました。 大量のデータから AIが自分で特徴を見つけら れるようになった! 入力 出力 ディープラーニング りんご みかん
  15. © rinna Co.,Ltd. All rights reserved. 21 再掲 AI 機械学習

    ニューラルネットワーク ディープラーニング AIという概念を実現するために機械学習という考え方があり、 機械学習にはニューラルネットワークという技術が使われることが最近の主流で、 ニューラルネットワークの中でもディープラーニングという技術が熱いです。
  16. © rinna Co.,Ltd. All rights reserved. 22 • 機械学習=ニューラルネットワーク、ディープラーニング •

    AI=機械学習を用いた製品やシステム これは私が巷を見て、こういった使い方の傾向がありそう、という話です。 ブログや会話などでの一般的な言葉の使われ方としては、 「機械学習」と言っていたらディープラーニングを指していることが多そうです。 また「AI」と言っていたら、機械学習が使われた製品やシステムを指していることが 多そうです。 この講演でも、この言葉の使い方で進めます。 最近の言葉の使われ方
  17. © rinna Co.,Ltd. All rights reserved. 24 教師あり学習 / 教師なし学習

    / 強化学習 AIが学習するための方法には大きく以下の3つがあります。 • データと正解をセットで学習する「教師あり学習」 • 正解なしで学習する「教師なし学習」 • 繰り返し試行錯誤で学習する「強化学習」 →猫 →犬 →ハリネズミ
  18. © rinna Co.,Ltd. All rights reserved. 30 『強化学習』 強化学習は、AIが試行錯誤しながら、ある行動がよい結果につながる適切な行動かど うか学習していく方法です。

    例えばゲームなら、ランダムで行動をしていき、勝ったときの行動を学習し行動を最適 化していきます。 ゲームやロボットの行動などに用いられています。 環境 エージェント 行動 • 状態 • 報酬
  19. © rinna Co.,Ltd. All rights reserved. 32 従来のソフトウェアでは、ルールや定義が必要 今までのソフトウェアでは、何かしらのルールをプログラムしたり、人が特徴を指定する 必要がありました。

    猫と犬を仕分けするのであれば、例えば画像の完全一致というルールで処理したり、汎 用的にしたいのであれば「猫、犬とは何か」を定義する必要がありました。 この画像と一致したら犬 この画像と一致したら猫 犬 エラー
  20. © rinna Co.,Ltd. All rights reserved. 33 自ら抽出した特徴を用いて未知のデータにも対応 現在のAIは、大量のデータから「特徴」を抽出しそれに注目します。 学習したデータと違う色の猫や大きさが違う犬などの未知の画像を入力したとしても、

    その特徴に当てはまれば「猫」「犬」と判別できるようになります。 このように学習データから特徴を抽出することを「汎化」と言います。 この「汎化性能」がAIを使う理由でありキモです。 犬の特徴 猫の特徴 犬 猫
  21. © rinna Co.,Ltd. All rights reserved. 37 神経細胞の簡単なしくみ ひとつの神経細胞はシナプスと呼ばれる接続部分を通じて、他の多数の神経細胞から 強弱がある信号を受け取ります。

    その受け取った信号の総量が一定の大きさを超えるとその神経細胞は他の神経細胞 に信号を送ります。このように次々と信号を送っていくことで情報を処理しています。 コーヒーを飲む?
  22. © rinna Co.,Ltd. All rights reserved. 39 ニューラルネットワークのしくみ ニューラルネットワークも考え方は同じです。 複数の人工ニューロンから入力を受け取ります。その入力を計算して出力します。プロ

    グラム的に言うと「関数」と言えるでしょう。 入力 計算して出力 入力 入力 人工ニューロン(ノー ド) 計算…… • ReLu関数 • sigmoid関数 • ステップ関数 など
  23. © rinna Co.,Ltd. All rights reserved. 42 ディープラーニングでは入力層 に近い中間層では単純なパ ターンに反応します。

    出力層に近い中間層では複雑 なパターンに反応するようにな ります。 これはデータの着目すべき特 徴を抽出できたことを意味して います。 | | ― | - - - - …… X + X * x + x x …… …… …… 入力層 中間層 (隠れ層) 猫 犬 出力層
  24. © rinna Co.,Ltd. All rights reserved. 44 例えば「△」と「×」を判別させ るように学習させるとしま す。

    まずは1列にして入力層に データを入力します。 人工ニューロン(ノード)は各 入力に重みをかけ合わせて 計算して出力します。 ですが最初は重みの値がデ タラメなため、間違った判定 をしてしまいました。 1列にして入力 入力層 中間層 (隠れ層) 不正解! 出力層 重みは最初 デタラメ…
  25. © rinna Co.,Ltd. All rights reserved. 45 そうすると教師データと出し た答えがどれくらいズレてい たかが計算(難しい言葉だと

    損失関数)で値が出てきま す。 そのズレを使い、各人工 ニューロン(ノード)の入力に かかる重み(繋がり具合) を、ズレが小さくなるように 変えていきます。 1列にして入力 入力層 中間層 (隠れ層) 出力層 重みは最初 デタラメ… ズレを縮めるように 「重み」をちょっと変え る! ホントはこっちが正 解なのに… 出した答えと本当の答 えがズレてる…
  26. © rinna Co.,Ltd. All rights reserved. 46 そして、たくさんのデータを 使って重みを少しずつ調整 =学習を行います。

    こうして最終的にデータを正 しく判別できるようになりま す。 1列にして入力 入力層 中間層 (隠れ層) 出力層 調整された重み 正解!
  27. © rinna Co.,Ltd. All rights reserved. 49 Accuracy (正解率) Accuracyは正解率です。推論した結果全てがどれくらい当たったかです。

    一番よく使う指標と言えます。 この例の場合、10回中7回当たったので、70%となります。 買うな 買うな 買うな 買い 買うな 買うな 買い 買うな 買い 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 例:株を買った方がいいか買わない方がいいかの推論 推論 実際 推論 : 10回 正解 : 7回 7 / 10 = 0.7 70% 実際 買い だった
  28. © rinna Co.,Ltd. All rights reserved. 50 Accuracy (正解率) Accuracyが高ければいいかというとそうとも言い切れません。

    起こる確率が低いものについては、上の例のように全て「買うな」と予測すれば正解率 は驚異の90%です。ですがこの例の場合だと我々が知りたいのはそこではないですよ ね。 買うな 買うな 買うな 買うな 買うな 買うな 買うな 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 例:株を買った方がいいか買わない方がいいかの推論 推論 実際 正解率 90%!! 買うな 買うな 買うな
  29. © rinna Co.,Ltd. All rights reserved. 51 Recall (再現率):当たりをどれだけ拾えていた? Recallは、「実際に当たり」を推論でどれだけ拾えていたのか、です。

    この例の場合「実際に買い」だったのは2回です。ですが推論が当たったのは1回だけで す。なのでRecallは1 / 2 = 0.5で50%となります。 テスター的な例えだと、本当はバグが2つあったけど1つしか見つけられなかった……みた いな例えがわかりやすいかもしれません。 買うな 買うな 買うな 買い 買うな 買うな 買い 買うな 買い 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 例:株を買った方がいいか買わない方がいいかの推論 推論 実際 実際 買い だった Recall = 実際に買いだった数 買いの推論で当たった数 実際に買いだった:2回 買いと推論して当たり:1回 1 / 2 = 0.5 50%
  30. © rinna Co.,Ltd. All rights reserved. 52 Recall は見逃しを少なくしたいとき 「見逃しを少なくしたい」とき、Recallが高くなるように学習を行うのが良いでしょう。です

    が上のように、今度は全部買いと推論すれば「見逃し」はなくなるためRecallは100%に なります。 買い 買い 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 例:株を買った方がいいか買わない方がいいかの推論 推論 実際 実際 買い だった Recall = 実際に買いだった数 買いの推論で当たった数 実際に買いだった:2回 買いと推論して当たり:2回 2 / 2 = 1 100%!! 買い 買い 買い 買い 買い 買い 買い 買い
  31. © rinna Co.,Ltd. All rights reserved. 53 Precision (適合率):当たり予想の正確性 Precisionは「当たり」と予測したときに、実際にどれだけ当たったかです。

    当たり予想の正確性と言えるでしょう。この例では3回「買い」と推論して、実際に当たっ たのは1回です。なので 1 / 3 = 0.33…で約33%となります。 テスター的な例えだと、3回「バグです!」と言ったけど2回は「仕様です」で返された…… みたいな例えがわかりやすいかもしれません。 買うな 買うな 買うな 買い 買うな 買うな 買い 買うな 買い 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 例:株を買った方がいいか買わない方がいいかの推論 推論 実際 実際 買い だった Precision = 買いの推論の数 買いの推論で当たった数 買いの推論:3回 買いと推論して当たり:1回 1 / 3 = 0.33… 33%
  32. © rinna Co.,Ltd. All rights reserved. 54 Precisionは誤検知を抑えたいとき 「誤検知を抑えたいとき」はPrecisionが高くなるように学習させるのが良いでしょう。です が上の例のように「できるだけ「買い」って言わない」ということになってきます。

    買うな 買うな 買うな 買い 買うな 買うな 買うな 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 例:株を買った方がいいか買わない方がいいかの推論 推論 実際 実際 買い だった Precision = 買いの推論の数 買いの推論で当たった数 買いの推論:1回 買いと推論して当たり:1回 1 / 1 = 1 100%!! 買うな 買うな
  33. © rinna Co.,Ltd. All rights reserved. 56 学習すればするほど精度が上がる……? 先ほどの説明を聞く限りだと、学習すればするほど良いと思うかもしれません。 ですがそうすると、教師データに過度にフィットしてしまう「過学習」が発生します。教師

    データにあるデータなら判別できるけど、未知のデータは判別できなくなってしまいま す。AIで大切な「汎化性能」が失われてしまうのです。 このテキストを一言一句ま で暗記してやる! 僕が知ってる文字列と違 う~!! 試験当日
  34. © rinna Co.,Ltd. All rights reserved. 57 ドロップアウト 過学習を避けるひとつの方法として「ドロップアウト」があります。 ドロップアウトは隠れ層の人工ニューロン(ノード)をランダムに選び、それを使わないよ

    うにして学習します。 これにより特定の特徴に依存しすぎることを防ぎ、汎用性の高い特徴を抽出できるよう になります。 入力 出力 学習時にランダムで 人工ニューロン(ノー ド)を脱落させたり復 活させたりする
  35. © rinna Co.,Ltd. All rights reserved. 58 まとめの時間 (2分) 2分ほどの時間で、皆さん自身でノートなりメモなりTwitterなりで学ん

    だことをまとめてみましょう。 特にあてるようなことはしませんので、自分で学んだことをまとめてみ てください。
  36. © rinna Co.,Ltd. All rights reserved. 61 どんなテストをすればよさそう? オススメ機能です。 少しどんなテストが考えられるか思い浮かべてみましょう。

    例:オススメ機能 仕様(ルール): マンガならマンガ、ゲームなら ゲームというように、購入商品と 同じジャンルの商品を1個表示 する。 商品は発売1か月以内の売り上 げTopの商品である。 実装 オススメ機能
  37. © rinna Co.,Ltd. All rights reserved. 62 どんなテストをすればよさそう? テストを考えた時、「何を入力して、どんな結果になったらよさそうか」ということが思い浮 かんだのではないでしょうか?

    例:オススメ機能 仕様(ルール): マンガならマンガ、ゲームなら ゲームというように、購入商品と 同じジャンルの商品を1個表示 する。 商品は発売1か月以内の売り上 げTopの商品である。 • 出力商品は買った商品と同じ ジャンルか • 出力商品は発売1か月以内 か • 出力商品は売り上げTopか etc…
  38. © rinna Co.,Ltd. All rights reserved. 63 どんなテストをすればよさそう? 従来のソフトウェアテストでは、要求→要件→仕様→ソフトウェアと、手前で決めたこと を具体化する形で開発が進行します。

    こういった開発を「演繹(えんえき)的」と言ったりします。繹(えんえき)的 要求 具体化 要求を実現する 要件を策定 要件 具体化 要件を満たす 仕様を策定 仕様 具体化 ソフト ウェア 仕様を満たす 実装を行う 演繹(えんえき)的
  39. © rinna Co.,Ltd. All rights reserved. 66 どんなテストをすればよさそう? ではオススメ機能の例をみてみましょう。 よくある機械学習を用いたオススメ機能です。少しだけどんなテストをすればよさそうか

    思い浮かべてみましょう。 例:オススメ機能 個別の購入履歴から学習 商品を購入した人の購入 履歴を入力として、一緒に 買う傾向が一番高い商品 を出力 システムに 組み込む オススメ機能 Aさんの購入履歴 Bさんの購入履歴 Cさんの購入履歴 …
  40. © rinna Co.,Ltd. All rights reserved. 67 テストオラクル問題 テストをしようにも「何が出力されたら正解か」がわからないですよね。 「出力が期待通りかどうかを判定する方法」をテストオラクルといい、今のようにその判

    定を行う方法がない、その方法が見つからないという問題をテストオラクル問題と言い ます。 例:オススメ機能 個別の購入履歴から学習 商品を購入した人の購入履 歴を入力として、一緒に買 う傾向が一番高い商品を出 力 一緒に買う傾向が 一番高い商品って 何が出れば いいの?
  41. © rinna Co.,Ltd. All rights reserved. 68 機械学習を用いたソフトウェア開発 従来のソフトウェアはルールを決めてそれ通り実装し、個別データの処理します。 機械学習は「個別のデータから、特徴やルールを見つける」のです。

    こういった開発を「帰納(きのう)的」と言ったりします。 このことが機械学習を用いたソフトウェアのテストの難しさに繋がっています。 大量の個別の事例を使って 学習し、学習済みモデルを 生成する システムに 組み込む ソフトウェア Aさんの購入履歴 (個別の事例) Bさんの購入履歴 (個別の事例) Cさんの購入履歴 (個別の事例) … 帰納(きのう)的
  42. © rinna Co.,Ltd. All rights reserved. 71 同値分割ができない 同値分割法は、入力値や出力値を同じ特徴をもつグループにわけて、その代表値でテ スト(設計)する方法です。

    「同じ処理がされるならどれか代表値で確認しましょう」という考え方です。 6歳以下 7歳以上13歳以下 14歳以上 入場料無料 入場料300円 入場料500円 3歳で確認しよう 10歳で確認しよう 18歳で確認しよう
  43. © rinna Co.,Ltd. All rights reserved. 74 機械学習で見つけたルールが常に成り立つとは言えない 機械学習では個別の事例を一般化しています。学習データ以外でも、学習した特徴や ルールが常に成り立つとはいうことができません。

    従来のテストでは基本的に「常に成り立つ」を前提にテストをしているので前提から違う のです。 機械学習 与えられた 個別の事例から ルールを見つける 学習済み モデル 個別の事例 未知の事例 ?
  44. © rinna Co.,Ltd. All rights reserved. 80 再学習するとモデル全体に影響する 結果、狙った部分はよくなったものの、他の部分が前より劣化する場合もあります。こう いった、変更が全体に影響を及ぼす性質をCACE性(Changing

    Anything Changes Everything)と言ったりします。 →猫 →犬 →ハリネズミ 推論 猫…PASS 犬…FAIL ハリネズミ …PASS 今までよかった部分がお かしくなった…
  45. © rinna Co.,Ltd. All rights reserved. 82 ちょっとした違いで誤認識するときがある パンダの画像を判定できるAIに、人にはわからないノイズを加えて入力すると「テナガ ザル」と推論を大きく間違ってしまう実験があります。

    これらは「頑健性(ロバスト性)」、つまり変化にどれくらい強いかという性能に問題があ ります。どこまで担保するか考える必要も出てきます。 テナガザル [引用] Goodfellow, I.J., Shlens, J., & Szegedy, C. (2015). Explaining and Harnessing Adversarial Examples. ,arXiv:1412.6572.
  46. © rinna Co.,Ltd. All rights reserved. 84 教師データに偏りがあり倫理的な問題が発生する可能性 教師データに問題があり、「よくないこと」を学習してしまうこともあります。 (勘違い?されがちですが、AIが自ら意志を持って考えて差別や問題発言しているわけ

    ではないです) 学習させるデータや、学習するための仕組みには気をつける必要があります。 ヒャッハー!! xxxxxxxxxxxxxxx!! xxxxx!! (何を言っているかはご想像にお任 せします)
  47. © rinna Co.,Ltd. All rights reserved. 86 AIに対するテスト手法 AIに対するテストの方法は様々考案されています。 ですがまだ「こうしていきましょう」といったようなスタンダードは様々なところで話し合わ

    れている最中です。 ここでは、AIのテストの話でほぼ必ず出てくる「メタモルフィックテスティング」というテスト 手法の説明を行います。
  48. © rinna Co.,Ltd. All rights reserved. 88 メタモルフィックテスティング メタモルフィックテスティングはテストオラクル問題に対応する手法のひとつです。 オリジナルの入力と加工された入力に一定の関係があるとき、出力の関係にも一定の

    関係が成立するという関係性(メタモルフィック関係)を確認しようという手法です。 入力データ ソフトウェア 出力データ 入力データ´ 出力データ´ 加工する 関係を評価する ソフトウェア
  49. © rinna Co.,Ltd. All rights reserved. 89 わかりにくいので例(オススメランキング機能) わかりにくいので簡単な例を挙げます。 ECサイトなどで機械学習を使った商品のおすすめランキングがあったとします。

    このとき、入力データについて「1位の商品を削除する」という加工をします。 結果の関係性は「商品の順位が繰り上がる」と予想できそうです。 ソフトウェア ソフトウェア 商品データ 1位 : AAAA 2位 : BBBB 3位 : CCCC 4位 : DDDD 1位の商品を削除した 商品データ 1位 : BBBB 2位 : CCCC 3位 : DDDD 4位 : EEEE 1位の商品を削除 オススメランキングは そのまま繰り上がるはず
  50. © rinna Co.,Ltd. All rights reserved. 90 わかりにくいので例(オススメランキング機能) 「商品の順位が繰り上がる」が関係性のはずなのに、1位を削除したときに別のランキン グが表示されたとしたら、何かしら学習やロジックに問題が発生している可能性があり

    ます。 ソフトウェア ソフトウェア 商品データ 1位 : AAAA 2位 : BBBB 3位 : CCCC 4位 : DDDD 1位の商品を削除した 商品データ 1位 : ZZZZ 2位 : BBBB 3位 : CCCC 4位 : DDDD 1位の商品を削除 何か問題が発生して いそう
  51. © rinna Co.,Ltd. All rights reserved. 91 わかりにくいので例(音楽のオススメ機能) 他にも簡単な例を挙げます。 聞いた曲の履歴からオススメを生成する機能があったとします。

    全てアニソンタグの曲の履歴だった場合アニソンタグの曲をオススメされます。 ならば全て洋楽タグの曲の履歴にした場合はオススメも洋楽タグの曲になる……といった 関係性が考えられます。 ソフトウェア ソフトウェア 全て「アニソン」タグ の履歴データ 全て「アニソン」タグ の曲をオススメ 全て「洋楽」タグ の履歴データ 全て「洋楽」タグ の曲をオススメ 「アニソン」から 「洋楽」に変更する オススメも 「アニソン」から 「洋楽」に変わる
  52. © rinna Co.,Ltd. All rights reserved. 92 わかりにくいので例(音楽のオススメ機能) この例では「履歴の大半を占めるタグ=オススメ曲のタグ」という関係性が成り立つとしましょ う。

    この関係性を使い、5000種類あるタグを自動化して確認していったところ「履歴の大半を占 めるタグ=オススメ曲のタグ」にならない部分が見つかりました。 その場合、何かしら学習やロジックに問題が発生している可能性があります。 ソフトウェア ソフトウェア 全て「癒し系」タグ の履歴データ 全て「癒し系」タグ の履歴データ 「デスメタル」タグ の曲がオススメされた! 「癒し系」タグの 曲がオススメされるはず 何か問題が発生して いそう
  53. © rinna Co.,Ltd. All rights reserved. 94 メタモルフィックテスティングのメリット1 メリットの一つとして「期待結果が定められない場合も問題を発見できる可能性がある」 です。

    例えばオススメランキングの場合は何が出力されれば正解かはわかりません。 ソフトウェア 商品データ 1位 : ???? 2位 : ???? 3位 : ???? 4位 : ???? 「期待結果が定められない場合も問題を発見できる可能性がある」
  54. © rinna Co.,Ltd. All rights reserved. 95 メタモルフィックテスティングのメリット1 ですが関係性を定義できれば、それを利用して「関係性のテスト」は可能になります。 関係性が成り立たないものがあった場合、そこに何か問題がある可能性があるとわか

    ります。 ソフトウェア ソフトウェア 商品データ 1位 : AAAA 2位 : BBBB 3位 : CCCC 4位 : DDDD 1位の商品を削除した 商品データ 1位 : ZZZZ 2位 : BBBB 3位 : CCCC 4位 : DDDD 1位の商品を削除 何か問題が発生して いそう オススメランキングは そのまま繰り上がるはず…
  55. © rinna Co.,Ltd. All rights reserved. 97 メタモルフィックテスティングのメリット2 次のメタモルフィックテスティングのメリットは「自動テストできる」です。 例えば100万種類の動物を分類し名前を出力する機械学習モデルがあったとします。

    入力した画像が正解かどうかを確認するためには、画像に人の手で正解ラベルをつける 必要があります。数十件ならいいですが、数万件となると手に負えません。 「自動テストできる」 ソフトウェア 何かの動物の画像 何かの動物の名前 正解ラベル: ナントカカントカテナガザル 正解ラベル: ホゲフガヘッジホッグ
  56. © rinna Co.,Ltd. All rights reserved. 98 メタモルフィックテスティングのメリット2 メタモルフィックテスティングは関係性を比較するテストです。 100万種類の動物の名前を分類する機械学習モデルでは「入力画像を15度傾けても、

    出力結果は変わらないはず」という関係性がありそうです。 ソフトウェア ソフトウェア 何かの動物の画像 何かの動物の名前 15度傾けた 何かの動物の画像 何かの動物の名前 15度画像を傾ける 15度傾けても 結果は変わらないはず
  57. © rinna Co.,Ltd. All rights reserved. 99 メタモルフィックテスティングのメリット2 例えば3万6218枚目の画像を入力して「よくわからないけど何かの動物の名前」が出力 されたとします。

    その画像を15度傾けて入力した結果、「同じ名前」が出てくれば「関係性」においては問 題ないといえます。 ソフトウェア ソフトウェア 3万6218枚目の 動物の画像 xxxxxxxx xxxxxxxx 画像を15度傾ける 画像を傾けても 結果は変わらないので OK 傾けた 3万6218枚目の 動物の画像
  58. © rinna Co.,Ltd. All rights reserved. 100 メタモルフィックテスティングのメリット2 この調子で「画像を15度傾けて入力」「結果が変わらない」のロジックで自動テスト化す ることも可能です。

    その結果、9万1178枚目で違う結果が出力されたとするならば、その画像に関する動物 の学習が不足しているなどの問題がある可能性があります。 ソフトウェア ソフトウェア 9万1178枚目の 動物の画像 xxxxxxxx aaaaaaaa 画像を15度傾ける 結果が変わったので、 9万1178枚目の画像に 関連する部分で何か 問題がありそう 傾けた 9万1178枚目の 動物の画像
  59. © rinna Co.,Ltd. All rights reserved. 101 メタモルフィックテスティングは 関係性の確認を 自動化できる可能性がある

    (正解を確かに正解と確認したい目的のテストをしたいのなら、別の方法を使った方がいい)
  60. © rinna Co.,Ltd. All rights reserved. 103 メタモルフィックテスティングのデメリット1 メタモルフィックテスティングのデメリットは「関係性を見つけることが難しい」です。 例えばチャットができるAIに「何が好き?」と聞いたとき「ハンバーグが好き」と返ってきたと

    します。このとき「何が嫌い?」に変えたら「嫌い」という返答に変わる……という関係性があ ると思うかもしれません。 「関係性を見つけることが難しい」 ソフトウェア 「何が好き?」 「ハンバーグが好き!」 ソフトウェア 「何が嫌い?」 「パクチーが嫌い><」 「好き」から「嫌い」に変える 好きから 嫌いに変わる?
  61. © rinna Co.,Ltd. All rights reserved. 104 メタモルフィックテスティングのデメリット1 しかし「必ず嫌いなものを返す」というわけではなく、話題転換だってありえますし間違いで はありません。

    このように自分たちが扱うAIにおいて「必ず成り立つ(必ず成り立つべき)関係性」を見つけ ることは非常に困難です。 「関係性を見つけることが難しい」 ソフトウェア 「何が好き?」 「ハンバーグが好き!」 ソフトウェア 「何が嫌い?」 「え、違う話しよ?」 「好き」から「嫌い」に変える これも間違いではない
  62. © rinna Co.,Ltd. All rights reserved. 106 メタモルフィックテスティングのデメリット2 次のデメリットは「本来確認したいことを確認できるわけではない」です。 メタモルフィックテスティングでは「関係性」を比較します。ですので、分類タスクで誤った答

    えを出力したとして、画像を15度傾けて「同じ誤った答え」を出した場合は関係性としては OKとなります。 画像から正しい答えを出すかを確認するなら別のテスト手法を選定する必要があります。 「本来確認したいことを確認できるわけではない」 ソフトウェア ソフトウェア サル サル 画像を15度傾ける 画像を傾けても 結果は変わらないので 「関係性」はOK!
  63. © rinna Co.,Ltd. All rights reserved. 107 メタモルフィックテスティングのデメリット2 他にもオススメ機能であれば、コンバージョンレートを上げるといった価値・目的がありま す。

    メタモルフィックテスティングは「こうした場合は問題がありそう」が得意なテストです。 なので「1位を削除、2位を削除……1000位を削除」などを1万回やって特定の場合での問題 は見つけられるかもしれませんが、本来確認したいことは確認できません。(この場合ABテ ストなどが向いている) テスト手法は目的や状況に応じて使い分けてください。 「本来確認したいことを確認できるわけではない」 ソフトウェア 履歴 オススメ コンバージョンレートを 上げたいからAIでオススメ を出したい
  64. © rinna Co.,Ltd. All rights reserved. 111 弊社でのチャットの評価 キャラるは研究用ツールではなくアプリです。 ユーザーに楽しんでもらいたいのです。

    よって言語として正しい、文脈が正しい、という観点だけで はアプリとしては評価できません。 例: A:おはようございます。 B:おはようございます。調子はどうですか? A:よいです。あなたは? B:はい、私も調子がいいです。 問題はないですが、このアプリを今後も使おうと思うかは 疑問ですよね。
  65. © rinna Co.,Ltd. All rights reserved. 112 弊社でのチャットの評価 現在は主にクラウドワーカーを集め「どう感じたか聞く」といった形で行われています。 ユーザーテストに近いです。

    この方法以外にも様々な評価方法が試されていたりします。 (今はまだ言えないといったところですのでご了承を……) 会話の内容が想像できるか 会話が面白いか 会話の内容をシェアしたいか etc…
  66. © rinna Co.,Ltd. All rights reserved. 115 AIプロダクト品質保証ガイドライン 「AIプロダクト品質保証ガイドライン」は「AIプロダクト品質保証コンソーシアム(QA4AI)」か ら発行されているガイドラインです。

    このガイドラインはAI プロダクトの品質保証に対する共通の指針を与えよう、という目的で 作成されています。 https://www.qa4ai.jp/download/
  67. © rinna Co.,Ltd. All rights reserved. 116 AIプロダクト品質保証ガイドライン AIプロダクトの品質保証において考慮すべき軸として、 •

    Data Integrity • Model Robustness • System Quality • Process Agility • Customer Expectation の5軸を挙げ、これらのバランスを取ることを推奨しています。 ドキュメントにはそれぞれの軸のチェックリストも用意されています。
  68. © rinna Co.,Ltd. All rights reserved. 117 AIプロダクト品質保証ガイドライン • Data

    Integrity ◦ 質においても量においても適切かつ充分なデータの確保、学習用データと検証用 データが独立しているかなどについて考慮 • Model Robustness ◦ モデルの精度と頑健性、デグレードなどについて考慮 • System Quality ◦ AI プロダクト全体の品質の確保について考慮 • Process Agility ◦ プロセスの機動性について考慮 • Customer Expectation ◦ よい顧客との関係性について考慮
  69. © rinna Co.,Ltd. All rights reserved. 121 また、これまでのプロダクトのテストとAIのテストの違いもお伝えし ました。 AIのテストについてはまだまだ発展途上です。

    今回の話を足掛かりに勉強をし、研究をし、実践をし、 我々みんなでAIのテストを切り開いていけることが出来たら最高 ですね! さいごに