読者です 読者をやめる 読者になる 読者になる

(OCW)機械学習の授業のめもその2

メモ 機械学習 OCW

情報源及び出典、参照元

※上記のページおよびpdf、上記以外の参考文献や関連ページを注釈の形でページ末尾に改めて記載します。

関連する文献

黄色いのがいいです。

前回


(OCW)機械学習の授業のめも - 雑なメモ

次回


(OCW)機械学習の授業のめもその3 - 雑なメモ




第五回授業メモ

生成モデルと識別モデルの違い*1*2
について。そして後ほどベイジアン今回からなるべく板書も灰色の枠に記述することに*3

Discriminative and Generative learning algorithm(識別モデルと生成モデル)

はじめ〜23:00までの映像の内容
  • 識別モデル
    • {p(y|x)}を学習する
    • 言い換えると、[tex{h_{\theta}(x) \in \{0,1\}}]を直接学習する

その一方、

  • 生成モデル

ここで東京大学中川研究室のこちらのページより引用すると

教師あり学習で観測データを分類するにあたって、まず観測データの属性を適当に組み合わせた判別関数を生成する。未知のデータは、この判別関数で分類する。これを識別モデルという。

一方、観測データを生成する確率分布を想定し、観測データからその確率分布を推定する方法を生成モデルと呼ぶ。
引用元:統計的機械学習 | 中川研究室


ベイズの定理(入門編) - Pashango’s Blog



{
 Generative: \\
 p(x|y) : x = feature y = class \\
 p(y = 1|x) = \frac{p(x|y=1)p(y)}{p(x)} \\
 p(x) = p(y=0|x)p(x) + p(y=1|x)p(x)\\
}
板書:映像6:10頃
 ここからさらに生成モデルの詳細を記述。

{
 Assume,x \in R^n ,continuous \ valued \\
 Gaussian Discriminant Analysis \\
 p(y|x) is Gaussian \\
 z ~ N(\vec{\mu},\Sigma) \\
 \mu = 平均、\Sigma = 分散共分散行列\\
 p(z) = \frac{1}{\sqrt{2\pi | \Sigma |^{\frac{1}{2}}}} exp(- \frac{1}{2} (x - \mu)^T \Sigma (x - \mu) ) \\
\\
 \Sigma = E( (x - \mu)(x - \mu)^T )
}
板書:映像9:10頃
 ここからしばらく共分散行列と平均のパラメータをいじったときのガウス分布のグラフのかわり具合を映像で確認する。平均をいじることは分布の頂点の位置をずらすことにつながり、共分散行列*5をいじることは分布の形状(尖り具合、楕円の方向)をかえることにつながることを確認する。そしてニクラスに分類する場合を例にして説明が続く。

