Slide 1

Slide 1 text

© rinna Co.,Ltd. All rights reserved. 1 今までのテストと AIを含んだプロダクトの テストの違い

Slide 2

Slide 2 text

© rinna Co.,Ltd. All rights reserved. 2 自己紹介

Slide 3

Slide 3 text

© rinna Co.,Ltd. All rights reserved. 3 Name : 松谷 峰生(まつやみねお) Twitter : mty_mno(まつ) お仕事 ● rinna株式会社 / QA Lead その他 ● QA4AI (AIプロダクト品質保証コンソーシアム) ● JaSST Kyushu(ソフトウェアテストシンポジウム九州) ● たぶんマンガ家 ○ 新人さんからわかるソフトウェアテスト解説マンガ「テスターちゃん」 自己紹介

Slide 4

Slide 4 text

© rinna Co.,Ltd. All rights reserved. 4 「キャラる」を中心とした品質保証活動 ● 自分が育てたAIが絵を描いたりおしゃべりしたりと、AIたちが繋 がりを広げていくアプリ 会社でやっていること

Slide 5

Slide 5 text

© rinna Co.,Ltd. All rights reserved. 5 自分で遊んだりしていること 個人でもGPT-2という機械学習のモデルで会話の生成を行いデスクトップマスコットとし て音声合成をつけておしゃべりさせたりしていました。 (ちなみに男の子の声は僕の音声合成の声だったりしました)

Slide 6

Slide 6 text

© rinna Co.,Ltd. All rights reserved. 6 さて、AIという言葉に触れない日はないというくらいAIプロダクトが 普及してきました。 今後より多くのプロダクトにAIが組み込まれていくことは間違いな いでしょう。 ソフトウェアテストに関わる仕事をする皆様も、今後ほぼ必ずAIプ ロダクトと接する日が来ます。 さいしょに

Slide 7

Slide 7 text

© rinna Co.,Ltd. All rights reserved. 7 何も知識がなければ 今後の対策も考えようがありません。 今回の講演(というより学校の講義っぽい)で、AIについての基本 知識を仕入れ、テストの違いについて理解し、今後の業務のため にベースを固めておきましょう。 さいしょに

Slide 8

Slide 8 text

© rinna Co.,Ltd. All rights reserved. 8 ● AIの基本的な用語、仕組みがわかる ● これまでのテストとAIのテストの違いがわかる ● AIのテスト手法のひとつである「メタモルフィックテスティング」 について概要がわかる ゴール

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

© rinna Co.,Ltd. All rights reserved. 10 AI周りの言葉の整理 AI? 機械学習? ディープラーニング?

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

© rinna Co.,Ltd. All rights reserved. 12 AIはArtifical Interlligence、つまり人工知能です。 コンピューターに人と同じような知識を持たせる仕組み全般を指します。 最近はその仕組みが入ったプロダクトを指すことも多いです。 『AI』 なんらかの仕組みで、人と 同じような知識を持たせてい る

Slide 13

Slide 13 text

© rinna Co.,Ltd. All rights reserved. 13 『機械学習』 AI 機械学習 ニューラルネットワーク ディープラーニング

Slide 14

Slide 14 text

© rinna Co.,Ltd. All rights reserved. 14 機械学習(Machine Learning/ML)はたくさんのデータをもとにコンピューターが自ら学 習する仕組みです。様々な技術があり、今主流のニューラルネットワークの他にも遺伝 子アルゴリズムなどがあります。 『機械学習』 機械学習…機械が自ら学ぶ仕組み 遺伝子アルゴリズム ニューラル ネットワーク 決定木 サポートベクター マシン etc

Slide 15

Slide 15 text

© rinna Co.,Ltd. All rights reserved. 15 『ニューラルネットワーク』 AI 機械学習 ニューラルネットワーク ディープラーニング

Slide 16

Slide 16 text

© rinna Co.,Ltd. All rights reserved. 16 『ニューラルネットワーク』 昨今主流なのが脳にある神経細胞(ニューロン)を真似ようという試みです。 神経細胞を模したものがニューラルネットワークです。 ただ、初期(1950年代から研究は続いていた)のニューラルネットワークは単純構造で、 期待した結果は得られませんでした。 入力 出力

Slide 17

Slide 17 text

© rinna Co.,Ltd. All rights reserved. 17 『ディープラーニング』 AI 機械学習 ニューラルネットワーク ディープラーニング

Slide 18

Slide 18 text

© rinna Co.,Ltd. All rights reserved. 18 『ディープラーニング』 ニューラルネットワークを多層化し、フィードバック機能をつけたものが「ディープラーニ ング」です。 ディープラーニングは画像認識の実験で人間を上回る精度を発揮したのです。 ニューラルネットワークの学習層を深くした 入力 出力 ニューラルネットワークの深 い層での学習がディープ ラーニングだ ジェフリー・ヒントン

