徐 聖博
第1回
メドレー読書会
1
• 名前
• 徐 聖博(じょ せいぼ)
• 2014/04∼2015/06
• グリー株式会社
• 2015/07∼
• 株式会社メドレー
• 2014/04∼
• ターゲットスポーツ
• 保有資格
• ダーツプロライセンス
• 大学院時代の研究
• 人工知能(進化計算)
• ICML RLCompetition 1位
自己紹介
2
http://2013.rl-competition.org/results
• この本を交代で読む
• 絶賛発表者募集!
• 人がいなければ、徐が全
部やる(極力避けたい)
• よろしくお願いします。
3
今回のテーマ:機械学習
読書会スタート!
4
• 特集1:概要、歴史、なぜ注目されたいのか?
• 機械学習を使いたい人のための入門講座
• 特集2:期外学習の手法の中身を知る
• 機械学習の基礎知識
• その他:
• 雑談1)ジョブメドレーにおける推薦システムについて
• 雑談2)ジョブメドレーにおける売上予測
• ex1)クラスタリングアルゴリズムを実装してみよう
• ex2)外れ値検出をしてみよう!
本日のメニュー
5
6
特集1
概要、歴史、なぜ注目されるのか
機械学習を使いたい人の
ための入門講座
第1章
機械学習の概要
本当に使うための理解
7
• コンピュータが計算処理によって学習すること
• 「何から」、「何を」学ぶのかが重要
• 「データの集合」から「その法則」を学ぶこと
• データ分析においては下記のようなことを知りたい
• 入力と出力の因果関係(そのそもあるのか否か)
• 複数のカテゴリを分類したい
• 似たもの同士をまとめたい
• 異常な場所(場合)を発見したい
機械学習とは
8
例:入力と出力の因果関係
9
COL
バグの数
比例関係???
複数のカテゴリ分類をしたい
10
COL
ファイル
の数
良いコード
ダメコード
良いコード・ダメコード
似たもの同士をまとめたい
11
?
どっちでしょう?
異常な場所(場合)を発見したい
12
© Martin Handford
異常な場所(場合)を発見したい
13
© Martin Handford
データの法則を見つけるまでには
14
• 生のデータから特徴ベクトルへ変換する
• 専門知識に基づく、ドメイン知識を活かし、関係有りそう
な要素を取り込む
• (例)ダーツのうまさの場合:
[身長、体重、年齢、ダーツの値段]
• 学習アルゴリズムの適用
• 外れ値の検出、分類等の法則を見つけていく
機械学習を使う利点
15
• 機械学習を使わないで法則を決めると下記のような
固定したルールを決めることになる
• 高価なダーツを使うとダーツがうまい
• 体重が重いほうがダーツがうまい
• 年齢が高いほうがダーツがうまい
• これではあまりに例外が多く、見逃しや誤検知を削
減するための細かいルールを追加する必要がある
➡ 人間には難しいタスクで、効率が悪い
学習のプロセスとモデル
16
• モデル
• 学習の結果得られた法則性を表すもの
• 適用するアルゴリズムごとに異なる
• プロセス
• データを与えられて、モデルを特定していく過程
• ロジック理解が、機械学習を使いこなすポイント
第2章
機械学習の歴史と今後の応用例
人工知能ブーム、機械学習の発展、
深層学習(Deep Learning)
17
時系列で見る機械学習手法と応用の進化
18
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
第3章
データサイエンティストのための機械学習
注目を浴びる理由と実用に向けたハードル
19
なぜ今機械学習が注目されるのか?
20
• データの膨大化
• デバイスの発達による、データ収集機会の増大
• ネットワーク・ストレージの高密度化・低価格化
• 潜在的価値への関心
• 人間で処理しきれない高次元のデータが多い
• 周辺ソフト整備による業務プロセスの低コスト化
機械学習の実用化までのハードル
21
• 充分な精度があること
• ドメイン次第で人間と同等の精度が要求される
• コストが低くなること
• 運用コストが従来の人力作業よりも低くなる
• 人間にできない能力があること
• データ量や反応速度で人間を超えられる
第4章 Q&Aとまとめ
自動化、必要なデータ量、人工知能との違い
22
記載されていた質問
23
• 機械学習は自動で何でもやってくれるのか?
• 機械学習を学習するにあたって、どれくらいのデータ
があればよいのか?
• 人工知能あるいは機械学習が発展するとそのうち人間
が不要になるのか?
• 人工知能と機械学習はどう違うのか?
• 将棋ソフトやIBM Watsonや自動運転車は機械学習
でうごいているのか?
24
特集2
機械学習の中身を知る
機械学習の基礎知識
第1章
機械学習の問題設定
利用目的に合う手法を選択する
25
機械学習の大分類
26
• 教師あり学習
• 例:部屋の面積と家賃で、面積と家賃の関係を学習する
• 予測対象が数値のもの:「回帰」
• 予測対象がカテゴリであるもの:「分類」
• 教師なし学習
• 例:ホテル周辺情報で、似たホテルのグループを見つける
• 訓練データを使わずにデータのパターンを発見する
機械学習の応用例
27
• 推薦
• 膨大なアイテムの中からユーザに適したものを提示
• Amazonなどの広告システムで使われる
• 異常検出
• データの中から明らかに他と異なるものを見つけ出す
• 防犯カメラ、温度計測などで使われる
推薦システムについて(脱線1)
ジョブメドレーにおける推薦システムについて
28
ジョブメドレー(医療系求人サービス)
29
ジョブメドレーでも推薦システムが使われている
案件ページでは類似した案件を表示している
30
大人の事情により、
具体的なものは資料ではカット
主な推薦アルゴリズム
31
• ルールベース
• 協調フィルタリング
• ユーザベース
• コンテンツベース
• ハイブリット
• ベイジアンネットワーク
• 女性は赤が好き
• 男性は青が好き
➡ ルールに基いて、推薦する
➡ 例外が多すぎるため、実用性にかける
ルールベース
32
• ユーザベース
• 同じ用なユーザは同じようなもの買う
➡ 但し、大量の購入データがないとうまく学習できない
• コンテンツベース
• 似た商品をサジェストする
➡ 個人に最適化されないが、コンテンツデータがあれば大丈夫
• ハイブリット
• コンテンツベースとユーザベースのハイブリット
• 実装がちょっと激しい。。。
協調フィルタリング
33
• 条件付き確率のネットワークのようなものを構築し、
一番確率が高いものを提示
• かなり実装が激しい。。。
ベイジアンネットワーク
34
応募履歴
ユーザ情報
応募!
求人閲覧履歴
• コンテンツベースの協調フィルタリングを採用
• 検索システムで使っているElastichSearchを応用
• http://techlife.cookpad.com/entry/2014/09/24/092223
• http://nakazine.net/Entry/65
• 特徴や位置情報を元に、類似した特徴・近場の案件をオス
スメ案件としてレコメンドしている
ジョブメドレーにおけるレコメンド
35
第2章
教師あり学習
未知の情報を予測する
36
• 回帰は実数値を予測する問題
• あるサンプルが与えられた時に、そのサンプルに関する数
値を予測する予測器の作成を目指す。
回帰:実数値を予測する
37
• 線形関数で表せるモデル
• y =α0+α1X1+α2X2+…+αnXnのようなもの
• y =α+βX+γX2は、曲線であるが(1,x,x2)に対し線形
• 損失関数
• 関数最適化する過程で二乗誤差を損失関数と扱う
• 一般的には、 を二乗和として扱う
• 目的関数
• 二乗誤差の合計を目的関数と扱い、それを最小化する
• 一般的には、 と表す
線形回帰
38
イメージ
39
線形モデル
損失関数
和が目的関数
確率的勾配法
40
初期値を決めて、そこから目的関数を最小化する
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
今日からできる簡単機械学習(脱線2)
ジョブメドレーにおける売上予測
(自分が勝手にやってるだけ)
41
• 線形関数で表せるモデル(をまず決める)
•
• 損失関数
•
• 目的関数(を最小化していく)
•
確率的勾配法(確認)
42
• 偏微分
• 多変数関数に対して、1つの変数のみに関する微分
• 微分
• Xについての微分:X -> 1, X2 -> 2X,X3 -> 3X2
• これから使う偏微分
•
数学的な確認
43
1. a,bの初期値を決める。パラメータαを決める。
2. 勾配を求めて、最適化を行う
•
•
3. a,bが変化しなくなる(or規定数)まで2.を繰り返す
確率的勾配法(確認)
44
確率的勾配法(イメージ)
45
コードにすると(気持ちこんな感じ)
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
• 入力
• 求人に対する応募数
• 出力
• 売上(金額)
• 学習データと結果
• 過去3年分のデータを元に学習
• 応募あたりの金額がわかる、応募数から売上がわかる
コードにすると(気持ちこんな感じ)
47
• 2変数の場合
• 目的関数は以下のようになる
•
• 最適化(偏微分)するものが3つになるだけ
• 2乗とか出てきても、基本同じ
• リッジ回帰
• 過学習:訓練データに最適化し汎用性がなくなること
• 過学習に避けるため、パラメータの正則化を行う
• 目的関数(例):
2変数の場合とリッジ回帰
48
• ロジスティック回帰
• 例:リンゴの品種分類(P/Q)、X1を糖度、X2リンゴ酸含量
• スコア関数:
• 分類の確率:
• 0のときは、Pに含まれる確率1/2
• 正の方向に大きくなるほど、Pである確率が高くなる
• 負の方向に大きくなるほど、Pである確率が0に近づく
分類:カテゴリを予測する
49
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• ロジスティック損失
• 品種Pとなるとき(y=1)の損失:
• 品種Qとなるとき(y=-1)の損失:
• 反転しているので、マイナスで相殺
• y=1とy=-1の場合で足し合わせると
•
分類:カテゴリを予測する
50
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• ロジスティック回帰における目的関数
分類:カテゴリを予測する
51
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• 余裕のある分類面獲得を目指す
• 画像でいうと、灰色の部分を「マージン」と呼ぶ
• マージンが最大となるように分類をする
サポートベクターマシン
52
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• ヒンジ損失
• 関数:
• ヒンジ損失関数
•
サポートベクターマシン
53
ヒンジ損失とロジスティック損失
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• マージン最大化
• 分類面(直線)に最も近いサンプルで、yf(x1,x2)=1となるよ
うに、w0,w1,w2が定数倍されているとする。
• この時、マージンは で表される(点と直線の距離より
• 目的関数を最小化することで、マージンの最大化を計る
• カーネル
• は線形であったが、一般
的には直線ではない
• カーネルは、サンプル間の類似度で求められるため、類似
度がわかればカーネルは使える
サポートベクターマシン
54
• 多項式カーネルとガウスカーネルを用いたSVM
サポートベクターマシン
55
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
第3章
教師なし学習
データの性質を理解する
56
K平均法
• K個のグループに分割する
• 各グループの中心を決め、各サンプルが「グループ中心が自分
と最も似ている」グループに所属するようにする
アルゴリズム
1. K個のグループ中心をランダムに選ぶ
2. 次の手順を繰り返す
I. 各サンプルの所属グループを推定する:各サンプルを、グループ中心が
そのサンプルと最も似ているグループに所属させる
II. 各グループのグループ中心を推定する:各グループに所属するサンプル
の平均値を、新しいグループ中心とする
クラスタリング:グループを見つける
57
クラスタリング:グループを見つける
58
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
混合正規分布
• K平均法は1つのサンプルに1つのデータだけ割り当てていた
• ここでは、「各グループへの所属確率」を求める
アルゴリズム
1. K個の正規分布パラメータを初期化する。各グループごと
の重みをランダムに決める。
2. 次の手順を繰り返す
I. 各サンプルが各グループに所属する確率を推定する
II. 各グループへの所属確率を使って、各グループに対する正規分布パラ
メータと、各グループの重みを更新する
クラスタリング:グループを見つける
59
クラスタリング:グループを見つける
60
ちんぷんかんぷんなので、

詳細はホワイトボードで
• 変数が少ないほうが、可視化や解釈が用意になる
• 変数が多くなると、処理が重くなったり、解釈できなるこ
とを「次元の呪い」と言ったりする
次元削減:データを要約する
61
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• 主成分分析
• 次元削減の代表的手法
• ここでは、2次元→1次元を考える
• 下記の例では、いい例と悪い例を表している
次元削減:データを要約する
62
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• 主成分分析の定式化
• 直線のベクトルを(w1,w2)で表す場合
の2乗和をを最小にする直線を選び、マッピングする
次元削減:データを要約する
63
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• 特異値分解
N行M列の行列Xを、N行K列の行列U、K行K列の行列S、M行K列の行列Vに
分解し、行列Xを3つの行列の積USVT
で近似する。
特異値分解で得られたVの転置行列VT
がL(w1,w2)を最小にする(w1,w2)に当た
ることが知られている。
次元削減:データを要約する
64
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
エクササイズ(1)
K平均法を実装してみよう!
65
• K平均法
• K個のグループに分割する
• 各グループの中心を決め、各サンプルが「グループ中心が自分
と最も似ている」グループに所属するようにする
• アルゴリズム
1. K個のグループ中心をランダムに選ぶ
2. 次の手順を繰り返す
I. 各サンプルの所属グループを推定する:各サンプルを、グループ中心が
そのサンプルと最も似ているグループに所属させる
II. 各グループのグループ中心を推定する:各グループに所属するサンプル
の平均値を、新しいグループ中心とする
(再掲)クラスタリング:グループを見つける
66
https://github.com/shengbo-medley/
MiscForStudy/tree/master/20151107
コード汚いですが。。。
動きます!
67
第4章 応用
推薦と異常検知
68
• 映画の評価データの例
• 行列X(i行j列)として与えられたとき
• 「Xijはi番目のユーザがj番目の映画に与えた評点」とする
• ユーザ数をN人、映画数をM本とすると、XはN行M列
推薦:ユーザが好むアイテムを見つける
69
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• 行列Xを特異値分解し積USVTで近似する
• 特異値分解の資料:http://www.iedu.i.kyoto-u.ac.jp/
uploads/20141022.pdf
推薦:ユーザが好むアイテムを見つける
70
N: ユーザ数、K: ユーザのグループ数&アイテムのグループ数、M: アイテム数
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
• 実際に特異値分解してみる!
• ・・・・
• ・・・・
• ・・・・
• ・・・・
• ・・・・
• ・・・・
• ????
推薦:ユーザが好むアイテムを見つける
71
• 実際に特異値分解してみる
• 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
• 事前にデータの欠損を考慮する
• 事前の穴埋め方法が補完結果に影響することがある
• そのため、まずはXをP=UVTと近似する
• 穴の場合δij=0、穴ではない場合δij=1とする
• あとは確率的勾配法で求めて、Xを近似する
推薦:ユーザが好むアイテムを見つける
73
• 正規分布を利用した異常検知
• 正規分布
• 世の中の様々なデータが正規分布に基づいていると言われている
• 発生確率が少ないほど異常であると言える
異常検知:他と異なるサンプルを見つける
74
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
- 2
-2 x 2に95.4%ある
-1 x 1に68.3%ある
• 正規分布を利用した異常検知
• 正規分布
• 世の中の様々なデータが正規分布に基づいていると言われている
• 発生確率が少ないほど異常であると言える
異常検知:他と異なるサンプルを見つける
75
© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
- 2
平均値:μ=0
分散:σ2=1
の正規分布を
標準正規分布と呼ぶ
• マハラノビス距離
• 正規分布に基づき、サンプルの外れ度合いを計る指標
• マハラノビス距離が大きいほど外れ度合いが高い
• 分散が小さいほど、平均から差が外れ度合いに影響する
異常検知:他と異なるサンプルを見つける
76
• 二変数の場合
• それぞれの平均値を求める:
• それぞれの分散を求める:
• 共分散行列:
異常検知:他と異なるサンプルを見つける
77
• 二変数の場合
• 共分散が0の場合マハラノビス距離は以下のようになる
• 一般的な場合
• 共分散が0となることはないので
異常検知:他と異なるサンプルを見つける
78
エクササイズ(2)
外れ値検出をしてみよう!
79
• 実際のマハラノビス距離はχ二乗分布に従う
• χ二乗分布は下記のようなグラフ
• 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
• 実際のマハラノビス距離はχ二乗分布に従う
• χ二乗分布の累積密度分布のグラフは下記のようなグラフ
• 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
• でも、χ二乗分布って難しいんでしょ?
外れ値検知をしてみよう!
82
出典:https://ja.wikipedia.org/wiki/%E3%82%AB
%E3%82%A4%E4%BA%8C
%E4%B9%97%E5%88%86%E5%B8%83
• Rを使えばそんなことはありません!
• pchisq(mahalanobis_distance, k)と1行打てば終わる!
• 続きはwebで:https://github.com/shengbo-medley/
MiscForStudy/tree/master/20151106
外れ値検知をしてみよう!
83
本日の読書会はここまで
84

第1回メドレー読書会