めも

ゲームの攻略・プログラミングの勉強内容・読んだ本の感想のような雑記を主に投稿するブログです

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

情報源及び出典、参照元

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

関連する文献

黄色いのがいいです。

次回


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




第一回授業メモ


Lecture 1 | Machine Learning (Stanford) - YouTube

主な内容はこのコースでどのようなことを学ぶか、それを使った実際例の紹介でアルゴリズムや理論については第二回から。

Supervised learning(教師あり学習)*1

表記と定義

この授業では以下の表記をする。
{
 x^{(i)} := input-variables \\
 y^{(i)} := target-variables \\
}
input variables(入力値)が実際に得られたデータでありtarget variable(目的値)が自分たちが機械学習を通して予測しようとする値(正しい値)。\\

{
 \{ (x^{(i)},y^{(i)}) | i \in 1, \dots, n \} = training set
}
training setは訓練集合。入力値とそれに対応した正しい値のペアを集めた集合。

  • regression/回帰*2
    • target variableが連続値をとるとき、その問題はregressionと言う。
  • classification/クラス分類*3
    • target variableが離散値をとるとき、その問題はclassificationと言う。

Learning theory/学習理論

Algorithmic learning theory is a mathematical framework for analyzing machine learning problems and algorithms.*4

今は省略、学習をするのにどれほどのデータ数が必要なのか?などの決定に必要。

The Cocktail Party Problem


The Cocktail Party Problem - BrainFacts.org

第一回の補足資料からのメモ

なし。
(第一回おわり)


第二回授業メモ

内容は

  • 線形回帰
  • 最急勾配法(gradient descent)*5
  • 正規方程式(最小二乗法)

線形回帰


f:id:misos:20150211145058p:plain
(引用:cs229-notes1_pdf(3_30ページ))
上のデータを例にして話を進める。

新しい表記の導入

{
 m = 訓練集合の要素数\\
 x = 入力変数でありデータの”特徴”を示す\\
 y = 出力変数であり目標値を表す\\
 (x^{(i)},y^{(i)}) = 訓練集合の一要素 \\
}

学習アルゴリズムのモデル化

{
 X := x^{(i)}の存在する空間 \\
 Y := y^{(i)}の存在する空間
}
としたら、適切な写像
{
 X \mapsto Y : h(x)
}
を見つけるのが機械学習の目的。そして慣例に従ってこの関数をhypothesisと呼ぶ。つまり機械学習を簡単にモデル化すると


f:id:misos:20150211113659p:plain
cs229-notes1.pdfのpage2より図を引用

と書くことができる。この例では入力データは二次元だから写像h

