84
聖博 第1回 メドレー読書会 1

第1回メドレー読書会

Embed Size (px)

Citation preview

Page 1: 第1回メドレー読書会

徐 聖博

第1回 メドレー読書会

1

Page 2: 第1回メドレー読書会

• 名前 • 徐 聖博(じょ せいぼ)

• 2014/04~2015/06 • グリー株式会社

• 2015/07~ • 株式会社メドレー

• 2014/04~ • ターゲットスポーツ

• 保有資格 • ダーツプロライセンス

• 大学院時代の研究 • 人工知能(進化計算) • ICML RLCompetition 1位

自己紹介

2

http://2013.rl-competition.org/results

Page 3: 第1回メドレー読書会

• この本を交代で読む

• 絶賛発表者募集!

• 人がいなければ、徐が全部やる(極力避けたい)

• よろしくお願いします。

3

今回のテーマ:機械学習

Page 4: 第1回メドレー読書会

読書会スタート!

4

Page 5: 第1回メドレー読書会

• 特集1:概要、歴史、なぜ注目されたいのか? • 機械学習を使いたい人のための入門講座

• 特集2:期外学習の手法の中身を知る • 機械学習の基礎知識

• その他: • 雑談1)ジョブメドレーにおける推薦システムについて • 雑談2)ジョブメドレーにおける売上予測 • ex1)クラスタリングアルゴリズムを実装してみよう • ex2)外れ値検出をしてみよう!

本日のメニュー

5

Page 6: 第1回メドレー読書会

6

特集1 概要、歴史、なぜ注目されるのか

機械学習を使いたい人の ための入門講座

Page 7: 第1回メドレー読書会

第1章 機械学習の概要本当に使うための理解

7

Page 8: 第1回メドレー読書会

• コンピュータが計算処理によって学習すること • 「何から」、「何を」学ぶのかが重要 • 「データの集合」から「その法則」を学ぶこと

• データ分析においては下記のようなことを知りたい • 入力と出力の因果関係(そのそもあるのか否か) • 複数のカテゴリを分類したい • 似たもの同士をまとめたい • 異常な場所(場合)を発見したい

機械学習とは

8

Page 9: 第1回メドレー読書会

例:入力と出力の因果関係

9

COL

バグの数

比例関係???

Page 10: 第1回メドレー読書会

複数のカテゴリ分類をしたい

10

COL

ファイル の数

良いコード

ダメコード

良いコード・ダメコード

Page 11: 第1回メドレー読書会

似たもの同士をまとめたい

11

どっちでしょう?

Page 12: 第1回メドレー読書会

異常な場所(場合)を発見したい

12© Martin Handford

Page 13: 第1回メドレー読書会

異常な場所(場合)を発見したい

13© Martin Handford

Page 14: 第1回メドレー読書会

データの法則を見つけるまでには

14

• 生のデータから特徴ベクトルへ変換する • 専門知識に基づく、ドメイン知識を活かし、関係有りそうな要素を取り込む

• (例)ダーツのうまさの場合: [身長、体重、年齢、ダーツの値段]

• 学習アルゴリズムの適用 • 外れ値の検出、分類等の法則を見つけていく

Page 15: 第1回メドレー読書会

機械学習を使う利点

15

• 機械学習を使わないで法則を決めると下記のような固定したルールを決めることになる • 高価なダーツを使うとダーツがうまい • 体重が重いほうがダーツがうまい • 年齢が高いほうがダーツがうまい

• これではあまりに例外が多く、見逃しや誤検知を削減するための細かいルールを追加する必要がある ➡ 人間には難しいタスクで、効率が悪い

Page 16: 第1回メドレー読書会

学習のプロセスとモデル

16

• モデル • 学習の結果得られた法則性を表すもの • 適用するアルゴリズムごとに異なる

• プロセス • データを与えられて、モデルを特定していく過程 • ロジック理解が、機械学習を使いこなすポイント

Page 17: 第1回メドレー読書会

第2章 機械学習の歴史と今後の応用例人工知能ブーム、機械学習の発展、深層学習(Deep Learning)

17

Page 18: 第1回メドレー読書会

時系列で見る機械学習手法と応用の進化

18

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 19: 第1回メドレー読書会

第3章 データサイエンティストのための機械学習

注目を浴びる理由と実用に向けたハードル

19

Page 20: 第1回メドレー読書会

なぜ今機械学習が注目されるのか?

20