So back where we're fitting logistic regression models or generalized linear models, we're always modeling {p(y^i | x^i)} and parameterized by [tex:{\theta}, and that was the conditional likelihood, okay? In which we are modeling [tex:{p(y^i | x^i)} , whereas, now, generative learning algorithms, we are going to look at the joint likelihood which is [tex:{p(y^i , x^i)} , okay?(映像 17:00)

 これまでは{x}が与えられたときの条件付き確率分布{p(y|x;\theta}を考えてきた。例えばロジスティック回帰はクラスを二つにわけるときに入力を一つの空間に写像してそれらを分ける境界線を探して一本線を引く。だけど違うアプローチもある。例えば象(1)と犬(0)を区別するときに、象と犬それぞれに別々のモデルを作って入力データはどちらに”似ている”かを見てクラスを判断することもできる。
 前者(ロジスティック回帰やパーセプトロン)は識別モデル、後者は生成モデルと呼ばれるクラスに大別される。前者は{p(x|y)もしくはp(y)}をモデル化しようとするのに対して後者は{p(x|y=0),p(x|y=1)}を別々にモデル化する。生成モデルでは

  1. {p(y)}*6{p(x|y)}をモデル化
  2. 次にベイズ定理から事前分布*7を求める
    1. { p(y|x) = \frac{p(x|y)p(y)}{p(x)} }
    2. {p(x)_{上式のdenominator} = p(x|y = 1) + p(x|y=0) }
    3. { p(y|x) }を求めるにあたり、分母を計算しなくていいのは今は上の式を最大化する{y}を求めたいのだから{arg max_y p(y|x) = arg max_y p(x|y)p(y)}とできるためと分かる。

Gaussian discriminant analysis*8

以下の質問で紹介されていたページをとりあえず見る、分かりやすかった。

machine learning - What is a Gaussian Discriminant Analysis (GDA)? - Cross Validated



Discriminant Functions For The Normal(Gaussian) Density - Rhea


Discriminant Functions For The Normal(Gaussian) Density - Part 2 - Rhea

ガウス分布に関する導入

多変数正規分布は結局
{
p(x;\mu,\Sigma) = \frac{1}{(2 \pi)^ \frac{d}{2} |{\Sigma}|^\frac{1}{2}} exp  - \frac{1}{2} ({x} -{\mu})^t{\Sigma}^{-1} ({x} -{\mu}) 
}
と書くことができる。そして分散共分散行列を導入。たとえば確率変数ベクトル{Z}に対して

{
 Cov(Z) \\
 = E[ (Z - E(Z) )(Z - E(Z) )^T] \\
 = E(ZZ^T) - (E(Z))(E(Z))^T \\
}
と書くことができる。ここで資料より

You should be able to prove to yourself that these two definitions are equivalent.

とあるので確認する。

{
 E[ (Z - E(Z) )(Z - E(Z) )^T] \\
 = E[ ZZ^T - Z E(Z)^T - E(Z) Z^T + E(Z)E(Z)^T ] \\
 = E[ ZZ^T] - E[Z E(Z)^T] - E [ E(Z) Z^T]  + E[ E(X)E(Z)^T ] \\
 = E[ ZZ^T] - 2 E(Z)E(Z)^T  + E[ E(Z)E(Z)^T ] \\ 
 = E[ ZZ^T] - E(Z)E(Z)^T
}

{
 E[Z E(Z)^T] = E[ \sum z_i (E(z_i)) ] = \sum z_i E(z_i)E(z_i) \\
 E[ \sum z_i (E(z_i)) ]  = E[ \sum (E(z_i)) z_i  ]  =  E[ E(Z)Z^T] 
}

と確認。そして今、上記のような多変数ガウス分布上の確率変数ベクトル{X}{Cov(X) = \Sigma}となる。


f:id:misos:20150213032449p:plain
引用元:cs229-notes2_pdf(3_14ページ)

上の図の一番ひだりが分散共分散行列が単位行列{I}、つぎが{0.6I},一番右が{2I}の場合。つまり値が大きいほど平たい形状になるらしい。そして今度は対角要素以外の値を入れていくと


f:id:misos:20150213033721p:plain
引用;cs229-notes2_pdf(3_14ページ)
対角要素でないものの値が大きくなるほどグラフが円形から圧縮されていく様子がわかる。マイナスになると圧縮される方向がかわる。平均ベクトル{\mu}がかわるとグラフの頂点の位置がかわる。この共分散行列と平均ベクトルの二つで多変数ガウス分布は定義される。

The Gaussian Discriminant Analysis model(GDAモデル)


University of Southern Denmark の講義資料を見つける、機械学習の導入を一通りしているらしく後ほど参照するかもしれない。なぜが日本語のWikiは無かった。Rの解説やパーセプトロンのイメージ動画なども下記ページで公開している。すごいい。
Syddansk Universitet - Wikipedia, den frie encyklopædi
DM825 - Introduction to Machine Learning

 授業内容にそってクラス分類問題を考える。入力値{x}は連続な値をとるとする。GDAモデルを使うことにすると、{p(x|y)}は多変数ガウス分布になって

{
 y ~ 平均 \phi のベルヌーイ分布 \\
 x|y = 0 ~ N(\mu_0 , \sigma) \\
 x|y = 1 ~ N(\mu_2 , \sigma) 
}

と目標値ごとに別々のモデルを立てる(のが生成モデル!識別モデルでは一つの分布にある”境界線”を引いてそれで分けていた...!)。この分布を式で表現すると

{
 p(y) = \phi^y (1 - \phi)^{1 - y} \\
 p(x|y=0) = \frac{1}{(2\pi)^{\frac{2}{n}}| \Sigma |^{\frac{1}{2}} } exp (-\frac{1}{2} (x - \mu_0 )^T \Sigma^{-1} (x - \mu_0)) \\
 p(x|y=1) = \frac{1}{(2\pi)^{\frac{2}{n}}| \Sigma |^{\frac{1}{2}} } exp (-\frac{1}{2} (x - \mu_1 )^T \Sigma^{-1} (x - \mu_1)) 
}

となる。これらのモデルを決定づけるパラメータは{\phi , \Sigma , \mu_0 , \mu_1 }で(ただし、簡単のために分散共分散行列は共通)あり、このときの尤度関数は

{
 L(\phi , \Sigma , \mu_0 , \mu_1) \\ 
 = \prod_i^m p(x^i , y^i ; \phi , \Sigma , \mu_0 , \mu_1 ) \\
 = \prod_i^m p(x^i | y^i ; \phi , \Sigma , \mu_0 , \mu_1 )p(y^i ; \phi)
}
{y}はパラメータ{ \phi }だけで分布が決定する

ずっと前にやったようにこれを最大化する値を探そうとしてもデータ数が大きいと尤度関数=ほぼ0みたいなことになってしまうので尤度関数の対数をとって

{
 \log  L(\phi , \Sigma , \mu_0 , \mu_1) \\
 = \sum_i^m \log p(x^i | y^i ; \phi , \Sigma , \mu_0 , \mu_1 )p(y^i ; \phi) \\
 = \sum_i^m \log p(x^i | y^i ; \phi , \Sigma , \mu_0 , \mu_1 ) + \sum_i^m p(y^i ; \phi)
}

とした式が極大になる点を探す。

{
 \sum_i^m \log p(x^i | y^i ; \phi , \Sigma , \mu_0 , \mu_1 ) + \sum_i^m p(y^i ; \phi) \\
 = \sum_i^m \{(\frac{1}{(2\pi)^{\frac{2}{n}}| \Sigma |^{\frac{1}{2}} } exp (-\frac{1}{2} (x - \mu_0 )^T \Sigma^{-1} (x - \mu_0)))^{y^i} \\ 
   (\frac{1}{(2\pi)^{\frac{2}{n}}| \Sigma |^{\frac{1}{2}} } exp (-\frac{1}{2} (x - \mu_1 )^T \Sigma^{-1} (x - \mu_1)))^{1 - y^i}\} + \sum_i^m \log \phi^{y^i} (1 - \phi)^{1 - y^i}
}

微分していく。結果として


f:id:misos:20150215025950p:plain
引用:cs229-notes2.pdf page6
を得る。ここの計算を自分で出きるようにしないといけない。

GDAモデルとロジスティック回帰の関係*9

 映像がわかりやすく略します。

GDAの特徴

{x|y ~ ガウス分布 ならば\\
 事前分布 p(y|x) はロジスティック分布\\
\\
x|y ~ ポアソン分布 ならば\\
 事前分布 p(y|x) はロジスティック分布\\
}
※逆は必ずしも言えない

注意する点は、以上から「{事前分布 p(y|x) はロジスティック分布}」という仮定よりも「{x|y はガウス分布}」といった方が強い仮定になる。そしてさらに一般化して

{
x|y = 0 ~ 指数型分布族 \\
x|y = 1 ~ 指数型分布族 ならば\\
 事前分布 p(y|x) はロジスティック分布\\
}

である。ここから二つめの生成モデルを紹介。

ナイーブベイズモデル*10*11


ナイーブベイズ分類器を頑張って丁寧に解説してみる - Qiita

二つめの生成モデル。モデル化するために以下の仮定(Naive Bayes (NB) assumption)を仮定する。

{x_i}’s are conditionally independent given {y}
引用:cs229-notes2.pdf

この結果得られるクラス分類機を単純ベイズ分類機(Naive Bayes classifier)と呼ぶ。この仮定を設けることによって

{
 p(x_1,\dots,x_n|y) \\ 
 = \prod_i^{m-1} p(x_{i} | y , x_{i-1}, \dots, x_1) \\
 = \prod_i^m p(x_i | y)
}

と書けるようになる。講義中の講師Ng氏の例に沿って言えば「スパムメールの分類をするとして一通目のメールがスパムだったとして二通目がスパムメールであるかどうかは一通目の結果とは独立して考える」。このモデルを決定するパラメータは

{
 \phi_{i|y=1} = p(x_i = 1 | y = 1 ) \\
 \phi_{i|y=0} = p(x_i = 1 | y = 0 ) \\
 \phi_y = p(y=1)
}

の三つ。(講義53:00ころ)
そして尤度関数は

{
 L(\phi_y,\phi_{i|y=1},\phi_{i|y=0}) \\
 = \prod_i^m p(x^i, y^i) \\
 = \prod_i^m p(x^i | y^i) p(y^i) 
}

この対数をとって(対数尤度関数*12 )、


f:id:misos:20150215033844p:plain
引用元:cs229-notes2.pdf page10

Laplace smoothing


ナイーブベイズを用いたテキスト分類 - 人工知能に関する断創録
上記記事の「ゼロ頻度問題」項に説明がありました。

省略。

参考文献と関連ページ

  • 上記のページおよびpdf以外の参考文献や関連ページ