機械学習ことはじめ / Beginner's Guide to Machine Learning

36bb9dcd778d2a9621d44e92425d0907?s=47 hhiroshell
November 26, 2019

機械学習ことはじめ / Beginner's Guide to Machine Learning

機械学習プロジェクトを始めるに当たって、はじめに何を考えなければ行けないかを解説しています。
Oracle Big Data Jam Session #1での発表資料です。
https://oracle-code-tokyo-dev.connpass.com/event/149675/

36bb9dcd778d2a9621d44e92425d0907?s=128

hhiroshell

November 26, 2019
Tweet

Transcript

  1. 1.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    機械学習ことはじめ 早川 博 | @hhiroshell 日本オラクル株式会社 クラウド事業戦略統括 ソリューション・エンジニア Oracle Big Data Jam Session #1
  2. 2.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. 2
  3. 3.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 3 自己紹介 @hhiroshell 早川 博(はやかわ ひろし) • Data Science / Cloud Native な技術領域担当のプリセールスエンジニア • エンジニアコミュニティ 「Cloud Native Developers JP」 オーガナイザー • Developers Summit 2018、Japan Container Days 12.18 登壇
  4. 4.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 本セッションで話すこと • MLプロジェクトを始めるにあたっての、最初のとっかかりの話をします。 4
  5. 5.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 目次 1. イントロダクション – 機械学習にまつわるビジネストレンド 2. 機械学習プロジェクト 始めの一歩 3. まとめ 5
  6. 6.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 目次 1. イントロダクション – 機械学習にまつわるビジネストレンド 2. 機械学習プロジェクト 始めの一歩 3. まとめ 6
  7. 7.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    7 FinTech Risk Analysis, High-Frequency Trading Retail Recommendation Engines, Customer Analysis Healthcare Drug Testing, Cancer Research Market Revenue for Big Data by 2027 $103B The rate at which big data on cloud is outpacing on-premise 4.5X of executives say that their companies will lose edge and face extinction without embracing big data 79% Data Driven Transformations: Multi Billion Opportunity ※ Oracle Modern Cloud Day Tokyo 2019 「Oracle Cloud Infrastructure データ管理 – Big Dataおよびデータベース」/ Usman Khan より
  8. 8.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 8 意思決定だけではない、新規ビジネス創出を見据えたデータ活用へ データドリブン経営のその先へ 企業の意思決定のための データ活用 企業経営の意思決定のために データとアルゴリズムを活用す る 既存ビジネスの効率化、 高付加価値化 既存ビジネスをデータによって 改善し、より高いビジネス利益 を得る e.g.) スマートファクトリー、保険取引における リスク分析 新規ビジネスの創出 機械学習、AIなど、より高度な データ活用によって、新たなビ ジネスを創出する e.g.) AIチャットボット、企業人材分析コンサル ティングサービス
  9. 9.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 9 企業におけるデータ活用があらゆる分野重要に ユースケース Marketing Response Models Scheduled Jobs Customer churn APIs Text sentiment analysis Reports Lifetime Value Apps Computer vision and image tagging Apps Transactional data ETL Scheduled Jobs Forecasting Reports Risk management with machine learning APIs Recommendation engines APIs Data discovery and auditing Reports
  10. 10.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 1. MLで解くべき問題かどうかの見極め が難しい – MLで解けない問題は、MLでいくら頑張っても 解けない – 手段先行でMLを採用すると、最悪投資が無駄 になってしまう可能性も 2. MLシステムの構築、運用には高度な ノウハウが必要(c.f. MLOps) – 学習データの収集、前処理 – 予測モデルを実システムに組みこんでの利用、 管理・運用 …etc 10 機械学習(ML: Machine Learning)プロジェクトの難しさ ビジネス課題の設定と MLシステムの構築運用- 両面をクリアする必要がある Why ? How ?
  11. 11.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 課題1: MLで解くべき問題かどうかの見極めが難しい • MLプロジェクトの主な失敗原因 – MLを使わなくても十分効率的に対応できる – MLでは精度が十分でない – 学習データの入手に費用がかかりすぎる – システムを作ったはいいが使われない(重要でない) 11 MLが得意としない課題をMLで解こうとして、多くのプロジェクトが失敗している “ ” 「これまで開発系のプロジェクトは46つありました。そのうち15つは何らか の形で日の目を見ています。しかし、11つは完全に失敗、もしくはお蔵入り したプロジェクトです。感覚としては、大体3分の1は形になり、3分の1はお 墓に持って行き、残り3分の1は継続審議中。そんな割合で進んでいます」 ※ https://ledge.ai/theai-3rd-dentsu/ ※
  12. 12.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 課題2: MLシステムの構築、運用には高度なノウハウが必要 • システムとして継続的に価値を生み続けるには、予測モデルを作るだけ では足りない • 一般的なシステムとしての構築、運用ノウハウに加え、MLならではの考 慮事項も 12 DevOps的な開発、運用に加えて、MLならではの考慮事項あり ※ https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf ※
  13. 13.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 目次 1. イントロダクション – 機械学習にまつわるビジネストレンド 2. 機械学習プロジェクト 始めの一歩 3. まとめ 13
  14. 14.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 1. MLで解くべき問題かどうかの見極め が難しい – MLで解けない問題は、MLでいくら頑張っても 解けない – 手段先行でMLを採用すると、最悪投資が無駄 になってしまう可能性も 2. MLシステムの構築、運用には高度な ノウハウが必要(c.f. MLOps) – 学習データの収集、前処理 – 予測モデルを実システムに組みこんでの利用、 管理・運用 …etc 14 【再掲】 MLプロジェクトの難しさ ビジネス課題の設定と MLシステムの構築運用- 両面をクリアする必要がある Why ? How ?
  15. 15.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam MLプロジェクトを始めよう • MLで解くべき問題かどうかを見極めよう - why • MLシステムの構築、運用ノウハウを学ぼう - how 15 ここまでで紹介したMLプロジェクトの課題を紐解いて行きましょう
  16. 16.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam その前に… ML is 何 ? • 新しい入力データに対し何らかの予測、判定、分類等の結果を出力する • 1)過去のデータから法則性(予測モデル)を獲得する学習フェーズと、2)新 しい入力に対して法則を適用して結果を出力する予測フェーズがある (教師あり学習の場合) 16 未知の入力データに対し、意味のある予測、判定、分類を行う ① 学習フェーズ ② 予測フェーズ Input 正解データ 予測モデル 予測モデル Input Output
  17. 17.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam MLプロジェクトを始めよう • MLで解くべき問題かどうかを見極めよう • MLシステムの構築、運用ノウハウを学ぼう 17 ここまでで紹介したMLプロジェクトの課題を紐解いて行きましょう
  18. 18.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam MLで解くべき問題かを見極める 1/3 • 具体的な解き方をセットにした課題設定を考える – 例) • ☓ ECサイトの売上を上げる • ◦ ECサイトの売上を上げるために、ユーザー毎におすすめ商品を提示する 18 課題設定を正しく行うことで、予測モデルが作成可能なタスクに落としこむ
  19. 19.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam MLで解くべき問題かを見極める 2/3 • MLを適用できる必要条件を満たしているどうかを判断する – よい例) • ECサイトの全利用者に対し、購買・閲覧履歴を元におすすめ商品を提示する – よくない例) • 正解率99%の手書きテキストの文字起こし → 100文字当たり1回ミス。用途によっては足りない • 文字列を自動生成してつぶやくAIボット→ 人種差別的と取れる発言など、一発で大炎上 19 大量の予測処理をこなせるが、100%の精度にはならないことに注意 MLの適用領域の必要条件 ✓ 大量のデータに対して、高速に安定して判断を求める必要がある ✓ 予測結果に一定数の間違いが含まれることが許容できる(MLは100%の精度にはできない) ※ 「仕事で始める機械学習」 / 有賀康顕、中山心太、西林孝 著
  20. 20.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam MLで解くべき問題かを見極める 3/3 • アルゴリズムの実現性と費用対効果 を検討する 1. 解きたい課題に適したアルゴリズムを ピックアップする 2. 学習を行うための教師データの入手性 を確認する • データの性質によってはアルゴリズムにマッチし ない可能性も 3. モデルの作成や維持にかかる費用と、 得られる効果とのバランスを考慮する • ML以外の手段で安価に実現できないか 20 実現性と費用対効果をチェック ① アルゴリズム の選定 ③ 費用対効果 の妥当性の 検討 ② 教師データの 入手性の 検討
  21. 21.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam MLのいろいろなアルゴリズムを抑えておく • アルゴリズムは分類、回帰、クラスタリングなどに大まかに分類できる 21 アルゴリズムの概略を知ることが、MLを適用できるかを判断する上で重要 大分類 できることの概要 教師あり/なし 具体的なアルゴリズムの例 分類 (Classification) 入力データを離散的なカテゴリにマッピングする 例)手書き文字の画像を文字コードにマッピング、メー ルがスパムかどうかを判定 あり ・パーセプトロン ・ロジスティック回帰 ・ニューラルネットワーク 回帰 入力データから連続値を予測する 例)年齢から収入を予測 あり ・線形回帰 ・多項式回帰 クラスタリング データの集合から似たもの同士を見つけて分類 例)ログデータをログレベル別に分類(INFO,ERROR,…) なし ・階層的クラスタリング ・k-means 次元削減 多次元データを少数の次元に要約する 例)5課目の成績を文系/理系スコアに要約 なし ・主成分分析
  22. 22.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 【参考】 scikit-learnのアルゴリズム・チートシート • 解きたい課題やデータ の特性に応じて、適切 なアルゴリズムの選定 を助けてくれる • アルゴリズム名 を 選択すると、その詳説 に飛ぶ 22 アルゴリズムの学習の補助として…。 ※ https://scikit-learn.org/stable/tutorial/machine_learning_map/
  23. 23.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam アルゴリズムの紹介 1/2 – 分類 • 入力データを離散的なカテゴリ(クラス)にマッピングする – クラスが2つの場合「二クラス分類」、3つ以上の場合「他クラス分類」と呼ぶ – 例: 手書き文字の画像を文字コードにマッピング、メールがスパムかどうかを判定 • パーセプトロンによる二クラス分類の例 23 x1 x2 パーセプトロンの予測モデル: 入力ベクトルの積和(重みをかけて合計)を二値に分ける ෍ w1 w2 積和 二値化 0/1 … x1 x2 入力ベクトルで決定する座標空間を 直線(超平面)で分割するイメージ
  24. 24.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam アルゴリズムの紹介 2/2 – 回帰 • 入力データから連続値を予測する – データを直線(平面)で近似するものを線形回帰、曲線(曲面)で近似するもの多項 式回帰とよぶ。その他、補正項を追加するなどのバリエーションある – 例)年齢から収入を予測、 都市の人口/地理動態から電力消費量を予測 • 線形回帰の例 24 x1 x2 線形回帰の予測モデル: 入力ベクトルの積和を出力とする ෍ w1 w2 積和 y … x1 y x2 入力座標を近似した平面の、関数を導出するイメージ
  25. 25.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam MLプロジェクトを始めよう • MLで解くべき問題かどうかを見極めよう • MLシステムの構築、運用ノウハウを学ぼう 25 ここまでで紹介したMLプロジェクトの課題を紐解いて行きましょう
  26. 26.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam MLシステムの構築、運用の全体 – 作業フローの観点 • 予測モデルの作成前後にもクリアしなければいけないタスクが多数 – データの収集と前処理、予測モデルの実システムでの利用、管理・運用 26 MLのフロー全体に対応した基盤の構築・運用が必要 データ収集 データ解析 データ整形 データ検証 データ分割 アルゴリズムの選定 (探索的な作業) アルゴリズムの評価 教師データによる学習 予測モデルの評価 サービスへの組み込み 監視とロギング
  27. 27.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam MLシステムの構築、運用の全体 – 作業フローの観点 • 予測モデルの作成前後にもクリアしなければいけないタスクが多数 – データの収集と前処理、予測モデルの実システムでの利用、管理・運用 27 MLのフロー全体に対応した基盤の構築・運用が必要 データ収集 データ解析 データ整形 データ検証 データ分割 アルゴリズムの選定 (探索的な作業) アルゴリズムの評価 教師データによる学習 予測モデルの評価 サービスへの組み込み 監視とロギング データの準備 予測モデルの作成
  28. 28.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam • 特徴量 – 学習データとして利用する前に入力 データを加工して特徴量とする • ETL等、収集・整形に適したツールを検討 – データの特性に応じて格納場所を検 討する • RDBMS、HDFS、Object Storage • 分類ラベル、予測値 – 正解は機械的には生成できない。収 集のための工夫が必須 • 公開されたデータセットの利用 • クラウドソーシングなどで依頼して人手で データ作成 • サービスに正解を入力してもらう仕組みを組 み込む(例:reCAPTCHA) 28 データの準備 Input Output ✓教師あり学習では特徴量(入力)と分類ラベルや予測(正解)を準備
  29. 29.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 29 データの前処理 ✓ 予測モデルは特徴量の抽出処理(特徴抽出)とセットにして意味を成す ✓ 予測モデルとともに、特徴抽出時の処理内容とパラメータをセットにして保存 (データパイプライン)し、予測時にも利用する ① 学習フェーズ Input 正解データ 予測モデル 特徴抽出 (ロジック+パラメータ) ② 予測フェーズ 予測モデル Input Output 特徴抽出 (ロジック+パラメータ)
  30. 30.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 30 データの前処理 ✓ 予測モデルは特徴量の抽出処理(特徴抽出)とセットにして意味を成す ✓ 予測モデルとともに、特徴抽出時の処理内容とパラメータをセットにして保存 (データパイプライン)し、予測時にも利用する ① 学習フェーズ Input 正解データ 予測モデル 特徴抽出 (ロジック+パラメータ) ② 予測フェーズ 予測モデル Input Output 特徴抽出 (ロジック+パラメータ) データパイプライン データパイプライン
  31. 31.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam データパイプラインの管理 • データパイプラインを定義・管理するためのOSSやサービスも充実 • OSS: – Apache Airflow – Argo – DigDag • サービス: – Cloud Composer(GCP) – OCI Data Integration Service (commig soon..) 31
  32. 32.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 予測モデルの作成 • OSSで定番のツール、ライブラリが充実 • クラウドで利用できる環境も充実してきている – AI Platform Notebooks(GCP), AWS SageMaker, databricks, OCI DataScience 32 – Jupiter Notebook • ノートブックと呼ばれるファイルにプログ ラム片や説明文、実行結果などをまとめ て管理できる、データ分析用のツール – Pandas • データ解析用の定番のPythonライブラリ – TenserFlow • ニューラルネットワーク向けのPythonライ ブラリ ✓ 教師データの一部を使って試行錯誤しながらアルゴリズムの当たりをつけ、その後 全データで学習行って予測モデルを仕上げる
  33. 33.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 33 サービスへの組み込み ✓ プロダクションレベルの機能として利用するには、アプリケーション及びインフラの 設計・実装・運用の知見が必要 ✓ 予測モデルは精度を維持するために定期的に更新する必要があるため、CI/CD (継続的インテグレーション/継続的デリバリー)の仕組みも必要 予測モデルをリアルタイムに実行する例 予測モデルを事前実行して結果を利用する例 Input 特徴抽出器 バッチ系 API 正解 アプリ 学習器 Input 特徴抽出器 学習系 正解 アプリ 学習器 予測系 バッチ系
  34. 34.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 予測モデルを組み込んだシステムの運用 • 予測精度のモニタリング – 予測モデルの精度を測るKPIを設定し、それをモニタリングするのが基本 • 例) レコメンド結果のクリック率、Webサイト上の滞在時間…etc • 予測モデルの更新 – A/Bテストを実行する仕組み(c.f. CI/CD)を構築し、更新、切り戻しを容易にしておく – 精度計測用のデータセットを用意し、精度が一定以上であることをモデル作成毎に チェック 34 ✓ アプリケーションを運用するという意味での一般的な監視・ロギングは必要 ✓ 入力の傾向の変化によって予測モデルの精度が劣化することがある。このため、 予測精度をモニタリングしたり、一定の頻度で予測モデルを更新する必要がある
  35. 36.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 【PR】 Oracle Cloudで省力化! • Oracle CloudのData Platformサービスを使って、MLプロジェクトを成功させ ましょう! 36
  36. 37.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 目次 1. イントロダクション – 機械学習にまつわるビジネストレンド 2. 機械学習プロジェクト 始めの一歩 3. まとめ 37
  37. 38.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 1. MLで解くべき問題かどうかの見極め が難しい – MLで解けない問題は、MLでいくら頑張っても 解けない – 手段先行でMLを採用すると、最悪投資が無駄 になってしまう可能性も 2. MLシステムの構築、運用には高度な ノウハウが必要(c.f. MLOps) – 学習データの収集、前処理 – 予測モデルを実システムに組みこんでの利用、 管理・運用 …etc 38 【再掲】 MLプロジェクトの難しさ ビジネス課題の設定と MLシステムの構築運用- 両面をクリアする必要がある Why ? How ?
  38. 39.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam やっていきましょう! • Data scientists and DevOps engineers top the list of tech jobs with the best earning potential and highest satisfaction rates. 39 ※ https://www.techrepublic.com/article/the-10-best-tech-jobs-in-america-for-2018/
  39. 40.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 参考文献 1/2 • 「仕事で始める機械学習」 – https://www.oreilly.co.jp/books/9784873118215/ • 「Hidden Technical Debt in Machine Learning Systems」 – https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning- systems.pdf • 「Kubeflow Project: Deep Dive」 – https://schd.ws/hosted_files/kccnceu18/d4/Kubeflow_Deep_Dive.pdf • 「失敗から学ぶ機械学習応用」 – https://www.slideshare.net/HiroyukiMasuda1/ss-181844477 40
  40. 41.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam 参考文献 2/2 • 「ZOZOTOWNにおける画像検索の運用・改善について」 – https://speakerdeck.com/trsnium/operation-and-improvement-of-image-search- platform • 「ZOZOの画像検索でのMLOps実践とGKEインフラアーキテクチャ」 – https://docs.google.com/presentation/d/e/2PACX-1vQGsnZk1BAetbRkkoM- sz8IdE_Em9tT2jcKa0WvklyBuXEh5-Mk0CLAvKU4K46x5Vr2tt6il_ijXTOJ/embed • 「Introduction to Kubeflow 0.1 and future」 – https://speakerdeck.com/masayaaoyama/introduction-to-kubeflow-0-dot-1-and- future-at-cloud-native-meetup-tokyo-number-2 41
  41. 43.

    Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

    #orajam Safe Harbor Statement The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. 43
  42. 45.