• データの膨大化 • デバイスの発達による、データ収集機会の増大 • ネットワーク・ストレージの高密度化・低価格化

• 潜在的価値への関心 • 人間で処理しきれない高次元のデータが多い • 周辺ソフト整備による業務プロセスの低コスト化

Page 21: 第1回メドレー読書会

機械学習の実用化までのハードル

21

• 充分な精度があること • ドメイン次第で人間と同等の精度が要求される

• コストが低くなること • 運用コストが従来の人力作業よりも低くなる

• 人間にできない能力があること • データ量や反応速度で人間を超えられる

Page 22: 第1回メドレー読書会

第4章 Q&Aとまとめ自動化、必要なデータ量、人工知能との違い

22

Page 23: 第1回メドレー読書会

記載されていた質問

23

• 機械学習は自動で何でもやってくれるのか?

• 機械学習を学習するにあたって、どれくらいのデータがあればよいのか?

• 人工知能あるいは機械学習が発展するとそのうち人間が不要になるのか?

• 人工知能と機械学習はどう違うのか?

• 将棋ソフトやIBM Watsonや自動運転車は機械学習でうごいているのか?

Page 24: 第1回メドレー読書会

24

特集2 機械学習の中身を知る

機械学習の基礎知識

Page 25: 第1回メドレー読書会

第1章 機械学習の問題設定

利用目的に合う手法を選択する

25

Page 26: 第1回メドレー読書会

機械学習の大分類

26

• 教師あり学習 • 例:部屋の面積と家賃で、面積と家賃の関係を学習する • 予測対象が数値のもの:「回帰」 • 予測対象がカテゴリであるもの:「分類」

• 教師なし学習 • 例:ホテル周辺情報で、似たホテルのグループを見つける • 訓練データを使わずにデータのパターンを発見する

Page 27: 第1回メドレー読書会

機械学習の応用例

27

• 推薦 • 膨大なアイテムの中からユーザに適したものを提示 • Amazonなどの広告システムで使われる

• 異常検出 • データの中から明らかに他と異なるものを見つけ出す • 防犯カメラ、温度計測などで使われる

Page 28: 第1回メドレー読書会

推薦システムについて(脱線1)ジョブメドレーにおける推薦システムについて

28

Page 29: 第1回メドレー読書会

ジョブメドレー(医療系求人サービス)

29

ジョブメドレーでも推薦システムが使われている

Page 30: 第1回メドレー読書会

案件ページでは類似した案件を表示している

30

大人の事情により、 具体的なものは資料ではカット

Page 31: 第1回メドレー読書会

主な推薦アルゴリズム

31

• ルールベース

• 協調フィルタリング • ユーザベース • コンテンツベース • ハイブリット

• ベイジアンネットワーク

Page 32: 第1回メドレー読書会

• 女性は赤が好き

• 男性は青が好き

➡ルールに基いて、推薦する ➡例外が多すぎるため、実用性にかける

ルールベース

32

Page 33: 第1回メドレー読書会

• ユーザベース • 同じ用なユーザは同じようなもの買う ➡ 但し、大量の購入データがないとうまく学習できない

• コンテンツベース • 似た商品をサジェストする ➡ 個人に最適化されないが、コンテンツデータがあれば大丈夫

• ハイブリット • コンテンツベースとユーザベースのハイブリット • 実装がちょっと激しい。。。

協調フィルタリング

33

Page 34: 第1回メドレー読書会

• 条件付き確率のネットワークのようなものを構築し、一番確率が高いものを提示 • かなり実装が激しい。。。

ベイジアンネットワーク

34

応募履歴

ユーザ情報応募!

求人閲覧履歴

Page 35: 第1回メドレー読書会

• コンテンツベースの協調フィルタリングを採用 • 検索システムで使っているElastichSearchを応用 • http://techlife.cookpad.com/entry/2014/09/24/092223 • http://nakazine.net/Entry/65

• 特徴や位置情報を元に、類似した特徴・近場の案件をオススメ案件としてレコメンドしている

ジョブメドレーにおけるレコメンド

35

Page 36: 第1回メドレー読書会

第2章 教師あり学習未知の情報を予測する

36

Page 37: 第1回メドレー読書会

• 回帰は実数値を予測する問題 • あるサンプルが与えられた時に、そのサンプルに関する数値を予測する予測器の作成を目指す。

回帰:実数値を予測する

37

Page 38: 第1回メドレー読書会

