機械学習プロジェクトを始めるに当たって、はじめに何を考えなければ行けないかを解説しています。 Oracle Big Data Jam Session #1での発表資料です。 https://oracle-code-tokyo-dev.connpass.com/event/149675/
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.機械学習ことはじめ早川 博 | @hhiroshell日本オラクル株式会社クラウド事業戦略統括 ソリューション・エンジニアOracle Big Data Jam Session #1
View Slide
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamSafe Harbor StatementThe following is intended to outline our general product direction. It is intended forinformation purposes only, and may not be incorporated into any contract. It is not acommitment to deliver any material, code, or functionality, and should not be relied uponin making purchasing decisions. The development, release, timing, and pricing of anyfeatures or functionality described for Oracle’s products may change and remains at thesole discretion of Oracle Corporation.2
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam3自己紹介@hhiroshell早川 博(はやかわ ひろし)• Data Science / Cloud Native な技術領域担当のプリセールスエンジニア• エンジニアコミュニティ 「Cloud Native Developers JP」 オーガナイザー• Developers Summit 2018、Japan Container Days 12.18 登壇
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam本セッションで話すこと• MLプロジェクトを始めるにあたっての、最初のとっかかりの話をします。4
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam目次1. イントロダクション – 機械学習にまつわるビジネストレンド2. 機械学習プロジェクト 始めの一歩3. まとめ5
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam目次1. イントロダクション – 機械学習にまつわるビジネストレンド2. 機械学習プロジェクト 始めの一歩3. まとめ6
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 7FinTechRisk Analysis, High-Frequency TradingRetailRecommendation Engines, Customer AnalysisHealthcareDrug Testing, Cancer ResearchMarket Revenue for Big Databy 2027$103BThe rate at which big data on cloudis outpacing on-premise4.5Xof executives say that their companies willlose edge and face extinction withoutembracing big data79%Data Driven Transformations: Multi Billion Opportunity※ Oracle Modern Cloud Day Tokyo 2019 「Oracle Cloud Infrastructure データ管理 – Big Dataおよびデータベース」/ Usman Khan より
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam8意思決定だけではない、新規ビジネス創出を見据えたデータ活用へデータドリブン経営のその先へ企業の意思決定のためのデータ活用企業経営の意思決定のためにデータとアルゴリズムを活用する既存ビジネスの効率化、高付加価値化既存ビジネスをデータによって改善し、より高いビジネス利益を得るe.g.)スマートファクトリー、保険取引におけるリスク分析新規ビジネスの創出機械学習、AIなど、より高度なデータ活用によって、新たなビジネスを創出するe.g.)AIチャットボット、企業人材分析コンサルティングサービス
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam9企業におけるデータ活用があらゆる分野重要にユースケースMarketingResponse ModelsScheduled JobsCustomer churnAPIsText sentimentanalysisReportsLifetime ValueAppsComputer visionand image taggingAppsTransactional dataETLScheduled JobsForecastingReportsRisk managementwith machinelearningAPIsRecommendationenginesAPIsData discovery andauditingReports
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam1. MLで解くべき問題かどうかの見極めが難しい– MLで解けない問題は、MLでいくら頑張っても解けない– 手段先行でMLを採用すると、最悪投資が無駄になってしまう可能性も2. MLシステムの構築、運用には高度なノウハウが必要(c.f. MLOps)– 学習データの収集、前処理– 予測モデルを実システムに組みこんでの利用、管理・運用…etc10機械学習(ML: Machine Learning)プロジェクトの難しさビジネス課題の設定と MLシステムの構築運用- 両面をクリアする必要があるWhy ? How ?
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam課題1: MLで解くべき問題かどうかの見極めが難しい• MLプロジェクトの主な失敗原因– MLを使わなくても十分効率的に対応できる– MLでは精度が十分でない– 学習データの入手に費用がかかりすぎる– システムを作ったはいいが使われない(重要でない)11MLが得意としない課題をMLで解こうとして、多くのプロジェクトが失敗している“”「これまで開発系のプロジェクトは46つありました。そのうち15つは何らかの形で日の目を見ています。しかし、11つは完全に失敗、もしくはお蔵入りしたプロジェクトです。感覚としては、大体3分の1は形になり、3分の1はお墓に持って行き、残り3分の1は継続審議中。そんな割合で進んでいます」※ https://ledge.ai/theai-3rd-dentsu/※
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam課題2: MLシステムの構築、運用には高度なノウハウが必要• システムとして継続的に価値を生み続けるには、予測モデルを作るだけでは足りない• 一般的なシステムとしての構築、運用ノウハウに加え、MLならではの考慮事項も12DevOps的な開発、運用に加えて、MLならではの考慮事項あり※ https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf※
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam目次1. イントロダクション – 機械学習にまつわるビジネストレンド2. 機械学習プロジェクト 始めの一歩3. まとめ13
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam1. MLで解くべき問題かどうかの見極めが難しい– MLで解けない問題は、MLでいくら頑張っても解けない– 手段先行でMLを採用すると、最悪投資が無駄になってしまう可能性も2. MLシステムの構築、運用には高度なノウハウが必要(c.f. MLOps)– 学習データの収集、前処理– 予測モデルを実システムに組みこんでの利用、管理・運用…etc14【再掲】 MLプロジェクトの難しさビジネス課題の設定と MLシステムの構築運用- 両面をクリアする必要があるWhy ? How ?
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamMLプロジェクトを始めよう• MLで解くべき問題かどうかを見極めよう - why• MLシステムの構築、運用ノウハウを学ぼう - how15ここまでで紹介したMLプロジェクトの課題を紐解いて行きましょう
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamその前に… ML is 何 ?• 新しい入力データに対し何らかの予測、判定、分類等の結果を出力する• 1)過去のデータから法則性(予測モデル)を獲得する学習フェーズと、2)新しい入力に対して法則を適用して結果を出力する予測フェーズがある(教師あり学習の場合)16未知の入力データに対し、意味のある予測、判定、分類を行う① 学習フェーズ ② 予測フェーズInput正解データ予測モデル 予測モデルInput Output
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamMLプロジェクトを始めよう• MLで解くべき問題かどうかを見極めよう• MLシステムの構築、運用ノウハウを学ぼう17ここまでで紹介したMLプロジェクトの課題を紐解いて行きましょう
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamMLで解くべき問題かを見極める 1/3• 具体的な解き方をセットにした課題設定を考える– 例)• ☓ ECサイトの売上を上げる• ○ ECサイトの売上を上げるために、ユーザー毎におすすめ商品を提示する18課題設定を正しく行うことで、予測モデルが作成可能なタスクに落としこむ
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamMLで解くべき問題かを見極める 2/3• MLを適用できる必要条件を満たしているどうかを判断する– よい例)• ECサイトの全利用者に対し、購買・閲覧履歴を元におすすめ商品を提示する– よくない例)• 正解率99%の手書きテキストの文字起こし → 100文字当たり1回ミス。用途によっては足りない• 文字列を自動生成してつぶやくAIボット→ 人種差別的と取れる発言など、一発で大炎上19大量の予測処理をこなせるが、100%の精度にはならないことに注意MLの適用領域の必要条件✓ 大量のデータに対して、高速に安定して判断を求める必要がある✓ 予測結果に一定数の間違いが含まれることが許容できる(MLは100%の精度にはできない)※ 「仕事で始める機械学習」 / 有賀康顕、中山心太、西林孝 著
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamMLで解くべき問題かを見極める 3/3• アルゴリズムの実現性と費用対効果を検討する1. 解きたい課題に適したアルゴリズムをピックアップする2. 学習を行うための教師データの入手性を確認する• データの性質によってはアルゴリズムにマッチしない可能性も3. モデルの作成や維持にかかる費用と、得られる効果とのバランスを考慮する• ML以外の手段で安価に実現できないか20実現性と費用対効果をチェック①アルゴリズムの選定③費用対効果の妥当性の検討②教師データの入手性の検討
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamMLのいろいろなアルゴリズムを抑えておく• アルゴリズムは分類、回帰、クラスタリングなどに大まかに分類できる21アルゴリズムの概略を知ることが、MLを適用できるかを判断する上で重要大分類 できることの概要 教師あり/なし 具体的なアルゴリズムの例分類(Classification)入力データを離散的なカテゴリにマッピングする例)手書き文字の画像を文字コードにマッピング、メールがスパムかどうかを判定あり ・パーセプトロン・ロジスティック回帰・ニューラルネットワーク回帰 入力データから連続値を予測する例)年齢から収入を予測あり ・線形回帰・多項式回帰クラスタリング データの集合から似たもの同士を見つけて分類例)ログデータをログレベル別に分類(INFO,ERROR,…)なし ・階層的クラスタリング・k-means次元削減 多次元データを少数の次元に要約する例)5課目の成績を文系/理系スコアに要約なし ・主成分分析
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam【参考】 scikit-learnのアルゴリズム・チートシート• 解きたい課題やデータの特性に応じて、適切なアルゴリズムの選定を助けてくれる• アルゴリズム名 を選択すると、その詳説に飛ぶ22アルゴリズムの学習の補助として…。※ https://scikit-learn.org/stable/tutorial/machine_learning_map/
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamアルゴリズムの紹介 1/2 – 分類• 入力データを離散的なカテゴリ(クラス)にマッピングする– クラスが2つの場合「二クラス分類」、3つ以上の場合「他クラス分類」と呼ぶ– 例: 手書き文字の画像を文字コードにマッピング、メールがスパムかどうかを判定• パーセプトロンによる二クラス分類の例23x1x2パーセプトロンの予測モデル:入力ベクトルの積和(重みをかけて合計)を二値に分けるw1w2積和 二値化0/1…x1x2入力ベクトルで決定する座標空間を直線(超平面)で分割するイメージ
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamアルゴリズムの紹介 2/2 – 回帰• 入力データから連続値を予測する– データを直線(平面)で近似するものを線形回帰、曲線(曲面)で近似するもの多項式回帰とよぶ。その他、補正項を追加するなどのバリエーションある– 例)年齢から収入を予測、 都市の人口/地理動態から電力消費量を予測• 線形回帰の例24x1x2線形回帰の予測モデル:入力ベクトルの積和を出力とするw1w2積和y…x1yx2入力座標を近似した平面の、関数を導出するイメージ
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamMLプロジェクトを始めよう• MLで解くべき問題かどうかを見極めよう• MLシステムの構築、運用ノウハウを学ぼう25ここまでで紹介したMLプロジェクトの課題を紐解いて行きましょう
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamMLシステムの構築、運用の全体 – 作業フローの観点• 予測モデルの作成前後にもクリアしなければいけないタスクが多数– データの収集と前処理、予測モデルの実システムでの利用、管理・運用26MLのフロー全体に対応した基盤の構築・運用が必要データ収集 データ解析 データ整形 データ検証 データ分割アルゴリズムの選定(探索的な作業)アルゴリズムの評価 教師データによる学習予測モデルの評価 サービスへの組み込み 監視とロギング
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamMLシステムの構築、運用の全体 – 作業フローの観点• 予測モデルの作成前後にもクリアしなければいけないタスクが多数– データの収集と前処理、予測モデルの実システムでの利用、管理・運用27MLのフロー全体に対応した基盤の構築・運用が必要データ収集 データ解析 データ整形 データ検証 データ分割アルゴリズムの選定(探索的な作業)アルゴリズムの評価 教師データによる学習予測モデルの評価 サービスへの組み込み 監視とロギングデータの準備予測モデルの作成
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam• 特徴量– 学習データとして利用する前に入力データを加工して特徴量とする• ETL等、収集・整形に適したツールを検討– データの特性に応じて格納場所を検討する• RDBMS、HDFS、Object Storage• 分類ラベル、予測値– 正解は機械的には生成できない。収集のための工夫が必須• 公開されたデータセットの利用• クラウドソーシングなどで依頼して人手でデータ作成• サービスに正解を入力してもらう仕組みを組み込む(例:reCAPTCHA)28データの準備Input Output✓教師あり学習では特徴量(入力)と分類ラベルや予測(正解)を準備
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam29データの前処理✓ 予測モデルは特徴量の抽出処理(特徴抽出)とセットにして意味を成す✓ 予測モデルとともに、特徴抽出時の処理内容とパラメータをセットにして保存(データパイプライン)し、予測時にも利用する① 学習フェーズInput正解データ予測モデル特徴抽出(ロジック+パラメータ)② 予測フェーズ予測モデルInput Output特徴抽出(ロジック+パラメータ)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam30データの前処理✓ 予測モデルは特徴量の抽出処理(特徴抽出)とセットにして意味を成す✓ 予測モデルとともに、特徴抽出時の処理内容とパラメータをセットにして保存(データパイプライン)し、予測時にも利用する① 学習フェーズInput正解データ予測モデル特徴抽出(ロジック+パラメータ)② 予測フェーズ予測モデルInput Output特徴抽出(ロジック+パラメータ)データパイプライン データパイプライン
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
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam予測モデルの作成• OSSで定番のツール、ライブラリが充実• クラウドで利用できる環境も充実してきている– AI Platform Notebooks(GCP), AWS SageMaker, databricks, OCI DataScience32– Jupiter Notebook• ノートブックと呼ばれるファイルにプログラム片や説明文、実行結果などをまとめて管理できる、データ分析用のツール– Pandas• データ解析用の定番のPythonライブラリ– TenserFlow• ニューラルネットワーク向けのPythonライブラリ✓ 教師データの一部を使って試行錯誤しながらアルゴリズムの当たりをつけ、その後全データで学習行って予測モデルを仕上げる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam33サービスへの組み込み✓ プロダクションレベルの機能として利用するには、アプリケーション及びインフラの設計・実装・運用の知見が必要✓ 予測モデルは精度を維持するために定期的に更新する必要があるため、CI/CD(継続的インテグレーション/継続的デリバリー)の仕組みも必要予測モデルをリアルタイムに実行する例 予測モデルを事前実行して結果を利用する例Input特徴抽出器バッチ系API正解アプリ学習器Input特徴抽出器学習系正解アプリ学習器予測系バッチ系
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam予測モデルを組み込んだシステムの運用• 予測精度のモニタリング– 予測モデルの精度を測るKPIを設定し、それをモニタリングするのが基本• 例) レコメンド結果のクリック率、Webサイト上の滞在時間…etc• 予測モデルの更新– A/Bテストを実行する仕組み(c.f. CI/CD)を構築し、更新、切り戻しを容易にしておく– 精度計測用のデータセットを用意し、精度が一定以上であることをモデル作成毎にチェック34✓ アプリケーションを運用するという意味での一般的な監視・ロギングは必要✓ 入力の傾向の変化によって予測モデルの精度が劣化することがある。このため、予測精度をモニタリングしたり、一定の頻度で予測モデルを更新する必要がある
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam35大変だ…。
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam【PR】 Oracle Cloudで省力化!• Oracle CloudのData Platformサービスを使って、MLプロジェクトを成功させましょう!36
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam目次1. イントロダクション – 機械学習にまつわるビジネストレンド2. 機械学習プロジェクト 始めの一歩3. まとめ37
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam1. MLで解くべき問題かどうかの見極めが難しい– MLで解けない問題は、MLでいくら頑張っても解けない– 手段先行でMLを採用すると、最悪投資が無駄になってしまう可能性も2. MLシステムの構築、運用には高度なノウハウが必要(c.f. MLOps)– 学習データの収集、前処理– 予測モデルを実システムに組みこんでの利用、管理・運用…etc38【再掲】 MLプロジェクトの難しさビジネス課題の設定と MLシステムの構築運用- 両面をクリアする必要があるWhy ? How ?
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamやっていきましょう!• Data scientists and DevOps engineers top the list of tech jobs with thebest earning potential and highest satisfaction rates.39※ https://www.techrepublic.com/article/the-10-best-tech-jobs-in-america-for-2018/
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-18184447740
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-241
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam42Fin.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajamSafe Harbor StatementThe preceding is intended to outline our general product direction. It is intended forinformation purposes only, and may not be incorporated into any contract. It is not acommitment to deliver any material, code, or functionality, and should not be relied uponin making purchasing decisions. The development, release, timing, and pricing of anyfeatures or functionality described for Oracle’s products may change and remains at thesole discretion of Oracle Corporation.43
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.#orajam44