Slide 19

Slide 19 text

© rinna Co.,Ltd. All rights reserved. 19 ディープラーニングの何がすごいのか(仕組みは後程) 今まで他にも様々な機械学習がありましたが、どんな特徴に注目するかを人間が決め て学習させる必要がありました。 どのような特徴に注目するかで答えを予測する精度は大きく変わります。 りんごとみかん…… 色と大きさに注目して仕分け すればいいな 青りんご は?

Slide 20

Slide 20 text

© rinna Co.,Ltd. All rights reserved. 20 ディープラーニングの何がすごいのか(仕組みは後程) ディープラーニングでは、大量のデータをもとに、データが持つ様々な「特徴」をAI自ら 見つけ出すことができるようになりました。 しかも画素と画素の複雑な関係のような人間では捉えられない特徴を見つけたりと、人 が特徴を教えるよりもずっと精度が高い予測ができるようになりました。 大量のデータから AIが自分で特徴を見つけら れるようになった! 入力 出力 ディープラーニング りんご みかん

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

© rinna Co.,Ltd. All rights reserved. 23 学習の種類 教師あり学習 教師なし学習 強化学習

Slide 24

Slide 24 text

© rinna Co.,Ltd. All rights reserved. 24 教師あり学習 / 教師なし学習 / 強化学習 AIが学習するための方法には大きく以下の3つがあります。 ● データと正解をセットで学習する「教師あり学習」 ● 正解なしで学習する「教師なし学習」 ● 繰り返し試行錯誤で学習する「強化学習」 →猫 →犬 →ハリネズミ

Slide 25

Slide 25 text

© rinna Co.,Ltd. All rights reserved. 25 『教師あり学習』 教師あり学習とは、訓練するデータと正解のデータのセット(教師データ)をAIにあたえ、 答え合わせができるようにして学習させる方法です。 自分が出した答えと実際の答えの誤差を縮めるように学習していきます。 →猫 →犬 →ハリネズミ 入力 出力 猫 犬 ハリネズミ

Slide 26

Slide 26 text

© rinna Co.,Ltd. All rights reserved. 26 『教師あり学習』 推論の時は、データを入れると何の可能性が高いかが出てきます。 教師あり学習は、よく目にする分類のタスク以外に、気温や株価など連続した数字を予 測する”回帰”というタスクに用いられます。 入力 出力 猫…3% 犬…95% ハリネズミ…2%

Slide 27

Slide 27 text

© rinna Co.,Ltd. All rights reserved. 27 『教師あり学習』 教師あり学習の難点としては、訓練するデータと正解のセットを用意する必要があるこ とです。正解は人の手で設定する必要があり、数十万件単位で必要な場合もあります。 正解ラベル: ホニャララジカ 正解ラベル: ナントカテナガザル 正解ラベル: フーバードッグ 正解ラベル: ホゲフガヘッジホッグ

Slide 28

Slide 28 text

© rinna Co.,Ltd. All rights reserved. 28 『教師なし学習』 教師なし学習では、正解を与えずに入力したデータの中からAIが自ら特定のパターンを 見つけます。 データの特徴からグルーピング(クラスタリング)することに用いられることが多いです。

Slide 29

Slide 29 text

© rinna Co.,Ltd. All rights reserved. 29 『教師なし学習』 教師なし学習ではAIが見つけた特徴でグルーピングするため、教師あり学習の分類と は異なり、思いもしない特徴でグルーピングされる場合もあります。 教師なし学習は異常検知にも力を発揮します。 どのグループにも属さない 思いもしない特徴でグルーピング

Slide 30

Slide 30 text

© rinna Co.,Ltd. All rights reserved. 30 『強化学習』 強化学習は、AIが試行錯誤しながら、ある行動がよい結果につながる適切な行動かど うか学習していく方法です。 例えばゲームなら、ランダムで行動をしていき、勝ったときの行動を学習し行動を最適 化していきます。 ゲームやロボットの行動などに用いられています。 環境 エージェント 行動 ● 状態 ● 報酬

Slide 31

Slide 31 text

© rinna Co.,Ltd. All rights reserved. 31 AIを使うメリット

Slide 32

Slide 32 text

© rinna Co.,Ltd. All rights reserved. 32 従来のソフトウェアでは、ルールや定義が必要 今までのソフトウェアでは、何かしらのルールをプログラムしたり、人が特徴を指定する 必要がありました。 猫と犬を仕分けするのであれば、例えば画像の完全一致というルールで処理したり、汎 用的にしたいのであれば「猫、犬とは何か」を定義する必要がありました。 この画像と一致したら犬 この画像と一致したら猫 犬 エラー

