Upload
shengbo-xu
View
406
Download
3
Embed Size (px)
Citation preview
徐 聖博
第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