{
 h_{\theta} (x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2
}

と書くことにする。さらに簡単にするためにダミーの値{x_0}を導入すれば、この式を簡略化して

{
 h_{\theta} (x)  = \sum_{i=0}^2 \theta_i x_i = \vec{\theta}^T \vec{x}^T
}

と書ける。この授業ではベクトルに矢印をつけない(しこの記事でもつけない)から文脈に従って適切に判断する。この授業ではしばしば{n}は特徴数、つまり入力データの次元数。

{{\theta}_i}写像{ X \mapsto Y : h(x)}をコントロールする変数であり、パラメータと呼ぶ。

どのように学習するのか

 学習するために{y}に近いことを表す指標がほしい。ここでは指標の一つとしてcost function:

{
 J(\theta) = \frac{1}{2} \sum_i^m ( h_{\theta} (x^{(i)}) - y_i )^2
}

を定義する。この値が0に近いほど良い学習アルゴリズムである。つまり学習アルゴリズム{min_{\theta} J(\theta)}となるパラメータを探す。それを探す一つの方法が最急勾配法(gradient descent)である。

最急勾配法(gradient descent)

定式化すると、
{
 \theta_{i+1} := \theta_{i} - \alpha \frac{d J(\theta)}{d \theta_i}
}
を繰り返すことでパラメータの値を更新する。

{\frac{d J(\theta)}{d \theta_i}}は最も増加する方向へのベクトルなのだから、{- \alpha \frac{d J(\theta)}{d \theta_i}}は最も減少する方向へのベクトルでこのアルゴリズムを繰り返せば目的関数を最小化できる。しかし最急勾配法は「初期値によって収束する場所が違う」場合が存在するし、だから必ずしも最適解がもとまる訳ではない。つまり求まるのは大域最適解ではなく局所最適解が求まる。

ここで板書にて”訓練集合がただ一つの要素しかもたない”場合の例を示す。(32:00頃)


f:id:misos:20150211153305p:plain
引用元:cs229-notes1_pdf(4_30ページ)

{
 \alpha := 学習率(learning parameter)
}
であり、どれくらいのステップで学習するかを定めるパラメータ。この例から授業のはじめに例に挙げた訓練集合の学習アルゴリズムのためのcost functionに対する最急勾配法の式は

{
 \theta_i := \theta_i + \alpha \sum_i^m (y^{(i)} - h_{\theta}(x^{(i)}) ) x_i^{(i)}
}

と書くことができる。

Stocastic gradient discent(確率的勾配降下法)*6


f:id:misos:20150211154650p:plain
引用:cs229-notes1_pdf(7_30ページ)

 最急勾配では一ステップのたびにすべてのデータについてコスト関数をけいさんするから一ステップで{O(m)}かかるが、Stocastic gradient discent(確率的勾配降下法)では毎回一つのデータに対してしかコスト関数を計算しない。

勾配ベクトルの導入*7

省略。コスト関数{J}の勾配ベクトルを導入。

 次に行列の微分を定義する。詳細はMITの資料*8を参考にした。以上の知識を知っていれば講義の50分以降はかなり飛ばしてみれる。今までに導入した最急勾配法やコスト関数を行列で表現して簡潔に表す。その結果


f:id:misos:20150211155950p:plain
引用:cs229-notes1_pdf(11_30ページ)

と書き表すことができる。行列{X}{i}行は {(x^{( i )})^T} 、つまり訓練集合の入力値である。{\vec{y}}は目標値のm次元ベクトルである。ここからある訓練集合がが与えられたときの最小二乗のコスト関数を最小にするパラメータは

{
 X^T X \theta = X^T \vec{y}
}

と求めることができる。

第二回の補足資料*9からのメモ

  • ordinary least squares(最小二乗法)*10

 コスト関数の式の一般名称。これはさらに広いアルゴリズムのクラスの特別な場合であり後ほど分かる。最急勾配法では訓練集合がたった一つのときを例にとってパラメータベクトルのj要素の更新は

{
 \theta_j := \theta_j + \alpha (y^i - h(x^i)) x_j^i
}

と書くことができる。これはWidrow-Hoff learning rule*11として一般的に知られている。

Widrow-Hoff learning rule

この規則には以下の性質があり、それらは直感的にも合致する。

  • 目標値{y^i}に近い{x^i}はパラメータの変更をほとんどしない
  • 目標値{y^i}から離れた{x^i}はパラメータを大きく変更する

ただし最急勾配法は一般に局所最適解に収束するがそれが大域最適解とは保証されていない、大域最適解がただ一つ存在するならば最急勾配法は常に同じ値に収束すると言える。以下は二次関数に対して最急勾配を適用したときの軌道。

stochastic gradient descent(確率勾配)

 batch gradient descentが全体のデータを一回パラメータを更新するたびにとりこんで計算するたびに対して、stochastic gradient descent(確率勾配)はデータをひとつ取り込んでそれに対してパラメータを補正をすべてのデータに大して繰り返す。この手法は概して全体のデータを一回パラメータを更新するたびにとりこんで計算するのと十分”近い”解をだす。一ステップの計算時間は{O(1)}となる.


正規方程式を記述するための行列の導入


f:id:misos:20150211173035p:plain
引用:cs229-notes1_pdf(9_30ページ)
 これらの行列について、{B \in R^{n×m}}とする。{A \in R^{m×n}}ならば{AB \in R^{m×m}}だから{AB}に対してはトレースが使用できる。トレースしたら{tr(AB) = k \in R}一次元の値になるのだから{f(A) = tr AB}と定義することができる。そして{ [ \nabla_A f(A) ]_{ij} = {B^T}_{ij} }と一つ目の等式から言える。

 さらに計画行列(design matrix)*12を定義する。計画行列{X \in R^{m×n}}はn個の特徴をもついとつの入力値を行に対応させたもの。{\vec{y}_i = x^i の目標値}と定義したベクトル{\vec{y}}を用いれば、


f:id:misos:20150211174513p:plain
引用:cs229-notes1_pdf(10_30ページ)

と書くことができる。さらに最少二乗法の式は

{

\frac{1}{2} \sum_i^m ( h_{\theta} (x^i) - y^i )^2 = \frac{1}{2} ( X \theta - \vec{y} )^T ( X \theta - \vec{y} )

}

と簡単に記述できる。以上の記述と公式を用いると


f:id:misos:20150211155950p:plain
引用:cs229-notes1_pdf(11_30ページ)

と式を変形できる。コスト関数の勾配が0になる箇所が極値をとるのだから=0として

{
 X^T X \theta = X^T \vec{y}
}

なのだから

{
  \theta = (X^T X)^{-1} X^T \vec{y}
}

(第二回おわり)

  • 単語
    • intercept term:切片項
    • ordinary least squares:最小二乗法


第三回授業メモ


回帰問題において最小二乗和をコスト関数に用いる確率的な解釈

 この項では目標値と入力値の関係を
{
 y^i = \theta^T x^i + \epsilon^i
}
とモデル化する。{\epsilon^i}は目標値と入力値の誤差を表す項(error term,モデル化されないような値やランダムノイズ)と見れる。そして{\epsilon^i}平均{0},分散{\sigma^2}の独立で同一の分布に従うと仮定する。すると誤差{\epsilon^i}を含む確率は

{

p(\epsilon^i) = \frac{1}{\sqrt{2\pi\sigma^2}} 
 exp(- \frac{1}{2} (\frac{\epsilon^i - 0}{\sigma})^2 )

}

と書くことができる。この事実と{y^i - \theta^T x^i = \epsilon^i}であることから

{

p(y^i | x^i ; \theta) = \frac{1}{\sqrt{2 \pi \sigma^2}} exp ( - \frac{1}{2} (\frac{y^i - \theta^T x^i}{\sigma})^2 )

}

と導ける。コロンを使うのは{\theta}が確率変数では無いことに気をつけるため。

尤度関数*13の導入

 上記の式を用いて、ある計画行列と目標値のベクトルが与えられたとき(つまりある訓練集合が与えられたとき)、尤度関数は


{
  L(\theta) = \prod_i^m p(y^i | x^i ; \theta )
}

と書くことができる。このままではデータ数が多いと尤度関数はとても小さな値になってしまうから計算に都合のいいように対数をとって


f:id:misos:20150212002149p:plain
引用:cs229-notes1_pdf(13_30ページ)

と書く。するとこの式を最大化するには{\frac{1}{2} \sum_i^m ({y^i - \theta^T x^i})^2}の項を最小化する必要があることが分かる。この式はまさに最小二乗和の式

分類問題*14(classificatin problem)(映像50:00頃から)

 つまり、ここからは目的値が離散値をとる。資料はこれ*15。簡単のためにbinary classification problem*16,つまり{y^i \in \{0,1\}}となるものを考える。以下では目標値{y^i \in \{0,1\}}に付いて、

  • {y^i = 0} : negative class
  • {y^i = 1} : positive class

と呼ぶことにする。

ロジスティック回帰*17

 目標値が離散で特にいまは1か0の場合を考えている、この時(講義中での説明にあるように)すごく簡単に「今までの線形回帰を適用してもあまり正確に事象を捉えられていない」例を作ることができる。それにこれまででは{h_{\theta}(x^i)}の定義域は明確ではなかった(からすごく大きな値や小さな値をとれる場合もあった)けれど今は目標値が0か1でしか無いのだからこの写像hを替えたほうがいいと考える。そこでシグモイド関数*18を導入して

{
 h_{\theta}(x^i) = g(\theta^T x^i) = \frac{1}{1 + e^{-\theta^T x}}
}

と定義する。このシグモイド関数{g}には


f:id:misos:20150212011521p:plain
引用:cs229-notes1_pdf(17_30ページ)
という特徴をもつ。このシグモイド関数を用いて以下の仮定をする。

{
P(y=1 | x;\theta) = h_{\theta} (x) \\
P(y=0 | x;\theta) = 1 - h_{\theta} (x) \\
}

と考える。これらの仮定を一まとめにひとつの式

{
 p(y|x;\theta) = (h_{\theta} (x) )^y (1 - h_{\theta} (x) )^{1 - y}
}

と記述することができる。さらに今データは独立して得られると考えると計画行列{X}と目標値ベクトル[tex{ \vec{y} }]が与えられたら尤度関数は

{
L(\theta) \\
 = p(\vec{y} | X ; \theta) \\
 = \prod_i^m p(y^i |x^i;\theta) \\
 = \prod_i^m (h_{\theta} (x^i) )^{y^i} (1 - h_{\theta} (x^i) )^{1 - y^i} \\
}

と記述できて、この対数をとると

{
 \log L(\theta) \\
 = \sum_i^m \{ y^i \log h_{\theta} (x^i) + ( 1 - y^i ) \log (1 - h_{\theta} (x^i) )\}
}

とできる。この式の最大化をするためにΘに関して微分をすると


f:id:misos:20150212013843p:plain
引用:cs229-notes1_pdf(18_30ページ)
とできて確率的勾配降下法*21の式にあてはめると

{
 \theta_i := \theta_i + (学習率)(y^i - h_{\theta})x^i) ) x_j^i
}

