Hatena::ブログ(Diary)

Dawn of Wilsonia このページをアンテナに追加 RSSフィード

2008-11-21

[][] 第n回PRML勉強会

もう番号すら忘れるぐらい参加して無かったので,誰か教えてください.

今回はメンバー的に,4章の初めからの方がいいだろうということで,初めからやりました(助かった).

3章については,別のところでフォローします.

今回の範囲:4章はじめ〜4.1.7 パーセプトロンの途中まで(次回はパーセプトロン頭から)

4章は「線形識別モデル」ということで分類問題,特に線形分離可能な問題に対して扱う章…ではあるが,基底関数 ¥phi(¥mathbf{x}) によって入力空間を非線形変換をすれば同様の議論ができるとのこと.

Regressionとの違いは,離散値(あるいはクラス確率を示す連続値(0,1))を予測すること.

線形回帰モデルを,その非線形変換を行うf(・)を活性化関数ニューラルネット由来?)として,

y(¥mathbf{x}) = f(¥mathbf{w^Tx}+w_0)

を用いてモデル化できる.一般化線形モデルと呼ばれるらしい.

fが非線形関数なら,決定面はxの線形関数だが,y(x)はパラメータに関して非線形.ふむふむ.

4.1.1  2クラス分類のお話

線形関数のを幾何的に考えるお話なので,ちょっと整理しないと面倒くさい.

図は以下,

http://research.microsoft.com/~cmbishop/PRML/prmlfigs-jpg/Figure4.1.jpg

ここでは,さっきの

y(¥mathbf{x}) = ¥mathbf{w^Tx}+w_0

の正負で2クラスに分けようという話.

  • ¥mathbf{w}:重みベクトル(xの各要素の重みを決めるから;決定境界の傾きを決める)
  • w_0:バイアスパラメータ(原点からのズレ;どこに決定境界が置かれるか)

となっている,決定境界上の二点をXa,Xbとすると, w^T(Xa - Xb) = 0 ←(※wは超平面上のベクトル(Xa-Xbはベクトル)と直交している)

あらゆる点xの,wからの直交距離(決定面からどれぐらい離れているか)は,y(¥mathbf{x}) ¥over ||w||で計算できる.

4.1.2  多クラスでもやってみよう

実は重大問題で,単純にやると決定領域がかぶさって曖昧な領域ができちゃったりする.

今はデータをどれか1つのクラスに分類しようとしてるから,1対他,1対1でも同じ問題が出てくる.

ここでの解決策→y(¥mathbf{x}) = ¥mathbf{w^Tx}+w_0 をクラス個作って y_k(x) の大きさで判断する(=になるところが境界面).

この領域は凸になっている.凸性は色々うれしいので,多分うれしいんだろう.予測で楽できたりとかかな.

ただ,同じwが出てきたらどうなるんだろう,ちょっと面倒かもしれん.

2クラス分類は,他クラス分類の2個版と考えても問題ない.

で,wを学習する手法は色々あるので(4.1.*)に続く.

4.1.3  最小2乗法でパラメータを解析的に求める.

  • 最小2乗法を取る理由:入力ベクトルxが与えられた時の,目的変数値の条件付き期待値を近似することになるから.

この話3.1あたりですね.サボってたのでちょっと復習しないと.ガウスノイズを仮定した場合の最尤解と関係しているのかな.

で,1-of-K記法だと [p(C1|x) p(C2|x) ... p(Ck|x)]^T ってことっすかね.

よくわからなかったところ

  • 「条件付き期待値がクラス事後確率のベクトルで与えられる」
  • 「しかしながら...推定された確率は,一パン的に非常に近似が悪く,線形モデルの柔軟性が低いために,確率の値が(0,1)を越えてしまうこともある」

んー.近似が悪い・・・?(0,1)を越える・・・?

前回も危なく爆発するところだった場所らしい.まあそういうものかと思って読み飛ばすなどする.

で,(4.15)->(4.16)のトレースの微分は前回爆発したらしい.後でこっそり,解いてみた.

多次元の目的変数での最小二乗解の興味深い特性も,ちょっと難しい.

目的変数ベクトルが線形制約を満たすとき,同じ制約をy(x)も満たす場合があるらしいが,これは(演習)か.

