「クロージングパネル:⼈⼯知能の未来~その未来をどうテストし、どうテストに活⽤するのか~」聴講レポート #JaSST19Tokyo #JaSST

目次

自己紹介

榊原彰(以下、榊原)

TariqKing(以下、Tariq)

  • Ultimate Software Senior Director

石川冬樹(以下、石川)

松原仁(以下、松原)

  • はこだて未来大学 副理事長
  • 人工知能学会 前会長

現在のチャレンジについて

  • 榊原

    • TariqがやっているAI-Driven-Testingが現状どこまで進んでいるのか、今やっているチャレンジングなことは何か?
  • Tariq

    • これまでのところ、自動テストの生成をやっていた。
      • テスト結果の確認をハイレベルまで行っている
      • 自律的で独立型のAIを行っている
      • 自動的にサイトを探索してモデリングすることができる
      • アプリケーション用のユーザーフローを生成するようにしている
        • 抽象的なテストから学ぶことで実現している
    • テクノロジーとしては、long short-term memoryを使っている
    • マニュアルでは順番通りに入力している、AIはユーザーフローを使うことでテスト手法を補完する
    • 結果の確認も成功している
    • 予測の問題が現時点でのチャレンジ
      • AIが完全に理解できていないから
      • 「そのシステムのゴールはこれ」というものを教えようとしている
  • 榊原

    • 石川先生の今行っていることとBigチャレンジを教えて欲しい
  • 石川

    • 機械学習もAIも使って自動運転を研究している
    • AIも10回に2回外す
    • 今まではバグがあるとしていた
      • では、テストって何か?バグって何か?
    • 機械学習ではルールを生成し、データから学ばせている。エンジニアは知らないものである。これをテストする。
      • この話は大違い。
    • テストオラクルは何が正しいのか、そもそも分からない。一意の基準がない。
    • 今までのやり方が通じない。
      • けど、AIブームでみんな作り始めちゃった。
    • 4割ぐらいは新しいやり方でやらないといけないぐらい難しいと回答している。
    • 「どうあるべきか」を問われていると思う

AIとドメインナレッジについて

  • 榊原

    • 自動化を助けるところにAIを用いているが、そこにドメインナレッジが入ってくる余地があるか
  • Tariq

    • アルティメットソフトウェアにおいても様々なドメインがある。
      • 例えば、税法通りかどうかは、どれだけそこに関わってきたかが重要。
      • 税額を計算するために、理解する必要があり、そこは人間に頼る必要がある
    • 色々なパラメータを考える必要がある。
    • また、人間の専門家であっても正しいことを確認するには人間同士で対話する必要がある。
      • エンジニアチームが開発するときに、お客様が本当に欲しいものを作るために対話することが多くなっている。
    • 専門家に質問している内容をAIが学習することで、できるのではと思っている。
    • そのためにはドメイン知識が必要になってくる
    • レーニングをシステムに教え、システムを人間が評価するように我々は行っている
      • これを実現するまでには時間がかかると思ってます。
  • 榊原

    • 例えば、ボナンザのように、人間の指し手をAIが学習することから、逆転してAIの指し手を人間が学ぶ、そんな世界が来るか?
  • 松原

    • あり得ると思う。
    • 今のディープラーニングでは身につけているので、それを形式化すれば、それを利用できることがあるはず。
    • ただし、それには時間がかかる
  • 榊原

    • 学び方を抽象化して学ぶようになれば良いということか。
  • 松原

    • 学習したAIのディープラーニングの数値を明示化できれば、学ぶようにできると思う。
    • コンピュータを学習する手法から、人間も学習できるようになる