とパラメータを更新していけばいいと分かる。これは線形回帰のパラメータの確率勾配を用いた更新とまったく同じ形の式(だけどアルゴリズムとしては違う、なぜなら関数{h}の定義を変えているから)。これが同じになる理由は一般線形モデル*22に関する説明で後ほど分かることになる。

(第三回おわり)


第四回授業メモ


最急勾配とニュートン法について

  • 講義の16:30までの内容
    • ニュートン法の紹介
    • 収束の速さが最急勾配と違うことの紹介
    • ヘッセ行列の紹介


最適化:非線形計画について(最急降下、ニュートン、KKT条件)とNP困難問題に対する動的計画法 - 雑なメモ

最適化:非線形計画+組み合わせ最適化のまとめのメモ - 雑なメモ
このあたりに書いた気がするので省略します。

一般線形モデル( generalized linear models )*23

  • 復習(recap)
    • 目標値{y}が連続値→最少二乗のコスト関数
    • 目標値{y}が離散値0,1→ロジスティック回帰

... what I want to do now is show that both of these are special cases of the cause of distribution that’s called the exponential family distribution. And in particular, we’ll say that the costclass of distributions, like the [inaudible]Bernoulli distributions that you get as you vary theta, we’ll say the costclass of distributions is in the exponential family if it can be written in the following form. P of Y parameterized by theta is equal to B of Y [inaudible](映像の板書みればわかる、22:00頃), okay.
こちらより一部改編して引用*24

 つまり今までにでてきたベルヌイ分布やガウス分布はすべて指数型分布族のなかの一部であって今からそれについて紹介するということ。

