SACSIS  2013  チュートリアル
2013/5/23  @  仙台国際センター

機械学習の理理論論と実践
岡野原 　⼤大輔
株式会社Preferred  Infrastructure 　
hillbig@preferred.jp

アジェンダl

導⼊入編l 機械学習はどこでどのように何故使われているのか
l

l

実践編
l 実際に機械学習を⾃自分で作ってみるll

代表的な⼿手法、理理論論、応⽤用

機械学習で求められる計算処理理発展編
l Jubatus：リアルタイム・分散下での機械学習l

深層学習（DNN）：表現学習/古くて新しい機械学習

2	

導⼊入編

3	

機械学習とはl

経験（データ）によって賢くなるアルゴリズムの研究l データから知識識・ルールを⾃自動獲得するl

データの適切切な表現⽅方法も獲得する

l

⼈人⼯工知能の中で、⼈人が知識識やルールを明⽰示的に与える⽅方法の限界から⽣生まれてきた

学習データ

4

分類モデル

BigData  と  機械学習l

巨⼤大なデータがあらゆる分野で⽣生まれているl Volume（量量）,  Velocity（⽣生成速度度）,  Variety（多様性）

l

データがどこでもある  ⇒ 　機械学習がどこでも使える！
≪データの種類≫

テキスト

⾏行行動履履歴

画像

⾳音声

映像

信号

⾦金金融

ゲノム

⼈人

PC

モバイル

センサー

⾞車車

⼯工場

EC

病院

≪⽣生成される場所≫
5機械学習の利利⽤用分野
はじめは⾦金金融、ウェブが中⼼心だったがそこから他分野で急速に広がる
レコメンデー
ションクラス
タリング

分類、識識別

市場予測

評判分析

情報抽出

⽂文字認識識ロボット

画像解析

遺伝⼦子分析

検索索ランキン
グ

⾦金金融

医療療診断

6

機械学習は総合格闘技

⼈人⼯工知能

確率率率論論

パターン認識識
知識識をどのように表現し、獲得するか
データ
マイニング

統計
情報理理論論有限のサンプルから得た知識識をどのように⼀一般化するか？

⼤大量量のデータから並列列計算
学習すれば賢くなる
データベース
どのように⼤大量量のデータを処理理するか

アルゴリズム
データ構造
数値最適化

知識識を表現するパラメータを
いかに最適化するか7	

機械学習が急速に広まった理理由
特徴表現と分析処理理の分離離l

異異なる分野で同じ機械学習⼿手法が適⽤用可能
特徴抽出：問題や分野の特徴を捉えた抽象化されたデータ
⽂文書

画像(0,        1,        0,  2.5,  -‐‑‒1,  …)(1,  0.5,  0.1,      -‐‑‒2,    3,  …)(0,        1,        0,  1.5,    2,  …)

特徴ベクトル

分野に依存しない
様々な⼿手法の適⽤用

分類/回帰SVM,  LogReg,  PA,  CW,  ALOW,  Naïve  Bayes,  CNB,  DT,  RF,  ANN

クラスタリング

K-‐‑‒means,  Spectral  Clustering,
NNF,  MMC,  LSI,  LDA,  GM,  DP

⾏行行動履履歴センサ情報

グラフィカルモデル
8

8	

構造分析

HMM,  MRF,  CRF,  …  

最近の機械学習の進展の例例（１）⼀一般物体認識識（LSVRC2012優勝チーム）
⼀一般物体のカテゴリ認識識
間違えた場合も、納得のできる間違え⽅方（右下のtape  playerを携帯電話と間違えている）

http://www.image-net.org/challenges/LSVRC/ 9	
2012/ilsvrc2012.pdf	

最近の機械学習の進展の例例（２）コンピュータ将棋・囲碁・チェス
分野の常識識を変えた学習アルゴリズムの登場により各分野で⼈人のトップを超えてしまった• チェス・将棋•

Comparison  training 　•

Monte-‐‑‒Carlo  Tree  Search•

Counterfactual  Regret  Minimization  (CFR)

評価関数の⾃自動学習• 囲碁
評価関数が不不要• ポーカー

⼤大規模不不完全情報ゲームのナッシュ均衡解の⾼高速計算

http://blog.livedoor.jp/yss_fpga/archives/
53897129.html

10	
詳細は鶴岡慶雅先生のチュートリアル 「自然言語処理とAI」を参照	

最近の機械学習の進展の例例（3）
SNS分析
各ユーザーの属性をtweetの内容から⾃自動で推定 　性別・職業 　年年齢・趣味
属性推定ルールは正解データを元に学習
マスではなく
個⼈人単位での分析が可能になった11	

機械学習の⻑⾧長所 (1/4)
データがあればすぐ試せるl

分類ルールを学習したい場合、正解事例例がいくつかあれば学習可能l

質問：データがどれくらいあったらうまくいくのか？
答え：正解事例例が1つしかなくても動く、多ければ精度度は⾼高くなるl 以下のファクターで正解事例例はより多く必要とする

l

l

l

l

問題の複雑さl

正解事例例に含まれるノイズ量量l

学習モデルの複雑さ

実際は数⼗十から数百、⼈人⼿手で作れる規模が殆ど

すぐ試せる

12	

機械学習の⻑⾧長所 (2/4)
メンテナンスフリーl

学習の元となるデータを与え続ければ最適化されるl

ルールベースの場合、ルールをメンテナンスしなければならないl 時間経過とともに運⽤用コストが⼤大きくなり、例例外も次々と発⽣生l ⼈人の引き継ぎや、システム統合が発⽣生した場合、メンテナンスは⾮非常に困難になるl

機械学習の場合は、ルールではなく、データをメンテナンスする必要があるl ⾃自由度度はルールベースより⾼高く、スケールする

13	機械学習の⻑⾧長所 (3/4)
問題に対してスケールするl

問題のデータサイズを増やしたり、分類対象数を増やしたり、他の似た問題にも展開可能ll

ある部署でうまくいっていた⼿手法を他の部署や会社でも展開可能

例例：ニュース記事の5カテゴリへの分類を次のように変更更可能l

カテゴリ数を5から100に増やすl

分類対象をニュース以外にもブログやメールにも増やすl

分類対象を⽇日本語だけでなく、他100⾔言語に増やす

14	機械学習の⻑⾧長所 (4/4)
⼈人や⼈人⼯工システムを凌凌駕する性能を出すl

速度度、網羅羅性、可⽤用性といった部分ではコンピュータが凌凌駕するl