Slide 33

Slide 33 text

© rinna Co.,Ltd. All rights reserved. 33 自ら抽出した特徴を用いて未知のデータにも対応 現在のAIは、大量のデータから「特徴」を抽出しそれに注目します。 学習したデータと違う色の猫や大きさが違う犬などの未知の画像を入力したとしても、 その特徴に当てはまれば「猫」「犬」と判別できるようになります。 このように学習データから特徴を抽出することを「汎化」と言います。 この「汎化性能」がAIを使う理由でありキモです。 犬の特徴 猫の特徴 犬 猫

Slide 34

Slide 34 text

© rinna Co.,Ltd. All rights reserved. 34 AIの学習のしくみ

Slide 35

Slide 35 text

© rinna Co.,Ltd. All rights reserved. 35 その前に 神経細胞の 簡単な説明

Slide 36

Slide 36 text

© rinna Co.,Ltd. All rights reserved. 36 今のAIは神経細胞の働きをまねている 先ほどお伝えした通り、今のAIの技術は脳の神経細胞の働きをまねています。 神経細胞はたくさんの神経細胞どうしが繋がってネットワークを作っています。

Slide 37

Slide 37 text

© rinna Co.,Ltd. All rights reserved. 37 神経細胞の簡単なしくみ ひとつの神経細胞はシナプスと呼ばれる接続部分を通じて、他の多数の神経細胞から 強弱がある信号を受け取ります。 その受け取った信号の総量が一定の大きさを超えるとその神経細胞は他の神経細胞 に信号を送ります。このように次々と信号を送っていくことで情報を処理しています。 コーヒーを飲む?

Slide 38

Slide 38 text

© rinna Co.,Ltd. All rights reserved. 38 ニューラルネットワー クのしくみ

Slide 39

Slide 39 text

© rinna Co.,Ltd. All rights reserved. 39 ニューラルネットワークのしくみ ニューラルネットワークも考え方は同じです。 複数の人工ニューロンから入力を受け取ります。その入力を計算して出力します。プロ グラム的に言うと「関数」と言えるでしょう。 入力 計算して出力 入力 入力 人工ニューロン(ノー ド) 計算…… ● ReLu関数 ● sigmoid関数 ● ステップ関数 など

Slide 40

Slide 40 text

© rinna Co.,Ltd. All rights reserved. 40 ニューラルネットワークのしくみ また人工ニューロンが受け取る入力値には「重み(係数)」がかけられます。 この重みを変化させることによって人工ニューロンどうしのつながりの強さが変わりま す。この重みの変化=繋がりの強さを変えることで学習を行います。 入力x重み 計算して出力 人工ニューロン(ノー ド) 入力x重み 入力x重み

Slide 41

Slide 41 text

© rinna Co.,Ltd. All rights reserved. 41 ニューラルネットワークのしくみ ニューラルネットワークをつなげ多層化したものがディープラーニングです。 ニューラルネットワークの学習層を深くした 入力 出力

Slide 42

Slide 42 text

© rinna Co.,Ltd. All rights reserved. 42 ディープラーニングでは入力層 に近い中間層では単純なパ ターンに反応します。 出力層に近い中間層では複雑 なパターンに反応するようにな ります。 これはデータの着目すべき特 徴を抽出できたことを意味して います。 | | ― | - - - - …… X + X * x + x x …… …… …… 入力層 中間層 (隠れ層) 猫 犬 出力層

Slide 43

Slide 43 text

© rinna Co.,Ltd. All rights reserved. 43 教師あり学習の しくみ

Slide 44

Slide 44 text

© rinna Co.,Ltd. All rights reserved. 44 例えば「△」と「×」を判別させ るように学習させるとしま す。 まずは1列にして入力層に データを入力します。 人工ニューロン(ノード)は各 入力に重みをかけ合わせて 計算して出力します。 ですが最初は重みの値がデ タラメなため、間違った判定 をしてしまいました。 1列にして入力 入力層 中間層 (隠れ層) 不正解! 出力層 重みは最初 デタラメ…

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

© rinna Co.,Ltd. All rights reserved. 46 そして、たくさんのデータを 使って重みを少しずつ調整 =学習を行います。 こうして最終的にデータを正 しく判別できるようになりま す。 1列にして入力 入力層 中間層 (隠れ層) 出力層 調整された重み 正解!

Slide 47

Slide 47 text

© rinna Co.,Ltd. All rights reserved. 47 機械学習(分類タスク) の 評価指標

Slide 48

