めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

Fisherの線形判別法と最小二乗法の関係

Pattern Recognition and Machine Learning (Information Science and Statistics)

Pattern Recognition and Machine Learning (Information Science and Statistics)

PRML(↑)の「Chapter4 Linear Models for Classification」に記載されている、Fisherの線形判別法と最小二乗法の関係について、少し議論を深めます。

Fisherの線形判別法

トレーニングデータとして、クラス C_1 とクラス C_2 に分類されたD次元空間ベクトルの集合 \{{\mathbf x}_n\} が与えられた時、判別関数 y={\mathbf w}^{\rm T}{\mathbf x} に対して、下記で定義される「Fisher criterion」を最大にするように {\mathbf w} を決定します。

 J({\mathbf w})\,:= \frac{(m_2-m_1)^2}{s_1^2+s_2^2} ―― (1)

ここで用いている判別関数は、\mathbf{w} 方向の直線に正射影した際の座標値 y でクラスを分類するもので、「Fisher criterion」に含まれる変数は次のように定義されます。

まず、分子にあるのは、各クラスの重心の座標値 y です。(N_1N_2 は各クラスのサンプル数で、N=N_1+N_2

 {\mathbf m}_1=\frac{1}{N_1}\sum_{n\in C_1}{\mathbf x}_n,\,\,\,\,{\mathbf m}_2=\frac{1}{N_2}\sum_{n\in C_2}{\mathbf x}_n

 m_1={\mathbf w}^{\rm T}{\mathbf m}_1,\,\,\,\,m_2={\mathbf w}^{\rm T}{\mathbf m}_2

分母にあるのは、各クラスにおける座標値 y の分散です。

 s_1^2 = \sum_{n\in C_1}(y_n-m_1)^2,\,\,\,\,s_2^2 = \sum_{n\in C_2}(y_n-m_2)^2

つまり、(1)は、「各クラスの重心間の距離を大きくする(分子)」と「各クラス内での分散を小さくする(分母)」という2つの条件で正射影の方向を決めるという事になります。

この条件から計算すると、最終結論は次のようになります。

 {\mathbf w} \propto {\mathbf S}_{\rm W}^{-1}({\mathbf m}_2-{\mathbf m}_1) ―― (2)

 {\mathbf S}_{\rm W} = \sum_{n\in C_1}({\mathbf x}_n-{\mathbf m}_1)({\mathbf x}_n-{\mathbf m}_1)^{\rm T}+\sum_{n\in C_2}({\mathbf x}_n-{\mathbf m}_2)({\mathbf x}_n-{\mathbf m}_2)^{\rm T}

最小二乗法との関係(PRMLの説明)

PRMLでは、次のような説明がなされています。

C_1C_2 の目的変数(クラスのラベル)として、次の値を定義します。

 t_1\,:= \frac{N}{N_1},\,\,\,\,t_2\,:=-\frac{N}{N_2} ―― (3)

各サンプルの座標値がこの値に近くなるという条件で、二乗誤差を定義します。

 E:=\frac{1}{2}\sum_{n\in C_1}({\mathbf w}^{\rm T}{\mathbf x}_n+w_0-t_1)^2+\frac{1}{2}\sum_{n\in C_2}({\mathbf w}^{\rm T}{\mathbf x}_n+w_0-t_2)^2 ―― (4)

この誤差を最小化するという条件を与えると、\mathbf{w} の方向について、Fisherの線形判別法と同一の結論(2)が得られます。

しかしながら、この議論だけでは(3)の定義が恣意的に感じられます。この定義にはどのような意味があるのでしょうか?

最小二乗法とのより一般的な関係

実は、(3)の定義は本質的ではなく、一般には(なんと!)t_1t_2 に任意の異なる値を与えると、必ず同じ結果(2)が得られます。(3)は途中の計算を分かりやすくするために取った値に過ぎません。例えば、下記の論文(thesis)の「3.2 Fisher’s Discriminant (3.2.1 Connection to Least Squares)」では、t_1=-1,\,t_2=1 とした場合に同じ結論が得られることが示されています。

Kernel Fisher Discriminants (Sebastian Mika)[PDF]

これは、直感的には次のように理解できます。

まず、パラメーター {\mathbf w},\,w_0 を変化させる行為は、図形的には、次のような操作に対応します。

 (a) {\mathbf w} の方向を変える ⇒ 正射影する座標軸 y を回転する

 (b) w_0 を変化する ⇒ 正射影する座標軸 y を平行移動する

 (c) {\mathbf w} を定数倍する ⇒ 正射影する座標軸 y を拡大/縮小する

ここで、任意に与えた2つの目的変数があるとして、まずは、{\mathbf w} の方向を1つ固定しておき、(b)(c)の自由度のみを用いて、(4)を最小化することを考えます。

まず、(b)の自由度で座標軸を平行移動することにより、目的変数をサンプル群全体の近くに持って行くことができます。下図のようにサンプル全体の重心が目的変数の間にくるあたりで誤差は小さくなると考えられます。

続いて、(c)の自由度を用いて、目的変数の間の距離を拡大/縮小することで、それぞれのクラスの重心が目的変数に一致できれば、誤差はさらに小さくなると予想できます。(ここで使っている二乗誤差(4)は、「それぞれのサンプルの座標値が各クラスの目的変数の近くに集まる」という条件であることに注意。)正確には、拡大/縮小しつつ、再度、w_0 による平行移動を加えて調整していきます。

この時、(c)の操作では、{\mathbf w} を定数倍しているので、この定数倍が誤差(4)に及ぼす影響にも注意が必要となります。上図の例では、目的変数の距離を縮めるために {\mathbf w} は大きくする必要があります(平行移動の調整も w_0 が大きくなる方向に発生します)。つまり誤差は大きくなる(正確に言うと、「それぞれのサンプルの座標値が各クラスの目的変数の近くに集まる」ことによる誤差の減少効果が薄くなる)方向に影響が発生します。

したがって、仮に各クラスの重心が「最初からもっと離れていれば」、定数倍の操作は小さくてすむので、全体として誤差はより小さくすることが可能になります。

逆に、平行移動した結果、各クラスの重心が最初から目的変数の外側にある場合はどうなるでしょうか? この場合、定数倍の操作では、目的変数の距離を広げるために {\mathbf w} を小さくすることになります(平行移動の調整も w_0 が小さくなる方向に発生します)。つまり、誤差はより小さくなる方向に影響が発生します。

ということは、仮に各クラスの重心が「最初からもっと離れていれば」、定数倍の操作による影響はより大きくなって、全体として誤差はより小さくすることが可能になります。

つまり、いずれの場合にしても、各クラスの重心が離れているほど、(c)の操作による誤差減少が大きくなります。ここでは、最初に {\mathbf w} の方向を固定して議論していますが、この際、各クラスの重心がなるべく離れる方向を選択するのがよいことになります。これは、「Fisher criterion」(1)の分子の効果に対応します。

ただし、これは、(c)の操作による効果の大小を決めているだけで、最終的な二乗誤差の値そのものを決めるわけではありません。二乗誤差(4)の定義を思い出すと、それぞれのサンプルの座標値が各クラスの目的変数のなるべく近くに集まる必要がありますので、全体としては、「各クラスの座標値の分散が小さくなりつつ、各クラスの重心がなるべく離れる方向を選択する」という、「Fisher criterion」(1)と同じ効果が得られることになります。