⼈人はルールや評価関数をうまく表現できない場合も多いl ⾔言語処理理・ゲーム・画像認識識・⾳音声認識識などは知識識表現が⼤大変
l ⼈人⼯工知能の研究分野では、知識識・ルール・評価関数を⼈人が明⽰示的に与えることに限界があり、データからの獲得に⼒力力を⼊入れたl

箱庭的な問題だと精度度⾯面でも⼈人を凌凌駕するl

関係する特徴数が多い場合
ll

医療療診断、広告最適化、スパム分類

評価関数が分からない場合：l

コンピュータ将棋/囲碁/チェス、機械翻訳、⾳音声認識識15	機械学習の世界の分類
この⼆二つの問題設定だけは知っておいてほしいので説明l

問題設定に基づく分類l 教師有学習  / 教師無学習  / 半教師有学習 / 強化学習  など ..

l戦うドメインの違いl 特徴設計屋（各ドメイン毎に, NLP, Image, Bio, Music）

l

l

学習アルゴリズム屋（SVM, xx Bayes, CW, …)l

理理論論屋（統計的学習理理論論、経験過程、Regret最⼩小化）l

最適化実装屋

好みの違いl

Bayesian / Frequentist / Connectionistl[Non-|Semi-]Parametric16	教師有学習 supervised learningl

⼊入⼒力力xから出⼒力力yへの関数  f(x)=yを教師事例例{(xi, yi)}を元に学習l 出⼒力力yがカテゴリ値の場合は分類、連続値の場合は回帰と呼ぶ
l

教師事例例を介して、タスクを定義する
l

l

l

例例１：スパム分類l ⼊入⼒力力:メール                                           　 　出⼒力力 : スパムor普通
例例２：株価予測 　
ll

教師事例例は正解事例例、訓練事例例とも呼ばれる

⼊入⼒力力:株価に関係する全情報 　 　出⼒力力: 明⽇日の株価

例例３：遺伝⼦子と病気の相関分析
l

⼊入⼒力力：各遺伝⼦子の発現量量 　 　 　  出⼒力力：患者の症状

本チュートリアルは基本的には教師有学習を扱います17	教師無学習 unsupervised learningl

⼊入⼒力力データ{xi}のみから学習するl クラスタリング、近傍探索索、外れ値検出l

データ表現を学習する場合が多いll

クラスタリング、主成分分析、ベクトル量量⼦子化

タスクは事前分布、グラフィカルモデル、制約などで与えるl

例例１：店舗クラスタリング 　
⼊入⼒力力：店舗情報 　 　 　 　 　 　出⼒力力：似た店舗グループに分類l

例例２：不不正アクセス検出
⼊入⼒力力：パケット 　 　 　 　 　 　出⼒力力：通常と異異なるアクセスパターン

18	学習  ＝  パラメータwを最適化問題として解く
w* = argminw Σi L(f(xi; w), yi) + C R(w)l教師事例例{(xi, yi)}を利利⽤用し、関数を特徴付ける

パラメータwを推定する

lL(f(xi; w), y) : 損失関数（次項）l 予測結果f(xi; w)が正解yと違う場合⼤大きな値をとる

lR(w) : 正則化項l C>0はトレードオフパラメーターl多くの場合、上記の問題は凸最適化問題となる
19	

損失関数の例例
二値分類の場合
m=ywTxとした時	I(m > 0)(0/1 Loss)max(0, 1 – m)(hinge-loss: SVM)
log(1 + exp(-m))(log-loss: logistic 回帰)
分類器が間違っている	

exp(-m))(Exp-Loss:Ada-Boost)m = ywTΦ(x)の値	

各損失関数は0/1  Lossの上界かつ、凸な関数

機械学習を理理解する上で重要な5概念念
l
l
l
l
l

特徴表現
汎化・過学習正則化
次元の呪い
BiasとVariance21	

1.特徴抽出l

⼊入⼒力力データから特徴を抽出し特徴ベクトルで表す
テキスト、画像、⾳音声、数値l 各領領域の専⾨門家による職⼈人芸だったが近年年変化（詳細は後述）l

世の中ではビッグデー
タというキーワードが注⽬目されていますが，⼀一⼝口にビッグデータといっても⽴立立場や観点によって定義は様々です．

特徴ベクトル	
ビッグデータ

2

世の中

1

キーワード

1

定義

1

周囲が黄色

1

中心が茶

1

花びらの割合

0.7

⾼高さ

150
22	

分析結果	

他の要素は0とする

IT関連

ひまわり

2.汎化・過学習l*分類以外も同様である	「未知のデータを正しく予測*できるような、ルールを学習する」
l 教師事例例を100%正しく分類できる分類器が得られても、未知のデータを正しく分類できるとは限らないl

教師事例例だけでなく、未知のデータを正しく予測できる能⼒力力を汎化能⼒力力と呼ぶl

教師事例例のみを正しく予測でき、⺟母集団のデータを正しく予測できない状態を過学習と呼ぶ（未知の）データ⺟母集団 D(x1, y2)(x2, y2)

F(x) = y…

(xn, yn)学習で得られたモデル	
サンプリングされた
23	

教師事例

過学習の例例

http://research.preferred.jp/2010/12/
subgradient-optimization-3/	

真の予測したいモデルが  y = x2の時、そこから得られた教師事例例（⿊黒点）に対し学習させて得られたモデルが⾚赤線。
教師事例例は正しく推定できているが元のデータの推定誤差は⼤大きい
24	

3. 正則化l

学習時に「教師事例例を正しく分類する」以外の⽬目標を導⼊入したいl 過学習を防ぐことが可能 　 　例例：単純なモデルを選ぶような正則化ll

問題の事前知識識を組み込む 　例例：少数の特徴のみが問題に関係

正則化の多くはパラメータへの制約として帰着できるlL∞/L2/L1正則化, Elastic-net, Grouped Lassoなど

l

例例：線形回帰の学習時にパラメータにL2正則化を適⽤用する

f(w)	
  =	
  ∑i(yi	
  –	
  wTxi)2	
  +	
  C|w|2	  	

25	

4. 次元の呪いl

⾼高次元データを扱う場合は、いろいろ⾯面倒なことがでてくるl ちなみに⾃自然⾔言語処理理やDNA解析では数百万次元は当たり前l

対象問題の次元数の増加に伴い、必要なサンプル数が急増する
l d次元で1辺の⻑⾧長さが10である超⽴立立⽅方体中の単位超⽴立立⽅方体の数
d=3の場合 1000だが、d=10の場合 1000000000l

