Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Yuya Unno

April 18, 2017
Tweet

More Decks by Yuya Unno

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 海野 裕也 l -2008 東⼤情報理⼯修⼠,⾃然⾔語処理 l 2008-2011 ⽇本アイ・ビー・エム(株)東京基礎研 l

    2011-2016 (株)プリファードインフラストラク チャー l 2016- (株)プリファードネットワークス l ⾃然⾔語処理、機械学習、テキストマイニング l ChainerなどのOSS開発 l 機械とのコミュニケーションの研究開発 NLP若⼿の会顧問(2016-) 「オンライン機械学習」(2015, 講談社) 「深層学習による⾃然⾔語処理」(2017, 講談社) 2
  2. 様々な分野に適⽤可能 l データから有⽤な規則、ルール、知識、判断基準を抽出 l データがあるところならば、どこでも使える l 様々な分野の問題に利⽤可能 9 レコメンデー ション

    分類、識別 市場予測 評判分析 情報抽出 ⽂字認識 ロボット 画像解析 遺伝⼦分析 検索ランキン グ ⾦融 医療診断 適用分野
  3. ⼈に⽐べて機械学習のここがいい! l ⼤量 l ⼤量に処理できる l 機械を並べればいくらでもスケールする l ⾼速 l

    ⼈間の反応速度を超えることができる l ⾼精度 l 場合によっては⼈間を凌駕するようになってきた l ⼈と違って判断がブレない、疲れない 11
  4. 機械学習を活かすポイント 量と速度が圧倒的なポイント l 量 l ⼤量のデータが有って⼈⼿で処理できない l 情報源が多様すぎて⼈間では⼿に負えない l 速度

    l ⼈間よりも圧倒的に⾼速に反応できる l 反応速度が重要な領域で価値が出る 12 いずれも⼀般的に機械が ⼈間より優っているポイント
  5. 機械学習が失敗するパターン l できない精度を求める l サイコロの次の⽬を当てることはできない l 同じように、精度の限界がある l ⼈にとって簡単なタスクをやろうとする l

    少ない情報から推論するのは⼈間が得意 l 逆に⼤量の情報から判断する必要がある時は機械が得意 l ボトルネックが別にある l アクションを取るのが⼈だったり、⼈が途中に介在する l 量と速度のメリットをいかに活かすか 13
  6. ルールに基づく判断の限界 l ⼈⼿で書いたルールはすぐ複雑、膨⼤になる l 1万⾏のperlスクリプト l どこを変えたらいいかわからない l 条件を追加したら何が起こるか・・・ l

    複雑化したルールは引き継げなくなる 15 「ゴルフ」and「VW」 à ⾞ 「インテル」and「⻑友」 à サッカー 「選挙」and「AKB」 à 芸能
  7. まとめ:機械学習 vs ⼈間 vs ルール 機械学習は速度、量、精度、メンテナンス性のバ ランスがとれている l ⼈間に⽐べて・・ l

    量と速度に優る l 疲れない、ぶれない、スケールする l ルールに⽐べて l 精度に優る l メンテナンスできる、引き継げる、データの変化に 強い 22
  8. タスク固有の問題と⼿法の分離 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, … 画像 センサ情報 ⾏動履歴 分野に依存しない 特徴を捉えた抽象化されたデータ 様々な⼿法・理論を 適⽤可能 特徴抽出 特徴分析 狭義の機械学習
  9. 特徴抽出 l ⼊⼒された⽣データの特徴をキーとバリューで表す l 変換の⽅法はデータの種類によって様々 27 周囲が黄色 1 中心が茶 1

    花びらの割合 0.7 ⾼さ 150 世の中ではビッグデータ というキーワードが注⽬ されていますが,⼀⼝に ビッグデータといっても ⽴場や観点によって定義 は様々です. 他の要素は0とする ビッグデータ 2 世の中 1 キーワード 1 定義 1 IT関連 ひまわり 特徴ベクトル 分析結果
  10. 機械学習の世界の分類 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 太字について話します
  11. 教師あり学習 l ⼊⼒ x に対して期待される出⼒ y を教える l 分析時には未知の x

    に対応する y を予測する l 分類 l y がカテゴリの場合 l スパム判定、記事分類、属性推定、etc. l 回帰 l y が実数値の場合 l 電⼒消費予測、年収予測、株価予測、etc. 30 x y
  12. 教師あり学習と教師なし学習は⽬的が違う 教師あり学習 l ⼊出⼒の対応関係を学ん で、未知の⼊⼒に対して 判断する l ⼊⼒と出⼒を教える必要 がある l

    ⼀番シンプルな問題設定 で汎⽤性が⾼い 教師なし学習 l データ集合⾃体の特徴を 学習する l データを⼊れれば、すぐ 動く l 制御が難しい l 教師あり学習の前処理と しても使われる 32
  13. 教師あり学習と強化学習は設定が違う 強化学習 l 教師データはない l 新規データの取得できる 環境がある l データがまだなく、デー タ取得まで⾃動化する場

    合に向く 教師あり学習問題 l 教師データがある l 新規データの取得は不可 能 l 既知のラベル付きデータ が⼗分にある場合に向く 35
  14. その前に・・・ l ⼊⼒ x は全てベクトルだとします l 特徴抽出は終わっているということ l ベクトル以外の系列や⽣のデータを扱う⼿法もあり ますが、今回は対象外

    l 直感的な2次元ベクトルの絵を出しますが、⼀般 的にはより⾼次元のベクトルとなるので直感と あわないことがあります 38
  15. 教師あり学習(再掲) l ⼊⼒ x に対して期待される出⼒ y を教える l 分析時には未知の x

    に対応する y を予測する l 分類 l y がカテゴリの場合 l スパム判定、記事分類、属性推定、etc. l 回帰 l y が実数値の場合 l 電⼒消費予測、年収予測、株価予測、etc. 40 x y
  16. 教師あり学習のユースケース例 ⾃動分類結果をシステムとつなぎあわせやすい l 重要情報のフィルタリング l コールセンターログを重要度やタイプ別に分類 l 分類結果から、深刻な問題を詳細に分析したり、問い合わせの トレンドを⾒ることができる l

    顧客セグメントの予測 l 購買履歴などのログ情報から、顧客の詳細なセグメント(年代 性別のみならず、家族構成、趣味嗜好など)を予測 l 予測結果を、例えば広告やキャンペーン対象として利⽤する 41
  17. 教師あり分類の種別 l 線形分類器 l 特徴ベクトルとパラメータの内積の⼤⼩で分類 l 決定⽊ l ツリー状の分類条件を獲得する l

    ニューラルネットワーク l 内積と⾮線形関数の組合せを何度も⾏う l カーネル法(カーネル分類器) l 内積の代わりにカーネル関数を使う l アンサンブル学習 l 複数の分類器を組み合わせることで精度をあげる 44 これらは必ずしも 並列関係ではない
  18. 線形分類器は重み付き多数決 l 容姿の特徴から男性か⼥性か当てるとする l w は男性の特徴に正の重み、⼥性の特徴に負の重み l 判定対象の x に該当する重みの総和で予測が決定する

    46 特徴 x ⻑髪 0 短髪 1 Tシャツ 1 ブラウス 0 ジーンズ 1 スカート 0 チノパン 0 w -3 +2 +1 -2 +2 -5 +3 +5 予想:男性 内部に表がある
  19. 学習のステップ 1/3 l どれが重要かわからないので、全ての重みを更新する l 結果的に、このデータは正しく予想できるようになる 48 特徴 w ⻑髪

    0 à +1 短髪 Tシャツ 0 à +1 ブラウス ジーンズ スカート チノパン 0 à +1 ⻑髪 Tシャツ チノパン 学習データ 男性 初期値は全部0
  20. 学習のステップ 2/4 l 間違えるたびに正しく分類できるように更新 49 特徴 w ⻑髪 +1 à

    0 短髪 Tシャツ +1 ブラウス 0 à -1 ジーンズ スカート 0 à -1 チノパン +1 ⻑髪 ブラウス スカート 学習データ ⼥性
  21. 学習のステップ 3/4 l 何度も更新する 50 特徴 w ⻑髪 0 à

    -1 短髪 Tシャツ +1 à 0 ブラウス -1 ジーンズ スカート -1 à -2 チノパン +1 ⻑髪 Tシャツ スカート 学習データ ⼥性
  22. 線形分類器の代表的な学習⼿法 l パーセプトロン(Perceptron) l 誤分類したら特徴ベクトルを重みに⾜し引きする l 単純ベイズ分類器(Naïve Bayes classifier) l

    各特徴次元が独⽴だという仮定のもと、それぞれの重みを独⽴ に決定する l ロジスティック回帰(Logistic regression) l 各クラスに所属する確率の対数が、重みとベクトルの内積に⽐ 例すると仮定する l サポートベクトルマシン(SVM) l 分離平⾯からの最短距離(マージン)を最⼤化させる重みを選 択する 52 それぞれ基準が異なる
  23. 教師あり分類の種別(再掲) l 線形分類器 l 特徴ベクトルとパラメータの内積の⼤⼩で分類 l 決定⽊ l ツリー状の分類条件を獲得する l

    ニューラルネットワーク l 内積と⾮線形関数の組合せを何度も⾏う l カーネル法(カーネル分類器) l 内積の代わりにカーネル関数を使う l アンサンブル学習 l 複数の分類器を組み合わせることで精度をあげる 54 ⾮線形分類
  24. 複雑な⼿法と単純な⼿法のトレードオフ l 単純な⼿法 l 分類の根拠がわかりやすい l うまくいかない時に直すべき理由に気づきやすい l ⼀般的に分類速度、学習速度が速い l

    実装が簡単なので、バグを埋め込みにくい l 例:線形分類器、決定⽊ l 複雑な⼿法 l ⼀般的に精度が⾼い l 例:アンサンブル学習、カーネル法、ニューラル ネット 57
  25. 教師あり学習と教師なし学習は⽬的が違う 教師あり学習 l ⼊出⼒の対応関係を学ん で、未知の⼊⼒に対して 判断する l ⼊⼒と出⼒を教える必要 がある l

    ⼀番シンプルな問題設定 で汎⽤性が⾼い 教師なし学習 l データ集合⾃体の特徴を 学習する l データを⼊れれば、すぐ 動く l 制御が難しい l 教師あり学習の前処理と しても使われる 61
  26. クラスタリング l 与えられたデータをまとまり(クラスタ)に分 割する l データではなく類似の特徴をまとめるタイプも ある l 細かな設定の違いはある l

    データは複数のクラスタに属するか属さないか l クラスタ数は固定か可変か l クラスタ間に関係(階層)はあるか、フラットか 63
  27. クラスタリングの代表的な⼿法 l K平均法(K-means) l 各クラスタに割り当てられたデータの平均(中⼼)の算出と、 ⼀番近いクラスタ中⼼への割り当てを交互に⾏う l 混合ガウスモデル(Gaussian Mixture Model)

    l 複数の正規分布の重ね合わせからデータが⽣成されたと仮定し て、各データがどの正規分布から⽣成されたのかを推定する l LDA(Latent Dirichlet Allocation) l 各特徴がトピックにもとづいて⽣成されると仮定して、⽂書と 特徴のトピックを推定する l ⾏列分解 l データ・特徴⾏列を低次元⾏列の積で近似する 64 下2つは⼀般的にはクラスタリングと呼ばれない
  28. クラスタリングの本質的な難しさ l ⼿法の何処かに必ずまとめる基準があり、意図 通りの基準かどうかわからない l K平均法であれば、平均の求め⽅と近さの尺度 l GMMであれば、正規分布の仮定 l それぞれのクラスタの意味付けは分からない

    l まずクラスタリングして、あとから意味付けを⼈⼿ で与えるようなアプローチはあり l ただし、必ずしも⼈間が意味付けできるクラスタが 出来る保証はない 68
  29. クラスタリングはどうやって使うべき? l データ全体の傾向を確認するのに使う l クラスタリングの結果がうまく分割できているならば、特徴ベ クトルの設計はうまく出来ている l 半教師あり学習として使う l クラスタリングの結果(クラスタ番号)を特徴として、普通の

    教師あり学習を⾏うことで精度が上がる l 教師データ不⼗分で、ラベルなしデータが沢⼭あるときに有効 l クラスタリング結果に対して⼈⼿で意味付けを⾏う l 対象データに対する分類基準がよく定まっていないのであれば、 先に分割してから基準を決める 69
  30. 教師あり学習と強化学習は設定が違う 強化学習 l ラベルは未知 l 新規データの取得が可能 l データがまだなく、デー タ取得まで⾃動化する場 合に向く

    教師あり学習問題 l ラベルは既知 l 新規データの取得は不可 能 l 既知のラベル付きデータ が⼗分にある場合に向く 72
  31. 多腕バンディットが、教師あり学習より向く l 教師データがない l 教師データはログの中に⾃動的に貯まる l 例:新規の広告 l ⾏動と評価を⾃動化できる l

    ⾏動が良し悪しにもとづいて、次の⾏動を決める l 例:広告の配信と、クリックしたか l 状況変化が⼤きくデータを貯めづらい l 限られた時間の中での利得を最適にしようとする 83
  32. 代表的な深層学習の⼿法いくつか 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
  33. 成果が顕著な領域 l ⾳声認識 l 認識精度が劇的に向上 l すでに多くの⾳声認識エンジンで利⽤されているのではと⾔わ れている l 画像認識

    l 画像に映った物体の判定結果が劇的に向上 l エラー率が3年で25% à 7%に l ゲームプレイ l 昔のゲーム(インベーダーなど)を、ルールを教えずに画⾯と スコアだけで学習 l ⼀部のゲームで⼈間よりも強くなった 91
  34. ⼀番成功しているのはセンシング(認識)の部分 l 画像系 l 単⼀ではピクセルのRGBデータで、ほぼ意味が無い l 従来はエッジ検出なり、特徴点抽出なりの⼿法を組 み合わせるのが⼀般的だった l ⾳声系

    l 単⼀では⾳圧のデータで、ほぼ意味が無い l 従来はスペクトラムや、ケプストラムの解析を⾏っ て特徴を抽出するのが⼀般的だった 94
  35. より⾼次の機能はこれから l 意図やプランニング l 強化学習を応⽤した⼿法が成果を出し始めている l しかし、まだ汎⽤的に使えるわけではない l 意識や記憶 l

    記憶のモデル化の研究はあるが、簡単なタスクしか とけていない l ⾔語や推論 l ⾔語処理では徐々に既存⼿法を追い抜いている領域 はあるが、劇的な変化という印象はない 95
  36. まとめ:機械学習の仕組み l ⼀⼝に機械学習といっても⾊々 l ⼊出⼒、設定、⽬標、好き嫌い、様々 l 機械学習3種類 l 教師あり学習:⼊出⼒関係を学習する l

    教師なし学習:データの性質を学習する l 強化学習:試⾏錯誤による⾏動ポリシーの学習 l 深層学習はこれから? l ⽬⽴っているのは画像と⾳声 l ⾔語などの知能に関わる成果が期待される 99
  37. 機械学習で解くべき問題と、それ以外で解くべき問 題を切り分ける l 機械学習以外の⽅が適合する場合 l URLの検出など、ほぼ⾃明なルールが有る l スペル⾃動修正の代わりに、再⼊⼒させる l そのまま機械学習が適⽤できそうな場合

    l 記事を⾃動で分類したい l 記事をユーザーに推薦したい l 少し⼯夫して機械学習の設定に落とす場合 l 好評か不評か判定する代わりに、好評・不評表現の辞書を機械 学習で作成する l 商品を買いそうか当てる代わりに、ユーザーの属性を機械学習 で当てて、狙った層に広告を出す 104
  38. 特徴量の設計 l 典型的な⽅法をまず試す l 数値の⼤⼩に意味があるならそのまま利⽤ l テキストなら出現する単語集号 l 男⼥などのカテゴリ情報なら0/1の変数 l

    数値がIDなら、カテゴリ情報として扱う l データ整備に時間が掛かる l 空⽂字列、NULL、“なし” などが混在していること がある l 当てたい変数が紛れていることがある 107
  39. 特徴設計の例 108 ID 239475 髪 ⻑髪 服 Tシャツ 会社ID 34

    ⾝⻑ 162 プロフィール 千葉出⾝のエン ジニアです! 髪-⻑髪 1 服-Tシャツ 1 会社ID-34 1 ⾝⻑ 162 千葉 1 エンジニア 1 明らかに関係ない カテゴリ変数 数値の⼤⼩に意味 は無い 数値に意味がある テキスト情報
  40. 特徴設計、ここに気をつける l 意味のない情報を使わない l ユーザーIDなど、予測に使えないと予め分かる情報は使わない l IDは数値とは違う l IDは整数になっているが、⼤⼩に意味は無い l

    カテゴリ情報として使う l テキスト系データは扱いを特別に l テキストをカテゴリの⽤に扱うと、ほぼ全てのデータが別の意 味になってしまう l 意味のあるキーワードを抽出してカテゴリ変数として扱う l マルチメディアデータは特殊な処理が必要 109
  41. データの特質から難易度のあたりをつける l おおよそできそう l 明らかに相関がありそうな変数がある l 例:記事の内容からカテゴリを当てる l できるかも l

    隠れた相関があるかもしれない l 例:購買情報から家族構成を当てる l 絶対にできなさそう l ⼈間がじっくり⾒てもわからない l 例:何も買ってない⼈が次に買いそうなものを当て る 110 優先度⾼
  42. データに対する誤解 l データさえあれば何でもわかるんですよね? l NO! データから分かることだけがわかります l データが沢⼭あれば確実にわかるんですよね? l NO!

    単調増加でも、100%に達するとは限りません l ⼈間にわからないことがわかるんですよね? l NO! ⼀般的には⼈間のほうが⾼性能です 111
  43. ⼀番極端な例 116 if ⼊⼒=x1 then return y1 if ⼊⼒=x2 then

    return y2 if ⼊⼒=x3 then return y3 … else return “other” 学習データを全て正しく分類できたぞ! 学習データ:{ (x1 , y1 ), (x2 , y2 ), … }
  44. 過学習を防ぐには? l データと特徴のバランスを正す l より多くのデータを⽤意するか、パラメータの数 (特徴の数)を意図的に制限する l バランスを図る尺度はある(⾚池情報基準など) l 正則化を⼊れる

    l 正則化とはパラメータに対して制約を与えること l 過学習が起こっている場合、特定の特徴だけを過剰 に信⽤する(パラメータの値が巨⼤になる)ことが 多いため、⼤きくなり過ぎないように調整する 118
  45. 交差検定(cross validation) l 仮想的に「未知データ」を作り出す⽅法 l 教師つきデータを n (=5くらい)にランダムに分割 l 1つ以外で学習1つでテスト、を

    n 回繰り返して、平均 の精度を求める 120 学習⽤ 学習⽤ テスト⽤ 学習⽤ テスト⽤ 学習⽤ テスト⽤ 学習⽤ 学習⽤ 1回目 2回目 3回目
  46. 精度が悪いとき l 簡単にできることから試す l 複数の学習⼿法を試す l ハイパーパラメータ(学習前に設定するパラメー タ)を変えてみる l 難しすぎる問題設定になっていないか確認する

    l 正解データ内でも基準が曖昧だと、難しい l 不必要に難しい設定になっていないか再検討する l ⼿法を改善するのはそれから 126
  47. 難しすぎるケース:データに⼀貫性がない l データ作成時に⼀貫性がないと機械も迷う l 例:スポーツ選⼿の結婚記事は「芸能」? 「ス ポーツ」? l データ作成中に基準を決めて、⽂書等で共有する l

    曖昧でも、データ上はどちらかになっているた め実験精度⾃体は落ちる l 実⽤上は問題ないかもしれない l 最終的には、個別の結果を⾒て判断を 127
  48. それでも精度が出ない l 要件を再検討 l 誤検知が問題なら、確信度の⾼い上位を利⽤する l 検知漏れが問題なら、確信度のしきい値を下げる l 間違い事例を精査 l

    必要な特徴が取れていないことが多い l より⾼度な⽅法を検討 l ラベルなしデータを利⽤する(半教師あり学習) l 外部リソースを利⽤した特徴を利⽤する l 実装コスト、運⽤コスト、処理性能の劣化などの苦 労の割には性能向上は限定的 129
  49. 全体のおさらい l 機械学習はどこでも使える l データを利⽤して賢くなる⼿法全般 l データのある様々な領域で適⽤可能 l ⼿法は沢⼭ l

    教師あり学習は⼊出⼒関係を学習 l 教師なし学習はデータの傾向を学習 l 強化学習は⾃動で試⾏錯誤する l 深層学習は多段のニューラルネット l 検証を繰り返す l 実験は交差検定で l システムに組み込んで効果をしっかり試す 140