Slide 48 text

© rinna Co.,Ltd. All rights reserved. 48 機械学習(分類タスク)の評価指標 学習後は、その学習済みモデルがどれくらい良いのか測らなければなりません。 その評価指標であるAccuracy, Recall, Precisionの説明をします。 Accuracy (正解率) Recall (再現率) Precision (適合率)

Slide 49

Slide 49 text

© rinna Co.,Ltd. All rights reserved. 49 Accuracy (正解率) Accuracyは正解率です。推論した結果全てがどれくらい当たったかです。 一番よく使う指標と言えます。 この例の場合、10回中7回当たったので、70%となります。 買うな 買うな 買うな 買い 買うな 買うな 買い 買うな 買い 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 例:株を買った方がいいか買わない方がいいかの推論 推論 実際 推論 : 10回 正解 : 7回 7 / 10 = 0.7 70% 実際 買い だった

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

© 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%

Slide 52

Slide 52 text

© rinna Co.,Ltd. All rights reserved. 52 Recall は見逃しを少なくしたいとき 「見逃しを少なくしたい」とき、Recallが高くなるように学習を行うのが良いでしょう。です が上のように、今度は全部買いと推論すれば「見逃し」はなくなるためRecallは100%に なります。 買い 買い 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 例:株を買った方がいいか買わない方がいいかの推論 推論 実際 実際 買い だった Recall = 実際に買いだった数 買いの推論で当たった数 実際に買いだった:2回 買いと推論して当たり:2回 2 / 2 = 1 100%!! 買い 買い 買い 買い 買い 買い 買い 買い

Slide 53

Slide 53 text

© 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%

Slide 54

Slide 54 text

© rinna Co.,Ltd. All rights reserved. 54 Precisionは誤検知を抑えたいとき 「誤検知を抑えたいとき」はPrecisionが高くなるように学習させるのが良いでしょう。です が上の例のように「できるだけ「買い」って言わない」ということになってきます。 買うな 買うな 買うな 買い 買うな 買うな 買うな 買うな 実際 買うな だった 実際 買うな だった 実際 買い だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 実際 買うな だった 例:株を買った方がいいか買わない方がいいかの推論 推論 実際 実際 買い だった Precision = 買いの推論の数 買いの推論で当たった数 買いの推論:1回 買いと推論して当たり:1回 1 / 1 = 1 100%!! 買うな 買うな

Slide 55

Slide 55 text

© rinna Co.,Ltd. All rights reserved. 55 過学習という問題

Slide 56

Slide 56 text

© rinna Co.,Ltd. All rights reserved. 56 学習すればするほど精度が上がる……? 先ほどの説明を聞く限りだと、学習すればするほど良いと思うかもしれません。 ですがそうすると、教師データに過度にフィットしてしまう「過学習」が発生します。教師 データにあるデータなら判別できるけど、未知のデータは判別できなくなってしまいま す。AIで大切な「汎化性能」が失われてしまうのです。 このテキストを一言一句ま で暗記してやる! 僕が知ってる文字列と違 う~!! 試験当日

Slide 57

Slide 57 text

© rinna Co.,Ltd. All rights reserved. 57 ドロップアウト 過学習を避けるひとつの方法として「ドロップアウト」があります。 ドロップアウトは隠れ層の人工ニューロン(ノード)をランダムに選び、それを使わないよ うにして学習します。 これにより特定の特徴に依存しすぎることを防ぎ、汎用性の高い特徴を抽出できるよう になります。 入力 出力 学習時にランダムで 人工ニューロン(ノー ド)を脱落させたり復 活させたりする

Slide 58

Slide 58 text

© rinna Co.,Ltd. All rights reserved. 58 まとめの時間 (2分) 2分ほどの時間で、皆さん自身でノートなりメモなりTwitterなりで学ん だことをまとめてみましょう。 特にあてるようなことはしませんので、自分で学んだことをまとめてみ てください。

Slide 59

Slide 59 text

© rinna Co.,Ltd. All rights reserved. 59 今までのテストと AIを含んだプロダクトの テストの違い

Slide 60

Slide 60 text

© rinna Co.,Ltd. All rights reserved. 60 従来の ソフトウェアの テスト

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

© rinna Co.,Ltd. All rights reserved. 63 どんなテストをすればよさそう? 従来のソフトウェアテストでは、要求→要件→仕様→ソフトウェアと、手前で決めたこと を具体化する形で開発が進行します。 こういった開発を「演繹(えんえき)的」と言ったりします。繹(えんえき)的 要求 具体化 要求を実現する 要件を策定 要件 具体化 要件を満たす 仕様を策定 仕様 具体化 ソフト ウェア 仕様を満たす 実装を行う 演繹(えんえき)的