品質の担保の仕方について

  • 榊原

    • ヒューリスティックになって、確率論的な近似解が当たり前の世界になったとき、品質はどうやって担保すればよいのか。品質の定義はどう考えるべきか
  • 石川

    • 正解のラインがしっかり決まっていれば、統計の知識があれば良い
    • 正解のラインがぼやけている場合、擬似的に正解を近似して、点数をつける手段を行う。
      • 人が良いと思うことをチェックするなど。
    • 作ってみるまでどれだけの精度が出るのか分からない。
    • データの中から規則性を見つける。
    • まずはアドホックに作ってみて、規模を広げて作ってみる。
    • 文化がぜんぜん違う。すべてが試行錯誤。研究に近い開発。
    • 今は本当に知見がない。
  • 榊原

    • AIで作るシステムをテストするのにAIを使うことが今後出てくると思うが、指針についてアドバイスをくれ、と言われたりするか
  • Tariq

    • これから先起こる一番大きな変化の1つは、今日行っているオフラインのバリデーションではできなくなるかもしれない。
    • AIはオラクルが膨大で、YesかNoか言えなくなるものになっている。
    • こういうAIのシステムは常に環境に適用しようとする。事前に基準を設けることができるが、本番稼働後に変化が起き続けるので、常にモニタリングして変化に追従する必要がある。
    • これまでのエンジニアリングの方法を再考する必要がある。
    • 学術的な問題だったものを、これまでのやりかたでできないと理解して、私が提供できるガイドは、
      • AIや機械学習のそれぞれの違いを理解すること
      • 適用型のシステムを理解すること
      • マシンラーニングの精度、誤り率は今使っているものと比較して評価すること
    • 私達自身がそういうガイドラインを作ってくる必要がある
  • 榊原

    • こういう推論だけでなく、本番環境でラーニングしていく例はあるのか
  • 石川

    • 大規模な例はまだないが、やってみている例は噂として聞いている
      • うまく言ってからじゃないと公開しないと思う。
    • 解が見つかるか分からないものを対象にしているのがAI。
    • 走りながら書き換えていっているのがAI。
    • それがシステムとして完成していて、それを方法論としてまでには言っていない

AIの学習過程の可視化について

  • 榊原

    • AI、特にディープラーニングでよく言われる問題で、複雑過ぎてブラックボックスで分からないということがある
    • 学習過程をどう可視化するか、というのはQAをやっている人にとって重要だと感じている。
    • この点についてのご意見を欲しい
  • 石川

    • 規則性を学んで、規則性に従って処理する
    • どういうルールなのかはいくつか例を出せるが、汎化して表現できていない
      • 「雪が写っている時の写真であれば、この動物は狼だ」という例は報告されている
    • こういう規則性は何かというのを説明できるのがexplaineble AI
      • 例えば、ローンとかの場合、いくらAIが導き出したとしても説明できないと信用できないですよね。
    • ただ、それって本当にいつでもいるのか?
      • 天気予報を見ていて、気圧線を使って説明しているが、あれって無かったら信用できなくなるんですかね?
      • お客さんが納得するって何なんでしょうね?
  • 松原

    • 将棋の解説は説明しているが、頭の中をそのまま解説しているわけではない。
    • 説明を聞く人のレベルに合わせて説明しないと意味がないので、再構築している。
      • 実験で羽生さんに独り言をしながら指してもらうことがある。
        • 聞き相手が素人かプロかによって変わってきた。
    • 説明とは何か、わかった気になるとは何か?
  • Tariq

    • 非常に哲学的な問題
      • 私の場合も、5歳の娘と奥さんと上司に対してでは説明の仕方が違う
    • データの総量と複雑さが問題だから。
    • 我々の能力に限界があり、我々の知識に限界があるから
    • AIに説明して欲しいと依頼しても、きっと理解できないでしょう。
    • 時には、人間以上に機械には高いレベルの説明を期待してしまう
      • 人間が「でもうまくいくんだよ」で納得する話も、機械が説明すると納得しないだろう。
    • 許容できる分野に対しては説明が必要なくなる

