パネルディスカッション Q&A集

 

ここで挙げる質問は、当日のパネルディスカッションへ頂いた質問のうち、当日のパネルにて拾えなかったものでめぼしいものを抽出し、パネリストの皆様に改めて回答して頂いたものです(敬称略)。

Q. 機械学習系の人材教育が国や企業における早急な課題と存じます。これから機械学習を身に付けていく人材はどういったスキルを持っているべきでしょうか?

(杉山)どんなレベルの人を対象にするか,またどんなレベルの人を育てたいかによって大分内容が変わってくるかと思いますが,プログラマをデータサイエンティストに育てるというイメージを想定するとしますと,アルゴリズムの考え方が最低限理解できる程度の線形代数・統計学の知識は必要となるかと思います.


プログラミング+数学+ドメイン知識
 

が3種の神器でしょうか.

(丸山)人材育成は重要ですが、それは、1960年代に「ソフトウェア危機」が問題になったのと似た状況だと考えます。当時、汎用機のアッセンブリ言語が書けるプログラマを教育するのではなく、その代わりにソフトウェア工学が生まれ、より多くの人が高級言語やソフトウェアツールを使ってソフトウェアを開発できるようになりました。機械学習システムも、今現在得られる道具立てを使える人材を育成するよりも、道具立てそのものを改善することが喫緊の課題と考えます。また、そのために機械学習工学研究会を立ち上げたのです。
 ただし、同時に機械学習を用いたシステムは、開発者・利用者共に、今でのモデルベースシステムの常識を改めることを要求します。統計的、あるいは帰納的なシステムは、近似的な解しか得られない、など、モデルベースとは本質的に異なる性質を持ちます。その違いを理解できることが、開発者・利用者双方に求められるでしょう。
 

Q. 機械学習において、統計学はどんな役割をもってますか?どの様な工程(学習データの管理、テスト結果の検証など)で必要になりますか?

(杉山)今の機械学習は統計学そのものですので,あらゆる場面で必要だと思いますし,今後も当面は統計学の重要性が増していくのではないかと思います.

 

Q. 中島震先生が言われていたコーナーケース・テスティングとは具体的にどのようなものでしょうか?

 

(中島)コーナーケース・テスティングは、欠陥のありそうな箇所を実行するように工夫したデータを用いるテスティングのことです。そもそも、テスティングは欠陥を検出できるか否かわからないのですが、それでも、できる限りのことはしましょう、という立場からのテスティングです。
私の実験では、SVMとNNを対象としました。詳しい方法は、下記の論文を参照して下さい。

 データセット多様性のソフトウェア・テスティング、コンピュータ・ソフトウェア、35(2), pp.26-32, 2018.

Q. unknown unkownsを無くす、減らしていくにはどのような技術やプロセスがありますか?

 

(中島)質問は、たぶん、「Known Unknowns を無くす」だと思います。
つまり、Known UnknownsをKnown Knownsにしていくということで、ラムズフェルドは、適切な問いかけをすること、と述べていました。
ソフトウェア工学の1分野である要求工学は、まさに、このような技術を体系化しようとするものです。さまざまなモデリング技法が提案されていますが、対象依存性が大きいようです。
 実務的には、「わかるところから作って動かしながら確認していく」でしょう。これは、ラピッド・プロトタイピングともいえますし、よくいわれる PoC も、同じ発想と思います。

Q. 第三者評価機関の評価基準はどうやって決めるんでしょうか?
 

(中島)これから考えていくことです。
 社会受容性という観点もあるので、技術的な問題だけではないと思います。
 まずは、統計的な機械学習ソフトウェアに対して、このような第三者評価という考え方が妥当かどうか、という問題から、整理していくことになると思います。
 

Q. 初等教育でのプログラミング学習において、現状、機械学習の要素は含まれてますか?又は、含まれる様に働きかけする予定はありますか?


(丸山)現在議論されている、初等教育でのプログラミング学習では、アルゴリズム的に解ける問題にフォーカスしているのだと理解しています。
今後、確率的に動くシステムについての理解が必要になってくると思いますし、そのための統計的な考え方の基本を初等教育でも教えるべきだと思います。
いくつかの、国の会議で、そのような提案をしていくつもりです。
 

Q. 機械学習工学における関心の分離とはなにかって言うのを深掘りして欲しい