⾼高次元中においては、殆どの点が中⼼心から遠いl 1辺の⻑⾧長さが1の超⽴立立⽅方体の中で、1辺の⻑⾧長さが0.9の超⽴立立⽅方体が占める体積の割合は d=3の場合 72%、d=100の場合 0.002%

26	

5. Bias と Variancell

学習結果による推定の誤差は次の⼆二つに分解される
Bias （バイアス）l

学習モデルによる期待値と、真の期待値の差l

Variance（バリアンス）l

推定結果のぶれぐあいl

この⼆二つはトレードオフl バイアス  ⼩小 ⇒ バリアンス  ⼤大l

表現⼒力力が⾼高い学習モデルはバイアス⼩小, バリアンス⼤大になりがち
図はhttp://scott.fortmann-roe.com/
docs/BiasVariance.html	

27	

真に推定したいモデルが中央である場合、各学習結果が各青点に対応する	

実践編

28	

実際に機械学習を作ってみるl

機械学習の多くは実装は簡単！

l

今回はオンライン機械学習 + 線形分類器を作る29	

オンライン学習

バッチ学習
l

データ全体を受け取ってからパl

ラメータを最適化

データを１つずつ受け取るたびにパラメータを即時更更新l

収束が遅い（特に初期収束）

l

収束が速い

l

訓練事例例全体の保持が必要

l

データは捨てられる場合が多い

l

実装は煩雑

l

実装は単純

l

Regret解析で性能解析可能l

最適化ライブラリとかを利利⽤用

l 近年年の殆どの場⾯面でオンライン学習を採⽤用
l 多くのバッチ学習は確率率率的最急降降下法(SGD)でオンライン化可能	
30	

線形識識別器（⼆二値分類）

f(x;	
  w)	
  :=	
  sign(wTx)	
  l⼊入⼒力力  x	
  ∈	
  Rm	
  から  出⼒力力  y	  =	
  {-­‐1,	
  +1}	
  を予測する識識別関数  f(x; w)lw∈Rm が各特徴の重みであり、重み付き多数決で出⼒力力を推定l単純ベイズ法、SVMs、ロジスティック回帰など多くの分類器が	  線形識識別器に属する	  l 分類の計算量は非零の特徴数に比例
	
  

x2

x3

* 	
w1

* 	
w2

* 	
* 	
w3 ….	 wmsum 	sign(z)	
  :=	
  +1	
  if	
  z	
  >=	
  0	
  and	  -­‐1	
  otherwise	
  

….	
xm

x1

線形識識別器の多値分類への拡張

f(x;	
  w)	
  :=	
  arg	
  maxy	  wTyxl⼊入⼒力力  x	
  ∈	
  Rm	
  から  出⼒力力  y	
  =	
  {1,	
  2,	
  …,	
  k}	
  を予測する識識別関数  f(x)l

重みは特徴、出力候補毎に用意	
  l以降降紹介する⼆二値分類の学習式はy(i)wTx(i)の部分を	
  Δ:=	
  wy(i)Tx(i)	
  –	
  wy’Tx(i)に置き換えることで多クラス分類に拡張可能	  l 但しy’は最もスコアが高かった不正解ラベル y’	
  :=	
  argmax	
  y≠y(i)	
  wyTx(i)	
  lクラスラベル数が⾮非常に⼤大きくても、argmax	
  y≠y(i)	
  wyTx(i)	
  さえ	
  

	
  	
  	
  ⾼高速に求まれば学習可能	
  l c.f. 構造学習

学習アルゴリズムの基本形l

紹介する学習アルゴリズムは全て次の繰り返しで表現できる

訓練例例  (x, y) を受け取る
2. 現在の識識別器で正しく分類できるかを調べる  ywTx > E ?
3. 正しく分類できないのであればwを次のように更更新
1.

w := w + yαAx
但し、α>0∈R, A∈Rmxm は半正定値⾏行行列列（対⾓角⾏行行列列の場合が多い）lE, α, Aをいかに適切切に設定するかで、学習性能が変わってくるlE: 更更新条件
lα : ステップ幅lA : 各特徴毎の更更新幅．c.f. マハラノビス距離離更更新の意味l

α> 0、Aが半正定値⾏行行列列の時

	
  	
  	
  ywi+1Tx = y(wi+yαAx)Tx

y > 0 	

= ywiTx + y2α(Ax)Txy < 0 	= ywiTx + αxTAx≧ ywiTxy=-­‐1	
x	

wt	
-αAx	

常に正	

l

今の訓練例例は少なくともより正しく分類されるようにwを更更新

wt+1	

線形識識別器のオンライン学習アルゴリズム
次の⽅方法を紹介
l Perceptron	
  
l
l
l
l
l

Passive-­‐Aggressive	  Conﬁdence	  Weighted	
  Learning	  	
  Adaptive	
  Regularization	
  of	
  Weight	
  Vector	  	
  Normal	  HERD	
  Soft	
  Conﬁdence	  Weighted	
  Learning	
  	
  登場した年年

•
•
•
•
•
•

1958	
  
2002	
  
2006	
  
2009	
  
2010	
  
2012	
  

下に⾏行行くほど
より⾼高精度度、速く収束

Perceptron [Rosenblatt Psy. Rev. 58], [Collins EMNLP 02]l

訓練例(x, y)に対し、現在の線形識別器wで分類できるかを調べ誤って分類した場合は w := w + yx と更新

l

E = 0, α = 1, A = I に対応l

単純な更更新式だが、多くのタスクで強⼒力力な学習⼿手法

l

最終的に得られたwではなく全ステップの平均wa := ∑wiを利利⽤用する
Averaged Perceptronが良良く使われるll

Perceptronは訓練例例が線形分離離可能な場合、有限回の更更新で全ての訓練例例を分類できるパラメータを⾒見見つけられる（次項）
線形分離離可能で無い場合でも、多くの訓練例例を正しく分類できるwを⾒見見つけられる [Collins 02]

定理理：訓練例例  {(x(i),	
  y(i))}Ni=1…N, |x(i)|2<R,	
  がある重みuでマージンγで分類可能（y(i)uTx(i)≧γ）ならば、Perceptronの更更新回数は⾼高々  (R/γ)2回	
  
	
  
証明：	
  
wkをk回⽬目の更更新直前の重みとする．	
  訓練例例数や特徴次元数に依存しない !

wTk+1u	  =	
  wTku	
  +	
  y(i)x(i)Tu	
   　	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ≧	
  wTku	
  +	
  γ	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ≧	
  kγ	
  	
  (w0	
  =	
  0)	
  