AIによるデータのバイアスの指摘について

  • 榊原

    • 説明に関してはそうだと思う
    • データのバイアスに関してはAIが使えるのでは。
    • システムで、顔写真をUpしようとしたら、「目を開けた写真をUpしろ」と言われた
    • 白人男性だったらうまくシステムが出来上がっていた。学習データが白人男性
    • 学習したデータの網羅性を示唆してくれることはできないのだろうか?
    • データの信頼性にフォーカスして話したい。
  • 石川

    • テストデータの信頼性を担保して、と依頼されるかもしれないが、相当難しい問題。
    • 東洋人の問題が起きた後に、東洋人の割合が正確かどうかを見るのは簡単だが、問題が起きる前にチェックできるようにするのは難しい。洗い出しが網羅的かをチェックするのは難しい。
    • 社会の中でどうだ?という話は難しい。
      • 自動運転で、「雪の日は?」「霧の日は?」ときりがない。
    • なので、やってみて出てきたら直すというアプローチをとっている
  • Tariq

    • レーニングの課題はご存知だと思う。
    • テストするときに組み合わせが多くなってきていると思う。
    • ペアワイズや同値分割など、様々なことを使おうとしている。
    • 例えば、ミューテーションテストのような分野がある。実際に使っているアプローチはAIのようなものにも応用できるのではないかと思っている。
    • 私はこれらの課題を解決する担い手だと思っている。
    • 皆さんも経験を共有することで貢献をすることができる

過学習について

  • 榊原

    • 事前にパネラーの皆さんに「過学習をシステマティックに解決できる方法があるか?」と聞いたところ、「難しいが気をつけるようにしている」という回答が来た
    • 信頼度成長曲線はノウハウとして溜まってきた
    • 体験したことからメソッドを作るというアプローチをQAでできると思うが、QA4AIではできるか?
  • 石川

    • 経験的に積み上がってきたノウハウが大事なのはそう。
    • 逆に突き詰めるとキリがない。
    • All Pairを崇めている人は多いと思うが、そういう人は「3種類以上はしょうがない」としたりしている。
    • 機械学習周りでは、曖昧なことが増えるので、特にそういうものに頼ることが多くなる
  • 松原

    • 最初、Deepラーニングは世界で200人ぐらいしか使えなくて、「Deepラーニングは黒魔術」と言われたことがある。
    • Deepラーニングは少しずつシステム化されてきた。
    • ただし、完全にはされていない、発展途上のもの。
  • Tariq

    • このフォーラムにおいては、過学習は適切な問題です。
    • 過学習はどういうものか。特定の答えをあまりに覚えさせるというもの。
    • 理解しようではなく、ただ単に覚えさせること。
    • 子供にストーリーを一言一句覚えさせることはできる。
    • でも、その物語について質問すると、理解できていないことがわかる。
    • 機械学習に対して過学習と言うと、まるで正答率がすごい良くなっているように見えるが、テストすると、一般化して理解しているかどうかがわかる。
    • ということは、どういう風にテストすれば一般化して理解しているか考える必要がある。

データの調達について

  • 榊原

    • データの調達とかも品質の保証範囲内に入ると思うが、それに対して研究のアプローチはあったりするか?
  • 石川

    • まずは現場単位でデータを集めないといけない
    • QAが後から確認するだけでは済まない。
    • 例えば、データをバージョン管理するということは今まで無かった。
    • アカデミックでは、足りなかったときにどういう訓練データを足すのか、は難しい。
    • 苦手なデータを教えてあげるというのは大切。
  • 榊原

    • データの来歴について。バージョン管理という話があったが、自分で集めたデータやちゃんとした業者が集めたデータは管理できるが、信頼性に書けるデータしか集まらない場合はどういうアプローチをすればよいか
  • 石川

    • それはまさに難しい部分。
    • 学び続けているものが対象だとさらに難しい。
    • データの自動収集はかなり難しい。常にチェックし続けないといけない。
    • 信頼があるところであろうが、全てチェックをかける、というようなノウハウや手法の確立が必要。
  • 榊原

    • IoTの分野でのオンラインバリデーションで、ウイルスなどによって、例えば農業の温度データが2度ずつ高かった、ということもあり得る。
    • セキュリティについても難しいと思うが、AIの分野ではどういうアプローチをしているか
  • 松原

    • AI分野の単独研究では難しい。セキュリティ分野と共同して研究する必要がある。
    • 一番気にしている分野として、自動運転がある。
    • AIとセキュリティは結びついて行っている。
    • ウォッチするプログラムをリアルタイムで動かしているが、最終的には人間の専門家が本当かチェックしている
    • チェックしているAIが乗っ取られたら…とかになるので。
  • 榊原

    • もっと強靭なシステムを作るためにAIを使ったりしていることがあるか?
  • Tariq

    • セキュリティに関して、私自身が担当はしていないが、セキュリティに対する取り組みは会社として続けている。
    • 現在はセキュリティエンジニアが存在して、会社・組織として何をするかというと、倫理的ハッカーに対処してもらっている。
    • 倫理的ハッカーには、知識を持ってもらわないといけない(敵のやりそうなことの理解、セキュリティの理解、システムの理解など…)
    • データが第一級市民だ、という認識が広がってきた
    • データに対して攻撃は仕掛けられる。なので、データセキュリティは今後伸びていく。
    • 投資していく必要がある
    • それを優先課題として取り上げなければ、すべてが無駄になってしまう

