狠狠撸

狠狠撸Share a Scribd company logo
Amazon SageMakerで
ゼロからはじめる機械学習入門
じょんすみす
1
2私について
じょんすみす
? クラスメソッド株式会社
データインテグレーション部 ML推進チームTL
? Alteryx ACE
? 北海道から来ました!
日常で主に扱う技術
? Alteryx
? Hadoop, EMR
? 機械学習, Amazom SageMaker
3本日の内容
? はじめに
? 機械学習とは
? Amazon SageMakerを使った機械学習
? Amazon SageMakerのアーキテクチャ
4本日の内容
? はじめに
? 機械学習とは
? Amazon SageMakerを使った機械学習
? Amazon SageMakerのアーキテクチャ
5はじめに
? 主に以下のような内容について語ります
? 機械学習とはどのようなものなのか
? 機械学習システムを実運用する上での課題
? Amazon SageMakerを使った機械学習システムの作り方
? 以下のことについては語りません
? 個々の機械学習アルゴリズムの詳細
? 機械学習導入の実例
? 発表資料は公開予定です
? メモしたり写真撮ったりしなくても大丈夫だよ!
6本日の内容
? はじめに
? 機械学習とは
? Amazon SageMakerを使った機械学習
? Amazon SageMakerのアーキテクチャ
7機械学習とは
統計学
ビジネス課題
A/Bテスト
データ収集
前処理
モデル管理
評価指標ROI
機械学習わかる人 機械学習わからない人
8機械学習とは
強いAIと弱いAI
弱いAI 強いAI
? タスク特化型
? 特定商品の売上予測
? スパムメールフィルタ
? 商品レコメンド
? コンピュータ将棋
? 機械学習はこちら
? データから傾向を導き出す
? データがないと何もできない
? Deep Learningも機械学習の一部
? 汎用的な何か
? ドラえもん
? ターミネーター
? HAL 9000
? AIブームで流行りの技術とは別物
? 詳しく知りたい方は
「全脳アーキテクチャ」で調べてみよう
9機械学習とは
データ分析でどのようなことが可能か
? Descriptive(記述的)
? データから”何が起こったか”を把握する
? 週末に紙おむつを買う人はビールも一緒に買っていた
? Predictive(予測的)
? データから”将来何が起こるか”を予測する
? 商品Aを買った人が次に買うであろう商品は?
? Prescriptive(処方的)
? データから”何を行うか”を決定する
? 限られた店舗スペース内にどのような商品を配置するか
10機械学習とは
データ分析でどのようなことが可能か
? Descriptive(記述的)
? データから”何が起こったか”を把握する
? 週末に紙おむつを買う人はビールも一緒に買っていた
? Predictive(予測的)
? データから”将来何が起こるか”を予測する
? 商品Aを買った人が次に買うであろう商品は?
? Prescriptive(処方的)
? データから”何を行うか”を決定する
? 限られた店舗スペース内にどのような商品を配置するか
11本日の内容
? はじめに
? 機械学習とは
? Amazon SageMakerを使った機械学習
? Amazon SageMakerのアーキテクチャ
12Amzon SageMakerを使った機械学習
機械学習のプログラムの流れ
13Amzon SageMakerを使った機械学習
機械学習のプログラムの流れ
Build-In Algorithmを使ったこの部分のフロー
14Amzon SageMakerを使った機械学習
機械学習のプログラムの流れ
? ノートブックインスタンスの作成
? 処理内容の記述
? 学習処理の実行
? 推論エンドポイントの作成
? 推論エンドポイントを使った予測
? 学習結果の評価
15Amzon SageMakerを使った機械学習
Demo
16本日の内容
? はじめに
? 機械学習とは
? Amazon SageMakerを使った機械学習
? Amazon SageMakerのアーキテクチャ
17Amazon SageMakerのアーキテクチャ
SageMakerの使い方
? Build-Inアルゴリズムを利用する
? TensorFlow, MXNet, Chainerを利用
? 独自に作る(ex: scikit-learnを組み込む)
? Apache Sparkから利用
18Amazon SageMakerのアーキテクチャ
Build-Inアルゴリズムにおけるアーキテクチャ
(1) 学習用コードの記述
(2) 前処理?特徴抽出などをした
学習データをS3に保存
(3) ライブラリがインストールされた
コンテナ上で学習
(4) モデルはS3に保存される
(5) 予測を行うAPIをデプロイ
(6) 他のシステムから利用
19

More Related Content

Amazon SageMakerでゼロからはじめる機械学習入門