Slide 64

Slide 64 text

© rinna Co.,Ltd. All rights reserved. 64 どんなテストをすればよさそう? テストの際は、作られたソフトウェアが仕様、要件を満たしているかをテストします。仕様 や要件を答え(期待結果)としてテストができます。 要求 具体化 要件 具体化 仕様 具体化 ソフト ウェア 仕様、要件を満たしているか 要求を満たしているか

Slide 65

Slide 65 text

© rinna Co.,Ltd. All rights reserved. 65 AIのテスト

Slide 66

Slide 66 text

© rinna Co.,Ltd. All rights reserved. 66 どんなテストをすればよさそう? ではオススメ機能の例をみてみましょう。 よくある機械学習を用いたオススメ機能です。少しだけどんなテストをすればよさそうか 思い浮かべてみましょう。 例:オススメ機能 個別の購入履歴から学習 商品を購入した人の購入 履歴を入力として、一緒に 買う傾向が一番高い商品 を出力 システムに 組み込む オススメ機能 Aさんの購入履歴 Bさんの購入履歴 Cさんの購入履歴 …

Slide 67

Slide 67 text

© rinna Co.,Ltd. All rights reserved. 67 テストオラクル問題 テストをしようにも「何が出力されたら正解か」がわからないですよね。 「出力が期待通りかどうかを判定する方法」をテストオラクルといい、今のようにその判 定を行う方法がない、その方法が見つからないという問題をテストオラクル問題と言い ます。 例:オススメ機能 個別の購入履歴から学習 商品を購入した人の購入履 歴を入力として、一緒に買 う傾向が一番高い商品を出 力 一緒に買う傾向が 一番高い商品って 何が出れば いいの?

Slide 68

Slide 68 text

© rinna Co.,Ltd. All rights reserved. 68 機械学習を用いたソフトウェア開発 従来のソフトウェアはルールを決めてそれ通り実装し、個別データの処理します。 機械学習は「個別のデータから、特徴やルールを見つける」のです。 こういった開発を「帰納(きのう)的」と言ったりします。 このことが機械学習を用いたソフトウェアのテストの難しさに繋がっています。 大量の個別の事例を使って 学習し、学習済みモデルを 生成する システムに 組み込む ソフトウェア Aさんの購入履歴 (個別の事例) Bさんの購入履歴 (個別の事例) Cさんの購入履歴 (個別の事例) … 帰納(きのう)的

Slide 69

Slide 69 text

© rinna Co.,Ltd. All rights reserved. 69 従来の ソフトウェアとの テストの違い

Slide 70

Slide 70 text

© rinna Co.,Ltd. All rights reserved. 70 同値分割法が 成り立たない

Slide 71

Slide 71 text

© rinna Co.,Ltd. All rights reserved. 71 同値分割ができない 同値分割法は、入力値や出力値を同じ特徴をもつグループにわけて、その代表値でテ スト(設計)する方法です。 「同じ処理がされるならどれか代表値で確認しましょう」という考え方です。 6歳以下 7歳以上13歳以下 14歳以上 入場料無料 入場料300円 入場料500円 3歳で確認しよう 10歳で確認しよう 18歳で確認しよう

Slide 72

Slide 72 text

© rinna Co.,Ltd. All rights reserved. 72 同値分割ができない 機械学習においては、我々からすれば同じ犬に分類されるような画像でも様々なニュー ロン(ノード)を通り複雑な計算がされており、全く同じ処理がされることがありません。 →猫 →犬 →ハリネズミ 学習 猫 犬 ハリネズ ミ 犬、猫、ハリネズミ それぞれ代表画像1 枚で確認すれば OK??

Slide 73

Slide 73 text

© rinna Co.,Ltd. All rights reserved. 73 機械学習で見つけたルールが 常に成り立つとは言えない

Slide 74

Slide 74 text

© rinna Co.,Ltd. All rights reserved. 74 機械学習で見つけたルールが常に成り立つとは言えない 機械学習では個別の事例を一般化しています。学習データ以外でも、学習した特徴や ルールが常に成り立つとはいうことができません。 従来のテストでは基本的に「常に成り立つ」を前提にテストをしているので前提から違う のです。 機械学習 与えられた 個別の事例から ルールを見つける 学習済み モデル 個別の事例 未知の事例 ?

Slide 75

Slide 75 text

© rinna Co.,Ltd. All rights reserved. 75 期待結果が 定められない場合がある

Slide 76

Slide 76 text

