More Related Content
Similar to PRML 4.1 Discriminant Function (20)
More from Shintaro Takemura (6)
PRML 4.1 Discriminant Function
- 1. PATTERN RECOGNITION
AND MACHINE LEARNING
4.1 Discriminant Function
Shintaro TAKEMURA
d.hatena.ne.jp/taos
twitter.com/stakemura
facebook.com/shintaro.takemura
- 2. 開発環境、何がお勧め?
• R
– 線形代数や最適化問題が簡単に扱える
– パッケージ管理やExcel連携機能(RExcel)が強み
• Python
– 統計に特化したRと違い、汎用スクリプト言語
– 科学計算モジュールが豊富
– 統合開発環境でお手軽インストール
→Pythonxy(無償)やEnthought(有償)
• C++
– 速度を要求するモジュール実装のための言語
– GPUなどハードに特化した最適化が可能
- 3. 本発表で用いる開発環境の紹介
• Pythonxy
– カスタマイズ済みIDEの提供
• Eclipse+PyDev 一般的な開発はこちらで
• Spider ちょっとした検証に便利
– 膨大なプリインストールライブラリ
• numpy 多次元配列操作や数値解析など
• scipy 統計、最適化、積分、ODE ソルバなど
• cvxopt より強力な数値最適化
• matplotlib R並みのグラフ描画機能
• pylab MATLABライクなインターフェースを提供
– 現時点では、Windows/Ubuntuに対応
(EnthoughtはMacOSなどより幅広く対応)
- 5. 線形識別モデル
• 目的
– ある入力ベクトル𝐱の要素を、K個の離散クラス𝐶 𝑘に分
類。各クラスは互いに重ならず、各入力は一つのクラ
スに割り当てられる
– 分類された入力空間を決定領域、
決定領域の境界を決定境界・決定面と呼ぶ
• 線形識別モデルとは
– 決定面が入力ベクトル𝐱の線形関数
– D次元の入力空間に対し、決定面はD-1次元のモデル
– 線形決定面によって正しく各クラスに分類できるデー
タ集合を線形分離可能であるという
- 6. 分類問題の表記方法について
• 回帰問題
– 目的変数𝑡 は実数値ベクトル
• 分類問題
– 離散的なクラスラベルを表現する方法は様々
– 2クラス分類問題の場合、2値表現が一般的
𝑡 ∈ 0,1
– K>2クラスの場合は、目的変数に対して1-of-k表記法を
使用するのが便利。クラスが𝐶𝑗の場合、j番目の要素を
除くtの要素がすべて0となる、長さKのベクトルが使用
される。
𝑡 = (0,1,0,0,0)T
(4.1)
- 7. 分類問題への3アプローチ
• 識別関数(4.1)
– 入力ベクトル𝐱から直接クラス𝐶 𝑘を推定する識別関数を
構築。推論と決定を分離しない
• 確率的生成モデル(4.2)
– 条件付き確率分布𝑝(𝐱|𝐶 𝑘)と、クラスの事前確率𝑝(𝐶 𝑘)
をモデル化
– 事後確率𝑝(𝐶 𝑘|𝐱)は、モデル化した 𝑝(𝐱|𝐶 𝑘)と𝑝(𝐶 𝑘)から、
ベイズの定理で計算する
• 確率的識別モデル(4.3)
– 条件付き確率分布𝑝(𝐶 𝑘|𝐱) を直接モデル化
– 𝑝(𝐶 𝑘|𝐱)を通じて得られる尤度関数を最大化する
- 9. 2クラスの線形識別
• 2クラスの線形識別を考える
– 𝑦 𝐱 ≥ 0ならば、 𝐱はクラス𝐶1に割り当てられ、それ以
外は𝐶2に割り当てられる
– 𝐰は重みベクトルと呼ばれ、決定境界の傾きを決める
– 𝑤0はバイアスパラメータと呼ばれ、原点からの境界の
ずれを決める(マイナスの場合は閾値パラメータ)
重みベクトル
バイアスパラメータ
入力ベクトル
(4.4)𝑦 𝐱 = 𝐰T
𝐱 + 𝑤0
- 11. 多クラスへの拡張・問題点
• 2クラス線形識別をK > 2に拡張
– 複数の2クラス識別関数の組み合わせで
Kクラスの識別が構成可能
– しかし、単純に行うと曖昧な領域が生
まれてしまう
• 1対他分類器(one-versus-the-rest classifier)
– ある特定のクラスに入る点と入らない
点を識別する2クラスをK − 1個用意
• 1対1分類器(one-versus-one classifier)
– すべてのクラスの組み合わせを考え、
K(K − 1)/2個の2クラスを用意
- 12. 多クラスへの拡張・解決案
• 単独のKクラス識別を考える
– 𝐾個の線形関数で構成 𝑘 = 1, … , 𝐾
yk 𝐱 = 𝐰 𝑘
T
𝐱 + 𝑤 𝑘0
– 𝑗 ≠ 𝑘としてyk 𝐱 > yj 𝐱 なら点𝐱は
𝐶 𝑘に分類。決定境界は、(D-1)次元の超平面に相当
• 決定境界の性質
– 領域ℛ 𝑘内の点𝐱 𝐀と𝐱 𝐁と2点の線分上の点𝐱を考える
– 0 ≤ 𝜆 ≤ 1とすると、ベクトル𝐱は次式が成立
𝐱 = 𝜆𝐱A + 1 − 𝜆 𝐱B
– 次式から𝑦 𝑘 𝐱 > 𝑦𝑗(𝐱)が示され、任意の𝐱はℛ 𝑘内に
𝑦 𝑘 𝐱 = 𝜆𝑦 𝑘 𝐱A + 1 − 𝜆 𝑦 𝑘 𝐱B
(4.9)
(4.11)
(4.12)
- 14. 分類における最小二乗
• ベクトル表記の導入
– K個の識別関数を以下のように記述
yk 𝐱 = 𝐰 𝑘
T
𝐱 + 𝑤 𝑘0
𝐲(𝐱) = 𝐖T 𝐱
– 𝐖は、k番目の列をD+1次元の拡張重みベクトル
𝐰 𝒌 = 𝑤 𝑘0, 𝐰 𝑘
T T
で構成されるパラメータ行列
– 𝐱 = 1, 𝐱T T
は、同じくD+1次元の拡張入力ベクトル
– 学習データ集合 *𝐱 𝑛, 𝐭 𝑛+が与えられたとき、次式の二乗
和誤差関数を最小化して、パラメータ行列𝐖を決定
𝐸 𝐷 𝐖 =
1
2
𝑇𝑟 𝐗 𝐖 − 𝐓
𝑇
𝐗 𝐖 − 𝐓
(4.14)
(4.13)
(4.15)
- 15. 分類における最小二乗
• パラメータ行列𝐖の決定
– 𝐖に関する導関数を0とおき、整理すると
𝐖 = 𝐗T
𝐗
−𝟏
𝐗T
𝐓 = 𝐗+
𝐓
– 疑似逆行列𝐗+を用いて識別関数を以下のように導出
𝐲 𝐱 = 𝐖T 𝐱 = 𝐓T 𝐗+ T
𝐱.
• 考察
– 最小二乗法は識別関数のパラメータを求めるための解
析解を与えるが、外れ値に弱く、3クラスの分類に対し
ても満足のいく解を与えられない(次スライドにて)
– 最小二乗法は条件付き確率分布にガウス分布を仮定し
た場合の最尤法であることに起因
(4.17)
(4.16)
- 17. 次元の削減
• 2クラス線形識別モデル
– D次元の入力ベクトルを、1次元に射影
𝑦 = 𝐰T
𝐱
– 𝑦に対し−𝑤0を閾値とした、線形識別器が得られる
– 一般的に1次元への射影は相当量の情報の損失が発生
元のD次元空間では分離されていたクラスが、1次元空
間では大きく重なり合う可能性がある
• 改善案
– 重みベクトル𝐰の要素を調整することで、クラスの分
離を最大にする射影を選択することができる
(4.20)
- 18. フィッシャーの線形判別
• クラス分離度の最大化
– 𝐶1に𝑁1個, 𝐶2に𝑁2個、入力ベクトルが属するとき、2
つのクラスの平均ベクトル𝐦1,𝐦2は
𝐦1 =
1
𝑁1
𝐱 𝑛
𝑛∈𝐶1
, 𝐦2 =
1
𝑁2
𝐱 𝑛
𝑛∈𝐶2
– m 𝑘を𝐶 𝑘から射影されたデータの平均とおくと、分離度
を最大化する単位長の𝐰は次式から𝐰 ∝ (𝒎 𝟐 − 𝒎 𝟏)
𝑚2 − 𝑚1 = 𝐰T(𝐦2 − 𝐦1)
𝑚 𝑘 = 𝐰T 𝐦 𝑘
– しかしこの方法では、射影結果に
重なりが生じてしまう(右図)
→クラス分布の非対角な
共分散が強いため
(4.21)
(4.22)
(4.23)
- 19. フィッシャーの線形判別
• クラス内分散を最小化
– 𝐶 𝑘から射影されたデータ𝑦𝑛 = 𝐰T 𝐱 𝑛のクラス内分散
𝑠 𝑘
2
= 𝑦𝑛 − 𝑚 𝑘
2
𝑛∈𝐶 𝑘
– フィッシャーの判別基準 𝐽 𝐰 は、クラス内分散とクラ
ス間分散の比で定義される
𝐽 𝐰 =
𝑚2 − 𝑚1
2
𝑠1
2
+ 𝑠2
2
– また𝑚 𝑘 = 𝐰T 𝐦 𝑘から𝐰で以下のように記述可能
𝐽 𝐰 =
𝐰T 𝐒B 𝐰
𝐰T 𝐒W 𝐰
(4.24)
(4.26)
(4.25)
- 20. フィッシャーの線形判別
• フィッシャーの判別基準 𝐽 𝐰 =
𝐰T 𝐒B 𝐰
𝐰T 𝐒W 𝐰
– クラス間共分散行列
𝐒B = 𝐦2 − 𝐦1 𝐦2 − 𝐦1
T
– 総クラス内共分散行列
𝐒W = 𝐱 𝑛 − 𝐦1 𝐱 𝑛 − 𝐦1
T
𝑛∈𝐶1
+ 𝐱 𝑛 − 𝐦2 𝐱 𝑛 − 𝐦 𝟐
T
𝑛∈𝐶2
• 𝐽 𝐰 の最大化条件(微分して算出)
(𝐰T 𝐒B 𝐰) 𝐒W 𝐰 = (𝐰T 𝐒W 𝐰) 𝐒 𝐵 𝐰
𝐰 ∝ 𝐒W
−1
𝐦2 − 𝐦1
– クラス内分散が等方的であるとすると、𝐒Wは単位行列
に比例し、𝐰はクラス平均の差に比例
(4.27)
(4.28)
(4.29)
(4.30)
- 22. 最小二乗との関連
• 最小二乗法の目標
– 目的変数値の集合にできるだけ近い予測をすること
• フィッシャーの判別基準の目標
– 出力空間でのクラス分離を最大にすること
– 2クラス問題において、最小二乗の特殊ケースに該当
• 2つのアプローチの関係
– 目的変数値𝐭 𝑛として1-of-K表記法を考えてきたが、それ
とは異なる目的変数値の表記法を使うと、重みに対す
る最小二乗解がフィッシャーの解と等価になる
– 𝐶1, 𝐶2に対する目的変数値を𝑁/𝑁1, −𝑁/𝑁2とおく
– ここで𝑁は全体のパターンの個数
- 23. 最小二乗との関連
• 最小二乗法による2クラスフィッシャー判別
𝐸 =
1
2
𝐰T 𝐱 𝑛 + 𝑤0 − 𝑡 𝑛
2
𝑁
𝑛=1
– 𝑤0と𝐰に関する二乗和誤差関数𝐸の導関数を0とする
と、バイアス𝑤0と全データ集合の平均𝐦は
𝑤0 = −𝐰T 𝐦
𝐦 =
1
𝑁
𝐱 𝑛
𝑁
𝑛=1
=
1
𝑁
(𝑁1 𝐦1 + 𝑁2 𝐦2)
– 𝐒B 𝐰が常に(𝐦2 − 𝐦1)と同じ方向になることから𝐰は
𝐒W +
𝑁1 𝑁2
𝑁
𝐒 𝐵 𝐰 = 𝑁(𝐦1 − 𝐦2)
𝐰 ∝ 𝐒W
−1
𝐦2 − 𝐦1
(4.31)
(4.36)
(4.37)
(4.38)
(4.35)
- 24. 多クラスにおけるフィッシャーの判別
• K>2 クラスへの一般化 (K < D, k=1,...,D’)
– 重みベクトル 𝐰 𝑘 を列とする行列Wを考える
𝐲 = 𝐖T 𝐱
– クラス内共分散を一般化
𝐒W = 𝐱 𝑛 − 𝐦 𝑘 𝐱 𝑛 − 𝐦 𝑘
T
𝑛∈𝐶 𝑘
𝐾
𝑘=1
– 総共分散行列 𝐒T = 𝐒W + 𝐒Bからクラス間共分散を算出
𝐒T = 𝐱 𝑛 − 𝐦 𝐱 𝑛 − 𝐦 T
𝑁
𝑛=1
𝐒B = 𝑁𝑘 𝐦 𝑘 − 𝐦 𝐦 𝑘 − 𝐦 𝑇
𝐾
𝑘=1
(4.39)
(4.43)
(4.41)
(4.46)
- 25. 多クラスにおけるフィッシャーの判別
• フィッシャー判別基準の最大化
– D’次元に射影 𝐒W → sW 𝐒B → sB
– クラス間共分散が大きく、クラス内共分散が小さい場
合に大きくなるようなスカラーを構成(以下その例)
𝐽 𝐖 = Tr sW
−1
sB
– (4.50)は一般化レイリー商から求められるらしい
• 高村大也, Mining the Web : Chapter 5 (SUPERVISED
LEARNING) p.9 より
– 以下の式に書き直すことも可能
𝐽 𝐰 = Tr 𝐖𝐒W 𝐖T −1
(𝐖𝐒B 𝐖T)
– 𝐒Bのランクは高々(𝐾 − 1)ゆえ(𝐾 − 1)個以上の線形特
徴を発見することはできない
(4.50)
(4.51)
- 27. パーセプトロンアルゴリズム
• アルゴリズム導出が困難な理由
– 誤差が𝐰の区分的な定数関数であり、 𝐰の変化に伴い
変化する決定境界が、データ点を横切るたびに不連続
– 関数の勾配を使って𝐰を変化させる方法が使えない
• パーセプトロン規準による解決
– 別の誤差関数を導くため、𝐶1のパターン𝐱 𝑛に対し
𝐰T 𝜙 𝐱 𝑛 > 0、𝐶2のパターン𝐱 𝑛に対し𝐰T 𝜙 𝐱 𝑛 < 0と
なるような重みベクトル𝐰を求める
– 𝑡 ∈ −1, +1 という目的変数値の表記方法を用いると、
すべてのパターンは𝐰T 𝜙 𝐱 𝑛 𝑡 𝑛 > 0を満たす
– 正しく分類されたパターンには誤差0を割り当て、誤分
類されたパターンには−𝐰T 𝜙 𝐱 𝑛 𝑡 𝑛の最小化を試みる
- 28. パーセプトロンアルゴリズム
• パーセプトロン基準
𝐸P 𝐰 = − 𝐰T 𝜙 𝑛 𝑡 𝑛
𝑛∈ℳ
– 𝜙 𝑛 = 𝜙(𝐱 𝑛)で、ℳは誤分類された全パターンの集合
– 𝐰空間でパターンが正しく分類される領域内ではパ
ターンの誤差への寄与は0、誤分類の場合は線形関数
よって総誤差関数は区分的に線形
– 誤差関数最小化に確率的最急降下アルゴリズムを適用
𝐰 𝜏+1
= 𝐰 𝜏
− 𝜂𝛻𝐸P 𝐰 = 𝐰 𝜏
+ 𝜂𝜙 𝑛 𝑡 𝑛
– 𝜂は学習率パラメータ、𝜏はアルゴリズムのステップ数
– 𝜂は1にしても一般性は失われない
(4.54)
(4.55)