Editor's Notes

  • #8: 機械学習をやるには考えなければならない様々なことがある そういったことを何も知らない段階では右のように”なんでもできる魔法”ととらえがち 実際には機械学習は”銀の弾丸”ではないのが、それを知るための足がガリとなる要素をとらえるまでが大変 例えば、勉強しようと思って本やWebサイトを見てもいきなり難しい数式を見せられたりするので、 システムとしてどのように実装すればいいのかや、それがビジネスにどう役に立つかが明確でない Amazon SageMakerを使うことでITのわかるCitizen data scientistになれるための、 機械学習のとっかかりとなる要素の理解が今日の目的 ※ Citizen data scientistとは 数学や統計学の専門知識はないが、ビジネス領域での専門知識は有していて、 ビジネス価値をもたらすためのデータ分析ができる人のこと
  • #9: よく勘違いされがちなやつ シンギュラリティやAIに人間の仕事を奪われるみたいな文脈で登場するのはいわゆる”強いAI” 汎用人工知能と呼ばれて、人間と同等に様々ことを実現できるもの 現在のAIブームの主要技術である機械学習とは異なる「人間の脳の機能を再現しようとする研究」は別にある 機械学習は統計的な手法に基づく(SVMなど例外もある)タスク特化型の仕組み 人間は ビジネス課題など、実現したいことの明確化 統計的な手法を適用するためのデータ整備 結果をもとにしてどのようなアクションを取るかの決定 などをする必要がある。
  • #10: Descriptive(記述的)なデータ分析では、既に得られている過去データに対して、 どのようなことが起こったのかを整理し、理解するための手法 単純にデータを集計して整理してみたり、データマイニング的手法を使ってどのような傾向があるのかを調べたりする ビールと紙おむつの例はデータマイニングで有名なもの ただし、これはあくまでも何が起こったかを”知る”とこができるのみで、 これを受けて何をするのかはこの範疇に含まれていない データドリブンな文化を築くための最初の一歩でもあり、これ以降の2つを行ううえでも最初にやるべき重要な要素となる Predictive(予測的)では過去の傾向と同じ状況が続き場合、次に何が起こるのかを予測する (狭義での)機械学習が行うのが主にこの部分となる 予測を行うためのに、統計的な手法と、特徴となるデータを用意する必要がある データから傾向を予測するため、得られていない情報に基づく予測はできない 挙げている例は、レコメンドシステムのようなもの 過去のユーザの傾向から一緒に購入される確率が高い商品や興味のある範囲の傾向が同じユーザが気に入った商品など、 購入される確率が高いものを予測することで、先回りしてオススメできる Prescriptive(処方的)では、データを活用して人間が行うべきアクションの決定を行う。 例として挙げているものは、”組み合わせ最適化問題” DescriptiveやPrescriptiveで行った結果からの売上予測などに基づきどの商品を店舗に配置するのがよさそうか判断する その際、 店舗スペースは限られるためなんでも取りそろえることはできない よく一緒に購入される商品同士は近くにあった方がいい 商品ごとに大きさなども違うため、よく売れるからといって入荷するとほかの商品を置くスペースが減る(=ほかの商品の売り上げが減る) 各商品の利益率も考慮する必要がある など、どんな商品を入荷してどのように配置するかを数式に変換して最適な状態を機械的に求めるなどする
  • #11: 今回は厂补驳别惭补办别谤を使った机械学习の使い方がメインとなるので主に扱うのはこの部分 実際には、機械学習をするに際しても Descriptive : モデリングの前のEDA(探索的データ解析) Prescriptive : デプロイ後のA/Bテストや多腕バンディット など、全体が関係してくる 入門なので”機械学習をする”という部分に絞って話す
  • #13: 機械学習をシステムに組み込むにはやらないとダメなことがいっぱいある 構成として、学習を行ってモデルを生成する部分とほかのシステムから利用される推論部分に大きく分けられる 学習部分と推論部分はそれぞれ別のシステムとなっていて、学習で作られたモデルが推論用のシステムで利用される 機械学習を含まない通常のシステムとの対比で考えると 学習部分は夜間バッチのようなもので他から利用かのうなデータを生成する 推論部分はユーザが一般に利用するUIを持っているシステムでバッチが生成したデータを利用する というような感じで考えるといい その際”データ”として共有されるのが”モデル”となる 学習時のフローに関してはまずデータがないと学習できないので、データを使え状態にしておく必要がある。 これは、データベースへのアクセスやファイルが利用可能な状態になっている、というのはもとより 既存のデータを使える状態にするために前処理したり、場合によっては定期的にデータを収集?集約するロジックも必要になる。つらい。 利用可能な状態のデータに対して、正解ラベルを作成する必要がある場合もある。 例えば、広告のクリック?商品購入の有無?レビューの星の数などユーザの行動がそのまま正解ラベルになることもあれば、 レビュー内容がポジティブな内容かネガティブな内容かなど、人間が見てアノテーションを設定する必要がある場合もある 特徴抽出(Feature Engineering)は場合によっては前処理と同じ扱いのこともある ここでは、 データをそもそも使える状態にするのが前処理 よりよい学習結果を得るためにデータに対して行う加工全般を特徴抽出 とする 学習はデータに対して実際に機械学習の手法を適用させて予測が可能なモデルを作成するプロセス 難しい数学の理論が絡んだりするが、SageMakerでは用意されているライブラリの関数を呼び出すのみ ただし、どの手法がどの目的で使えるかなどの対応関係は知っておく必要がある 学習を行った後は、モデルがどれだけうまく推論できるようになっているのかを評価する 機械学習の結果は100%正解するわけではないので、どのような場面で利用するかに応じて様々な方法で評価を行う 評価の結果うまく推論できそうもないとなった場合はデータを変えたり、手法を変えたりしながら結果を改善したり、諦めたりする。 推論時には、推論環境にモデルをデプロイして、関数やAPIなどで呼び出せるようにしておく 予測対象が限定的な場合は、あらかじめ結果をDBに入れておくなどしてもよい 推論用のシステムに入れるデータとしては、前処理などが済んでいる状態のものを入力とすることが可能だが、 特徴抽出で行ったロジックはそれ用のパラメータを持ってたりもするので、わりかしシステム側で持っておく必要がある。 この部分は推論結果を返す
  • #14: 今回は厂补驳别惭补办别谤を使った机械学习の使い方がメインとなるので主に扱うのはこの部分
  • #15: やってみよう!
  • #16: ノートブックインスタンスを立ち上げようとする 時間がかかるため、立ち上げようとするだけで実際にはすでに動いてるインスタンスを使う ノートブックを開く LinearLearnerのサンプルを一部変更したもの プロセスを順に説明していく fit, deployは時間がかかるので”こちらにできたものがあります” endpoint落とす