このサービスは俺に聞け勉強会
2019/9/10
能登諭
機械学習編
アジェンダ 2
1.機械学習の概要
1.機械学習とは何か?
2.モデルとは?
3.学習するとは?
4.理論を学ぶ際の参考書籍
2.機械学習案件の特徴と進め方
アジェンダ 3
1.機械学習の概要
1.機械学習とは何か?
2.モデルとは?
3.学習するとは?
4.理論を学ぶ際の参考書籍
2.機械学習案件の特徴と進め方
4
機械学習で何ができるのか?
AWSの機械学習系サービス 5
https://aws.amazon.com/jp/machine-learning/
•レコメンデーション : Amazon Personalize
•時系列予測 : Amazon Forecast
•画像と動画の分析 : Amazon Rekognition
•翻訳 : Amazon Translate
•汎用 : Amazon SageMaker
AWSの機械学習系サービス 6
https://aws.amazon.com/jp/machine-learning/
•レコメンデーション : Amazon Personalize
•時系列予測 : Amazon Forecast
•画像と動画の分析 : Amazon Rekognition
•翻訳 : Amazon Translate
•汎用 : Amazon SageMaker
AIサービス
MLサービス
7
いろいろな事ができる
8
機械学習とは何でしょうか?
9
機械が学習する
ロボットが勉強している??? 10
機械が学習する
機械学習の定義 11
Wikipediaより引用
"アーサー・サミュエルは1959年に一般紙に対するインタビ
ューとして、機械学習を「明示的にプログラミングすることな
く、コンピュータに学ぶ能力を与えようとする研究分野[3]」と
定義した。"
12
明示的にプログラミングしない
明示的にプログラミングしない 13
人間がプログラミングせずに、コンピューターに学習さ
せて機能を作るのが機械学習。そして学習を行う際に必
要なのがデータ。
データ 学習 機能
14
例えば
年代に応じたレコメンド 15
アプリ上でのグッズの販売をする際に、商品のレコメン
ドをユーザーの年代に応じて実施します。
Amazon Machine Learningを利用したコンテンツの出し分け #アドカレ2015 | DevelopersIO より引用
年代の予測が必要 16
ただし、生年月日の登録は任意となっており、約半数の
ユーザーは登録していないとします。
17
どうすれば年代を予測できるでしょうか?
年代の予測方法 18
以下のようなデータから予測する方法が考えられます。
•あるグッズは40代の人が購入することが多い
•30代の購入金額が一番多い
•20代は日中にアプリを利用することが多い
•などなど
ルールベースのアプローチ 19
人間がデータから仕様を検討し、プログラミングして実
装する。
データ 仕様検討 プログラミング
20
機械学習を用いる場合
機械学習を用いるアプローチ 21
人間がデータから年代予測のルールを考えるのではなく
、データを用いて自動的に学習を行い、年代予測の機能
を実装する。
データ 学習 機能
アジェンダ 22
1.機械学習の概要
1.機械学習とは何か?
2.モデルとは?
3.学習するとは?
4.理論を学ぶ際の参考書籍
2.機械学習案件の特徴と進め方
23
モデルとは何でしょうか?
モデルとは? 24
機械学習を利用する際に用いるのがモデル。例えば年代
予測に◯◯(モデル)を用いるというような言い方をす
る。様々なモデルが存在し、それぞれ特性がある。
•ニューラルネットワーク
•決定木
•クラスタリング
•などなど
モデル選択のフローチャート 25
scikit-learnで公開されているチートシート
モデルを学習する 26
機械学習で学習するというのは、「データを用いてモデ
ルを学習し、学習済みモデルを作成する」ことを指す。
データ モデルを学習 学習済みモデル
27
機械学習を用いると何もしなくてよい?
人間は何もしなくてよい? 28
データの収集と加工、モデルの選択、モデルの学習と評
価、モデルのシステムへの組み込みなどを人間がやる必
要がある。
データの
収集と加工
モデルの選択
学習と評価
モデルのシステ
ム
への組み込み
機械学習のコードはほんの一部 29
機械学習を利用したシステムにおいて機械学習自体のコ
ードはほんの一部。
Hidden Technical Debt in Machine Learning Systemsより引用
アジェンダ 30
1.機械学習の概要
1.機械学習とは何か?
2.モデルとは?
3.学習するとは?
4.理論を学ぶ際の参考書籍
2.機械学習案件の特徴と進め方
31
学習するとは?
二値分類 32
以下のグラフに線を引いてoとxをうまくグルーピングし
てください。
パーセプトロンを利用した二値分類 33
パーセプトロンを利用してグラフを引いた結果が以下に
なります。
パーセプトロンの仕組み 34
学習データを利用して、以下の一次関数の 𝑤0, 𝑤1, 𝑤2の
値を適切な値に更新することで二値分類のグラフ(関数
)を作成します。
𝑓(𝑥, 𝑦) = 𝑤0 + 𝑤1 𝑥 + 𝑤2 𝑦
色々なwの組み合わせ 35
𝑤0, 𝑤1, 𝑤2の値によって、
グラフの形が変わること
がわかります。
1) y = x
2) y = -x
3) y = x + 5
4) y = x - 5
5) y = 0.5x
6) y = 0.5x + 2.5
パーセプトロンの学習過程 36
学習中の 𝑤0, 𝑤1, 𝑤2の値を変化を表すのが以下のグラフ
です。今回であれば1回目で学習を終えています。
学習するとは 37
学習するというのはモデルの重み(Weight)を学習デー
タを利用して更新することを指します。今回のパーセプ
トロンであれば 𝑤0, 𝑤1, 𝑤2の値を更新することを指しま
す。
𝑓(𝑥, 𝑦) = 𝑤0 + 𝑤1 𝑥 + 𝑤2 𝑦
勾配降下法 38
学習データに対する予測結果と正解データの誤差を利用
して重みを更新する。
ニューラルネットワークの「基礎の基礎」を理解する ~ディープラーニング入門|第1回 - アイマガジン|i Magazine|IS magazineより引用
うまく分離できない場合 39
以下のグラフに線を引いてoとxをうまくグルーピングし
てください。
パーセプトロンの分類結果 40
パーセプトロンを利用してグラフを引いた結果が以下に
なります。
パーセプトロンの学習過程 41
学習中の 𝑤0, 𝑤1, 𝑤2の値を変化ですが、今回はきれいに
分けられないため学習が収束していません。
学習するとは 42
学習するというのはモデルの重み(Weight)を学習デー
タを利用して更新することを指します。今回のパーセプ
トロンであれば 𝑤0, 𝑤1, 𝑤2の値を更新することを指しま
す。
𝑓(𝑥, 𝑦) = 𝑤0 + 𝑤1 𝑥 + 𝑤2 𝑦
アジェンダ 43
1.機械学習の概要
1.機械学習とは何か?
2.モデルとは?
3.学習するとは?
4.理論を学ぶ際の参考書籍
2.機械学習案件の特徴と進め方
44
理論を学ぶ際の参考書籍
ITエンジニアのための機械学習理論入門 45
•今日紹介したパーセプトロンの引用元
•基本的な理論から発展させる形で
数式を交えつつ解説している
•Pythonのコードも付属しており
コードから理解を深めることもできる
•読んだ際のメモ
ゼロから作るDeep Learning 46
•ニューラルネットワークの
仕組みを理解できる
•利用する数式はITエンジニアのための
機械学習理論入門より簡単
•Pythonのコードも付属しており
コードから理解を深めることもできる
•読んだ際のメモ
統計学のための数学入門30講 47
•紹介した書籍を理解するために
必要な知識を学べる
•極限と微積分
•線形代数
•偏微分
•独学で読むには難しいかも知れない
•今ならもっと分かりやすい本がありそう
Python機械学習プログラミング 48
•理論よりは応用に関する書籍
•機械学習の全体像をつかめる
•scikit-learnベースで様々なモデルの
試すことができる
•前処理やグリッドサーチ、
アンサンブル学習などを知れる
•第2版が出ている模様
49
機械学習を学ぶ際の心構え
AWSの機械学習系サービス 50
https://aws.amazon.com/jp/machine-learning/
•レコメンデーション : Amazon Personalize
•時系列予測 : Amazon Forecast
•画像と動画の分析 : Amazon Rekognition
•翻訳 : Amazon Translate
•汎用 : Amazon SageMaker
51
いろいろな事ができる
52
さまざまな手法(モデル)が存在する
機械学習という概念はとても広い 53
まずは機械学習という用語がカバーする範囲が非常に広
いことを認識する。機械学習は無理やりAWSインフラ
に例えるならデータベースサービスのようなもの。
•RDBSM : RDS
•KVS : DynamoDB
•グラフ : Neptune
54
機械学習≒データベースサービス
機械学習とデータベースサービスの共通点 55
以下の観点で同じようなものと解釈できる。
•目的毎にさまざまな特性を持ったモデル(サービス)が存在する
•単体でアプリケーションは作れない。プログラミングと組み合わせてアプリケーショ
ンを実装する
•対象となるデータの特性を理解する必要がある
•運用開始後はモニタリングやアップグレードが必要
•1つのモデル(サービス)を使えるからと言って、他のモデル(サービス)を使えるわ
けではなく、それぞれ習得する必要がある
•使い方はわかっても作り方がわかるわけではない。ただし、仕組みを理解してるほど
適切な使い方がわかる
機械学習の勉強方法 56
システム開発と同じで徐々に学習範囲を広げていくのがよいので
は。
1. まずは特定のモデルを試してみる
2. データの加工方法を勉強してみる
3. 理論を勉強してみる
4. 実際に試してみる
2から4のプロセスを繰り返しながら理解を深めつつ、ある程度理解して
たら他のモデルも試す。
アジェンダ 57
1.機械学習の概要
1.機械学習とは何か?
2.モデルとは?
3.学習するとは?
4.理論を学ぶ際の参考書籍
2.機械学習案件の特徴と進め方
機械学習案件の特徴 58
全体的には通常の受託案件とそこまで差はないが、以下のような
差がある。
•最初に実現可能かPoCをやる
•機械学習そのものよりもその周囲の方がコストが掛かる
•保守費も含めて予算感が合わないことがある
•うまく稼働し続ける保証がない
ステークホルダーを巻き込むとか、利用してもらえないというのは通常
の受託案件でもあるあるだと思う。
最初に実現可能かPoCをやる 59
実績がある適用例以外は基本的にやってみないとうまくいくか分
からない。
•機械学習を使えば何かすごいことができるという顧客の期待値
•データがない。データがあっても使い物にならない。データの加工に
手間がかかる
•モデルを選択するにもデータの分析が必要
•精度が(顧客の期待するほど)でない場合にどうするか
•レポーティング作業もある
機械学習そのものよりもその周囲の方がコストが掛かる 60
機械学習を利用したシステムにおいて機械学習自体のコ
ードはほんの一部。
Hidden Technical Debt in Machine Learning Systemsより引用
保守費も含めて予算感が合わないことがある 61
作ったシステムはメンテナスが必要
•インフラ費用だけではない
•毎月のレポーティング作業だけでも工数がかかる
•予測精度が下がった場合に再学習するにも工数がかかる
•一方で機械学習を用いたシステムが生み出す利益が大きくな
い場合は割に合わない
うまく稼働し続ける保証がない 62
変化しにくい対象でなければ継続的なメンテナスが必要
になる。
•購入履歴やアクセスログを利用するのであれば定期的にモデ
ルを更新する必要がある
•商品のレコメンドであれば、商品が入れ替わる都度モデルを
更新する必要がある
•翻訳であれば定期的に新しい用語を取り込む必要がある
機械学習案件の参考資料 63
•O'Reilly Japan - 仕事ではじめる機械学習
•ブレインパッドにおける機械学習プロジェクトの進め方
•#cmdevio2016 (レポート: C-1) データ分析チームの振り返りについて話しました |
DevelopersIO
•Andrew Ngが説く「AIプロジェクトをいかにして始めるべきか」論 - 六本木で働くデー
タサイエンティストのブログ
•機械学習案件を納品するのは、そんなに簡単な話じゃないから気をつけて - Qiita
•あなたの業務に機械学習を活用する5つのポイント
•機械学習プロジェクトが失敗する9つの理由 - 六本木で働くデータサイエンティストの
ブログ
機械学習の情報収集 64
私が普段利用しているものです。
•六本木で働くデータサイエンティストのブログ
•Get the O'Reilly Artificial Intelligence Newsletter - O'Reilly
Media
65
ご清聴ありがとうございました
このサービスは俺に聞け勉強会(機械学習)

このサービスは俺に聞け勉強会(機械学習)