また、	
  
|wk+1|2=|wk|2	
  +	
  2y(i)wkTx(i)	
  +	
  |x(i)|2	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ≦|wk|2+R2	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   　 　  (wkで間違えた訓練例例なので、y(i)wkTx(i)<0）	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ≦kR2	  	
  上記２つより	
  kR2≧|wk+1|2	
  ≧	
  |wTk+1u|2	  ≧	
  k2γ2	  ⇒	
  (R/γ)2	
  ≧	
  k	
  

Passive Aggressive[Crammer, JMLR 06]l

マージン学習のオンライン版
l SVMと同じhinge lossを利用
ll

次の２つの条件を満たす重みwを探す	  l 現在の訓練例(x,	  y)を正しく分類	
  
l

l

Gmailの優先トレイの学習でも利用 [Aberdeen LCCC 2010]	
  

今までの重みベクトルwiに近い	
  (=	
  これまでの訓練例を正しく分類）

wi+1	
  =	
  argminw	
  |w-­‐wi|2/2	
  +	
  C	
  L(x,	
  y,	
  w)2	  l

但し、L(x, y, w) = [1 – ywTx]l

この問題は閉じた式で得られる(hinge–loss)

Passive Aggressive (続）wi+1 := wi + y l(x, y, w)/(|x|2 + 1/C) xlPAの最適化問題は閉じた解を持ち、次のように更新可能
l
l
l

E	
  =	
  1	
  
α=	
  L(x,	
  y,	
  w)	
  /	
  (|x|2	
  +	
  1/C)	
  	
  
A	
  =	
  I	
  

更更新式
wi+1 := wi + αAxlα∝L(x, y, w)であり、誤った割合に比例した更新幅を使う

Confidence Weighted Algorithm (CW)[K. Crammer, et. al, EMNLP 09]l

重みwがガウス分布N(μ,	  Σ)に従って分布しているとする
μ∈Rmは現時点で最良良の重みベクトルl Σ∈Rmxmは各重みの確信度度を表す共分散⾏行行列列l

従来の更新例	

wi	
1.7	

単一のパラメータに足し引きするだけ	
0.6	

CWの更新例	

wi	

N(1.7, 0.5)	

N(0.6, 0.4)	

パラメータ自体が分布を持っている（パラメータ間も）	

CW（続）
PAと同じように次の２つを満たす分布（μ, Σ)を探すl 現在の訓練例例を正しく分類l 今までの分布に近い（KL-Divergenceの条件で）
l arg	  minμ,	  Σ	
  DKL(N(μ,	
  Σ)	
  ||	
  N(μi,	  Σi))	
  	
  	
  s.t.	
  Prw〜～N(μ,Σ)[ywiTx	
  ≧	
  0]	
  ≧	
  η	
  
l

l この最適化問題は閉じた解を持つ

E, α, Aをx, y, μ, Σに関して閉じた式で与えることができる
l PerceptronやPAと比べると複雑な式
ll

⾼高い学習効率率率l 自然言語処理の多くのタスクでは１回データを回すだけで収束	[K. Crammer, et. al, EMNLP 09]	殆んどのタスクで既存のオンライン学習のみでなく通常の学習器より⾼高精度度

News Groupsのトピック
Amazonレビューの上位７タイプ
Amazonレビューの上位タイプ
EnronのUser Aの上位10フォルダ
EnronのUser Bの上位10フォルダ
NewYork Times 	Adaptive Regularization of
Weight Vectors (AROW) [Crammer NIPS+ 09]ll

CWは訓練例例にノイズがある場合に急激に性能が劣劣化
l 更更新式では今の訓練例例を必ず分類するようにしているため学習時に三つの条件を同時に考慮し最適化
条件1: 現在の訓練例例を正しく分類
条件2: 今までの分布に近い（KL-Divergenceにおいて）

条件3: 各特徴のConfidenceを更更新毎に上げるarg	
  minμ,	  Σ	  	
  DKL(N(μ,	
  Σ)	
  ||	
  N(μi,	  Σi))	
  +	
  λ1L(x,	
  y,	
  μ)	
  +	
  λ2	
  xTΣx

条件2	
l

条件1	

条件3	

E, α, Aは閉じた式で求めることができる

CWでは1が常に最優先

AROWの実験結果

ノイズ 0%	

ノイズ 10%	

l

左上にあるほどAROW > CWl

ノイズ⼤大⇒AROWの精度度>CWの精度度

ノイズ 30%	

NHERD[Crammer+ NIPS 10]ll

重みベクトルwがガウス分布N(μ, Σ)に従って分布しているとする
各重みベクトルをそれぞれPAの条件に従って更更新した後にこれをガウス分布で近似する
l CWの場合は、現在の分布にKL-divergenceで近い分布で正しく分類できるものを探していたがNHERDはマハラノビス距離離上でのユークリッド距離離ll

NHERDは重みベクトルの群れ(HERD)を正規化しながら更更新

α, E, Aは閉じた式で求めることができる
l AROWと比べると積極的な更新を行う

NHERDの更更新例例μ	  =	
  (0,	
  0)	
  ,	
  Σ	
  = I
に訓練例
x = (1, 2), y = 1
を与えた時の更新の様子
青は|w|=1, 緑は|w|=2の重みベクトルの集合
真ん中の線は正しく分類、上側のdash線はマージン1で
正しく分類[Crammer+ NIPS 10]	

線形識識別器のまとめ
Given (x,	  y)	  If ywTx	
  <	  E	
  thenw := w + αAx
Update(A)v	
  =	
  xTΣx	
  b	
  =	
  1.f	  +	  2ywTxC	
  	
  
γ	
  =	
  	
  (-­‐b	
  +	
  (b2-­‐8C(ywTx	
  –	  Cv))1/2)	
  /	
  
4vC	
  
β	
  =	
  (v	
  +	
  r)-­‐1	E

αUpdate(A) (arr :=)Perceptron

0

1

1

PA (PA-II)

1[1-­‐ywTx]	
  /	
  (|x|2	
  +	
  1/C)	
   1

CW

γ

γ

(arr-­‐1	
  +	
  2γ	
  xr)-­‐1AROW

1[1-­‐ywTx]β

arr	
  –	
  β(arrxr)2

NHERD

1

[1-­‐ywTx]/(v	
  +	
  1/C)(arr-­‐1	
  +	
  (2C	  +	  C2v)xr2)-­‐1

いずれのアルゴリズムも更新時間はO(|x|0)	
  確率率率的勾配降降下法(SGD: Stochastic Gradient Descent)l

従来の勾配降降下法l F(w)を最⼩小化するwを求める際、勾配  v =∂F(w)/∂w を求めw := w – τv と更更新ll

τ>0 は学習率率率と呼ばれる．

SGD:確率率率的勾配降降下法l ∂F(w)/∂w を⼀一部のデータから得られた勾配で近似  v’ := ∂F(w)/∂w
その情報を元にwを更更新  w := w – τv’ll

例例えば、1〜～128事例例からvを計算

SGDの⽅方が圧倒的に学習速度度が速い。なぜか？

48	

SGDが速い理理由l

SGDは最適解から離離れている時にはとても速いl 通常の勾配降降下法と⽐比べて数倍から数百倍速いl

少数のサンプルから求められた勾配を使っても、今の位置よりは良良い領領域にたどり着くのに⼗十分な情報l

少ない計算量量で⼤大雑把な勾配を求め、更更新回数を多くする

現在のパラメータ	

現在のパラメータが最適解と離れている場合、勾配の方向は十分に一致する	
各訓練事例の損失関数から得られる勾配方向 ∂L(f(x; w), y)/∂w 	

49	

より実践的な機械学習へ (1/2)
l

機械学習の研究分野ではベンチマーク性能への固執、評価関数の優位性、応⽤用との乖離離が指摘されている  [K. L Wagstaff ICML12]l

必ずしも機械学習に限った話ではないが・・

50	

より実践的な機械学習へ (2/2)
l

今後は以下の研究課題も検討するべきl

ある問題が与えられた時どのように機械学習として定式化するか？
データ収集をどのように⾏行行うか、どのように正解を作るか？
データから、いかに特徴量量を抽出するか？

l
l
l
l
l

複数の学習/推論論アルゴリズムが存在する時、どれを選ぶか
結果をどのように解釈するか
世の中の問題における実際の要求スペックを満たせるかll

サイズ、速度度、リソース、安定性、可⽤用性、分かりやすさ

開発コストとリターンをあらかじめ予測できるか

51	

機械学習を利利⽤用する時の注意l

機械学習をツールとして利利⽤用する際の注意を
これまでの経験からいくつか紹介する

1.

データを増やす >> ⼿手法を頑張る
最新のデータを使う

2.
3.
4.

データを実際に観察する疎なパラメータ、密なパラメータ群で適切切な計算を⾏行行う52	

1. データを増やす >> ⼿手法を頑張るl“⼤大量量のデータによる学習は、賢い学習⼿手法を凌凌駕する”

l

学習データ量量を増やすことによる精度度の改善は、学習アルゴリズ
ムの改善を凌凌駕する場合も多いl 統計的機械翻訳、⾳音声認識識、画像認識識、コンピュータ将棋など
l

例例えば、機械翻訳で⾔言えば正解事例例（対訳⽂文）の量量の対数に精度度（BLUEスコア）は⽐比例例する

l

データ量量の勝負にするところまで問題を頑張り、データ量量を圧倒的に増やし、改善する53	

2. 最新のデータを使う
l

例例えばレコメンドの場合、ユーザーの要求は直近の情報により現れているl

性別 　 　 　 　 　 　 　 　 　 　 　  “⼥女女性”
過去に最も⾒見見たジャンル            “化粧品”

l
l
l
l

クエリ⽂文字列列                                          “チョコ”
直前に⾒見見たページ遷移列列            “ミッキーマウス  ⼿手作りチョコ”
⾒見見ている時間                                          “2/13 19:00”

直近の情報を利利⽤用できない場合
どんな⼿手法を利利⽤用しても予測することは不不可能
54	

新鮮な
データ	

3. データを実際に観察するl

機械学習をする際に、その⽣生データの⾒見見たことがない⼈人が多いl 与えられたものをブラックボックスとして扱っているl

⽣生のデータを観察し、中⾝身を確認する
l 必要に応じて、データの要約、可視化も必要ll

1000ぐらいのデータだったら全部⽬目でみてみる

分類結果も⾒見見てみるl

正解が間違っている、分類軸が間違っている、評価軸が間違っている場合も⾮非常に多い

55	

4. 疎なパラメータ、密なパラメータへの対応
l

パラメータの性質に合わせて⾼高速化を図る
l 数⼗十倍から数千倍、速度度が変わってくるl

疎なパラメータの場合l ⾃自然⾔言語処理理/画像認識識/⾏行行動履履歴があるl 数千万次元中、1〜～100程度度の値だけが⾮非ゼロll

⾮非ゼロの要素数に⽐比例例する計算⼿手法を活⽤用する

密なパラメータの場合l 冗⻑⾧長な場合が多い、これを排除して⾼高速化するl

まず特異異値分解を⾏行行い、上位の特異異値に属する要素だけを利利⽤用するl

乱択化SVDなどを利利⽤用すれば、特異異値の近似は1万 x 1万程度度の上位10個の特異異値分解は0.5秒で求められる (c.f. redsvd）

l

特異異値分解された上で様々な計算を⾏行行う、殆ど精度度に差があい
56	

発展編

57	

機械学習はスケーラブルかつリアルタイムにl

Jubatusは２つの流流れを融合している
Online	  ML	
  alg.	
  Structured	  Perceptron	
  2001	
  PA	
  2003,	
  CW	
  2008	  リアルタイム	  オンライン

Jubatus	
  	
  2011-­‐	
  

小規模	
  
単体	
  

大規模	
  
分散並列	
  

Mahout	
  
	
  	
  	
  	
  	
  2006-­‐	
  

WEKA	
  
 　	
  	
  1993-­‐
SPSS	
  
	
  	
  	
  	
  	
  	
  1988-­‐	  Batch	  58	JubatuslNTT  SIC*とPreferred  Infrastructureによる共同開発

l

OSSで公開  http://jubat.us/

リアルタイム  
ストリーム

分散並列列

*  NTT研究所  サイバーコミュニケーション研究所 　ソフトウェアイノベーションセンタ
59

深い解析

特徴1:  リアルタイム  /  ストリーム処理理l

様々な処理理をリアルタイム、ストリームで処理理l 解析結果は、データ投⼊入後すぐ返って来るl

データを貯めることなく、その場で処理理l

学習モデル更更新もリアルタイムに⾏行行うl

twitterの内容を分析して分類するのは6000QPSl

従来バッチで処理理していた様々な解析をリアルタイム・ストリー
ムで同様の精度度で処理理できるよう、新しく解析⼿手法を開発

分析モデル

分析モデル

従来：バッチ処理理

60

Jubatus：ストリーム処理理60

特徴2:  分散並列列処理理ll

スケールアウト：ノードを追加することで、性能向上ができるl 処理理量量に応じてシステムの⼤大きさを柔軟に変更更可能l

⼩小さいデータから⼤大きなデータの処理理まで同じシステムで処理理l

耐故障性も確保

各ノードが完全に独⽴立立な処理理なら簡単だが、それぞれが情報を蓄積し、それらを共有して処理理するのは⼤大変⇒ 　モデルの緩やかな共有で解決（後述）61

特徴3:  深い解析l

単純な集計、統計処理理だけではなく、分類・近傍探索索・グラフ
解析・外れ値検出など様々な機械学習⼿手法をサポートll

ユーザーはデータを投⼊入すればこれらの分析処理理を実現できる

⾮非定形データを扱えるように、データからの特徴抽出もサポート
l

多くの機械学習ライブラリはここがサポートされていないl

特徴抽出はプラグイン化され、テキスト、画像、センサ、映像など様々な種類の情報を扱えるように

62

問題：分散とオンラインの融合は困難
オンライン学習	

バッチ学習	
Learn	
  モデル更更新時で同期をとり	
  並列列化は容易易

Model	
  Update

Learn

	
  

	
  

Model	
  update
Learn
Model	
  update
Learn

Learn

Time	

更更新が頻繁なので並列列化は困難

Model	
  Update

Model	
  update
Learn
Model	
  updatel

オンライン学習は頻繁に更更新する	  l

オンライン学習をそのまま分散化した場合、モデルの同期コストが	  ⾮非常に⼤大きくなってしまう	  63	

解決：緩やかなモデル情報の共有ll

Jubatusは各サーバーのモデル情報を「緩やか」に共有する
データ⾃自体は共有せず、モデルのみ共有するll

既存システムと違う割り切切り

全サーバー間で同時刻に同じモデルが存在することは保証しないl サーバー毎に解析が（実⽤用上問題が無い程度度に）異異なることを許容l

時間が経つにつれ、モデル間の情報は共有されていく
お互いのモデル情報をmixして共有

異異なるサーバー間で解析結果は似ているが共有されない64

Jubatusの優位性：
M2Mデータ解析に重要な機能を揃えるl

従来のデータ分析システムと⽐比較したJubatusのアドバンテージ

Jubatus Hadoop

重要度度：
⾼高い

CEP RDBMS

◎

対象外

○

○
Mahout

✕

○

✕

◎

✕

分散
機械学習

◎

○
Mahout

✕

✕

オンライン
機械学習

◎

✕

✕

✕

⼤大規模
データ蓄積

対象外

バッチ
機械学習
ストリーム
処理理

HDFS/HBase

65

○
中規模まで

◎

SPSS等

CEPとJubatusの⽐比較
CEP	
l

l

Jubatus	

複雑なロジックを組むことはでl

様々な深い分析を⾏行行うことが可能

きず、ドメイン知識識に基づいた

l

ルールはデータから⾃自動獲得する

ルールの設定が必要

l

データや環境の変化に対応

その後も状況の変化とともにルl

サーバー間で解析モデルを瞬時ールのメンテナンスが必要
l

に共有

サーバー間のデータ共有は困難

66

HadoopとJubatusの⽐比較
Hadoop	lJubatus	

データ分析基盤を更更に実現しなl

ければならないll

あらかじめデータ分析に必要な機能が備わる

データ解析は全処理理終了了時に得l

データ解析は瞬時に実現

られる

l

分散によるオーバーヘッドは殆様々なエコシステムが存在、プど存在しないレイヤーは多いl

67

各モデルはローカルに保存MahoutとJubatusの⽐比較
Mahout	Jubatus	l

バッチ機械学習をサポート

l

オンライン機械学習をサポート

l

分散並列列化されているのは⼀一l

全ての処理理が分散並列列化部で、スケーラブルではない

l

同じ開発コミュニティが継続的

l

実装のクオリティはまちまちでにメンテナンスし、改善あり、統⼀一感はなく商⽤用レベル
ではない

68

Jubatusの機能概要ll

Jubatusでは様々な分析⼿手法をサポート
l 多値分類・回帰
l

統計

l

近傍探索索

l

グラフ解析

l

外れ値検出

これらを組合せることにより、多くの課題を解決が可能l スパムフィルタ（メール分類）l

電⼒力力消費量量予測（回帰）l

ユーザー属性推定（レコメンデーション）l

ログからの異異常検知（外れ値検出）l

攻撃の標的になりやすいハブノードの発⾒見見（グラフの中⼼心性）
69

多クラス分類・回帰l ⼊入⼒力力xに対し、出⼒力力yを推定する

l 正解データ{(x, y)}を利利⽤用しxからyの関数を学習

タスク

⼊入⼒力力x

出⼒力力y

メール分類

メール

スパム or 普通 or 重要等

Twitterのユーザー分析

Tweet

ユーザーの性別、職業、年年齢など

電気使⽤用料料需要の予測

パケット

各サーバーの予測使⽤用量量（連続値）

広告のコンバージョン予測 アクセス履履 クリック、コンバージョンするか
歴、広告
監視カメラ解析

監視カメラ 部屋の状態（明かりがついている？
画像
⼈人がいるか？など）
70	

近傍探索索を⽤用いた推薦（レコメンド）機能l

分散＋リアルタイム＋深い解析はレコメンドでも実現！

l

分散：データは分散環境で管理理され、スケーラブルlリアルタイム：登録したデータは即時に、推薦対象となる.
推薦結果はすぐに返って来るl

深い解析：各データはデータから特徴抽出を⾏行行った上で類似度度計算

膨⼤大なデータの中から似たデータを⾼高速
に求める
71	

外れ値検出l

元データが⾼高次元でも⾼高精度度な近傍探索索によって外れ値検出を実現l

アルゴリズム: オンライン外れ値検出アルゴリズムを分散⽤用に改良良l

距離離計算: 裏裏側の近傍探索索機能によって近似的に計算

5

膨⼤大なデータの中から他と似ていないものを⾼高速に発⾒見見

4
3
2
1
0
-5

-3

-1

-1
-2
-3
-4
-5

72

1

3

5

グラフ解析l

点と枝の集合で表されるグラフデータに対し、最短路路探索索、
中⼼心性の計算を提供

l

グラフ中の点や枝の追加、削除、更更新に対応
真の値に近い最短路路経路路を⾮非常に⾼高速に求める
中⼼心性の計算も⾼高速に求める

l
l

◆SNS

出典：http://idc.7-‐‑‒dj.com/sns/feat.html◆インターネット

出典：http://www.soumu.go.jp/
main_̲sosiki/joho_̲tsusin/security/kiso/
illust/internet.gif  

73

◆交通

73	

出典：www.mlit.go.jp/common/000057575.pdf

Jubatusの基本操作	
  UPDATE,	
  ANALYZE,	
  and	  MIX
UPDATEl データを受け取り，学習操作を⾏行行いローカルモデルを更更新
2. ANALYZEl データを受け取り，ローカルモデルを利利⽤用し分析結果を返す
3. MIX (automatically executed in backend)l 複数のローカルモデルを混ぜ，その結果を返す
1.

l
l

C.f. Map-Shuffle-Reduce operations on Hadoop
アルゴリズム設計者は次の問題を気にする必要はないl

分散ロジック

l

データ共有

l

対故障性
74	

UPDATEl

データは任意のサーバーに送られる	
  
データに基づきローカルモデルがアップデートされる	  l

データは共有しないlDistributed
randomly
or consistently 	

75	

Local
model
1

Initial
model

Local
model
2

Initial
model

MIX

l

各サーバーはローカルモデルの差分を送る	
  モデルの差分はマージされ、再度度配布される	  l

モデルの差分はモデル⾃自⾝身と⽐比べ⾮非常に⼩小さく転送コストは⼩小さい	
  

l

Local
Model
Initialmodel =	 diffmodel -	
1
1
Local
Model
Initialmodel =	 diffmodel -	
 2
2

Model
diff
1

Merged
+	
 =	
 diff
Model
diff
2

76	

Merged Initial
Mixeddiff +	
model =	model

Merged Initial
Mixed
model =	model
diff +	UPDATE	  (iteration)ll

各サーバーはMIX後のモデルから学習を⾏行行う	  MIX後のモデルは全サーバーの情報を持っており徐々に改善される	  Distributed
randomly
or consistently 	

77	

Local
model
1

Mixed
model

Local
model
2

Mixed
model

ANALYZEll

データは各サーバーにランダムに送られる	  各サーバーは、ローカルモデルのみを元に分析を⾏行行う	
  
l

l

他のサーバーへの問い合わせは行わず，全てローカルで処理	  結果はクライアントに返される

Distributed
randomly

Mixed
model
Return prediction
Mixed
model
Return prediction78	まとめ：Jubatusがなぜリアルタイムで処理理できるか
1. オンライン機械学習を採⽤用している	  lオンライン機械学習を分散化するための手法は開発	
  

2. UPDATE処理理はローカルに⾏行行わる	  lUPDATE時に他のサーバーとの通信は必要ではない	  3. モデル情報のみをMIXする	  l

MIXは小さく、転送コストは小さくなり、低レイテンシで共有可能	  4. ANALYZE処理理はローカルに⾏行行われる各サーバーはMIX後のモデルを持ち，他に問い合わせしなくても全体の情報をしっている	  l

低レイテンシで推定可能	  

5. 全ての処理理はメモリ上で⾏行行われる	  l

モデル情報は小さくメモリ上で処理可能	  79	

Jubatusの今後
l

l

l

仮説検証を様々なドメインで実施中
l ソーシャルデータl

セキュリティ

l

HEMS  /  BEMS

l

⾞車車

l

特にM2M分野と既存分野の融合領領域

新機能開発l クラスタリング、時系列列解析などのサポートl

秘匿匿化データマイニング，組み込み向けの改良良lドメインに応じた分析⼿手法の開発も可能

⼀一緒にJubatusの可能性を検証できるパートナーを探しています！
80

Deep Learning
深層学習

81	

DeepLearning
深層学習l

機械学習は次の２つのステップからなると説明した
l STEP1 ⼊入⼒力力データからの特徴抽出
l

l

l

STEP2 特徴に対する学習・推論論

特徴抽出は今でもドメイン知識識や⼈人⼿手による試⾏行行錯誤が必要
l ⾃自然⾔言語処理理、画像処理理、⾏行行動履履歴 etc. 毎に異異なる技l

Feature Engineeringとも呼ばれる

l

どれを使うか、どう組み合わせるのか、値はどうするのか

特徴抽出も⾃自動化できないか？
l 特徴抽出は機械学習の実⽤用上なボトルネックl

⼈人⼿手より最適化できないか？

⇒ 　深層学習82	ニューラルネット(NN)の歴史 (1/2)
l

1940年年代頃から何度度もブームがl Perceptron, BackPropagation, …
ll

しかし90年年代頃からの⻑⾧長い冬の時代

2006年年からDeep Neural Netとしての復復活l Hinton, BengioらによるPreTraining とAutoEncoderの登場ll

Ngらによる視覚野の働きに似た画像特徴抽出ll

深い階層を持った場合でも勾配が拡散せず学習できる
⼈人の視覚認識識の仕組みを部分的に再現できた

しかしまだ⼀一部の研究者のみが注⽬目している状況83	ニューラルネット(NN)の歴史 (2/2)
l

2010年年以降降の発展l 多くの分野でのベンチマークテストによる圧勝
l

⼀一般物体画像認識識、⾳音声認識識、薬物活性予測l

これまでのstate-of-the-artを⼤大きく凌凌駕すると共に、
⾮非専⾨門家が達成したことに衝撃l

⼤大規模NNからの教師無学習（後述）lGoogleらがは1000万枚の画像を利利⽤用してパラメータ数が数⼗十億からなる⼤大規模NNを2000台（16000コア）で1週間で学習l

教師無し学習で知識識のようなものが得られる

ブログ記事：「ニューラルネットの逆襲」
http://research.preferred.jp/2012/11/deep-‐‑‒learning/84	

なぜ深層学習がこれほど成功したかlHinton⽈曰く：「Bengioらが90年年代に培った⼿手法」
 　 　 　 　 　 　 　 　+ 「⼤大規模データ」 + 「DropOut」
l

特に⼤大きなブレークスルーがあったわけではないl

学習⼿手法の改善
l PreTraning, AutoEncoder, Dropout, Maxout、学習率率率調整l

実装技術の改善l GPGPUや⼤大規模クラスタの利利⽤用

ニューラルネットはこれまで注⽬目されていなかっただけ 　+ これまでの学習⼿手法の煮詰まり感ll

既存⼿手法（線形分類器、ベイズ、カーネル法）に関してやれることはほぼやった。特徴抽出は⽐比較的⼿手付かず
85	

NNの基礎l

これまで扱ってきた多くの学習器は１層の線形分類器
y

l

w1	

w2	

x1

x2

w3	

w4	

x3

w5	
x4

x5

多層ニューラルネットは、各層が隣隣接層とくっついている
x1
x1

x2
x2

x1
x1

x3
x3

x2
x2

x4
x3

x3

x4

それぞれが⾮非線形関数86	

NNの代表的なアーキテクチャー
l

x1

多層NN
x1

x2
x2

x1
x1
l

x3
x3

x2
x2

x4
x3

x3

x4

Restricted Boltzmann Machine (RBM)l 観測層(v)と隠れ層(h)の間にのみ依存関係がある確率率率分布
h1
v1
87	

h2
v2

h3
v3

v4

NNの⼯工夫１：PreTraining, AutoEncoderll

多層の場合BackPropagation時に更更新項が拡散する問題があった
各層毎の重みをデータからの教師無学習で初期化しておき解決l

元のデータをうまく復復元できるように各層をGreedyに学習⇒ データを段階的に抽象化した表現を得る

出力層	
x’1

x’2

h1
x1

x’3
h2

x2

x’4
h3

x3

入力層	

x4

学習して得られた出力を入力とみなし次の層を同じように学習
これを繰り返す	
⼊入⼒力力層と出力層の値が同じになるように学習＝データの低次元表現を学習	
88	

x’1

x’2

h1
x1

h2
x2

h1
x1

x’3
h3
x3
h2

x2

x’4

x4
h3

x3

x4

NNの⼯工夫2：DropOutll

NNは表現⼒力力の⾼高いモデルなので過学習しやすい
各データ毎の更更新時にランダムに素⼦子の半分を消した状態で学習l

ランダムに各素⼦子の出⼒力力を０とみなす

l

推定時には、各素⼦子からの出⼒力力を1/2にして推定するl これは1層の場合は各学習時の平均に対応するl

過学習を防ぐ役割を果たすl 複数モデルの結果の平均をとっていることに対応l

MaxOutと呼ばれる関数を利利⽤用した場合、多層であってもDropOu
tが良良い近似となり⾼高い学習性能を⽰示すl

現在多くのタスクでMaxOut+DropOutが最⾼高性能89	

学習の⾃自動チューニング
l

ニューラルネットには複数のハイパーパラメータが存在l 各層毎の学習率率率（SGDにおける  θ – μ ∂F(θ)/∂θ のμ）ll

各層のサイズ、つなぎ⽅方

ハイパーパラメーターの調整をしないと簡単に値が“吹っ⾶飛ぶ“l 異異なるハイパーパラメータで複数同時に試してうまくいった組み合わせを選ぶのがこれまでの主流流だったl

学習率率率⾃自動チューニングする⼿手法がいくつか提案される
l

AdaGrad [J. Duchi+, JMLR 2011]l

vSGD-fd [T. Schaul+, Arxiv 2013]90	

DistBelief[J. Dean+, NIPS 13]
非同期での大規模学習をサポート- オンラインの並列学習 (SGD）- バッチ学習の並列学習 (L-BFGS)
Youtubeから得られた 200 x 200の
画像 1000万枚に対して教師無し学習（AutoEncoderと似たRICAと呼ばれる方法でDNNを学習）
次項以降で学習で得られた最上部のニューロンが反応する画像
を紹介

91	

右：学習で得られたニューロンが最も反応する画像
左：このニューロンに反応したテスト画像

92	右：学習で得られたニューロンが最も反応する画像
左：このニューロンに反応したテスト画像

93	

まとめ

94	

まとめ
l

機械学習についての考え⽅方、使い⽅方について紹介したl 機械学習は複数の分野にまたがる境界領領域l

研究から⾒見見た機械学習l 機械学習⾃自体の問題に取りくむ 　⇒ 　多様な問題が各分野で存在ll

機械学習を利利⽤用 　⇒ 　データが存在するところにどこでも適⽤用可能

実践から⾒見見た機械学習l

あらゆる産業分野での実⽤用化が進むl

既存⼿手法（⼈人を含む）を凌凌駕する性能を達成、新しい産業へ

95	

Copyright  ©  2006-‐‑‒2013  Preferred  Infrastructure  All  Right  Reserved.

補⾜足資料料

97	

会社紹介

98	

会社紹介
株式会社  Preferred  Infrastructure
略略称  
代表者

PFI
⻄西川  徹l

設⽴立立  
社員数
所在地

2006年年3⽉月
26名〒113-‐‑‒0033  東京都⽂文京区本郷2-‐‑‒40-‐‑‒1

l

事業概要

l
l
l
l

l

データ解析分野での製品開発,  販売,  サービス提供l

様々な分野においての共同研究開発、共同事業

最先端の技術を最短路路で実⽤用化

リサーチとエンジニアリングの融合
世の中に必要とされる中で特に重要で困難な課題に対し解を提供
99	

Preferred  Infrastructure
メンバー構成l

フルタイム26⼈人中23⼈人がエンジニア/研究者l 以下の情報/理理/⼯工学博⼠士ll

⾃自然⾔言語処理理/機械学習/計算量量理理論論/データマイニング/⽂文字列列解析l

ICPCプログラミングコンテスト  世界⼤大会（=⽇日本代表）  7名

l

未踏プロジェクト  5名lTopCoder世界上位や、世界プログラミングコンテスト優勝者など

各種コミュニティへの働きかけl ⽇日本Hadoopユーザー会⽴立立ち上げ,  ⾃自然⾔言語処理理若若⼿手の会委員⻑⾧長
l

⽇日本語⼊入⼒力力本,  Haskel本,  各種雑誌記事,  専⾨門書

その他、データ圧縮、UI/UX、セキュリティ、分散システム、
ソフトウェア⼯工学など様々な分野の専⾨門家
100

単純ベイズ法（Naïve Bayes)
l

l

p	
  (y	
  |	
  x)	
  ∝	
  p(y)	
  p(x	
  |	
  y)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ∝	
  p(y)	
  Πi	
  p(xi|y)c(xi)	
  ベイズの定理より	
各特徴の生成確率が独立という仮定	

log p(y|x) ∝ log p(y) + Σi c(xi) log p(xi|y) 両辺の対数をとる
wi	

b	
l

log p(y|x) = wTx + bl wiとbはデータからの最尤推定で以下のように求められるl b := C(y) / Σy’C(y’)
llwi := C(xi, y) / C(y)頻度度はデータを操作しながら更更新していけば良良い101