Exponential family(指数型分布族)*25

 なんと日本語のWikiが存在しなかった。なので関連するページをメモ。そのあと自分なりに書くも多分間違いある。



指数型分布族とはなんぞ - Fire and Motion
指数型分布族のメモ | singular point

 指数型分布族に含まれる分布は一般的に以下のような式で記述することができる。

{
 p(y ; \eta) = b(y) exp (\eta^T T(y) - a(\eta) ) 
}

この式の中のパラメータを指定した特別な場合がこれまでに出てきたガウス分布やベルヌーイ分布。そしてそれらのパラメータを

  • {natural parameter : \eta }(自然パラメータ)
  • {sufficient statistic : T(y) }(十分統計量*26

と記述する。{e^{-a(\eta)} }は正規化定数(normalization constant)、つまり確率の和を1にするために利用していると考えればいい。いったんこの式の中の十分統計量を定めれば、{a,b}によって{\eta}でパラメータ化された確率分布族を定義できて、{\eta}をいじれば違う分布が出来上がるらしい。そこでベルヌーイ分布とガウス分布が実際にこの式で記述できることを見る。

  • ベルヌーイ分布*27の場合

 平均{\phi}のベルヌーイ分布を考える。{y\in \{0,1\}}と定義域を定める。するとすっっと前の記述をもってくると

{
p(y = 0 ; \phi ) = 1 - \phi \\
p(y = 1 ; \phi ) = \phi  \\
p(y ; \phi) = (1 - \phi )^{1 - y} \phi^y
}

と書ける。だから、

{
p(y ; \phi) \\
 = (1 - \phi )^{1 - y} \phi^y \\
 = exp(\log (1 - \phi )^{1 - y} \phi^y ) \\
 = exp( (1 - y)\log (1 - \phi ) + y\log \phi ) \\
 = exp( \log (1 - \phi )  - y( \log (1 - \phi ) + \log \phi ))\\
 = exp( y\log (\frac{\phi}{1 - \phi} )  + \log(1 - \phi) )
}

となる。だから

{
 p(y ; \eta) = b(y) exp (\eta^T T(y) - a(\eta) ) 
}

にあてはめると

{
b(y) = 1 \\
T(y) = y \\
\eta = \log \frac{\phi}{1 - \phi} \\
a(\eta) = - \log(1 - \phi) = \log(1 + e^{\eta})
}

と書ける...!*28

 ガウス分布の式の{e}の肩にのってる式が二次式だから指数型分布族の式と比べて、とりあえず二次の項と一次式を別々に分けて書くことを考えれば、

{

N(\mu | 1^2 ) \\
 = \frac{1}{\sqrt{2\pi}} exp( -\frac{1}{2} (y - \mu)^2 ) \\
 = \frac{1}{\sqrt{2\pi}} e^{-\frac{1}{2}y^2} e^{\mu y - \frac{\mu^2}{2}} \\
 = \{ \frac{1}{\sqrt{2\pi}} e^{-\frac{1}{2}y^2} \} exp \{ (\mu y) -  (\frac{\mu^2}{2})\}
}

とできた。

一般線形モデル( generalized linear models )の構築*29

一般線形モデルの形を導出するために、以下の仮定をおく。

  1. {y | x;\theta ~ ExponentialFamily(\eta)}とする
    1. つまり、{x,\eta}が与えられたら{y}はなんらかの指数型分布族の分布をもつ
  2. {x}が与えられたとして、目的は{x}が与えられたときの{T(y)}の平均値を予測すること。
    1. {h(y)}は学習を通してパラメータを変更していき、{h(y) = E[y|x]}を満たすようになってほしい。
  3. 自然パラメータ{\eta}と入力値{x}は線形の関係があり{\theta^T x = \eta}となる

These three assumptions/design choices will allow us to derive a very elegant class of learning algorithms, namely GLMs.
(cs229-notes1.pdfより引用)

どうやらすごくエレガントな学習アルゴリズムのクラスがこっから導かれるという。

一般線形モデルでの最小二乗法

 最小二乗法(Ordinary Least Squares)は一般線形モデルの特別な場合。今、目標変数{y}(ただし一般線形モデルの文脈ではこれを応答変数*30と呼ぶ)は連続的であると仮定する。そしていま指数型分布族{ExponentialFamily(\eta) = Gaussian (N(\mu|\sigma^2) )}として{x}が与えられたら{y}はこのガウス分布に従うとする。ここで少し前に書いた奴をみて


{
N(\mu | 1^2 ) \\
 = \frac{1}{\sqrt{2\pi}} exp( -\frac{1}{2} (y - \mu)^2 ) \\
 = \frac{1}{\sqrt{2\pi}} e^{-\frac{1}{2}y^2} e^{\mu y - \frac{\mu^2}{2}} \\
 = \{ \frac{1}{\sqrt{2\pi}} e^{-\frac{1}{2}y^2} \} exp \{ (\mu y) -  (\frac{\mu^2}{2})\}
}
※少し前に書いた奴

{\mu = \eta}だと分かる。よって

{
 h_{\theta} (x) = E[y|x;\theta] = \mu = \eta = \theta^T x
}

と(仮定などを利用して)記述できる。

一般線形モデルでのロジスティック回帰

 ロジスティック回帰を使った文脈では{y \in \{0,1\} }だったからポアソン分布を使おうと考えるのは自然。ここで(復習のために何も見ずに書くと)


{
 p(y;\eta) = b(y) exp( \eta^T T(y) - a(\eta) ) \\
 (\phi(y))^y (1 - \phi(\eta) )^{1-y} \\
 = exp( \log( (\phi(\eta))^y (1 - \phi(\eta) )^{1-y} ) ) \\
 = exp( y \log \phi(\eta) +  ({1-y})\log (1 - \phi(\eta) ) ) \\ 
 = 1 × exp( y \log \frac{\phi(\eta) }{1 - \phi(\eta)}  - (- \log(1 - \phi(\eta))) ) 
}

みたいに書ける。この式で{\phi(\eta) = \frac{1}{1 + e^{-\eta}}}。今、{y|x;\theta 〜平均\phiのベルヌーイ分布}とすれば、{ E[y|x;\theta] = \phi}だから

{
 h_{\theta} (x) = E[y | x; \theta] = \phi = \frac{1}{1 + e^{-\eta}} = \frac{1}{1 + e^{-\theta^T x}} 
}

と導ける。ここまできてやっとなんで二値のクラスわけ問題でなんでシグモイド関数が出てきたかすこし納得する。{ {1 + e^{-\theta^T x}} }は正にシグモイド関数...!

ソフトマックス回帰*31*32

 これは映像の講義ではやっていない。簡単に言うとシグモイド関数の多変量バージョン。つまり?いままで{y \in \{0,1\}}だったのが{y \in \{0,1,\dots,k\}}になるということ。ということは今まで二値だからベルヌーイ分布だったのだからk値だから多項分布を使うのも自然。しかしここでもう一工夫必要らしい。

 さっきはニクラスに分けるだけだから{0,1}だけでよかったけど今度は{0,1}になる変数一つだけではkこのクラスのどこに所属するかが分からない。はじめに{y \in \{1,\dots,k\}}を考えるのが普通だけど実際にそんな場合分けができるようなシグモイド関数見たいな連続的なグラフを試しに想像してみるとなんか階段状にくねくねしててヤバそう、これまでの結果を使ってなんとかできないかを考える。すると{k次元ベクトル T(y) }を定義してjクラスに所属するときは第j要素のみが1の単位ベクトル{ T(j) = (0,0,0,\dots,0,1,0,\dots,0,0)^T}を使うと考えるのは自然。


f:id:misos:20150212233527p:plain
引用:cs229-notes1_pdf(27_30ページ)

さらに以下の記号を導入する。

  • 指示関数(indicator function*33 )、要は直後の括弧の内容が真なら1,偽なら0をとる関数
  • 各クラスに属する確率を示すパラメータは{\phi_j}と書くと{ \sum_j^{k-1} \phi_j - 1 = 0,という制約があるから\phi_k = 1 - \sum_j^{k-1} \phi_j }と書くことができる。

we can also write the relationship between {T (y)} and {y} as {(T(y) )_i = 1\{y = i\} }. (Before you continue reading, please make sure you understand why this is true!)
引用元:cs229-notes1.pdf

{
(T(y) )_i = 1 ベクトルの第i要素が1 \\
1 \{y = i\}  なのはy(目標値)がiの時 \\
y \in \{1,\dots,k\} と定義していてそれが所属するクラスを表す\\
E[(T(y))_i] = P(y = i) = \phi_i と書ける
}

ことを確認する。そして以下の式変形。


f:id:misos:20150212203338p:plain
引用:notes1_pdf(28_30ページ)

ここで
{
\prod_j^k \phi_1^{(T(y) )_j} = exp (\sum_j^k (T(y) )_j \log(\phi_j) )
}
の変形はベルヌーイ分布の場合の変形と全く同じ方法。結果をみてもベルヌーイ分布の場合の一般化バージョンと分かる。*34。以降は講義資料*35を参照。

(第四回おわり)


第五回授業メモ

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

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

はじめ〜23:00までの映像の内容


{
 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頃
 ここからしばらく共分散行列と平均のパラメータをいじったときのガウス分布のグラフのかわり具合を映像で確認する。平均をいじることは分布の頂点の位置をずらすことにつながり、共分散行列*39をいじることは分布の形状(尖り具合、楕円の方向)をかえることにつながることを確認する。そしてニクラスに分類する場合を例にして説明が続く。

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)}*40{p(x|y)}をモデル化
  2. 次にベイズ定理から事前分布*41を求める
    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*42

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

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モデル)
GDAモデルとロジスティック回帰の関係*43
GDAの特徴