• 線形関数で表せるモデル • y =α0+α1X1+α2X2+…+αnXnのようなもの • y =α+βX+γX2は、曲線であるが(1,x,x2)に対し線形

• 損失関数 • 関数最適化する過程で二乗誤差を損失関数と扱う • 一般的には、 を二乗和として扱う

• 目的関数 • 二乗誤差の合計を目的関数と扱い、それを最小化する • 一般的には、 と表す

線形回帰

38

Page 39: 第1回メドレー読書会

イメージ

39

線形モデル

損失関数

和が目的関数

Page 40: 第1回メドレー読書会

確率的勾配法

40

初期値を決めて、そこから目的関数を最小化する© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 41: 第1回メドレー読書会

今日からできる簡単機械学習(脱線2)

ジョブメドレーにおける売上予測 (自分が勝手にやってるだけ)

41

Page 42: 第1回メドレー読書会

• 線形関数で表せるモデル(をまず決める) •

• 損失関数 •

• 目的関数(を最小化していく) •

確率的勾配法(確認)

42

Page 43: 第1回メドレー読書会

• 偏微分 • 多変数関数に対して、1つの変数のみに関する微分

• 微分 • Xについての微分:X -> 1, X2 -> 2X,X3 -> 3X2

• これから使う偏微分 •

数学的な確認

43

Page 44: 第1回メドレー読書会

1. a,bの初期値を決める。パラメータαを決める。 2. 勾配を求めて、最適化を行う • • 3. a,bが変化しなくなる(or規定数)まで2.を繰り返す

確率的勾配法(確認)

44

Page 45: 第1回メドレー読書会

確率的勾配法(イメージ)

45

Page 46: 第1回メドレー読書会

コードにすると(気持ちこんな感じ)

46

THRESHOLD = 0.001

while true do n.times do |i| tmp0 = 2*alpha * ((y[i] - (a * x[i] + b)) * x[i]) / n tmp1 = 2*alpha * (y[i] - (a * x[i] + b)) / n end a = a - tmp0 b = b - tmp1 break if tmp0 < THRESHOLD && tmp1 < THRESHOLD end

Page 47: 第1回メドレー読書会

• 入力 • 求人に対する応募数

• 出力 • 売上(金額)

• 学習データと結果 • 過去3年分のデータを元に学習 • 応募あたりの金額がわかる、応募数から売上がわかる

コードにすると(気持ちこんな感じ)

47

Page 48: 第1回メドレー読書会

• 2変数の場合 • 目的関数は以下のようになる •

• 最適化(偏微分)するものが3つになるだけ • 2乗とか出てきても、基本同じ

• リッジ回帰 • 過学習:訓練データに最適化し汎用性がなくなること • 過学習に避けるため、パラメータの正則化を行う • 目的関数(例):

2変数の場合とリッジ回帰

48

Page 49: 第1回メドレー読書会

• ロジスティック回帰 • 例:リンゴの品種分類(P/Q)、X1を糖度、X2リンゴ酸含量 • スコア関数: • 分類の確率: • 0のときは、Pに含まれる確率1/2 • 正の方向に大きくなるほど、Pである確率が高くなる • 負の方向に大きくなるほど、Pである確率が0に近づく

分類:カテゴリを予測する

49

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 50: 第1回メドレー読書会

• ロジスティック損失 • 品種Pとなるとき(y=1)の損失: • 品種Qとなるとき(y=-1)の損失:

• 反転しているので、マイナスで相殺

• y=1とy=-1の場合で足し合わせると •

分類:カテゴリを予測する

50

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 51: 第1回メドレー読書会

• ロジスティック回帰における目的関数

分類:カテゴリを予測する

51

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 52: 第1回メドレー読書会

• 余裕のある分類面獲得を目指す • 画像でいうと、灰色の部分を「マージン」と呼ぶ • マージンが最大となるように分類をする

サポートベクターマシン

52© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 53: 第1回メドレー読書会

• ヒンジ損失 • 関数: • ヒンジ損失関数 •

サポートベクターマシン

53ヒンジ損失とロジスティック損失

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 54: 第1回メドレー読書会