(丸山)統計的機械学習においては、様々なパラメタ、ハイパーパラメタがお互いに依存するために、これらの間の関心事分離は難しいと考えます。
一方、多くの機械学習システムは、機械学習モジュールだけでなく、モデルベースのモジュールも組み合わせたハイブリッドなシステムになるのだと思います。パネル討論でも、機械学習システムの品質はシステムレベルで担保すべき、という議論が多かったと思います。
このため、機械学習システムでは、関心事をまず機械学習で解くべき問題と、モデルベースで解くべき問題に分離することが重要だと考えます。

Q. 学生として機械学習を専門で学んでいますが、現場で活躍するために身につけて欲しいスキルとして何があるでしょうか。


(有賀)問題設定をどのように切り出したら、プロジェクトとして成功できるかということを考えられると良いと思います。Kaggleの問題を作れると一つの問題の切り分けができて良いのではないでしょうか。

(丸山) 機械学習の技術は日進月歩です。今学んだことが、来年には陳腐化してしまうこともありえます。学生のうちは、今後数十年のキャリアで色褪せないスキルを学んでいただきたいと思います。私がお勧めしているのは、語学・数学・リベラルアーツです。語学も数学も、一度身につければ一生使えるスキルになります。リベラルアーツの重要性はわかりにくいかもしれません。データ分析をやるとわかると思いますが、すべてのデータは人々の活動の結果として得られてきます。人々がどのような活動を行い、どのようなデータとしてそれが観測されたのか、それはそれらの人々のモチベーションを想像してみることで、初めてわかることことだと思います。人々のモチベーションの裏にある文化・歴史などを理解しておくことが、データを理解できる近道になります。遠回りと思われるかもしれませんが、常に人々の営みに対する興味を失わないことが、大切だと思います。

Q. 企業の方にお聞きしたいのですが、公演にもあったと通り、機械学習の登場で管理するモジュール群やナレッジが増えたと思います。既存の社内エンジニアリングに対するwikiやナレッジとして同じベースで管理してますか?それとも別?その管理に既存のサービスを使ってますか?カスタマイズ?

(有賀)現状、私が知る限りではこのあたりに対するツールというのはまだデファクトになっていないように思います。Jupyter notebookベースで実験の共有を行ったりしつつ、Wiki等でナレッジを管理しているのがほとんどではないでしょうか。
実験をサポートするためのツールは各社Jupyterをベースにしたものを多く出しているので、調べてみてください。

(丸山)機械学習システムもソフトウェア・システムですから、GitHubのような既存のソフトウェア管理の仕組みが使えるはずです。コードはそれでも良いですが、データ(生データ、前処理済みデータ、アノテーション済みデータ、訓練用データ、評価用データなど)、ハイパーパラメタ、またそれらの組み合わせによる実験結果などをどのように管理するかは、現状では各社がそれぞれの工夫で行っているのではと推察します。久保さんのご講演では、データやハイパーパラメタなども、ソフトウェアモジュールとして抽象化することによって、既存のソフトウェア管理の仕組みを使えるはずだ、ということを指摘されていました。

Q. 運用中の機械学習モデルを更新する場合など、必ず「できてたことができなくならないように」と要求されることと思います。実運用環境において更新モデルが上記条件を充足できているかの判定は非常に難しいと思います。予め「そういうものではないですよ」と説明して相手と条件を制御するという政治的で弱い対策以外に良い解決はありそうですか?

(有賀)基本的には、「できていてほしいもの」をモニタリング対象となる正解付きデータセットとして精度等を監視するのが良いでしょう。合わせて、ビジネス上のKPIもモニタリングすることで、そちらがきちんとキープできていることを示すのが良いかと思います。

Q. human in the loop の場合、精度のトラッキングだけしていてもモデルの間違え方の傾向が異なると人のチェック観点も変わってしまい業務上不都合が生じるということもあると思います。 その場合、傾向といったものは事前に監視項目を網羅しづらく難しいと思いますが、この辺りの研究や議論などありますでしょうか。

 

(有賀)一つのアプローチとして、 confidenceの低いものをリストアップしたり、ユーザからのフィードバック用のフォームを用意する、検索等の場合であればクエリ毎のクリックレートを監視するなどいくつかの方法があるかと思います。
また、アノテーションの基準を共有できればクラウドソーシングに投げるという方法もできるかもしれません。

Q. 例えばDataRobotなどいわゆる機械学習のためのプラットフォームを導入し、 開発環境やAPI化などを自動化することで開発工程管理やコスト削減ができるかと考えますが、正しいでしょうか?つまりエンジニアは、実際にバージョニングや工程管理等をすべきなのか、知識だけ持ち何かの製品に任せるべきか、どちらでしょう?
 

