予測型戦略を知るための
機械学習チュートリアル
株式会社Preferred Networks
海野 裕也
2017/04/18
BigData Conference 2017 Spring
⾃⼰紹介
海野 裕也
l -2008 東⼤情報理⼯修⼠,⾃然⾔語処理
l 2008-2011 ⽇本アイ・ビー・エム(株)東京基礎研
l 2011-2016 (株)プリファードインフラストラク
チャー
l 2016- (株)プリファードネットワークス
l ⾃然⾔語処理、機械学習、テキストマイニング
l ChainerなどのOSS開発
l 機械とのコミュニケーションの研究開発
NLP若⼿の会顧問(2016-)
「オンライン機械学習」(2015, 講談社)
「深層学習による⾃然⾔語処理」(2017, 講談社)
2
概要
本チュートリアルではデータを解析して判断に活かすため
の技術、機械学習を説明します
l 第1部:機械学習とは?
l 第2部:機械学習の各種⼿法
l 第3部:機械学習の課題解決フロー
3
第1部:機械学習とは?
4
機械学習とは
l 経験(データ)によって賢くなるアルゴリズムの研究
l データから知識・ルールを⾃動獲得する
l データの適切な表現⽅法も獲得する
l ⼈⼯知能の中で、⼈が知識やルールを
明⽰的に与える⽅法の限界から⽣まれてきた
5
学習データ
分類モデル
例1:スパム判定
l メールがスパムが否かを⾃動判定する
l GoogleのGmailでもスパム判定は機械学習が使われてい
る
6
スパム
通常
新着メール
例2:商品推薦
l 過去の購買履歴から類似ユーザーを探して、未購⼊の商
品を推薦する
7
購買履歴
例3:コンピュータ将棋・囲碁・チェス
8
http://blog.livedoor.jp/yss_fpga/archives/53897129.html
詳細は鶴岡慶雅先生のチュートリアル 「自然言語処理とAI」
l ゲームごとに機械学習の応⽤⼿法が次々に進歩
l 機械の性能改善以上に⼿法の改善が⽬覚ましい
強い
弱い
様々な分野に適⽤可能
l データから有⽤な規則、ルール、知識、判断基準を抽出
l データがあるところならば、どこでも使える
l 様々な分野の問題に利⽤可能
9
レコメンデー
ション
分類、識別 市場予測 評判分析
情報抽出 ⽂字認識 ロボット 画像解析
遺伝⼦分析
検索ランキン
グ
⾦融 医療診断
適用分野
l 強化学習による⾃動運転
l https://www.youtube.com/watch?v=7A9UwxvgcV0
l 教師あり学習によるロボットの認識
10
⼈に⽐べて機械学習のここがいい!
l ⼤量
l ⼤量に処理できる
l 機械を並べればいくらでもスケールする
l ⾼速
l ⼈間の反応速度を超えることができる
l ⾼精度
l 場合によっては⼈間を凌駕するようになってきた
l ⼈と違って判断がブレない、疲れない
11
機械学習を活かすポイント
量と速度が圧倒的なポイント
l 量
l ⼤量のデータが有って⼈⼿で処理できない
l 情報源が多様すぎて⼈間では⼿に負えない
l 速度
l ⼈間よりも圧倒的に⾼速に反応できる
l 反応速度が重要な領域で価値が出る
12
いずれも⼀般的に機械が
⼈間より優っているポイント
機械学習が失敗するパターン
l できない精度を求める
l サイコロの次の⽬を当てることはできない
l 同じように、精度の限界がある
l ⼈にとって簡単なタスクをやろうとする
l 少ない情報から推論するのは⼈間が得意
l 逆に⼤量の情報から判断する必要がある時は機械が得意
l ボトルネックが別にある
l アクションを取るのが⼈だったり、⼈が途中に介在する
l 量と速度のメリットをいかに活かすか
13
「機械にやらせるなら、ルールを書けばいいんじゃ
ないの?」
l 俗にルールベースと呼ばれる⽅法
l 最初は精度が悪いが頑張れば意外とどこまでも良くなる
14
「ゴルフ」 à スポーツ
「インテル」 à コンピュータ
「選挙」 à 政治
ルールに基づく判断の限界
l ⼈⼿で書いたルールはすぐ複雑、膨⼤になる
l 1万⾏のperlスクリプト
l どこを変えたらいいかわからない
l 条件を追加したら何が起こるか・・・
l 複雑化したルールは引き継げなくなる
15
「ゴルフ」and「VW」 à ⾞
「インテル」and「⻑友」 à サッカー
「選挙」and「AKB」 à 芸能
規則
機械学習はデータに基づくアプローチ
16
アルゴリズム
アルゴリズム
規則
データ
ルールベース
機械学習
⾃動獲得
⼈が⽤意
⼈が⽤意
ビジネス応⽤事例
いくつかのビジネス応⽤を、
量と速度の観点で⾒ていく
17
ビジネス応⽤事例:不正検知、スパム検知
不正な⾏動をするユーザーや、スパムメールを過
去のデータから発⾒する
l 量:全てのユーザーやメールに対して適⽤でき
る
l 速度:利⽤者の利便性を損なわない速度が必要
18
ビジネス応⽤事例:商品レコメンド
過去の購買履歴から、次に買いそうな商品を予測
して推薦する
l 量:個別のユーザーに合わせて推薦できる
l 速度:サイト訪問のたびに出し分けられる
19
ビジネス応⽤事例:広告配信
どの広告を誰に出すべきかを、過去のクリック履
歴から⾃動判定する
l 量:個別の広告毎に出し分けられる
l 速度:広告表⽰のたびに出し分けられる
20
分析型データ活⽤から予測型データ活⽤へ
21
収集 集計 分析 ⾏動
Hadoopなどによる集計
分析者によるデータ分析
機械学習エンジンと連携したシステム化
分析結果の利⽤までシステム化することで
量と速度のメリットを受けられる
まとめ:機械学習 vs ⼈間 vs ルール
機械学習は速度、量、精度、メンテナンス性のバ
ランスがとれている
l ⼈間に⽐べて・・
l 量と速度に優る
l 疲れない、ぶれない、スケールする
l ルールに⽐べて
l 精度に優る
l メンテナンスできる、引き継げる、データの変化に
強い
22
第2部:機械学習⼿法
23
l 機械学習導⼊
l 教師あり学習
l 教師なし学習
l 強化学習
l 深層学習
l 機械学習導⼊
l 教師あり学習
l 教師なし学習
l 強化学習
l 深層学習
タスク固有の問題と⼿法の分離
26
⽂
書 (0, 1, 0, 2.5, -1, …)
(1, 0.5, 0.1, -2, 3, …)
(0, 1, 0, 1.5, 2, …)
特徴ベクトル
グラフィカルモデル
分類/回帰:SVM, LogReg,
PA, CW, AROW, Naïve Bayes
CNB, DT, RF, ANN, …
クラスタリング:K-means,
Spectral Clustering, MMC,
LSI, LDA, GM, …
構造分析:HMM, MRF, CRF, …
画像
センサ情報
⾏動履歴
分野に依存しない
特徴を捉えた抽象化されたデータ
様々な⼿法・理論を
適⽤可能
特徴抽出 特徴分析
狭義の機械学習
特徴抽出
l ⼊⼒された⽣データの特徴をキーとバリューで表す
l 変換の⽅法はデータの種類によって様々
27
周囲が黄色 1
中心が茶 1
花びらの割合 0.7
⾼さ 150
世の中ではビッグデータ
というキーワードが注⽬
されていますが,⼀⼝に
ビッグデータといっても
⽴場や観点によって定義
は様々です.
他の要素は0とする
ビッグデータ 2
世の中 1
キーワード 1
定義 1
IT関連
ひまわり
特徴ベクトル
分析結果
l 本⽇は後段の「狭義の機械学習」について詳し
くお話します
l ⼊⼒情報は、全て特徴ベクトルになっているも
のとします
28
機械学習の世界の分類
l 問題設定に基づく分類
l 教師あり学習 / 教師なし学習 / 半教師あり学習 / 強化学習 ..
l 戦うドメインの違い
l 特徴設計屋(各ドメイン毎に, NLP, Image, Bio, Music)
l 学習アルゴリズム屋(SVM, xx Bayes, CW, …)
l 理論屋(統計的学習理論、経験過程、Regret最⼩化)
l 最適化実装屋
l 好みの違い
l Bayesian / Frequentist / Connectionist / DeepLearning
l [Non-|Semi-]Parametric
29
太字について話します
教師あり学習
l ⼊⼒ x に対して期待される出⼒ y を教える
l 分析時には未知の x に対応する y を予測する
l 分類
l y がカテゴリの場合
l スパム判定、記事分類、属性推定、etc.
l 回帰
l y が実数値の場合
l 電⼒消費予測、年収予測、株価予測、etc.
30
x y
教師なし学習
l ⼊⼒ x をたくさん与えると、⼊⼒情報⾃体の性質に関し
て何かしらの結果を返す
l クラスタリング
l 与えられたデータをまとめあげる
l 異常検知
l ⼊⼒データが異常かどうかを判定する
31
x
教師あり学習と教師なし学習は⽬的が違う
教師あり学習
l ⼊出⼒の対応関係を学ん
で、未知の⼊⼒に対して
判断する
l ⼊⼒と出⼒を教える必要
がある
l ⼀番シンプルな問題設定
で汎⽤性が⾼い
教師なし学習
l データ集合⾃体の特徴を
学習する
l データを⼊れれば、すぐ
動く
l 制御が難しい
l 教師あり学習の前処理と
しても使われる
32
強化学習
l 事前にデータは与えられず、⼊⼒ x に対して⾏動を取る
と初めて報酬 y が得られる
l データの取得⾃体に試⾏錯誤が必要
l 多腕バンディット問題
l 未知の⾏動と、既知の⾏動の選択を⾏う
33
x y
行動
強化学習は試⾏錯誤で学習する⼿法
どうすればいいか(教師データ)を教えるのではなく,試
⾏錯誤して正しい⽅法を探す学習⽅法
教師あり学習:いつペダルを踏むかを教える
強化学習:倒れずに前に進む⽅法を試⾏錯誤
教師あり学習と強化学習は設定が違う
強化学習
l 教師データはない
l 新規データの取得できる
環境がある
l データがまだなく、デー
タ取得まで⾃動化する場
合に向く
教師あり学習問題
l 教師データがある
l 新規データの取得は不可
能
l 既知のラベル付きデータ
が⼗分にある場合に向く
35
機械学習の仕組みを知る必要はあるのか?
l 必ずしも必要ない
l うまく機能していれば、中⾝を知る必要は特にない
と思う
l うまくいかないときが問題
l ⼿法⾃体を知っていると、限界がある程度わかる
l そのため、知っているとチューニングしやすい
36
ここから個別の
機械学習技術のお話をします
37
その前に・・・
l ⼊⼒ x は全てベクトルだとします
l 特徴抽出は終わっているということ
l ベクトル以外の系列や⽣のデータを扱う⼿法もあり
ますが、今回は対象外
l 直感的な2次元ベクトルの絵を出しますが、⼀般
的にはより⾼次元のベクトルとなるので直感と
あわないことがあります
38
l 機械学習導⼊
l 教師あり学習
l 教師なし学習
l 強化学習
l 深層学習
教師あり学習(再掲)
l ⼊⼒ x に対して期待される出⼒ y を教える
l 分析時には未知の x に対応する y を予測する
l 分類
l y がカテゴリの場合
l スパム判定、記事分類、属性推定、etc.
l 回帰
l y が実数値の場合
l 電⼒消費予測、年収予測、株価予測、etc.
40
x y
教師あり学習のユースケース例
⾃動分類結果をシステムとつなぎあわせやすい
l 重要情報のフィルタリング
l コールセンターログを重要度やタイプ別に分類
l 分類結果から、深刻な問題を詳細に分析したり、問い合わせの
トレンドを⾒ることができる
l 顧客セグメントの予測
l 購買履歴などのログ情報から、顧客の詳細なセグメント(年代
性別のみならず、家族構成、趣味嗜好など)を予測
l 予測結果を、例えば広告やキャンペーン対象として利⽤する
41
教師あり学習には推定と学習のフェーズが有る
推定するとき 学習するとき
42
短髪
Tシャツ
チノパン
予想:男性
⻑髪
Tシャツ
チノパン
学習データ
男性
次は当てよう
推定対象
⼀般的な教師あり学習の学習プロセス
l 内部パラメータを持っていて、学習データをうまく再現
するようにパラメータを更新する
l パラメータの種類、更新⽅法は⼿法によってまちまち
43
学習データ:{ (x1, y1), (x2, y2), … }
内部パラメータ
教師あり分類の種別
l 線形分類器
l 特徴ベクトルとパラメータの内積の⼤⼩で分類
l 決定⽊
l ツリー状の分類条件を獲得する
l ニューラルネットワーク
l 内積と⾮線形関数の組合せを何度も⾏う
l カーネル法(カーネル分類器)
l 内積の代わりにカーネル関数を使う
l アンサンブル学習
l 複数の分類器を組み合わせることで精度をあげる
44
これらは必ずしも
並列関係ではない
線形分類器とは
⼊⼒ベクトルとパラメータベクトルの内積の⼤⼩(⼆値分
類なら正負)で判定する⼿法
l 内部パラメータはベクトル w
l ⼊⼒ x と パラメータ w の内積の正負で分類する
45
x・w = x1w1 + x2w2 + … xnwn
線形分類器は重み付き多数決
l 容姿の特徴から男性か⼥性か当てるとする
l w は男性の特徴に正の重み、⼥性の特徴に負の重み
l 判定対象の x に該当する重みの総和で予測が決定する
46
特徴 x
⻑髪 0
短髪 1
Tシャツ 1
ブラウス 0
ジーンズ 1
スカート 0
チノパン 0
w
-3
+2
+1
-2
+2
-5
+3
+5
予想:男性
内部に表がある
補⾜:線形分類器を図で理解する
l パラメータ w との内積が正の領域というのは、w を法
線ベクトルとするような直線(3次元なら平⾯)で分割
された領域
l 特徴空間をまっすぐ2つに分割しているイメージ
47
x・w = 0 の直線
学習のステップ 1/3
l どれが重要かわからないので、全ての重みを更新する
l 結果的に、このデータは正しく予想できるようになる
48
特徴 w
⻑髪 0 à +1
短髪
Tシャツ 0 à +1
ブラウス
ジーンズ
スカート
チノパン 0 à +1
⻑髪
Tシャツ
チノパン
学習データ
男性
初期値は全部0
学習のステップ 2/4
l 間違えるたびに正しく分類できるように更新
49
特徴 w
⻑髪 +1 à 0
短髪
Tシャツ +1
ブラウス 0 à -1
ジーンズ
スカート 0 à -1
チノパン +1
⻑髪
ブラウス
スカート
学習データ
⼥性
学習のステップ 3/4
l 何度も更新する
50
特徴 w
⻑髪 0 à -1
短髪
Tシャツ +1 à 0
ブラウス -1
ジーンズ
スカート -1 à -2
チノパン +1
⻑髪
Tシャツ
スカート
学習データ
⼥性
学習のステップ 4/4
l 最終的にうまく分類できるところで落ち着く
l 縦が数万〜数百万になり、⼈が全部調整するのは不可能
51
特徴 w
⻑髪 -3
短髪 +2
Tシャツ +1
ブラウス -2
ジーンズ +2
スカート -5
チノパン +3
できた!
線形分類器の代表的な学習⼿法
l パーセプトロン(Perceptron)
l 誤分類したら特徴ベクトルを重みに⾜し引きする
l 単純ベイズ分類器(Naïve Bayes classifier)
l 各特徴次元が独⽴だという仮定のもと、それぞれの重みを独⽴
に決定する
l ロジスティック回帰(Logistic regression)
l 各クラスに所属する確率の対数が、重みとベクトルの内積に⽐
例すると仮定する
l サポートベクトルマシン(SVM)
l 分離平⾯からの最短距離(マージン)を最⼤化させる重みを選
択する
52
それぞれ基準が異なる
線形分類器の限界
l 直線で分けられないと分類できない
l ただし、⾃然⾔語データなどの超⾼次元空間では多くの
場合線形で⼗分なことが多い
53
教師あり分類の種別(再掲)
l 線形分類器
l 特徴ベクトルとパラメータの内積の⼤⼩で分類
l 決定⽊
l ツリー状の分類条件を獲得する
l ニューラルネットワーク
l 内積と⾮線形関数の組合せを何度も⾏う
l カーネル法(カーネル分類器)
l 内積の代わりにカーネル関数を使う
l アンサンブル学習
l 複数の分類器を組み合わせることで精度をあげる
54
⾮線形分類
アンサンブル学習
l 複数の分類器を組み合わせる(イメージ的には多数決)
と性能が上がることが知られている
l バギング、ブースティング、ランダムフォレスト
55
x
y
ランダムフォレスト
l 複数の決定⽊を組み合わせる
l 学習データをランダムに間引いたものをn個⽤意
l 特徴情報もランダムに間引いてn個の決定⽊を学習
l 推定時にはn個の決定⽊の判定を多数決する
56
学習データ
サンプルデータ
サンプルデータ
サンプルデータ
多数決
複雑な⼿法と単純な⼿法のトレードオフ
l 単純な⼿法
l 分類の根拠がわかりやすい
l うまくいかない時に直すべき理由に気づきやすい
l ⼀般的に分類速度、学習速度が速い
l 実装が簡単なので、バグを埋め込みにくい
l 例:線形分類器、決定⽊
l 複雑な⼿法
l ⼀般的に精度が⾼い
l 例:アンサンブル学習、カーネル法、ニューラル
ネット
57
教師あり学習まとめ
l ⼊⼒と出⼒の対応関係を学習するのが教師あり
学習
l 学習には⼊⼒と出⼒のペア(教師データ)がた
くさん必要
l 線形分類器は重み付き多数決のイメージ
l アンサンブル学習は、複数の学習器を組み合わ
せる
58
l 機械学習導⼊
l 教師あり学習
l 教師なし学習
l 強化学習
l 深層学習
教師なし学習(再掲)
l ⼊⼒ x をたくさん与えると、⼊⼒情報⾃体の性質に関し
て何かしらの結果を返す
l クラスタリング
l 与えられたデータをまとめあげる
l 異常検知
l ⼊⼒データが異常かどうかを判定する
60
x
教師あり学習と教師なし学習は⽬的が違う
教師あり学習
l ⼊出⼒の対応関係を学ん
で、未知の⼊⼒に対して
判断する
l ⼊⼒と出⼒を教える必要
がある
l ⼀番シンプルな問題設定
で汎⽤性が⾼い
教師なし学習
l データ集合⾃体の特徴を
学習する
l データを⼊れれば、すぐ
動く
l 制御が難しい
l 教師あり学習の前処理と
しても使われる
61
教師なし学習のユースケース例
発⾒的な利⽤ケースが多い
l 顧客セグメントの⾃動分類
l 顧客の購買履歴や⾏動ログから、複数セグメントに分割する
l 各セグメントの傾向から、施策の⽅針を選定する
l 機械の異常状態の報告
l 機械の内部状態(センサーやログなどの)が、通常状態から著
しく乖離していることを発⾒
l 詳細な精密検査の候補に
62
クラスタリング
l 与えられたデータをまとまり(クラスタ)に分
割する
l データではなく類似の特徴をまとめるタイプも
ある
l 細かな設定の違いはある
l データは複数のクラスタに属するか属さないか
l クラスタ数は固定か可変か
l クラスタ間に関係(階層)はあるか、フラットか
63
クラスタリングの代表的な⼿法
l K平均法(K-means)
l 各クラスタに割り当てられたデータの平均(中⼼)の算出と、
⼀番近いクラスタ中⼼への割り当てを交互に⾏う
l 混合ガウスモデル(Gaussian Mixture Model)
l 複数の正規分布の重ね合わせからデータが⽣成されたと仮定し
て、各データがどの正規分布から⽣成されたのかを推定する
l LDA(Latent Dirichlet Allocation)
l 各特徴がトピックにもとづいて⽣成されると仮定して、⽂書と
特徴のトピックを推定する
l ⾏列分解
l データ・特徴⾏列を低次元⾏列の積で近似する
64
下2つは⼀般的にはクラスタリングと呼ばれない
クラスタリングの具体例:K平均法
1. 各データをランダムなクラスタに割り当てる
2. 各クラスタの平均を求める(クラスタ中⼼)
3. 各データを最も近いクラスタ中⼼に割り当て直す
4. 2に戻って繰り返し
65
K平均法の特徴
l 最も基本的なクラスタリング⼿法
l 1ステップ毎に全データを⾛査する必要がある
l ステップ数 x クラスタ数 x データ数、位の時間がか
かる
l 全データがメモリ上にある必要がある
66
安易に教師なし学習に⾶びつかない!
l どのような分類基準になるか予測できない
l 結果の意味を解釈するのが難しい
67
問:下の図形を2つのクラスタに分けなさい
クラスタリングの本質的な難しさ
l ⼿法の何処かに必ずまとめる基準があり、意図
通りの基準かどうかわからない
l K平均法であれば、平均の求め⽅と近さの尺度
l GMMであれば、正規分布の仮定
l それぞれのクラスタの意味付けは分からない
l まずクラスタリングして、あとから意味付けを⼈⼿
で与えるようなアプローチはあり
l ただし、必ずしも⼈間が意味付けできるクラスタが
出来る保証はない
68
クラスタリングはどうやって使うべき?
l データ全体の傾向を確認するのに使う
l クラスタリングの結果がうまく分割できているならば、特徴ベ
クトルの設計はうまく出来ている
l 半教師あり学習として使う
l クラスタリングの結果(クラスタ番号)を特徴として、普通の
教師あり学習を⾏うことで精度が上がる
l 教師データ不⼗分で、ラベルなしデータが沢⼭あるときに有効
l クラスタリング結果に対して⼈⼿で意味付けを⾏う
l 対象データに対する分類基準がよく定まっていないのであれば、
先に分割してから基準を決める
69
l 機械学習導⼊
l 教師あり学習
l 教師なし学習
l 強化学習
l 深層学習
強化学習
l 事前にデータは与えられず、⼊⼒ x に対して⾏動を取る
と報酬 y が得られる
l トータルでの報酬が多くなる⾏動戦略を学習する
l 多腕バンディット問題
l 未知の⾏動と、既知の⾏動の選択を⾏う
71
x y
行動
教師あり学習と強化学習は設定が違う
強化学習
l ラベルは未知
l 新規データの取得が可能
l データがまだなく、デー
タ取得まで⾃動化する場
合に向く
教師あり学習問題
l ラベルは既知
l 新規データの取得は不可
能
l 既知のラベル付きデータ
が⼗分にある場合に向く
72
強化学習のユースケース例
仮説の勝ち抜きを⾃動化させられる
l 広告バナー選定を⾃動化
l 複数の広告候補があった時に、クリック率などの効
果の⾼そうな広告を⾃動的に選択しながら出し分け
る
l 検索結果画⾯の⾃動チューニング
l 複数の検索対象(動画や記事、商品など)があった
ときに、どのコンテンツを優先的に出すかなどを⾃
動選択する
73
多腕バンディット問題とは?
l N個のスロットマシンがあるが、当たり確率はわからな
い中で儲けを最⼤化したい
l データが全くない状態から、試⾏錯誤をどうやって効率
的に⾏うか
74
問題1:どちらのスロットマシンに賭けますか?
75
100回中、10回当たり 100回中、50回当たり
問題2:どちらのスロットマシンに賭けますか?
76
1000回中、0回当たり 10回中、0回当たり
問題3:どちらのスロットマシンに賭けますか?
77
100回中、20回当たり 10回中、1回当たり
Exploration vs Exploitation 問題
探索:未知の情報を探索する(Exploration)
活⽤:今ある情報で⾏動する(Exploitation)
l 両者のバランスをどのようにとるかの戦略で、
儲けが変わってくる
l この戦略の取り⽅が、多腕バンディット問題の
本質
78
ε-Greedy法
最も単純な戦略
l εの確率で探索:ランダムに選択する
l 1 – εの確率で活⽤:今までで⼀番成功確率の⾼
い選択肢を選ぶ
79
確率ε 確率 1 – ε
5/10 1/15 1/8 7/8
その他のバンディットアルゴリズム
l UCB(Upper Confidence Bound)
l 試した回数が少ないものほど優先的に探索するよう
なスコアを利⽤する
l Thompson Sampling
l 事後確率分布に従って、⾏動をサンプリングする
80
多腕バンディットの広告配信への応⽤
l 複数の広告バナー案があるときに、どれを出し
たら良いか?
l ある程度広告を出し分けてクリック率を測定す
れば、良いバナーと悪いバナーがわかる
l もっと直接的にバンディットアルゴリズムでバ
ナーの出し分けも含めて⾃動化したい
81
Googleアナリティクスでも使われている
https://support.google.com/analytics/answer/2844870?hl=ja
82
多腕バンディットが、教師あり学習より向く
l 教師データがない
l 教師データはログの中に⾃動的に貯まる
l 例:新規の広告
l ⾏動と評価を⾃動化できる
l ⾏動が良し悪しにもとづいて、次の⾏動を決める
l 例:広告の配信と、クリックしたか
l 状況変化が⼤きくデータを貯めづらい
l 限られた時間の中での利得を最適にしようとする
83
教師あり学習のほうが、多腕バンディットより向く
l すでに教師データが沢⼭ある
l 教師あり学習の⽅がじっくり精度を確認できる
l 教師データを作るコストが低い
l きれいな教師データを作った⽅が効率は良い
l ログのデータはノイズが混ざりやすい
l 実験的な⾏動を起こせない
l 多腕バンディットは最初は⾏動を誤りやすい
84
l 機械学習導⼊
l 教師あり学習
l 教師なし学習
l 強化学習
l 深層学習
深層学習
86
深層学習とは何か?
l 教科書的にいうと、以前は学習が困難と思われた、段数
の深いニューラルネットワーク⼿法全般
l 歴史的にいうと、ニューラルネットワークが下⽕となっ
た90年台後半以降も研究を続けた北⽶の研究グループが、
2010年台に⼊って劇的な成果をあげた⼀連の研究
l 社会的にいうと、これらの成果に⽬をつけた⽶⼤⼿企業
の買収合戦・⼈材獲得合戦と、それらを⼤々的に報じた
⼀連の社会現象
87
代表的な深層学習の⼿法いくつか
l Feed Forward Neural Network
l 最も基本形の、いわゆるニューラルネットワーク
l 重みとの内積と、⾮線形関数の組合せを繰り返す
l Convolutional Neural Network (CNN)
l 特に画像解析で⼤成功して有名になった⼿法
l convolution層とpooling層を組み合わせる
l Recurrent Neural Network (RNN)
l ⾃然⾔語処理などシーケンスデータを扱う⼿法
l Long Short-Term Memory (LSTM)などの亜種が流⾏
している
88
流⾏の理由(?):ニューラルネットワークの抱え
る⼤きな2つの問題が解消されたのでは?
l 学習の遅さ
l 計算効率の良い関数の採⽤、機械学習技術の進歩に
よる効率の向上、マシンスペックの向上、GPUなど
の新しい計算機の出現によって解消された
l 過学習のしやすさ
l Dropoutという⼿法により、過学習を抑えられること
が発⾒された
l CNNやLSTMなど、対象の問題にあったネットワーク
構造の⼯夫がなされた
89
l 個別の詳しい技術に関しては触れません
l 成果の出ている領域、そうでない領域、今後の
展望(私⾒)などに付いてお話します
90
成果が顕著な領域
l ⾳声認識
l 認識精度が劇的に向上
l すでに多くの⾳声認識エンジンで利⽤されているのではと⾔わ
れている
l 画像認識
l 画像に映った物体の判定結果が劇的に向上
l エラー率が3年で25% à 7%に
l ゲームプレイ
l 昔のゲーム(インベーダーなど)を、ルールを教えずに画⾯と
スコアだけで学習
l ⼀部のゲームで⼈間よりも強くなった
91
例:画像認識の結果
2011年にエラー率26%だったのが、⼀気に16%に(今は
5%以下)
92
http://image-net.org/challenges/LSVRC/2012/ilsvrc2012.pdf
例:画像認識の結果
93
http://www.image-net.org/challenges/LSVRC/2012/supervision.pdf
データの⽅が
間違っている
確かに携帯電
話っぽい・・
⼀番成功しているのはセンシング(認識)の部分
l 画像系
l 単⼀ではピクセルのRGBデータで、ほぼ意味が無い
l 従来はエッジ検出なり、特徴点抽出なりの⼿法を組
み合わせるのが⼀般的だった
l ⾳声系
l 単⼀では⾳圧のデータで、ほぼ意味が無い
l 従来はスペクトラムや、ケプストラムの解析を⾏っ
て特徴を抽出するのが⼀般的だった
94
より⾼次の機能はこれから
l 意図やプランニング
l 強化学習を応⽤した⼿法が成果を出し始めている
l しかし、まだ汎⽤的に使えるわけではない
l 意識や記憶
l 記憶のモデル化の研究はあるが、簡単なタスクしか
とけていない
l ⾔語や推論
l ⾔語処理では徐々に既存⼿法を追い抜いている領域
はあるが、劇的な変化という印象はない
95
深層学習は冷静に⾒る必要がある
l うまく⾏っているところ切り出しても、⽣物の
知能としてみると原始的な機能
l ぶつからないように移動すること、⾳を聞いて反応
すること、ものを認識してつかむこと、いずれも昆
⾍でもできること
l ただし、これらの能⼒でもインパクトのある領
域はある
l ⾃動運転、⾳声認識、ロボット制御になると、いず
れも影響⼒は⼤きい
l 知能=⼈間と考えると失敗する
96
深層学習を試すには?
l すでに成果のでている結果を使うのが⼀番楽
l 画像認識なら、Caffeの学習済みモデルを利⽤できる
l ⾃然⾔語処理なら、word2vecを使えば単語ベクトル
の学習が簡単に⾏える
l ⾃分で作るならツールキットを使うのが良い
l Caffe/torch/theano
l Chainerというライブラリを作りました
l いずれも仕組みを理解する必要がある
97
Chainer
l Powerful(⾼速)
l NVIDIA GPUに対応
l Flexible(柔軟)
l ループや再帰のあるネットワークも簡単にかける
l Intuitive(直感的)
l 通常のPythonコードがネットワーク定義になる
98
まとめ:機械学習の仕組み
l ⼀⼝に機械学習といっても⾊々
l ⼊出⼒、設定、⽬標、好き嫌い、様々
l 機械学習3種類
l 教師あり学習:⼊出⼒関係を学習する
l 教師なし学習:データの性質を学習する
l 強化学習:試⾏錯誤による⾏動ポリシーの学習
l 深層学習はこれから?
l ⽬⽴っているのは画像と⾳声
l ⾔語などの知能に関わる成果が期待される
99
第3部 機械学習の課題解決フロー
100
l データを⼊⼿してから各種分析⽅法の設計、実
験を繰り返し、最終的にシステムに組み込むま
での具体的な⼿順を紹介します
l あくまで例ですので、ケースバイケースで変
わってきます
l 機械学習の問題への落とし込み
l 特徴量の設計
l 実験
l 組み込み
102
l 機械学習の問題への落とし込み
l 特徴量の設計
l 実験
l 組み込み
103
機械学習で解くべき問題と、それ以外で解くべき問
題を切り分ける
l 機械学習以外の⽅が適合する場合
l URLの検出など、ほぼ⾃明なルールが有る
l スペル⾃動修正の代わりに、再⼊⼒させる
l そのまま機械学習が適⽤できそうな場合
l 記事を⾃動で分類したい
l 記事をユーザーに推薦したい
l 少し⼯夫して機械学習の設定に落とす場合
l 好評か不評か判定する代わりに、好評・不評表現の辞書を機械
学習で作成する
l 商品を買いそうか当てる代わりに、ユーザーの属性を機械学習
で当てて、狙った層に広告を出す
104
どの問題に落としこむべきか?
l ⼿堅い問題の⽅が正直おすすめ
l 教師あり分類の⽅がお薦め、正解情報はクラウド
ソーシングを利⽤する⼿もある
l 教師なしの場合でも、レコメンドなどの⼿堅い⼿法
が良い
l 多腕バンディットは整備が必要
l 報酬(広告ならクリックされたか否か)の情報を、
学習エンジンに⼊⼒できるようにする必要がある
105
l 機械学習の問題への落とし込み
l 特徴量の設計
l 実験
l 組み込み
106
特徴量の設計
l 典型的な⽅法をまず試す
l 数値の⼤⼩に意味があるならそのまま利⽤
l テキストなら出現する単語集号
l 男⼥などのカテゴリ情報なら0/1の変数
l 数値がIDなら、カテゴリ情報として扱う
l データ整備に時間が掛かる
l 空⽂字列、NULL、“なし” などが混在していること
がある
l 当てたい変数が紛れていることがある
107
特徴設計の例
108
ID 239475
髪 ⻑髪
服 Tシャツ
会社ID 34
⾝⻑ 162
プロフィール 千葉出⾝のエン
ジニアです!
髪-⻑髪 1
服-Tシャツ 1
会社ID-34 1
⾝⻑ 162
千葉 1
エンジニア 1
明らかに関係ない
カテゴリ変数
数値の⼤⼩に意味
は無い
数値に意味があるテキスト情報
特徴設計、ここに気をつける
l 意味のない情報を使わない
l ユーザーIDなど、予測に使えないと予め分かる情報は使わない
l IDは数値とは違う
l IDは整数になっているが、⼤⼩に意味は無い
l カテゴリ情報として使う
l テキスト系データは扱いを特別に
l テキストをカテゴリの⽤に扱うと、ほぼ全てのデータが別の意
味になってしまう
l 意味のあるキーワードを抽出してカテゴリ変数として扱う
l マルチメディアデータは特殊な処理が必要
109
データの特質から難易度のあたりをつける
l おおよそできそう
l 明らかに相関がありそうな変数がある
l 例:記事の内容からカテゴリを当てる
l できるかも
l 隠れた相関があるかもしれない
l 例:購買情報から家族構成を当てる
l 絶対にできなさそう
l ⼈間がじっくり⾒てもわからない
l 例:何も買ってない⼈が次に買いそうなものを当て
る
110
優先度⾼
データに対する誤解
l データさえあれば何でもわかるんですよね?
l NO! データから分かることだけがわかります
l データが沢⼭あれば確実にわかるんですよね?
l NO! 単調増加でも、100%に達するとは限りません
l ⼈間にわからないことがわかるんですよね?
l NO! ⼀般的には⼈間のほうが⾼性能です
111
余談:機械学習は⼿段
l 機械学習は⼿段だと思って割り切る
l うまくいくかどうかは、⾼度な⼿法よりもデー
タの特性の⽅が強く影響する
l どこまで出来るかは試さないと分からない
112
l 機械学習の問題への落とし込み
l 特徴量の設計
l 実験
l 組み込み
113
実際に実験を⾏ってみる
l 仮想的にデータを設定して、想定した分析がで
きるか試す
l 実験設定を間違えると、実データで全く効果が
出ない
l 特に、過学習に注意する
114
過学習(Overfit)とは?
l 星と⽉を分類する線を引く時どちらが良いでしょう?
l 右の引き⽅は、ノイズのように⾒えるデータに引っ張ら
れすぎていないか?
115
?
⼀番極端な例
116
if ⼊⼒=x1 then return y1
if ⼊⼒=x2 then return y2
if ⼊⼒=x3 then return y3
…
else return “other”
学習データを全て正しく分類できたぞ!
学習データ:{ (x1, y1), (x2, y2), … }
過学習とは
l 既知データ(学習データ)に対する性能は、極めて⾼い
l 未知データに対する性能が下がらなければ、学習データ
に対する性能が⾼すぎても問題ない
l ⼀般に、モデルの複雑さ(パラメータの数)に⽐べて、
学習データが少なすぎるときに起こる
117
学習データだけを過剰に正確に分類できる
反⾯、未知のデータに対する性能が下がっ
てしまうこと
過学習を防ぐには?
l データと特徴のバランスを正す
l より多くのデータを⽤意するか、パラメータの数
(特徴の数)を意図的に制限する
l バランスを図る尺度はある(⾚池情報基準など)
l 正則化を⼊れる
l 正則化とはパラメータに対して制約を与えること
l 過学習が起こっている場合、特定の特徴だけを過剰
に信⽤する(パラメータの値が巨⼤になる)ことが
多いため、⼤きくなり過ぎないように調整する
118
過学習が起こっていないか確認するには?
l 過学習とは未知データに対して性能が落ちるこ
となので、仮想的に未知データ相当の状況を
作って実験を⾏う
l ⼀般的には学習⽤データとテスト⽤データを分
ける
l より効率的に交差検定を⽤いる
119
交差検定(cross validation)
l 仮想的に「未知データ」を作り出す⽅法
l 教師つきデータを n (=5くらい)にランダムに分割
l 1つ以外で学習1つでテスト、を n 回繰り返して、平均
の精度を求める
120
学習⽤
学習⽤
テスト⽤
学習⽤
テスト⽤
学習⽤
テスト⽤
学習⽤
学習⽤
1回目 2回目 3回目
交差検定をする際に気をつけること
l 様々な要因で「仮想的な未知データ」になって
いないことがある
l うまく実験できていないと不当に精度が⾼く⾒
えて、本番データで失敗する
121
ケース1:重複データが混ざっている場合
l 重複データがあると、ランダムに混ぜても学習⽤とテス
ト⽤に同じデータが混⼊してしまう
l ⼀般的に学習時に利⽤したデータは極めて⾼い精度が出
るため、不当に性能が出ていると勘違いする
122
学習⽤
テスト⽤学習⽤
テスト⽤
偶発的に同じデータが混ざる
ケース2:本番⽤ータと学習データの傾向が違う
l 原因は様々
l 学習⽤データにしかない特徴で学習してしまった
l 学習データが古すぎて、傾向が変わっている
l なるべく本番データから学習データを作るか、意図的に
特徴情報を制限する必要がある
123
学習 本番
最後は⼼の問題(?)
l 想定外に性能が出ないことはよくある
l 実験時に極めて⾼い性能が出たら、喜ぶ前に実
験設定を⾒なおして⽅がいい
l 経験的には、⾼い性能が出た時はほとんど何かを間
違えている
l 最終的には製品・サービス内で効果を計測する
気を抜かない
124
実験を⾏ったら・・・
l 精度が良いとき
l おめでとうございます!
l 精度が悪いとき
l 頑張りましょう
l 精度が良すぎるとき
l 疑いましょう
125
精度が悪いとき
l 簡単にできることから試す
l 複数の学習⼿法を試す
l ハイパーパラメータ(学習前に設定するパラメー
タ)を変えてみる
l 難しすぎる問題設定になっていないか確認する
l 正解データ内でも基準が曖昧だと、難しい
l 不必要に難しい設定になっていないか再検討する
l ⼿法を改善するのはそれから
126
難しすぎるケース:データに⼀貫性がない
l データ作成時に⼀貫性がないと機械も迷う
l 例:スポーツ選⼿の結婚記事は「芸能」? 「ス
ポーツ」?
l データ作成中に基準を決めて、⽂書等で共有する
l 曖昧でも、データ上はどちらかになっているた
め実験精度⾃体は落ちる
l 実⽤上は問題ないかもしれない
l 最終的には、個別の結果を⾒て判断を
127
難しすぎるケース:ラベルが多すぎる
l 各ラベルごとの正解データが極端に少なくなるので、学
習効率が悪化する
l 例:データが1件もないラベルは当てられない
l データを増やすか、必要な分類基準を精査する(ビジネ
ス要件との調整が必要)
l 例:細分類ではなく、⼤分類が出来るだけでも効果がある場合
もある
128
それでも精度が出ない
l 要件を再検討
l 誤検知が問題なら、確信度の⾼い上位を利⽤する
l 検知漏れが問題なら、確信度のしきい値を下げる
l 間違い事例を精査
l 必要な特徴が取れていないことが多い
l より⾼度な⽅法を検討
l ラベルなしデータを利⽤する(半教師あり学習)
l 外部リソースを利⽤した特徴を利⽤する
l 実装コスト、運⽤コスト、処理性能の劣化などの苦
労の割には性能向上は限定的
129
精度が出すぎたら疑う
l 学習データとテストデータが同じになっていた
l 実験のプログラムを間違えていた
l 重複データが⼊っていた
l 想定外のわかりやすい特徴を学習していた
l 不均衡データになっていた
130
不均衡データになっている
l 全てのデータを「通常」と判断した場合、正解率⾃体は
99%になるが、全く役に⽴たない
l 正解率ではなくて、異常を発⾒できたかどうかの尺度で
評価する必要がある
l 適合率:発⾒した「異常」が、本当に「異常」である割合
l 再現率:全体の「異常」の内、実際に発⾒できた割合
131
通常:99% 異常:1%
最終的には実験をどれだけ回せるかの勝負
l 1回の実験でうまくいくことは殆どない
l 特徴設計やデータ整形を⼯夫して何度も実験を
回す必要がある
l なるべく、間違えないように、効率よく実験と
データ収集ができるように整備することがもっ
とも⼤事
132
データ作成⽀援
133
デモ
134
l 機械学習の問題への落とし込み
l 特徴量の設計
l 実験
l 組み込み
135
実システムに組み込む
l 実システム上で成果が出るかが⼀番⼤事
l 成果をどう設定するかはケースバイケース
l クリック率が実際に向上するか?
l データ整理に要する時間が短縮されたか?
l ユーザーの平均滞在時間が向上したか?
l 効果を測定できる仕組みが必要
136
実データで試すと新たな問題が出てくる
l 想定したデータとずれてくる
l 例:スイカ=「野菜」が、ある⽇「交通」になった
l システム全体として効果が出ない
l 例:スパムと思って消したら、クリック率が下がっ
た
l 対象がシステムに対抗してくる
l 例:検索エンジン業者とSEO業者の攻防
137
改善のループを継続させる
138
実験
設計
システム上での評価
システム全体
の改善
機械学習単体
の改善
まとめ
l まず⽬標を明確に
l ⽬標をうまく機械学習の問題に落とす
l 機械学習の実験を繰り返す
l 環境整備が⼤事
l システムに組み込んで改善のループを回す
139
全体のおさらい
l 機械学習はどこでも使える
l データを利⽤して賢くなる⼿法全般
l データのある様々な領域で適⽤可能
l ⼿法は沢⼭
l 教師あり学習は⼊出⼒関係を学習
l 教師なし学習はデータの傾向を学習
l 強化学習は⾃動で試⾏錯誤する
l 深層学習は多段のニューラルネット
l 検証を繰り返す
l 実験は交差検定で
l システムに組み込んで効果をしっかり試す
140
ご清聴ありがとうございました
141

予測型戦略を知るための機械学習チュートリアル