PRML読書会 #5 資料「線形識別モデル(2)」

これは パターン認識と機械学習(PRML)読書会 #5 (4章 線形識別モデル) での発表用の資料「4.1.3 最小二乗」〜「4.1.6 多クラスにおけるフィッシャー判別」です。 まとめメインで、細かい計算やサンプルは板書する予定です。
【更新】読書会での指摘を反映。

4.1.3 最小二乗

学習データ \{\boldsymbol{x}_n, \boldsymbol{t}_n\}から
二乗和誤差関数(sum-of-squares error function)を最小にする
weight vector(matrix) を求める。

  • 最小二乗の解は、条件付き期待値の近似を与える [cf. 1.5.5]
  • (★*1 t \in \{0,1\}, t=1 が C_1 に対応するような)2値表記法では、クラス事後確率に一致
    •  y(\boldsymbol{x}) \approx \mathbb{E}[\boldsymbol{t}|\boldsymbol{x}] = 1\cdot p(C_1|\boldsymbol{x})+0\cdot p(C_2|\boldsymbol{x}) = p(C_1|\boldsymbol{x})
    • 近似精度が悪い。[0, 1] の範囲外になることも。
クラスごとの線型モデル
  • K クラス分類における、各クラス C_k の線型モデル
    • y_k(\boldsymbol{x}) = {\boldsymbol{w}_k}^T \boldsymbol{x} + w_{k0}, (k=1, \ldots, K)
    • y_k が最大となる C_k に割り当てる
  • ひとまとめにして  \boldsymbol{y}(\boldsymbol{x}) = \tilde{\boldsymbol{W}}^T \tilde{\boldsymbol{x}}
    • (D+1)×K 行列 \tilde{\boldsymbol{W}} = (\tilde{\boldsymbol{w}}_k),
    • \tilde{\boldsymbol{w}}_k = (w_{k0}, {\boldsymbol{w}_k}^T)^T,
    • \tilde{\boldsymbol{x}} = (1, \boldsymbol{x}^T)^T
二乗和誤差関数(sum-of-squares error function)

\mathbb{E}_D(\tilde{\boldsymbol{W}}) = \frac{1}{2}Tr\left\{ (\tilde{\boldsymbol{X}}\tilde{\boldsymbol{W}} - T)^T (\tilde{\boldsymbol{X}}\tilde{\boldsymbol{W}} - T) \right\}

これを最小化する \tilde{\boldsymbol{W}}

  •  \tilde{\boldsymbol{W}} = (\tilde{\boldsymbol{X}}^T \tilde{\boldsymbol{X}})^{-1} \tilde{\boldsymbol{X}}^T \boldsymbol{T} = \tilde{\boldsymbol{X}}^\dagger \boldsymbol{T}
    • \tilde{\boldsymbol{X}}^\dagger : pseudo-inverse matrix
計算とサンプルは板書で。
演習 4.2

\forall\boldsymbol{t}_n が線形制約 \boldsymbol{a}^T\boldsymbol{t}_n+b=0 を満たす場合、
\forall\boldsymbol{x} について \boldsymbol{a}^T\boldsymbol{y}(\boldsymbol{x})+b=0 を満たすことがある

  • 二乗和誤差の式からバイアス項 w_0 を分離&最小化、と異なる方法で W を推定しなおす
  • このとき任意の x に対し y(x) の要素の和が1になる
  • しかし各 y_k が [0, 1] に収まることは言っていないので、確率と解釈するには足りない
細かいところは読書会にて
最小二乗法の問題点
  • 外れ値に対する頑健さに欠ける [2.3.7]
  • 最小二乗法は条件付き確率分布にガウス分布を仮定した場合の最尤法
  • 2値分布はガウス分布からかけ離れている