(有賀)DataRobotなどを導入しても可能なのは、確率的に成功する出力を返す予測器を得る部分、つまりモデルの開発部分だけです。詳しくは下記の論文を読まれると良いと思いますが、あくまでそれ以外の部分のウェイトが大きく整備されていないというのが本会の趣旨かと思います。

 https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems

 

もちろん、ツールを使うことで生産性を向上させることは可能かと思いますが、現時点ですべてを自動化することは難しいでしょう。

Q. 従来システム開発であれば予想される結果が得られることでシステムを担保していましたが、機械学習を取り入れたシステム開発においてはある程度の誤りを許容することになるのでしょうか。

 

(丸山)現在の機械学習は統計的機械学習であり、そこでは100%の精度は保証できません。したがって、システムがある所与の条件を満たす動きをすることを保証するためには、機械学習コンポーネントだけでなく、従来型のモデルベースのコンポーネントと組み合わせることによって、システム全体としての動作保証をすることになるのだと思います。この点は、パネル討議でも、繰り返し指摘されたと思います。

 

Q. 機械学習を用いる上で説得力が今ひとつ得られない原因として「どの要素が意味のあるものか(NNならばどの中間層が結果にどのように寄与するか)」を説明できないことかと思います。回帰分析くらいならいいのですが、DLになった途端それが難しくなる。この点の研究は進んでいますか?

 

(丸山)現在の機械学習システムはデジタル計算機の上で動いていますから、厳密な意味で「どの要素がどのように結果に寄与しているか」は説明可能です。ただし、その説明が複雑過ぎて人間には理解できないことがある、というのは別の問題です。

 

Q.参加者の多くの方が企業の方だと思いますが,機械学習工学という領域において,アカデミアに求められるもの・アカデミアならではのものはなんでしょうか?

 

(石川)機械学習工学に限らない一般論として,目の前にある問題を解くこと・利益を出すことに縛られすぎずに動けることがあると思います.テスティングのアカデミックコミュニティでは、サーチベースドテスティングやメタモルフィックテスティングを機械学習システムに適用した、という論文は続々と出ていますが,以下のようにとらえることができると思います。

  • 「私の専門技術をこの問題にぶつけてみたら?」という追求ができる。問題を解くため、というだけでなく,専門性があって産まれてきた技術もあると思います。

  • 「今の技術レベルでは求められないし、競合他社もやっていないから」のような判断なく、理想的なあり方の追求ができる。「ニューロンカバレッジ」という新しいカバレッジ指標を追求するといったことが言われていますが,これはもしかしたら産業界の実務者の方々にとっては「今はそれどころではない」話で、でも5年後には変わっている話かもしれません。

  • 「実はいうほど効果がない」ことを示すことも含め、調査や真理追究にコストを避ける。初期のニューロンカバレッジがどういう意味で十分か、不十分かなど、多くの実験がなされています。

 なお,上記で上げた話の簡単な説明や文献詳細は http://research.nii.ac.jp/~f-ishikawa/work/1803-TopSESympo_QA4ML.pdf に載せています.

Q. オープンな質問ですが、それぞれがお考えになる「10年後の機械学習」について何を思うか、自由に話していただきたいです。

 

(杉山)ワードやエクセルのようなレベルで多くの人が標準的な機械学習のツールを使えるようになると願いますが,より難しい新しい問題はどんどん出てくるかと思いますので,最先端のデータ解析に関しては,今と変わらず専門家がいないと難しい状況は続くのかと思います.

 

(中島)統計的な手法を活用したデータ分析の方法として普通に使われている。
 

(丸山)初期の人工知能技術として盛んに研究された記号処理や探索アルゴリズムが、今ではプログラミング言語の中に当たり前の機能として提供されているように、将来の機械学習は、普通のプログラミング言語、プログラミングモデル、ツールの中に統合化されて提供されるようになるでしょう。10年後のシステムエンジニアは、これらを自由自在に組み合わせて高度なシステムを開発していると思います。
 

(石川) システム実現の一手段として、必要に応じ適切に使われるようになっている(過度な期待もなく、どこもかしこもというわけでもなく)。その際に、ソフトウェア工学などの分野において、当たり前のように「仕事として」「工学的に」あるための、技術や考え方が継続的に追求されている。