© rinna Co.,Ltd. All rights reserved. 76 期待結果が定められない場合がある これまで例に挙げた分類タスクは入力数は爆発的ですが期待結果は存在します。 しかし、画像の生成や文章の生成などでは明確に期待結果が定められない場合があり ます。 オススメ生成 お絵かき生成 おしゃべり 生成 何が出れば正解? 何が出れば失敗?

Slide 77

Slide 77 text

© rinna Co.,Ltd. All rights reserved. 77 その他の AIの困ったこと

Slide 78

Slide 78 text

© rinna Co.,Ltd. All rights reserved. 78 再学習すると モデル全体に影響する

Slide 79

Slide 79 text

© rinna Co.,Ltd. All rights reserved. 79 再学習するとモデル全体に影響する データを加えて再学習することはよくあると思います。 再学習を行うと全体的に重みが調整されます。 再学習で重みが 全部調整される 猫の画像の推論結果が いまいちだから再学習し よう!

Slide 80

Slide 80 text

© rinna Co.,Ltd. All rights reserved. 80 再学習するとモデル全体に影響する 結果、狙った部分はよくなったものの、他の部分が前より劣化する場合もあります。こう いった、変更が全体に影響を及ぼす性質をCACE性(Changing Anything Changes Everything)と言ったりします。 →猫 →犬 →ハリネズミ 推論 猫…PASS 犬…FAIL ハリネズミ …PASS 今までよかった部分がお かしくなった…

Slide 81

Slide 81 text

© rinna Co.,Ltd. All rights reserved. 81 ちょっとした違いで 誤認識する時がある

Slide 82

Slide 82 text

© rinna Co.,Ltd. All rights reserved. 82 ちょっとした違いで誤認識するときがある パンダの画像を判定できるAIに、人にはわからないノイズを加えて入力すると「テナガ ザル」と推論を大きく間違ってしまう実験があります。 これらは「頑健性(ロバスト性)」、つまり変化にどれくらい強いかという性能に問題があ ります。どこまで担保するか考える必要も出てきます。 テナガザル [引用] Goodfellow, I.J., Shlens, J., & Szegedy, C. (2015). Explaining and Harnessing Adversarial Examples. ,arXiv:1412.6572.

Slide 83

Slide 83 text

© rinna Co.,Ltd. All rights reserved. 83 倫理的問題が発生する可能性

Slide 84

Slide 84 text

© rinna Co.,Ltd. All rights reserved. 84 教師データに偏りがあり倫理的な問題が発生する可能性 教師データに問題があり、「よくないこと」を学習してしまうこともあります。 (勘違い?されがちですが、AIが自ら意志を持って考えて差別や問題発言しているわけ ではないです) 学習させるデータや、学習するための仕組みには気をつける必要があります。 ヒャッハー!! xxxxxxxxxxxxxxx!! xxxxx!! (何を言っているかはご想像にお任 せします)

Slide 85

Slide 85 text

© rinna Co.,Ltd. All rights reserved. 85 テスト手法の紹介

Slide 86

Slide 86 text

© rinna Co.,Ltd. All rights reserved. 86 AIに対するテスト手法 AIに対するテストの方法は様々考案されています。 ですがまだ「こうしていきましょう」といったようなスタンダードは様々なところで話し合わ れている最中です。 ここでは、AIのテストの話でほぼ必ず出てくる「メタモルフィックテスティング」というテスト 手法の説明を行います。

Slide 87

Slide 87 text

© rinna Co.,Ltd. All rights reserved. 87 メタモルフィック テスティング

Slide 88

Slide 88 text

© rinna Co.,Ltd. All rights reserved. 88 メタモルフィックテスティング メタモルフィックテスティングはテストオラクル問題に対応する手法のひとつです。 オリジナルの入力と加工された入力に一定の関係があるとき、出力の関係にも一定の 関係が成立するという関係性(メタモルフィック関係)を確認しようという手法です。 入力データ ソフトウェア 出力データ 入力データ´ 出力データ´ 加工する 関係を評価する ソフトウェア

Slide 89

Slide 89 text

© 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位の商品を削除 オススメランキングは そのまま繰り上がるはず

Slide 90

Slide 90 text

© 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位の商品を削除 何か問題が発生して いそう

Slide 91

Slide 91 text

© rinna Co.,Ltd. All rights reserved. 91 わかりにくいので例(音楽のオススメ機能) 他にも簡単な例を挙げます。 聞いた曲の履歴からオススメを生成する機能があったとします。 全てアニソンタグの曲の履歴だった場合アニソンタグの曲をオススメされます。 ならば全て洋楽タグの曲の履歴にした場合はオススメも洋楽タグの曲になる……といった 関係性が考えられます。 ソフトウェア ソフトウェア 全て「アニソン」タグ の履歴データ 全て「アニソン」タグ の曲をオススメ 全て「洋楽」タグ の履歴データ 全て「洋楽」タグ の曲をオススメ 「アニソン」から 「洋楽」に変更する オススメも 「アニソン」から 「洋楽」に変わる

