Machine Learningを導入するときに気をつけること

AI/ML/人工知能

この記事では、いつもお世話になっているQiitaを管理するIncrements社とMicrosoftが共催した勉強会で、「Machine Learning」を開発時に向き合う課題とAzureのMachine Learningの対応状況を聞いてきました。今回の参加の動機は、Google以外のMachine Learningの情報収集と参加者の中からde:codeの無料招待券が当たるという謳い文句に釣られて参加しました。(無料招待券は当たりませんでした(笑))

スポンサーリンク

会場

今回の会場はMicrosoft本社(品川駅 港南口)です。久しぶりに品川を歩いたら、とてもきれいでした。右往左往しながらどのビルに入っていいか迷っていたら、イベントのボードをもった、「Q」というマークのTシャツを着た方を見つけて受付をしました。

私の今のMachine Learningの知識は、これから機械学習のプログラムを勉強し始めようかなというレベルです。既にAIを用いた業務改善をされている方には物足りない記事になるかと思います。

染谷さん Talk (40分) クックパッド株式会社

まずは、オープニングセッションとして、クックパッドの方から「機械学習によるサービス改善・開発」をテーマにお話をしてくださいました。

AI開発時の課題3つ

まず、機械学習をさせたAIを業務改善を行うシステム開発する際に気にすることは、大きく分類すると次の3点です。それぞれに課題があります。

開発にかかる期間とコストは?得られる価値は?

  • 機械学習は、ある一定の閾値を超えないと使い物にならない。成果が上がり始めるまでに一定のコストがかかり、成果がではじめるとめまぐるしい成果を上げるが、一定のところまで行くと頭打ちになる。次のスライドがわかりやすいです。

サービスの改善(エンハンスやアジャイル)についてこれるか?

  •  すぐに成果が出ないため、2Weekのスクラム開発には向かない。しかし、ウォーターフォールとも違うので新しい開発プロセスを考える必要がある。
  • 機械学習工学と言うものがある。
MLSE

運用コストはどれくらいか?

  •  機械学習は、技術的負債が大きくなる
  •  モデルの再学習をいつするのか
  • オンプレミスだと運用は大変。
Machine Learning: The High Interest Credit Card of Technical Debt – Google AI

3課題への対策

上記の3課題に対応するためにはそれぞれ次の対策を立てることが必要です。

  1. 開発にかかる期間とコストは?得られる価値は?
    • 何を改善したいかを明確にして、機械学習をいかにスモールスタートさせるかを考えるべきである。AIに求める精度を決める。
    • データ収集>データ分析>モデル構築>学習>デプロイ(API化する)という中で、一番時間がかかるのはデータ収集だが(約8割)、そのAPIの目的をしっかり考える。
  2. サービスの改善(エンハンスやアジャイル)についてこれるか?
    • 開発の特性を、スポンサーに理解してもらいプロセスを考える必要がある
    • 現状では、明確に成功できるプロセスがないため、ノウハウを蓄積していくしかない。
  3. 運用コストはどれくらいか?
    • 環境はクラウドを使いましょう。

その他、印象に残ったこと

このお話の中で残った私の中に残った言葉は、次の点です。

  • 機械学習は検索エンジンの開発に似ている
  • 械学習をさせたデータは、300MBでスマホにはインストールできない。(ラズパイあたりが良い?)

この方のお話の中で、「機械学習は、ある一定の閾値を超えないと使い物にならない。」というのが一番の収穫でした。

畠山さん Talk (40分) 日本マイクロソフト株式会社

本日のメインセッションである「Principal Software Development Engineer」である畠山さんのお話しです。この方は、見た目の印象と違ってとてもパワフルなセッションを繰り広げてくれました。Microsoftにもこれ程の熱量を持った方がいるんだなと思いました。

この方のお話は、Microsoft社員ということもあり、Microsoftの製品を宣伝を全面に押し出しつつも本質を語ってくれました。それからAzureのコンソール画面とか初めて見ました!

Microsoftの最近の製品知識がないので、ここからは箇条書きになります。

  • CNTKという機械学習の開発ツールをGitで公開している。Googleで言うところのTensorFlow
  • MicrosoftにもGoogle翻訳と同じことができるサービスがあるし、SpeechAPIもある
  • レタスを識別するAIは認識率80%(100%じゃない)。でも、識別できないものは、出荷できないものがほとんど。こういう視点で考えて、事務処理を改革するアイディアを作る。何が自動化できるのかを考えるのが必要。
  • ONNX(オニキス)というDeep Learningモデルを表現するための共通ファイルフォーマットを意識する。TensorFlowは独自形式のため、数年後の乗り換えができるか不安。
  • データ サイエンス仮想マシン | Microsoft AzureというAI 開発向けのツールをかき集めたクラウド環境がある。
  • Microsoftは、VisualStudioの機能に代表されるように、AIをチーム開発することを意識している。
  • GPUやTPUを使わなくても、 WIndows10 RS4の中に、機械学習のライブラリが入りました。
  • AIをとりあえず作って、傾向を見るには、microsoft コグニティブサービスが最適
  • マイクロソフトのAI開発を紹介してくれているページがある「Microsoft AIラボ
  • 機械学習するならPython

初めて聞く単語が多くて、情報をどれだけ咀嚼できたかは怪しいですが、Microsoftも頑張っています。囲い込み戦略だったMicrosoftがオープンソースをしているとか、印象が変わりました。自作AIて簡単に作れるのかなぁ、作り方を知りたいなぁと思いました。

まとめ

この記事では「Qiita × Microsoft 共催MeetUp」の機械学習の内容をまとめました。Googleさんと比べると雰囲気が硬い感じの勉強会でしたが、私にはちょうどよいレベルで得られるものが多かったです。de:codeの無料招待券は当選率10%という高倍率を逃して落選しましたが、、、機械学習をビジネス利用するための準備がどんどん進んでいることに気づきました。流行りの言葉を使うと「AIファースト」的な考え方をクラウド環境を使うこととあわせて取り入れないといけませんね。

最後に、Microsoftの勉強会なのにChromeBookを持って参加したのは私だけでした。言い訳をするとSurfaceやMacBookは、私のお小遣いだとかえないのです(笑)でも、MicrosftのVisual Studio Codeは好きです!

コメント