Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

失敗から学ぶ機械学習応用

20,893 views

Published on

社内勉強会での発表資料です。
「失敗事例を通じて、機械学習の検討で抑えるべきポイントを学ぶ」をコンセプトに作成しました。AI・機械学習を検討する広くの方々に活用していただけると幸いです。

Published in: Technology

失敗から学ぶ機械学習応用

  1. 1. 2019年10月14日 増田博之 失敗から学ぶ機械学習応用
  2. 2. 2 はじめに 出典 2.9% この数字、なんだかわかりますか?
  3. 3. 3 はじめに 出典 国内民間企業のAI導入率 (2018.12.13 矢野経済研究所) 2.9% この数字、なんだかわかりますか?
  4. 4. 4 はじめに AI(機械学習)を活用したいなら 少ない導入事例からわかった気になるより 多くの失敗事例を把握しておきましょう
  5. 5. 5 目録 ◼ 私の失敗体験談(不均衡データの学習) ◼ 機械学習開発における壁 • 機械学習のビジネスフレームワーク「5D」 • Define(定義する) • Data(データを集める) • Development(開発する) • Deploy(実装する) • Drive(運用する) ◼ ビジネス応用における壁 • AIを使ったキュウリの自動選別 • 機械学習を使って売り上げに貢献する • 機械学習を使わない選択肢 ◼ まとめ
  6. 6. 6 目録 ◼ 私の失敗体験談(不均衡データの学習) ◼ 機械学習開発における壁 • 機械学習のビジネスフレームワーク「5D」 • Define(定義する) • Data(データを集める) • Development(開発する) • Deploy(実装する) • Drive(運用する) ◼ ビジネス応用における壁 • AIを使ったキュウリの自動選別 • 機械学習を使って売り上げに貢献する • 機械学習を使わない選択肢 ◼ まとめ
  7. 7. 7 私の体験した失敗例(Deep learning適応1stトライ) 課題:不均衡なデータの学習 ■良品:不良=20:1でそのまま学習 見逃し 100.0% 誤検出 0.0% 不良を全て 良品と判定 ■良品:不良=1:1で学習 (良品数を減らして学習) 見逃し 26.3% 誤検出 21.8% 良品 不良 学習(1,034枚) 500 534 良品 不良 学習(10,095枚) 9561 534 1stトライ精度 ターゲット:機械学習による検査 ※機微情報のため非公開 1stトライ時の考察: DLもそのまま学習をするとろくな判定しないな
  8. 8. 8 本当にそのまま学習したモデルはダメだったのか? 良品を減らさずに学習した場合、良品側にスコア分布が偏る ⇒見逃しと誤検出はトレードオフ関係のため、 閾値調整を行った上で比較した方がフェア ■良品:不良=1:1で学習 (良品数を減らして学習) ■良品:不良=20:1で学習 (良品を減らさずに学習) 頻度(対数プロット) 不良判定良品判定 不良判定良品判定 不良スコア 不良スコア 後日、再評価を行い予測スコアの分布を確認 頻度(対数プロット)
  9. 9. 9 ROC曲線、AUCを用いた評価 AUC:0.908 AUC:0.930 ■1:1で学習 ■20:1で学習 ⚫ ROC曲線(Receiver Operating Characteristic Curve) 閾値を変化させることで得られるFalse Positive Rate(見逃し率)を横軸に、 True Positive Rate(1−誤検出率)を縦軸に置いてプロットしたもの ⚫ AUC(Area Under Curve) ROC曲線下の面積(積分)。1に近い値を示すほど高精度 そのまま学習した方が高精度なモデルだったことが判明 見逃し率 良品判定の正答率 【ROC曲線とAUC】 機械学習の評価指標についての基礎講座
  10. 10. 10 体験談の中で伝えたかったこと ① 評価指標はとても重要 ② 少ない成功事例に加えて 多くの失敗事例も学んでおいた方が 成功確率は上がる
  11. 11. 11 目録 ◼ 私の失敗体験談(不均衡データの学習) ◼ 機械学習開発における壁 • 機械学習のビジネスフレームワーク「5D」 • Define(定義する) • Data(データを集める) • Development(開発する) • Deploy(実装する) • Drive(運用する) ◼ ビジネス応用における壁 • AIを使ったキュウリの自動選別 • 機械学習を使って売り上げに貢献する • 機械学習を使わない選択肢 ◼ まとめ
  12. 12. 12 大前提:機械学習とは(教師あり学習) ■ 膨大なデータをもとに入力から出力を導く関数を作る(学習) ■ 学習により得られたモデルで、新たな入力データに対する判定を行う(推論) 入力 出力(結果) 知的処理 音声 文書 振動 故障予測 画像 物体名 フェーズ1:学習する フェーズ2:判定(推論)する 2つのフェーズ 飛行機 アコーディオン 飛行機 学習では 使わなかった写真 大量のデータ 学習結果
  13. 13. 13 機械学習のビジネスフレームワーク「5D」 出典:LeapMind BLOG 機械学習応用は学習・推論を検討するだけではなく 「5つのD」を満たすことで、はじめて導入に至ることができます これから各ステップごとに、つまづくポイントを紹介していきます
  14. 14. 14 ①Defineの失敗 事例:安易な評価、目標の設定
  15. 15. 15 Defineで決めること 入力データ 出力結果 Define:開発定義 目標値 ◼ 機械学習で何がしたいか? ⇒ 開発ターゲット ◼ 何を学習させるか? ⇒ 入力データと出力結果 ◼ どう学習するか? ⇒ アルゴリズム ◼ モデルの良し悪しをどう測るか? ⇒ 評価指標 ◼ どこまでできるとよいか? ⇒ 目標値 アルゴリズム テストデータ 推論結果 評価指標 導入可否の 判断
  16. 16. 16 機械学習応用における最初にして最大の壁 https://twitter.com/tdualdir/status/921385335157694464 何も定まってない・・・ ◼ 機械学習で何がしたいか? ◼ 何を学習するか? ◼ どう学習するか? ◼ 良し悪しをどう測るか? ◼ どこまでできるとよいか? 上司、クライアントの一言 AIありきで見切り発車するのはやめましょう これらが決まっていないと何も開発できないと思って下さい 決めること(再掲)
  17. 17. 17 正答率99.9%! これは凄いモデルだ! 失敗例1:評価指標の失敗 クレジットカード不正利用検知AI 1000件に1件が不正だとすると 全てに正常判定すれば、 その正答率って出るよね? 100000/100000[========] Loss: 0.112 Acc: 99.9 学習ログ スラムダンクより
  18. 18. 18 失敗例2:目標設定の失敗 文字認識(OCR)の場合 「そこ(=無い、を解求しつづける」デ ジレマーケティング”L- レジェンシーの 株式会社 WEB企画。ウェブメディ ア: ・ホームページ作ら ・ インター ネットマーケティング支援(SEM)など 多数の サービスをご提化しています。 98文字中88文字(正答率89.8%) 精度90%じゃ全然使えない・・・ (精度99%でも100文字に1文字間違えます。Twitterで毎回誤字が出るレベル) とりあえず90%位の精度があれば 結構使えるんじゃないかな? これを目標にして開発しよう 安易な目標設定をすると、価値のないAIが生まれます 評価法と開発目標の妥当性をしっかりと見極めましょう 参照:「Googleドライブ」OCR機能で文字起こし
  19. 19. 19 機械学習開発における目標設定 開発と現場の両方で使えるものさしを定め、目標を定義しましょう モデル性能がKPIと紐づき効果を測れるのが理想です ◆ AIを使用したコスト削減 (機械学習による検査) • 誤検出率、見逃し率 「そもそも検査で見逃しはNG」 • AUC 「よくわからん、結局効果は何?」 • 見逃し0%時の誤検出率 「これが低いと、確認枚数が減るね」 「最低でも半分以上は減らしたいな」 参考 • あなたの業務に機械学習を活用する5つの ポイント • コンバージョン(CV)とは何か? その意味と、 今すぐできる最大化の手法を紹介 ◆ 既存システム改善による利益アップ (オンライン広告のレコメンド) • 誤検出率、見逃し率、AUC 「これはどれだけ改善してるの?」 • クリック率が●%向上見込み 「クリックが増えても、その後スルーされ てたら意味ないんだよね~」 • A/Bテストでコンバージョン率●% up 「いいね!売り上げ増えそう」 ◆ AI活用によるUX向上 (機械学習による自動タグ付け) ⇒正答率、F値 「導入効果がいまいち見えないな」 ⇒操作時間●%削減 「これで使い勝手よくなりそう。 でも売り上げにはどこまで貢献できるかなぁ?」
  20. 20. 20 ①Defineの壁 事例:クックパッドにおける推薦の取り組み
  21. 21. 21 プロジェクトのはじまり 機械学習を使ったレコメンドで何か改良できそうな気はする でも何を最適化すべきかは定義できていない ↓ 開発者が定義して施策を打っていく必要がある
  22. 22. 22 機械学習の問題に落とし込む難しさ KPI決めるの難しくない?
  23. 23. 23 推薦システム開発によって生まれた機能 具体的な取り組みについては下記を参照 クックパッドにおける推薦(と検索)の取り組み-99%の失敗と1%の成功- 推薦システム導入までの試行錯誤が良く伝わってきます ビジネスに貢献するには機械学習とドメイン(ターゲット)の 両方の知識が重要になります またターゲット設定しだいで開発物の価値は大きく変わります クックパッドで取り組まれている推薦機能
  24. 24. 24 ②Dataの壁(量) 事例1:データ収集の壁
  25. 25. 25 よくあるデータ収集の壁 データが整備されていないと、アルゴリズム開発も分析もできません ⚫ データが構造化されていない • 貰えるデータはPDF、紙・・・ • データの形式が統一されていない(タイトル、ファイル形式、フォーマットなど) ⚫ データ収集の許可が下りない • セキュリティの都合で簡単には渡せない(機微情報が含まれる、クラウドはNG) • データ集めてもいいけど製造現場には影響なきように(通信帯域、サイクルタイム等) ⚫ データ収集やアノテーション(正解ラベル付与)にコストがかかる • 誰がデータを集めるの? 誰がアノテーションするの? • センサを付けるとコストが増えるんだけど・・・ • 上記コストに見合った精度(メリット)は実現できる? ⇒やってみないと何とも・・・ ⚫ そもそも必要なデータがなかなか集まらない • 故障予知をしたい。ただなかなか壊れないので肝心の故障データは集まっていない ⚫ データ加工に手間がかかる • データに外れ値や欠損値が紛れている • 同じ意味のデータ、カラムが混在している • セル結合を駆使したExcelファイル • 保存データの仕様を読み解かないとデータセットが作れない などなど
  26. 26. 26 頑張ってデータを集める? 参考記事 • データ分析案件をやるうえで何が障壁となるのか • 行政をハックし、行政データをオープンにしてみようとした結果 • AI導入にあたって危険と思った5つの兆候 • 「データを集める前にデータ分析責任者(データサイエンティスト)を雇うべき」理由とは マンパワーに頼るやり方はいずれ破綻します 導入を見据えるなら、データが集まる仕組みを必ず考えましょう ◼ 頑張って(マンパワーで)集めた場合 • 人手で都度計測 • 取得データを逐一、分析者に送信 (データはイントラ内にあり、システムからはデータ取得できない) • 保存先がバラバラなので、pathがころころ変わってる 自動で計測され、一か所のストレージに集められ バッチ処理でデータフローが周った方が建設的ではないでしょうか? データが貯まる仕組みがあれば、後の開発・導入検証の負荷が大きく減少します
  27. 27. 27 ②Dataの壁(質) 事例2:mixiのカスタマーサポートAI
  28. 28. 28 カスタマーサポートAIが目指したもの 問い合わせ窓口に数多くのメールが 届き、CSスタッフがそれらに対応 ↓ 内容によってメールを分類し、 分類ごとに専門チームが調査・返信 1件1件人手で対応している メール分類工程を自動化する ミクシィグループの サービス例
  29. 29. 29 カスタマーサポートAIの開発 検証で良好な学習結果を得られ、本番環境に試験導入を行ったが AIとCSスタッフの分類結果を比較すると散々な結果だった メールの本文に 前処理を施しベクトル化 入力データ 出力結果 評価指標 再現率と適合率 該当カテゴリの確率 検証時 本番環境 Define:開発定義
  30. 30. 30 何が問題だったのか? ①CSスタッフ自身もカテゴリを一意に判別できるわけではなかった 総じて、扱っていた教師データに信頼性がなかった (学習が上手くいかない、評価結果の信頼性を損ねてしまう) ②1つのメールに対して複数の要素が含まれることがあった
  31. 31. 31 この失敗での教訓 AIは教師データの正しさは保証してくれない • 機械学習は基本的に教えた通りに学習を行う。データの正しさは人間が保証する必要が ある AIプロジェクトにおいてドメイン知識が不可欠 CSの現場知識について半分わかっているつもりで、もう半分はCSスタッフ任せだった (「CS現場の業務はシステマチックになっている」と信じて疑っていなかった) ドメイン知識があればデータを見た時に異変に気付くことができるはず • エンジニアと業務部門の密なコミュニケーションは不可欠 • エンジニアのドメイン知識不足をコミュニケーションなどで補う • AIは教師データの信頼性を担保しない • まずは信頼できるデータセットを作ることから始める • AIプロジェクトは失敗するもの。小さく初めて素早く失敗すべし • 既存の業務にAIを合わせるのではなく、AIに人間の業務を合わせる 「本当の失敗は、途中で諦めること」 AI開発は失敗に学べ、ミクシィが“ゼロからの挑戦”で得た教訓より
  32. 32. 32 データの質を担保する 関連資料:アノテーションマネージメントの重要性とそのノウハウ ◆データの質で考慮すべきポイント • 精度に関わるノイズは入っていないか? • 測定の再現性が担保されているか? • アノテーションを行う場合、教師情報の判断基準は明確か? • 実運用のデータと訓練時のデータに大きな差異はないか (実は対象物ではなく背景を頼りに判定をしていたとかが起こりえます) データさえあれば何でもできると思わない データの質を担保しつつ量を確保するのが 機械学習の開発におけるもっとも重要な要素です データサイエンスにおける一般的な認識 "Garbage in, garbage out“ (ゴミみたいなデータを入れても返ってくるのはゴミだけである) データの見極めがAI開発の8割 (モデル性能は開発スキルより学習するデータに大きく左右される)
  33. 33. 33 ③Developの失敗 事例1:Leakage
  34. 34. 34 Leakageとは? • Leakage とは、モデルの学習時に使用しているデータに、予測しようとしてい る情報(変数やデータ)が情報が含まれ、不当に使ってしまうこと • Leakが起きると、開発時のデータでは高い精度が出たのに、本番環境では まったく精度が出ない、といった事態になる 初歩的な事例から、その道のプロが企画したコンペで 起こってしまったものまで紹介します Target情報をカンニングする学習モデルのイメージ
  35. 35. 35 診察履歴に基づく肺炎診断(Target Leakage) 肺炎 年齢 体重 (ポンド) 性別 抗生物質の 処方 ... False 65 100 False False ... False 72 130 True False ... True 58 100 False True ... 予測したい情報 入力情報 抗生物質を処方してるか否かで簡単に予測が可能 ⇒本当に実現したいのは、未処方の人が肺炎になるかどうか カルテデータをもとに肺炎にかかるかどうかを予測 持ってるデータをそのまま学習に使うと ターゲットに紐づく情報を使い、簡単に正解する可能性があります
  36. 36. 36 クレジットカード審査(Target Leakage) 年齢 収入 カード 支出割合 カード支出 (月平均) 家を 所有 自営業 扶養 家族 現住所の 居住期間 主要な カード数 有効なア カウント数 0 37.66 45,200 0.033270 124.98 True False 3 54 1 12 1 33.25 24,200 0.005217 9.85 False False 3 34 1 13 2 33.66 45,000 0.004156 15.00 True False 4 58 1 5 3 30.50 25,400 0.065214 137.87 False False 0 25 1 7 4 32.16 97,867 0.067051 546.50 True False 2 64 1 5 https://www.kaggle.com/dansbecker/aer-credit-card-data これは審査カードの支出額?それとも審査前の支出額? 審査カードの支出額だと審査に通らなかった人は0になるのでは? 予測時にどの情報が使えるのかを考慮して検証しましょう 全ての情報を学習 正答率98% 下記の申し込み情報からクレジットカードの審査結果を予測 カード支出情報を除いて学習 正答率83% VS どちらが正当な評価でしょう?
  37. 37. 37 動画由来の画像分類(Data Leakage) ドライバーが何をしているか画像を分類 ⇒注意力散漫なドライバーを検知する Kaggle State Farm Distracted Driver Detection 第一話:「leakの洗礼」より(講演動画) Submitの流れ • ラベル付きの訓練データを使って モデルを検討 • テストデータのラベルを予測し Kaggle運営にSubmit • Submitした予測結果をもとに運営 がスコアとランキングを公開 機械学習を主題としたコンペ ローカルの評価では凄く良いスコアだったのに 予測結果をSubmitしたら凄く残念なスコアと順位だった (ランダムでラベルを振った結果よりも悪い)
  38. 38. 38 何がまずかったのか? ✓ 時系列由来のデータに対して ランダムでtrainとtestに分割していた どのデータで学習させ、どのデータで評価するかは大変重要です 汎用的な学習と評価が行えているかを必ず意識しましょう 時系列 train train train test train 前後の類似データを学習しているため、容易に正解する事が可能 Kaggle運営はtrainに含まれないドライバーのデータで評価を実施 汎用的な学習ができていなかったためSubmit時のスコアが大きく低下した
  39. 39. 39 胸部X線画像の分類(Group Leakage) 深層学習で放射線科医を超えるレベルの肺炎検出ができたよ! (Andrew Ng氏は機械学習界の超大御所) Target Leakage in Machine Learningより抜粋
  40. 40. 40 胸部X線画像の分類(Group Leakage) この分け方だと学習時に患者情報が被った画像を 覚えるんじゃない? という指摘
  41. 41. 41 胸部X線画像の分類(Group Leakage) アルゴリズムが正当に評価できてるかは開発の大前提 データセットの内約を把握していないとプロでもやらかします 指摘を受けて論文を改訂
  42. 42. 42 コンペで発生したLeakage事例集 Leakage in Data Miningより抜粋 ◼ 別タスクのデータを引っ張ってきて学習 • KDD Cup 2007: Netflix Rating Prediction 2つの開催コンペから、別タスクのテストデータを教師データに使用し、学習 ◼ Target Leakage • KDD Cup 2008: マンモグラフィデータからの乳ガン検出 普通は無視するはずの『患者ID』を特徴に使うと、なぜか予測精度に寄与 どこで受けた検査か?どの検査機器か?の情報がIDに紐づいていたために発生 ◼ コンペのもとになったデータを特定 • INFORMS Data Mining Contest 2010: 株価変動予測 ⇒株価というpublicなデータでは銘柄を隠しても、答えを探すことができた • IJCNN 2011 Social Network Challenge: ソーシャルグラフのリンク存在予測 ⇒データ元となったSNSを特定。6割以上の“正解”を見つけ出した その道のプロが企画しても、起こりうる事例として認識してください コンペである以上、順位を上げるために使える情報はなんでも使います (開発としてこれはどうなの? とも思いますが 卓越したデータ分析スキルが成せる技だと思います)
  43. 43. 43 ③Developの失敗 事例2:ディープラーニングによる株価予測
  44. 44. 44 株価予測 ディープラーニングで株価予測するときの罠より 真の株価 予測した株価 予測した線と実際の株価の線はほぼ一致 一見すると上手くいっているように見えるが・・・ ディープラーニングによる日経平均予測 (株価推移から1日先の終値を予測)
  45. 45. 45 グラフを拡大 実際の株価の線(オレンジ)よりも 予測した線(青)が遅れて同じようなグラフを描いている 実際の株価の動きから、同じような株価が続くだろうという トレンドをトレースしただけ⇒これでは儲からない 真の株価 予測した株価
  46. 46. 46 株価予測の3つの落とし穴 重要な因子を考慮しないまま機械学習に頼っても 大抵は残念な結果に終わります どの情報を学習させるべきかをしっかり検討しましょう 1. パッと見のグラフが、株価予測を成功しているように見えるが、 同じような株価が続くだろうと予測してるだけという落とし穴 2. 機械学習で自動で学習しているように見えるが、もとになる データ(人間の力)が重要になっているという落とし穴 3. 人間の心情や世界情勢の変化など、突発的で数学的に予測 できないという落とし穴 AIが10年間株取引をしたらどうなるかをシミュレーション 収支±0
  47. 47. 47 開発で注意すべきこと 怪しいAIの見分け方より 初回の評価結果が良かった場合、 喜ぶ前にまず疑いの目を持って下さい
  48. 48. 48 ④Deployの壁 事例:Netflix Prize
  49. 49. 49 Netflix Prizeとは? 条件は同社の推薦アルゴリズム(Cinematch)を 成果ベースで10%上回るアルゴリズムを開発すること ⇒ユーザーの映画評価(5段階)の予測誤差(RMSE)を10%改善する 賞金なんと100万ドル! (&毎年5万ドルのプログレス賞) 当時は米国トップの オンラインDVDレンタル会社 2006年10月、NETFLIX社が前代未聞のアルゴリズムコンテストを開催
  50. 50. 50 Netflix Prizeの優勝チーム チーム名:BellKor's Pragmatic Chaos アメリカ AT&T Researchの統計研究所 2人 オーストリア リサーチ/コンサルティング機関 Commendo ML専門家 2人 カナダ ソフトウェア会社 Pragmatic Theory 創設者とエンジニア 2人 イスラエル Yahoo! Research シニアサイエンティスト 1人 2006年10月からはじまったコンペは2009年7月に10%upが実現! 186ヶ国から5169チームが参戦した開発競争が遂に決着 精鋭が集うまさにオールスターチーム
  51. 51. 51 0 2 4 6 8 10 Improvement(%) Leaderboardの推移 10%改善までの道のり 8%台で頭打ちが見られたが、精鋭がタッグを組むことで10%を突破 しかし、このコンペで優勝したモデル、実際には使われなかった・・・ BellKor in BigChaos BellKor's Pragmatic Chaos BellKor: 米国AT&T Researchの3名(内1名は途中でYahoo!に移籍) BigChaos: Commendoの2名 Pragmatic: Pragmatic Theoryの2名 BellKor プログレス賞 Winner プログレス賞
  52. 52. 52 優勝モデルとはどんなものだったのか? 10%改善を実現するためには 18個の予測器のアンサンブルが必要だった The BigChaos Solution to the Netflix Grand Prizeより抜粋 オールスターとはアンサンブルのための連合チーム (※表彰式ではじめてチームメンバーと対面したそうです)
  53. 53. 53 The 18 predictorsの詳細 ・ ・ ・ 優勝モデルはアンサンブルで作ったPredictorを 更にアンサンブルすることにより作られています (実際には何百ものPredictorがブレンドされてる模様)
  54. 54. 54 優勝モデルが実用化されなかった理由 NETFLIX TECH BLOG:Netflix Recommendations: Beyond the 5 stars (Part 1) ◼ アルゴリズムが重い • 1億件のレーティングを処理するよう構築されていたが、50億件以上のレーティングを処 理できるようにする必要があった • 加えて新しい作品の追加にも対応できるようにスケールする必要があった • 上記課題からアンサンブルは実装に対する改善効果が割に合っていない • 2007年のwinner(8.43%改善)チームが提案したSVDとRBMは実際に導入され、今でも 推薦アルゴリズムに利用されている • 求められる精度がどのくらいか • 応答速度はどのくらい欲しいか • インターネット環境はどこまで保証されているか • 電力やコストの面でハードウェアはどこまで許容できるか 精度がすべてではありません Deploy時の環境を想定しておきましょう 優勝モデルは実用化されませんでしたが、コンテスト設計は高く評価されており オープンイノベーションの代表的な事例となっています 参照: AI導入にあたって危険と思った5つの兆候
  55. 55. 55 ⑤Driveの壁 事例1:機械学習案件を納品する
  56. 56. 56 当初想定していた機械学習案件の納品ルート 機械学習系プロダクトの依頼を受け、 想定していた納品までのプロセス 検証データで結果を出し「学習済みモデルを納品して完了」と思ってた 機械学習案件を納品するのは、そんなに簡単な話じゃないから気をつけてより
  57. 57. 57 実際の納品ルート クライアント側のリアクション 「ちゃんと動作するまで、数日〜数ヶ月程度運用してみて、 その様子を見て判断したい」 ←そりゃそうだ
  58. 58. 58 仮運用でやらなければいけない事 ◼ 当初の納品ルートで考えていたタスク • データ前処理 • データ解析 • 特徴量、モデル検討 受領したデータを用いて、オフラインで検証 ◼ 実際に納品するために行わなければいけないタスク • サーバーでの環境構築(LinuxやDocker等) • データベース(MySQL) • Webアプリケーション • Web API(Python) • Cron(定期実行) • Webサーバー(NginxやApache) 主にwebによるシステム自動化が必要 モデルを作っておしまいではありません システムに乗らないとビジネスとしての価値にはならないです モデル検証と運用のそれぞれで 別のスキルセットと開発工数が必要だった
  59. 59. 59 ⑤Driveの壁 事例2: Netflix Prizeのその後
  60. 60. 60 優勝モデルが使われなかったもう1つの理由 ◼ ビジネスモデルの転換(ストリーミング配信へシフト) DVDレンタル • DVD交換は1日以上かかるためレンタル するDVDは慎重に選ぶ • フィードバックは視聴完了後 現在(ストリーミング) • 今すぐに見たいコンテンツを探す • 複数の動画を試し見した上で、視聴動 画を決定 • 動画を全部見たか、部分的にしか見ら れなかったかなどの情報が取得可能 この転換でデータ形式や推薦アルゴリズムのフォーカスがシフト 当時の優勝モデルはこの段階で機能しなくなった ◼ 視聴手段の変化 • 単一のwebサイトからXbox, iPhone, Androidデバイス, AppleTVなど 多様なデバイスから視聴が可能になった
  61. 61. 61 機械学習の運用時の課題 開発時と同じ環境、傾向がずっと続く保証はありません 導入後もしっかりフォローをしてモデルの更新を行いましょう 機械学習の社会実装を加速するための〇〇〇より ※運用時のモニタリング(精度検証)には データ収集と再アノテーションによる評価が必須となります
  62. 62. 62 目録 ◼ 私の失敗体験談(不均衡データの学習) ◼ 機械学習開発における壁 • 機械学習のビジネスフレームワーク「5D」 • Define(定義する) • Data(データを集める) • Development(開発する) • Deploy(実装する) • Drive(運用する) ◼ ビジネス応用における壁 • AIを使ったキュウリの自動選別 • 機械学習を使って売り上げに貢献する • 機械学習を使わない選択肢 ◼ まとめ
  63. 63. 63 事例1:AIを使ったキュウリの自動選別 ビジネス応用の壁
  64. 64. 64 キュウリの自動選別とは? AIの民主化を印象付けた事例として有名です Google Cloud Platform Japan Blog 長さ、太さ、曲がり具合、色などから 等級・階級を仕分け(計9等級) きゅうり栽培における労働時間の割合 キュウリの品質や収穫量の増加につながらない、 選別作業に使う時間を減らしたい! (ピーク時は1日5,000本のキュウリを 8時間かけて仕分けする)
  65. 65. 65 キュウリ自動選別機の歴史 試作1号機 Webカメラ固定式 試作2号機 ベルトコンベア式 試作3号機 テーブル表示式 どのような背景で選別機は生まれ変わっていったのか?
  66. 66. 66 試作1号機 キュウリ選別を本当に機械学習で実施できそうかを確認 制作期間:1週間 制作費:3000円 上、下、横の3面から 撮影する撮影台を作成 教師データ集めを約2か月
  67. 67. 67 試作2号機 1号機で構築したモデルを使い実際にキュウリを選別 試作2号機でユーザーテストを実施 ベルトコンベアに流れるキュウリを選別 残念ながらお蔵入り、実用には至らず 試作2号機の動画
  68. 68. 68 試作2号機の課題
  69. 69. 69 試作3号機 開発コンセプトを変更 「AIによる自動化」⇒「AIのサポートによる効率化」 試作3号機の動画 仕分けスピードが1.4倍になった! ※自分が仕分けた場合との比較。熟練者のスピードにはまだ敵わない 実用的なスピードとなるよう処理を見直し 3万6000枚を学習。認識率:79.4% しかしこの試作3号機、現在は使われていない・・・ 開発期間は約半年、費用は2万円
  70. 70. 70 なぜ使われなくなったのか? きゅうり農家が深層学習に挑戦-自作の仕分け機を作るまでの道筋 より 当然ながら人も学習・成長します 関連事例:機械学習をやると、AIより人間の方が詳しくなる現象 • おそ松さん見分けの第一人者 • 1000人以上のアイドルの顔を判別できるようになったドルオタ • 女性のネイルについて詳しくなった男性エンジニア • ImageNetタスクを自分で取り組んだ結果、犬の品種に詳しくなったAI研究者 開発者は現在、箱から取り出したキュウリを 手に持ったまま撮影し、判断可能な4号機を開発中とのことです
  71. 71. 71 事例2:機械学習で売り上げに貢献する ビジネス応用の壁
  72. 72. 72 機械学習で売り上げに貢献する • 売り上げが少ない企業はAIを入れても意味がない • データ分析は「強者の武器」 ◼ Netflix, Inc 10%の改善に賞金100万ドル 2006年時の売り上げ額は約10億ドル 営業利益は6500万ドル ↓ 100万ドルの投資で1億ドルの売り上げup ◼ とあるweb系中小企業 10%の改善に開発工数2000万 売り上げ額1億円、営業利益は500万 ↓ 2000万円の投資で売り上げ1000万up 同じレベルの改善でもリターンは全然違います 機械学習は掛け算で効果を発揮します
  73. 73. 73 番外:機械学習を使わないという選択肢
  74. 74. 74 機械学習を使わない選択肢 https://twitter.com/learn_learning3/status/109702812 0333320192 仕事ではじめる機械学習より ルールベースで解決できるならそれに越したことはないです 機械学習だから解くことのできる問題かをよく考えてみて下さい
  75. 75. 75 機械学習が向いているか否か? • ルールベースでの定式化が困難 信号処理、画像処理、条件分岐で解決するならルールベースを採用すべき • データを安定して集められる(既にシステムが入ってると理想的) 学習データ量に比例してモデル精度は改善するため また検証時データが乏しいと、保証が難しくなるため • データの質が担保されている 教師データの信頼性が低いとモデル精度と性能評価に悪影響 変更が入ると基本的にはアノテーションからやり直し(出戻り工数大) • 入力データに、出力に紐づく信号が入っていると断定可能。もしくは関連性がある と仮説が立てられる 紐づく信号がない限り学習が成り立たないため • 学習モデルの良し悪しが定量化可能 この指標を改善するための学習が実施されるため • 誤判定を許容、ないしは吸収することができる 統計的アプローチである以上、機械学習は100%の精度保証は不可能 このリスクを許容する形になっていないと導入は難しい • 運用負荷が小さい、ないしは許容できる(下記リンク参照) 機械学習システムにおける「技術的負債」とその回避策 機械学習は本運用乗せきってからが本当の勝負、みたいなところあるので気をつけて
  76. 76. 76 目録 ◼ 私の失敗体験談(不均衡データの学習) ◼ 機械学習開発における壁 • 機械学習のビジネスフレームワーク「5D」 • Define(定義する) • Data(データを集める) • Development(開発する) • Deploy(実装する) • Drive(運用する) ◼ ビジネス応用における壁 • AIを使ったキュウリの自動選別 • 機械学習を使って売り上げに貢献する • 機械学習を使わない選択肢 ◼ まとめ
  77. 77. 77 以上を踏まえたML開発者への禁句 • ディープラニングとか使ってなんかいい感じの結果だしてくんない? ⇒ 何をやりたいかをまず定めて下さい • データならあるよ。(フォーマットばらばら) • データたくさんあるよ(アノテーションがあるとは言ってない) ⇒ そのデータを整備するのにどれだけ手間かかると思ってます? • AIってデータ与えれば勝手に賢くなるんじゃないですか? ⇒ 子供に参考書与えれば勝手に賢くなりますか? • AIでシンギュラリティとか起きるんでしょ? ⇒ シンギュラリティでこの不毛な仕事を奪ってくれ。。。 • なんか思ってたのと違う ⇒ 勉強してください • それでもAIなら…(略 参考:DeepLearning/機械学習を始めると必ずいるカス
  78. 78. 78 まとめ 今日お話ししたかったこと • 教える教師(開発者)がへぼいと生徒(モデル)もへぼくなります • 機械学習の教師は決して学習データだけではありません 何を教えるか?どう教えるか?どう評価するか? 上記を考え教育プログラムを組むのがあるべき教師だと思います ⇒AIが自動で見つける、自動で賢くなるみたいな妄想は捨てて下さい • 「良い精度がでた=課題解決」とは限りません ⇒AIを使うことを目的にするのでなく、一つの手段で考えるようにしましょう • 開発の中で機械学習の可能性を検討するのはもちろん重要 • 一方でAI活用の方法と導入効果を具体的に描くことができるのが、 価値創造において最も大切なことだと思います
  79. 79. 79 人が失敗から学習をするように この講義から 多くの学びを得ていただけると幸いです
  80. 80. 80 謝辞 • クックパッド株式会社(林田 千瑛さん) クックパッドにおける推薦(と検索)の取り組み-99%の失敗と1%の成功- • 株式会社ミクシィ(豊川 弘樹さん) カスタマーサポートAIの失敗と教訓 • 株式会社Preferred Networks(秋葉 拓哉さん) Kaggle State Farm Distracted Driver Detection • naoinaさん ディープラーニングで株価予測するときの罠 • Netflix, Inc Netflix Recommendations: Beyond the 5 stars (Part 1) • 株式会社キカガク(吉崎 亮介さん) 機械学習案件を納品するのは、そんなに簡単な話じゃないから気をつけて • 小池 誠さん AIを使ったキュウリの自動選別 上記方々の公開資料・体験談から多くの学びを得て 勉強会の資料に活用させていただきました 心より御礼申し上げます
  81. 81. 81 教科書 ⚫ 教科書 仕事ではじめる機械学習 ハマって覚えるデータ分析・機械学習の罠 ⚫ コースプログラム 「AI For Everyone」(TechTargetジャパンによるまとめ記事) ⚫ 講演資料 あなたの業務に機械学習を活用する5つのポイント ブレインパッドにおける機械学習プロジェクトの進め方 ⚫ 連載記事 ITmedia NEWS これからのAIの話をしよう 知らないと失敗するAI 「その課題、機械学習本当に必要?」どこで勝つかを考えるAI導入 ⚫ Qiita 機械学習案件を料理に例えると分かりやすい件 「AIで〇〇したいんだけど」の相談前に確認してほしい3つのこと 機械学習を使った事業を成功させるために必要な考え方や人材、フェーズとは? ⚫ ブログ AI(deep learningや機械学習)導入にあたって危険と思った5つの兆候 機械学習プロジェクトが失敗する9つの理由 Googleの研究者が教える、良い機械学習プロダクトを実装するための43のルール
  82. 82. 82 ご清聴ありがとうございました
  83. 83. 83 Appendix https://twitter.com/tokoroten/status/915101816127287297 AI AI DL
  84. 84. 84 助けて~ ドラえも~ん 人工知能が何でも解決してくれると考えてませんか?
  85. 85. 85 あなたの業務に機械学習を活用する5つのポイント
  86. 86. 86 https://twitter.com/yuki_mimu/status/1110125243505336321 AI(deep learningや機械学習)導入にあたって危険と思った5つの兆候
  87. 87. 87 AIの導入で失敗、ありがちな4パターン
  88. 88. 88 機械学習CROSS 前半資料
  89. 89. 89 機械学習の社会実装を加速するための〇〇〇
  90. 90. 90 47%のプロジェクトがPoC(実証実験)に至らない。 AI活用の課題は「課題がわからない」こと

×