Slide 92

Slide 92 text

© rinna Co.,Ltd. All rights reserved. 92 わかりにくいので例(音楽のオススメ機能) この例では「履歴の大半を占めるタグ=オススメ曲のタグ」という関係性が成り立つとしましょ う。 この関係性を使い、5000種類あるタグを自動化して確認していったところ「履歴の大半を占 めるタグ=オススメ曲のタグ」にならない部分が見つかりました。 その場合、何かしら学習やロジックに問題が発生している可能性があります。 ソフトウェア ソフトウェア 全て「癒し系」タグ の履歴データ 全て「癒し系」タグ の履歴データ 「デスメタル」タグ の曲がオススメされた! 「癒し系」タグの 曲がオススメされるはず 何か問題が発生して いそう

Slide 93

Slide 93 text

© rinna Co.,Ltd. All rights reserved. 93 メタモルフィック テスティングの メリット

Slide 94

Slide 94 text

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

Slide 95

Slide 95 text

© 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位の商品を削除 何か問題が発生して いそう オススメランキングは そのまま繰り上がるはず…

Slide 96

Slide 96 text

© rinna Co.,Ltd. All rights reserved. 96 メタモルフィックテスティングは 正解を確認するテストというより 「問題部分を発見する」 ことが得意

Slide 97

Slide 97 text

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

Slide 98

Slide 98 text

© rinna Co.,Ltd. All rights reserved. 98 メタモルフィックテスティングのメリット2 メタモルフィックテスティングは関係性を比較するテストです。 100万種類の動物の名前を分類する機械学習モデルでは「入力画像を15度傾けても、 出力結果は変わらないはず」という関係性がありそうです。 ソフトウェア ソフトウェア 何かの動物の画像 何かの動物の名前 15度傾けた 何かの動物の画像 何かの動物の名前 15度画像を傾ける 15度傾けても 結果は変わらないはず

Slide 99

Slide 99 text

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

Slide 100

Slide 100 text

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

Slide 101

Slide 101 text

© rinna Co.,Ltd. All rights reserved. 101 メタモルフィックテスティングは 関係性の確認を 自動化できる可能性がある (正解を確かに正解と確認したい目的のテストをしたいのなら、別の方法を使った方がいい)

Slide 102

Slide 102 text

© rinna Co.,Ltd. All rights reserved. 102 メタモルフィック テスティングの デメリット

Slide 103

Slide 103 text

© rinna Co.,Ltd. All rights reserved. 103 メタモルフィックテスティングのデメリット1 メタモルフィックテスティングのデメリットは「関係性を見つけることが難しい」です。 例えばチャットができるAIに「何が好き?」と聞いたとき「ハンバーグが好き」と返ってきたと します。このとき「何が嫌い?」に変えたら「嫌い」という返答に変わる……という関係性があ ると思うかもしれません。 「関係性を見つけることが難しい」 ソフトウェア 「何が好き?」 「ハンバーグが好き!」 ソフトウェア 「何が嫌い?」 「パクチーが嫌い><」 「好き」から「嫌い」に変える 好きから 嫌いに変わる?

Slide 104

Slide 104 text

© rinna Co.,Ltd. All rights reserved. 104 メタモルフィックテスティングのデメリット1 しかし「必ず嫌いなものを返す」というわけではなく、話題転換だってありえますし間違いで はありません。 このように自分たちが扱うAIにおいて「必ず成り立つ(必ず成り立つべき)関係性」を見つけ ることは非常に困難です。 「関係性を見つけることが難しい」 ソフトウェア 「何が好き?」 「ハンバーグが好き!」 ソフトウェア 「何が嫌い?」 「え、違う話しよ?」 「好き」から「嫌い」に変える これも間違いではない

Slide 105

Slide 105 text

© rinna Co.,Ltd. All rights reserved. 105 これが関係性だ!という 思い込みでテストしない 開発含めチームで相談

Slide 106

Slide 106 text

© rinna Co.,Ltd. All rights reserved. 106 メタモルフィックテスティングのデメリット2 次のデメリットは「本来確認したいことを確認できるわけではない」です。 メタモルフィックテスティングでは「関係性」を比較します。ですので、分類タスクで誤った答 えを出力したとして、画像を15度傾けて「同じ誤った答え」を出した場合は関係性としては OKとなります。 画像から正しい答えを出すかを確認するなら別のテスト手法を選定する必要があります。 「本来確認したいことを確認できるわけではない」 ソフトウェア ソフトウェア サル サル 画像を15度傾ける 画像を傾けても 結果は変わらないので 「関係性」はOK!