最小二乗法は,色々問題を抱えているらしい.

二乗なので,外れ値に大して相当敏感に反応してしまう.

(別の誤差関数ならまあそれは回避できる→7.1.2)

最小二乗法の近似云々の話は,最後に出てくるけど,

結局,条件付確率分布にガウス分布を仮定したときの最尤法だが,1-of-K記法は全然ガウス分布じゃないので,うまく使えなくてもおかしくない→当たり前.

つまりモデルがダメだと.

フィッシャー判別器 - 確率的で無い方法

境界面を1次元への射影と見た場合の解決法.

結局,「クラス間の分散(S_B)は大きく・クラス内の分散(S_W)は小さく」を基準に,どう軸を取れば最適かを考えるお話.

フィッシャーさん(1890年2月17日 – 1962年7月29日)の基準では,

J(¥mathbf{w}) = ¥frac{¥mathbf{w^TS_Bw}}{¥mathbf{w^TS_Ww}}

を最大化すればよいとした.これをwに関して微分すれば,最大となる条件が導ける.

これで1次元に射影したデータ点をある閾値でクラス判別などをするなり,

その上で,ガウス分布を用いてクラスの確率密度をモデル化できたりする.

ガウス分布を用いるのは中心極限定理から正当化されるってのは,データが増えれば云々の話ですかね.

4.1.5 最小二乗との関連

目的変数を 1-of-Kでなく,C1に対する目標変数をN/N1(全体個数/C1の個数),C2を-N/N2と取れば,等価になるらしい.

ここは「簡単な代数演算」が簡単に解けなくて萎えたところだな.

目的変数をきちんとおけば,最小二乗でも良くなるということを示したのかな.

4.1.6 フィッシャー判別の多クラス版

クラス内共分散は全クラスの分散の和と一般化できるけど,

クラス間共分散は色々考え方がある(Kの組み合わせを扱いたくない).

そこで,「全データの分散の和=クラス内分散+クラス間分散のようなもの」が出てくるだろうという関係式を使って定義することで,求められる.

また,J(w)の基準も同様にたくさん考えられるが,一つの例は,

(4.51)のようにトレースを考えること.

ところで,「重みの値は,D'個の最も大きな固有値に対する固有ベクトルS_w^{-1}S_Bによって決定される」とあるが,S_w^{-1}S_B固有値を求めてそれに対応する固有ベクトルってことでいいのだろうか?

最後にFisher判別では,最大でもクラス数-1次元にしか変換できないことが,行列のランクを見ることで明らかに分かる.

----

パーセプトロンは次回で.終電なので帰ります.

しましましましま 2008/11/27 02:14 > ニューラルネット由来?
一般線形モデルの方がニューラルネットより古いと思います.出力側に関数があると連結関数,入力側に移すと活性化関数ですね.

> ただ,同じwが出てきたらどうなるんだろう,ちょっと面倒かもしれん.
区別できないですね.新しい特徴量を作るか,探さないといけないですね.

> んー.近似が悪い・・・?(0,1)を越える・・・?
出力は確率なので, (0,1) の範囲になるべきですが,このモデルではそれ以外の値を出力するように学習してしまうこともあるということです.

> S_w^{-1}S_Bの固有値を求めてそれに対応する固有ベクトルってことでいいのだろうか?
そうです.ちょっと読みにくいですね.修正を検討します.

wilsoniawilsonia 2008/12/04 16:59 いつもありがとうございます!

> 出力側に関数があると連結関数,入力側に移すと活性化関数
なるほど!その視点はわかりやすいですね。だから逆関数になってるんですね。

>> ただ,同じwが出てきたらどうなるんだろう,ちょっと面倒かもしれん.
>区別できないですね.新しい特徴量を作るか,探さないといけないですね.

面倒とかじゃなくて、そのままではどうしようもないみたいですね。
データが少ないときには気をつけたほうがよさそうですね。

tastas 2008/12/08 23:17 >ここは「簡単な代数演算」が簡単に解けなくて萎えたところだな
同じ部分が解けなくて、ググってたらこのページ見つけました。
解くためにテクニックがあれば何でもいいので教えてもられないでしょうか?

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/wilsonia/20081121/1227619130