2. ⾃⼰紹介
海野 裕也
l -2008 東⼤情報理⼯修⼠,⾃然⾔語処理
l 2008-2011 ⽇本アイ・ビー・エム(株)東京基礎研
l 2011-2016 (株)プリファードインフラストラク
チャー
l 2016- (株)プリファードネットワークス
l ⾃然⾔語処理、機械学習、テキストマイニング
l ChainerなどのOSS開発
l 機械とのコミュニケーションの研究開発
NLP若⼿の会顧問(2016-)
「オンライン機械学習」(2015, 講談社)
「深層学習による⾃然⾔語処理」(2017, 講談社)
2
13. 機械学習が失敗するパターン
l できない精度を求める
l サイコロの次の⽬を当てることはできない
l 同じように、精度の限界がある
l ⼈にとって簡単なタスクをやろうとする
l 少ない情報から推論するのは⼈間が得意
l 逆に⼤量の情報から判断する必要がある時は機械が得意
l ボトルネックが別にある
l アクションを取るのが⼈だったり、⼈が途中に介在する
l 量と速度のメリットをいかに活かすか
13
29. 機械学習の世界の分類
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
太字について話します
30. 教師あり学習
l ⼊⼒ x に対して期待される出⼒ y を教える
l 分析時には未知の x に対応する y を予測する
l 分類
l y がカテゴリの場合
l スパム判定、記事分類、属性推定、etc.
l 回帰
l y が実数値の場合
l 電⼒消費予測、年収予測、株価予測、etc.
30
x y
31. 教師なし学習
l ⼊⼒ x をたくさん与えると、⼊⼒情報⾃体の性質に関し
て何かしらの結果を返す
l クラスタリング
l 与えられたデータをまとめあげる
l 異常検知
l ⼊⼒データが異常かどうかを判定する
31
x
40. 教師あり学習(再掲)
l ⼊⼒ x に対して期待される出⼒ y を教える
l 分析時には未知の x に対応する y を予測する
l 分類
l y がカテゴリの場合
l スパム判定、記事分類、属性推定、etc.
l 回帰
l y が実数値の場合
l 電⼒消費予測、年収予測、株価予測、etc.
40
x y
44. 教師あり分類の種別
l 線形分類器
l 特徴ベクトルとパラメータの内積の⼤⼩で分類
l 決定⽊
l ツリー状の分類条件を獲得する
l ニューラルネットワーク
l 内積と⾮線形関数の組合せを何度も⾏う
l カーネル法(カーネル分類器)
l 内積の代わりにカーネル関数を使う
l アンサンブル学習
l 複数の分類器を組み合わせることで精度をあげる
44
これらは必ずしも
並列関係ではない
52. 線形分類器の代表的な学習⼿法
l パーセプトロン(Perceptron)
l 誤分類したら特徴ベクトルを重みに⾜し引きする
l 単純ベイズ分類器(Naïve Bayes classifier)
l 各特徴次元が独⽴だという仮定のもと、それぞれの重みを独⽴
に決定する
l ロジスティック回帰(Logistic regression)
l 各クラスに所属する確率の対数が、重みとベクトルの内積に⽐
例すると仮定する
l サポートベクトルマシン(SVM)
l 分離平⾯からの最短距離(マージン)を最⼤化させる重みを選
択する
52
それぞれ基準が異なる
57. 複雑な⼿法と単純な⼿法のトレードオフ
l 単純な⼿法
l 分類の根拠がわかりやすい
l うまくいかない時に直すべき理由に気づきやすい
l ⼀般的に分類速度、学習速度が速い
l 実装が簡単なので、バグを埋め込みにくい
l 例:線形分類器、決定⽊
l 複雑な⼿法
l ⼀般的に精度が⾼い
l 例:アンサンブル学習、カーネル法、ニューラル
ネット
57
78. Exploration vs Exploitation 問題
探索:未知の情報を探索する(Exploration)
活⽤:今ある情報で⾏動する(Exploitation)
l 両者のバランスをどのようにとるかの戦略で、
儲けが変わってくる
l この戦略の取り⽅が、多腕バンディット問題の
本質
78
88. 代表的な深層学習の⼿法いくつか
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
91. 成果が顕著な領域
l ⾳声認識
l 認識精度が劇的に向上
l すでに多くの⾳声認識エンジンで利⽤されているのではと⾔わ
れている
l 画像認識
l 画像に映った物体の判定結果が劇的に向上
l エラー率が3年で25% à 7%に
l ゲームプレイ
l 昔のゲーム(インベーダーなど)を、ルールを教えずに画⾯と
スコアだけで学習
l ⼀部のゲームで⼈間よりも強くなった
91
107. 特徴量の設計
l 典型的な⽅法をまず試す
l 数値の⼤⼩に意味があるならそのまま利⽤
l テキストなら出現する単語集号
l 男⼥などのカテゴリ情報なら0/1の変数
l 数値がIDなら、カテゴリ情報として扱う
l データ整備に時間が掛かる
l 空⽂字列、NULL、“なし” などが混在していること
がある
l 当てたい変数が紛れていることがある
107
111. データに対する誤解
l データさえあれば何でもわかるんですよね?
l NO! データから分かることだけがわかります
l データが沢⼭あれば確実にわかるんですよね?
l NO! 単調増加でも、100%に達するとは限りません
l ⼈間にわからないことがわかるんですよね?
l NO! ⼀般的には⼈間のほうが⾼性能です
111
116. ⼀番極端な例
116
if ⼊⼒=x1 then return y1
if ⼊⼒=x2 then return y2
if ⼊⼒=x3 then return y3
…
else return “other”
学習データを全て正しく分類できたぞ!
学習データ:{ (x1, y1), (x2, y2), … }
126. 精度が悪いとき
l 簡単にできることから試す
l 複数の学習⼿法を試す
l ハイパーパラメータ(学習前に設定するパラメー
タ)を変えてみる
l 難しすぎる問題設定になっていないか確認する
l 正解データ内でも基準が曖昧だと、難しい
l 不必要に難しい設定になっていないか再検討する
l ⼿法を改善するのはそれから
126
129. それでも精度が出ない
l 要件を再検討
l 誤検知が問題なら、確信度の⾼い上位を利⽤する
l 検知漏れが問題なら、確信度のしきい値を下げる
l 間違い事例を精査
l 必要な特徴が取れていないことが多い
l より⾼度な⽅法を検討
l ラベルなしデータを利⽤する(半教師あり学習)
l 外部リソースを利⽤した特徴を利⽤する
l 実装コスト、運⽤コスト、処理性能の劣化などの苦
労の割には性能向上は限定的
129
140. 全体のおさらい
l 機械学習はどこでも使える
l データを利⽤して賢くなる⼿法全般
l データのある様々な領域で適⽤可能
l ⼿法は沢⼭
l 教師あり学習は⼊出⼒関係を学習
l 教師なし学習はデータの傾向を学習
l 強化学習は⾃動で試⾏錯誤する
l 深層学習は多段のニューラルネット
l 検証を繰り返す
l 実験は交差検定で
l システムに組み込んで効果をしっかり試す
140