4.1.4 フィッシャーの線形判別(Fisher's linear discriminant)

クラス平均間の分離度を大きく、各クラス内の分散を小さくする射影による判別

クラス平均間の分離度を最大化
  • クラス平均間の分離度: m_2-m_1 = \boldsymbol{w}^T(\boldsymbol{m}_2-\boldsymbol{m}_1)
    •  m_k=\frac{1}{|C_k|}\sum_{n \in C_k} \boldsymbol{x}_n
  • これを最大にする \boldsymbol{w} \propto (\boldsymbol{m}_2-\boldsymbol{m}_1)
  • 非対角な共分散が強い場合にうまくいかない
クラス平均間の分離度を最大化し、クラス内分散を最小化

フィッシャーの判別基準=(クラス間分散)/(クラス内分散)

  • J(W) = \frac{(m_2-m_1)^2}{s_1^2+s_2^2} = \frac{\boldsymbol{w}^T \boldsymbol{S}_B \boldsymbol{w}}{\boldsymbol{w}^T \boldsymbol{S}_W \boldsymbol{w}}
    • 射影されたデータのクラス内分散: s_k^2 = \sum_{n \in C_k} (y_n-m_k)^2
    • between-class covariance matrix: \boldsymbol{S}_B = (\boldsymbol{m}_2-\boldsymbol{m}_1)(\boldsymbol{m}_2-\boldsymbol{m}_1)^T
    • within-class covariance matrix: \boldsymbol{S}_W = \sum_{k=1}^2 \sum_{n \in C_k}(\boldsymbol{x}_n-\boldsymbol{m}_k)(\boldsymbol{x}_n-\boldsymbol{m}_k)^T
  • これを最大にする \boldsymbol{w} \propto \boldsymbol{S}_W^{-1} (\boldsymbol{m}_2-\boldsymbol{m}_1)

4.1.5 (フィッシャー判別と)最小二乗との関連

フィッシャー判別は最小二乗の特殊な場合と一致する

  •  y(x)=N/N_1, \hspace{2ex} (N_1=|C_1|) のとき x を  C_1 に、
  •  y(x)=-N/N_2, \hspace{2ex} (N_2=|C_2|) のとき x を  C_2 に分類

sum-of-squares error function E=\frac 12\sum_{n=1}^N(\boldsymbol{w}^T\boldsymbol{x}_n+w_0-t_n)^2
w_0, \boldsymbol{w} における導関数を 0 とおくことで、E を最小にする \boldsymbol{w} を求めると

  • \left(\boldsymbol{S}_W+\frac{N_1 N_2}{N}\boldsymbol{S}_b\right)\boldsymbol{w} = N(\boldsymbol{m}_1-\boldsymbol{m}_2)
  • これより \boldsymbol{w} \propto \boldsymbol{S}_W^{-1} (\boldsymbol{m}_2-\boldsymbol{m}_1)

4.1.6 多クラスにおけるフィッシャー判別*2

K>2 への一般化 (K < D)

  • \boldsymbol{y}=\boldsymbol{W}^T \boldsymbol{x} により D' 次元への射影を考える(★一般に K < D' < D)
  • within-class covariance matrix: \boldsymbol{S}_W = \sum_{k=1}^K \sum_{n \in C_k}(\boldsymbol{x}_n-\boldsymbol{m}_k)(\boldsymbol{x}_n-\boldsymbol{m}_k)^T
  • 総共分散行列 \boldsymbol{S}_T = \sum_{n=1}^N (\boldsymbol{x}_n-\boldsymbol{m})(\boldsymbol{x}_n-\boldsymbol{m})^T
  • 総共分散行列は \boldsymbol{S}_W と between-class covariance matrix \boldsymbol{S}_B の和に分解できる(★ほんと?)
  • \boldsymbol{S}_B = \boldsymbol{S}_T - \boldsymbol{S}_W = \sum_{k=1}^K N_k(\boldsymbol{m}_k-\boldsymbol{m})(\boldsymbol{m}_k-\boldsymbol{m})^T
多クラスフィッシャー続き

クラス間共分散が大きく、クラス内共分散が小さい場合に大きくなるスカラー

  • そのような基準はたくさんある*3
  • 一例:  J(W) = {\rm Tr}\{\boldsymbol{s}_W^{-1} \boldsymbol{s}_B\} = {\rm Tr}\{(\boldsymbol{W}\boldsymbol{S}_W \boldsymbol{W}^T)^{-1} (\boldsymbol{W}\boldsymbol{S}_W \boldsymbol{W}^T)\}
    • \boldsymbol{s}_W, \boldsymbol{s}_B\boldsymbol{S}_W, \boldsymbol{S}_B の D' 次元空間への射影
  • J(W) を最大化する W は \boldsymbol{S}_W^{-1} \boldsymbol{S}_B固有ベクトルによって決定される(★版によって誤植有り)
    • \boldsymbol{S}_B のランクは高々 (K-1) ゆえ (K-1) 個以上の線形特徴を発見することはできない


【→ 4.1.7 へ続く】

*1:独自の注釈や意見は★付き

*2:この節はダイジェスト

*3:Fukunaga, K. (1990). Introduction to Statistical Pattern Recognition (Second ed.). Academic Press.