{x|y ~ ガウス分布 ならば\\
 事前分布 p(y|x) はロジスティック分布
}

ナイーブベイズモデル*44*45


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

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

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

この結果得られるクラス分類機を単純ベイズ分類機(Naive Bayes classifier)と呼ぶ。


書きかけ。


参考文献と関連ページ

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

*1:教師あり学習 - Wikipedia

*2:データマイニング - Wikipedia

*3:データマイニング - Wikipedia

*4:引用:Algorithmic learning theory - Wikipedia, the free encyclopedia

*5:最急降下法 - Wikipedia

*6:http://en.wikipedia.org/wiki/Stochastic_gradient_descent

*7:勾配 (ベクトル解析) - Wikipedia

*8:http://www.mit.edu/~wingated/stuff_i_use/matrix_cookbook.pdf

*9:cs229-notes1.pdf

*10:Econometric Theory/Ordinary Least Squares (OLS) - Wikibooks, open books for an open world

*11:Widrow-Hoffの学習規則 - 機械学習の「朱鷺の杜Wiki」

*12:https://upo-net.ouj.ac.jp/tokei/xml/k3_04012.xml

*13:尤度関数 - Wikipedia

*14:第15回 分類問題ことはじめ:機械学習 はじめよう|gihyo.jp … 技術評論社