• マージン最大化 • 分類面(直線)に最も近いサンプルで、yf(x1,x2)=1となるように、w0,w1,w2が定数倍されているとする。 • この時、マージンは で表される(点と直線の距離より • 目的関数を最小化することで、マージンの最大化を計る

• カーネル • は線形であったが、一般的には直線ではない

• カーネルは、サンプル間の類似度で求められるため、類似度がわかればカーネルは使える

サポートベクターマシン

54

Page 55: 第1回メドレー読書会

• 多項式カーネルとガウスカーネルを用いたSVM

サポートベクターマシン

55

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 56: 第1回メドレー読書会

第3章 教師なし学習

データの性質を理解する

56

Page 57: 第1回メドレー読書会

K平均法 • K個のグループに分割する • 各グループの中心を決め、各サンプルが「グループ中心が自分と最も似ている」グループに所属するようにする

アルゴリズム 1. K個のグループ中心をランダムに選ぶ 2. 次の手順を繰り返す

I. 各サンプルの所属グループを推定する:各サンプルを、グループ中心がそのサンプルと最も似ているグループに所属させる

II. 各グループのグループ中心を推定する:各グループに所属するサンプルの平均値を、新しいグループ中心とする

クラスタリング:グループを見つける

57

Page 58: 第1回メドレー読書会

クラスタリング:グループを見つける

58© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 59: 第1回メドレー読書会

混合正規分布 • K平均法は1つのサンプルに1つのデータだけ割り当てていた • ここでは、「各グループへの所属確率」を求める

アルゴリズム 1. K個の正規分布パラメータを初期化する。各グループごとの重みをランダムに決める。

2. 次の手順を繰り返す I. 各サンプルが各グループに所属する確率を推定する

II. 各グループへの所属確率を使って、各グループに対する正規分布パラメータと、各グループの重みを更新する

クラスタリング:グループを見つける

59

Page 60: 第1回メドレー読書会

クラスタリング:グループを見つける

60

ちんぷんかんぷんなので、 詳細はホワイトボードで

Page 61: 第1回メドレー読書会

• 変数が少ないほうが、可視化や解釈が用意になる • 変数が多くなると、処理が重くなったり、解釈できなることを「次元の呪い」と言ったりする

次元削減:データを要約する

61© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 62: 第1回メドレー読書会

• 主成分分析 • 次元削減の代表的手法 • ここでは、2次元→1次元を考える • 下記の例では、いい例と悪い例を表している

次元削減:データを要約する

62

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 63: 第1回メドレー読書会

• 主成分分析の定式化 • 直線のベクトルを(w1,w2)で表す場合

の2乗和をを最小にする直線を選び、マッピングする

次元削減:データを要約する

63

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 64: 第1回メドレー読書会

• 特異値分解

N行M列の行列Xを、N行K列の行列U、K行K列の行列S、M行K列の行列Vに分解し、行列Xを3つの行列の積USVTで近似する。 特異値分解で得られたVの転置行列VTがL(w1,w2)を最小にする(w1,w2)に当たることが知られている。

次元削減:データを要約する

64

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 65: 第1回メドレー読書会

エクササイズ(1)K平均法を実装してみよう!

65

Page 66: 第1回メドレー読書会

• K平均法 • K個のグループに分割する • 各グループの中心を決め、各サンプルが「グループ中心が自分と最も似ている」グループに所属するようにする

• アルゴリズム 1. K個のグループ中心をランダムに選ぶ 2. 次の手順を繰り返す

I. 各サンプルの所属グループを推定する:各サンプルを、グループ中心がそのサンプルと最も似ているグループに所属させる

II. 各グループのグループ中心を推定する:各グループに所属するサンプルの平均値を、新しいグループ中心とする

(再掲)クラスタリング:グループを見つける

66

Page 67: 第1回メドレー読書会

https://github.com/shengbo-medley/MiscForStudy/tree/master/20151107

コード汚いですが。。。 動きます!

67

Page 68: 第1回メドレー読書会

第4章 応用推薦と異常検知

68

Page 69: 第1回メドレー読書会

• 映画の評価データの例 • 行列X(i行j列)として与えられたとき • 「Xijはi番目のユーザがj番目の映画に与えた評点」とする

• ユーザ数をN人、映画数をM本とすると、XはN行M列

推薦:ユーザが好むアイテムを見つける

69

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 70: 第1回メドレー読書会

• 行列Xを特異値分解し積USVTで近似する • 特異値分解の資料:http://www.iedu.i.kyoto-u.ac.jp/uploads/20141022.pdf

推薦:ユーザが好むアイテムを見つける

70

N: ユーザ数、K: ユーザのグループ数&アイテムのグループ数、M: アイテム数© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

Page 71: 第1回メドレー読書会

• 実際に特異値分解してみる! • ・・・・ • ・・・・ • ・・・・ • ・・・・ • ・・・・ • ・・・・ • ????

推薦:ユーザが好むアイテムを見つける

71

Page 72: 第1回メドレー読書会

• 実際に特異値分解してみる • Rを使えば簡単!(なにも頭を使わず特異値分解できる)

推薦:ユーザが好むアイテムを見つける

72

> M <- matrix( c( 3, 2, 2, 2, 7, 2, 2, 2, 5 ), 3 ) > svd( M ) $d [1] 9.428639 3.921622 1.649738

$u [,1] [,2] [,3] [1,] -0.3971125 0.2331920 -0.8876503 [2,] -0.7557893 -0.6317813 0.1721479 [3,] -0.5206574 0.7392387 0.4271323

$v [,1] [,2] [,3] [1,] -0.3971125 0.2331920 -0.8876503 [2,] -0.7557893 -0.6317813 0.1721479 [3,] -0.5206574 0.7392387 0.4271323

Page 73: 第1回メドレー読書会

• 事前にデータの欠損を考慮する • 事前の穴埋め方法が補完結果に影響することがある • そのため、まずはXをP=UVTと近似する • 穴の場合δij=0、穴ではない場合δij=1とする

• あとは確率的勾配法で求めて、Xを近似する

推薦:ユーザが好むアイテムを見つける

73

Page 74: 第1回メドレー読書会

• 正規分布を利用した異常検知 • 正規分布 • 世の中の様々なデータが正規分布に基づいていると言われている • 発生確率が少ないほど異常であると言える

異常検知:他と異なるサンプルを見つける

74© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

- 2

-2≦x≦2に95.4%ある

-1≦x≦1に68.3%ある

Page 75: 第1回メドレー読書会

• 正規分布を利用した異常検知 • 正規分布 • 世の中の様々なデータが正規分布に基づいていると言われている • 発生確率が少ないほど異常であると言える

異常検知:他と異なるサンプルを見つける

75© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

- 2

平均値:μ=0 分散:σ2=1 の正規分布を

標準正規分布と呼ぶ

Page 76: 第1回メドレー読書会

• マハラノビス距離 • 正規分布に基づき、サンプルの外れ度合いを計る指標 • マハラノビス距離が大きいほど外れ度合いが高い

• 分散が小さいほど、平均から差が外れ度合いに影響する

異常検知:他と異なるサンプルを見つける

76

Page 77: 第1回メドレー読書会

• 二変数の場合

• それぞれの平均値を求める: • それぞれの分散を求める: • 共分散行列:

異常検知:他と異なるサンプルを見つける

77

Page 78: 第1回メドレー読書会

• 二変数の場合 • 共分散が0の場合マハラノビス距離は以下のようになる

• 一般的な場合 • 共分散が0となることはないので

異常検知:他と異なるサンプルを見つける

78

Page 79: 第1回メドレー読書会

エクササイズ(2)外れ値検出をしてみよう!

79

Page 80: 第1回メドレー読書会

• 実際のマハラノビス距離はχ二乗分布に従う • χ二乗分布は下記のようなグラフ • kは自由度(パラメータの数)

外れ値検知をしてみよう!

80

出典:https://ja.wikipedia.org/wiki/%E3%82%AB%E3%82%A4%E4%BA%8C

%E4%B9%97%E5%88%86%E5%B8%83

Page 81: 第1回メドレー読書会

• 実際のマハラノビス距離はχ二乗分布に従う • χ二乗分布の累積密度分布のグラフは下記のようなグラフ • k=1でマハラノビス距離が1のとき、約68%の集団に属す

外れ値検知をしてみよう!

81

出典:https://ja.wikipedia.org/wiki/%E3%82%AB%E3%82%A4%E4%BA%8C

%E4%B9%97%E5%88%86%E5%B8%83

Page 82: 第1回メドレー読書会

• でも、χ二乗分布って難しいんでしょ?

外れ値検知をしてみよう!

82

出典:https://ja.wikipedia.org/wiki/%E3%82%AB%E3%82%A4%E4%BA%8C

%E4%B9%97%E5%88%86%E5%B8%83

Page 83: 第1回メドレー読書会

• Rを使えばそんなことはありません! • pchisq(mahalanobis_distance, k)と1行打てば終わる!

• 続きはwebで:https://github.com/shengbo-medley/MiscForStudy/tree/master/20151106

外れ値検知をしてみよう!

83

Page 84: 第1回メドレー読書会

本日の読書会はここまで

84