会場からの質問

  • 榊原
    • ここからは会場からの質問を受けたいと思う

質問1:QAはAIを育てる立場になるか?

  • 会場

    • ECOシステムを作れないのか?
    • QAがAIを育てる未来が来るのではないかと予想している。
    • データを入れてトレーニングしていると考えると、お客さんにフィードバックかけた内容をQAが投入する未来になるのではないかと考えている。
    • この考えについてどう思うか?
  • 石川

    • それはそのとおりだが、今までもそうではなかったのか?
    • 今までもQAがそうやっているようになる。
    • AIの話でいうと、ただ文句を言っていても難しい。
      • だめな例はいくらでも出てくる。
    • 育てる側に回らないといけなくなると思う。
      • 「あいつら、文句言ってるだけだぜ」となる。
  • Tariq

    • サイクルの話はそうだと思う。
    • Qualityを一番に考えている人にとって、私達はガイダンスを提供することが大事だと思っている。
    • 開発において無くてはならないことの一つだと思う。
    • システムのゴール、目的は何かを考えて、そういった問題を解決するために、どういうシステムが必要なのか考える必要がある
    • AIを使っているかマシーンラーニングを使っているか関係なく、顧客の要求を満たさなければいけない。
    • 一般的に、新しいことに恐れを抱くことがある。
      • QAのしごとがなくなるのではないか?と思ったりする。
    • けど実は我々のやり方が改善されるだけである。

質問2:学習データのシェアについての課題

  • 会場

    • AIの学習したデータをシェアすることについて。
    • 一企業が学習に使ったデータやシステムを公開するのはためらうことがある。
    • 共有することに対する課題はあるか
  • Tariq

    • コミュニティとして重要なのはナレッジを共有すること。
    • ただしデータを共有することに対して気を付けなければならない。セキュリティの問題とバイアスの問題がある。
    • そういった問題を解決してから出ないと、広範囲で共有することにはならない。
    • 同時にやらなければならないのは、ツールを開発しなければならない。確認ができるようにしないといけない。
    • データに関しては、個人的にはセキュリティが一番重要だと思う
  • 石川

    • 相当、品質に気を使わないといけない。
    • 運転の分野では、一般性の高いデータ
      • 衝突事故時などのデータはシェアが難しい
      • ただし、一般的な運転データはシェアできる。
    • また、AIの動きを外から見て、似たようなAIを作ってしまう問題が出ている。
    • 電子透かしみたいなものができないか考えている。
  • 松原

    • アメリカにはOpen AIの協会があったりする。
    • Deepラーニングがこれだけ普及したのは、一般公開したからではある。
    • そういう動きがあることはある

質問3:評価データの省略について

  • 会場

    • 訓練データの話があったと思うが、評価データについて聞きたい。
    • テストの人たちはデータを少なくしたいと思っている。
  • 石川

    • 小さい方が楽なのは確か。
    • ただし、Deepラーニングに同値クラスのような概念がない。
    • また、テストデータを用意しても無駄打ちしている可能性がある。
    • なので、いっぱい入れたくなる。
    • そこは難しいところである。
    • 効果的なテストについては、要求から決まるところも実装から決まることがあるので、自分たちが作ったものを理解して、テストを考えなくてはいけない。
    • また、なぜそのテストをするのかも考えていかないといけない。
    • 近似的に多様なデータを入れたりすることを考えたりする。