Slide 107

Slide 107 text

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

Slide 108

Slide 108 text

© rinna Co.,Ltd. All rights reserved. 108 テストは目的・状況次第

Slide 109

Slide 109 text

© rinna Co.,Ltd. All rights reserved. 109 弊社での チャットの 評価

Slide 110

Slide 110 text

© rinna Co.,Ltd. All rights reserved. 110 弊社でのチャットの評価 弊社アプリ「キャラる」ではAIとの 会話や、AI同士の会話を楽しむ ことができます。 https://www.chararu.jp/

Slide 111

Slide 111 text

© rinna Co.,Ltd. All rights reserved. 111 弊社でのチャットの評価 キャラるは研究用ツールではなくアプリです。 ユーザーに楽しんでもらいたいのです。 よって言語として正しい、文脈が正しい、という観点だけで はアプリとしては評価できません。 例: A:おはようございます。 B:おはようございます。調子はどうですか? A:よいです。あなたは? B:はい、私も調子がいいです。 問題はないですが、このアプリを今後も使おうと思うかは 疑問ですよね。

Slide 112

Slide 112 text

© rinna Co.,Ltd. All rights reserved. 112 弊社でのチャットの評価 現在は主にクラウドワーカーを集め「どう感じたか聞く」といった形で行われています。 ユーザーテストに近いです。 この方法以外にも様々な評価方法が試されていたりします。 (今はまだ言えないといったところですのでご了承を……) 会話の内容が想像できるか 会話が面白いか 会話の内容をシェアしたいか etc…

Slide 113

Slide 113 text

© rinna Co.,Ltd. All rights reserved. 113 問題発言はロジックによって選択的に防ぐことができる 問題とされるような発言については学習のレイヤーではなく、その後のルールベースなロ ジックで防がれています。 これらは一律全て抑えるのではなく、ユーザーが選択できるように「アイテム」の形で実 現されています。

Slide 114

Slide 114 text

© rinna Co.,Ltd. All rights reserved. 114 AIプロダクト 品質保証 ガイドラインの 紹介

Slide 115

Slide 115 text

© rinna Co.,Ltd. All rights reserved. 115 AIプロダクト品質保証ガイドライン 「AIプロダクト品質保証ガイドライン」は「AIプロダクト品質保証コンソーシアム(QA4AI)」か ら発行されているガイドラインです。 このガイドラインはAI プロダクトの品質保証に対する共通の指針を与えよう、という目的で 作成されています。 https://www.qa4ai.jp/download/

Slide 116

Slide 116 text

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

Slide 117

Slide 117 text

© rinna Co.,Ltd. All rights reserved. 117 AIプロダクト品質保証ガイドライン ● Data Integrity ○ 質においても量においても適切かつ充分なデータの確保、学習用データと検証用 データが独立しているかなどについて考慮 ● Model Robustness ○ モデルの精度と頑健性、デグレードなどについて考慮 ● System Quality ○ AI プロダクト全体の品質の確保について考慮 ● Process Agility ○ プロセスの機動性について考慮 ● Customer Expectation ○ よい顧客との関係性について考慮

Slide 118

Slide 118 text

© rinna Co.,Ltd. All rights reserved. 118 AIプロダクト品質保証ガイドライン また後半には、以下に列挙したそれぞれのシステムに関しての品質保証について記載さ れています。 ● 生成系システム ● VUI (Voice User Interface) ● 産業用プロセス ● 自動運転 ● AI-OCR

Slide 119

Slide 119 text

© rinna Co.,Ltd. All rights reserved. 119 さいごに

Slide 120

Slide 120 text

© rinna Co.,Ltd. All rights reserved. 120 いかがだったでしょうか? AIの基礎知識をお伝えしました。 基礎部分がわかっていたら、今後AI関係の資料を読むときの足 掛かりになりましたら幸いです。 さいごに

Slide 121

Slide 121 text

© rinna Co.,Ltd. All rights reserved. 121 また、これまでのプロダクトのテストとAIのテストの違いもお伝えし ました。 AIのテストについてはまだまだ発展途上です。 今回の話を足掛かりに勉強をし、研究をし、実践をし、 我々みんなでAIのテストを切り開いていけることが出来たら最高 ですね! さいごに

Slide 122

Slide 122 text

© rinna Co.,Ltd. All rights reserved. 122 資料に出てきた写真、全部AIが描いた写真です さいごに

Slide 123

Slide 123 text

© rinna Co.,Ltd. All rights reserved. 123 © rinna Co.,Ltd. All rights reserved. Thank you