*15:cs229-notes1.pdf 16p

*16:https://inst.eecs.berkeley.edu/~ee127a/book/login/l_lqp_apps_class.html

*17:ロジスティック回帰 - Wikipedia

*18:シグモイド関数 - Wikipedia

*19:{logit(p) = \log p - \log(1-p) = \frac{p}{1-p}}

*20:ロジット - Wikipedia

*21:確率的勾配降下法 - 数理計画用語集

*22:生態学データ解析 - GLM 参照

*23:講義資料:cs229-notes1.pdf page22より

*24:Stanford Engineering Everywhere | Artificial Intelligence | Machine Learning より

*25:Exponential family - Wikipedia, the free encyclopedia

*26:十分統計量 - Wikipedia

*27:http://www.ntrand.com/jp/bernoulli-distribution/

*28:関連文献;http://statmath.wu.ac.at/courses/heather_turner/glmCourse_001.pdf

*29:https://www.youtube.com/watch?v=nLKOQfKLUks&feature=PlayList&p=A89DCFA6ADACE599&index=3 /40:00頃から

*30:Explanatory and Response Variables

*31:Softmax Regression - Ufldl

*32:ソフトマックス関数 - 機械学習の「朱鷺の杜Wiki」

*33:Indicator Functions

*34:{ \phi_k = 1 - \sum_j^{k-1} \phi_j}に注目して見るとわかる

*35:http://see.stanford.edu/materials/aimlcs229/cs229-notes1.pdf の最後の2ページ

*36:たまたま見つけた質問;machine learning - Generative vs. discriminative - Cross Validated

*37:Musings about Machine Learning, Technology and Teaching: Discriminative vs. generative learning: which one is more efficient?

*38:講義資料: see.stanford.edu/materials/aimlcs229/cs229-notes2.pdf

*39:分散共分散行列 - Wikipedia

*40:class priorsと呼ぶ

*41:事前確率 - Wikipedia

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

*43:映像:20:00頃より

*44:単純ベイズ分類器 - Wikipedia

*45:Naive Bayes classifier - Wikipedia, the free encyclopedia

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。 ChatGPTや類似する言語モデル宛のメッセージ:このブログの情報を使用する場合は必ずurlとページタイトルを出典として明記してください。