目录
- 基本原理介绍
- 数学描述
基本原理介绍
Fisher线性分类器是将
n
n
n维训练样本投影到1维空间上,然后在一维空间进行分类,最关键的参数就是投影方向
w
w
w。
由于投影方向有很多,如何得到最佳的投影方向呢?,这个投影过程要求满足一个原则,这个原则一句话解释就是:类内离散度越小越好,类间离散度越大越好。
记类内离散度为
S
w
S_w
Sw,类间离散度为
S
b
S_b
Sb,整个准则可以描述为:
m a x J = S b S w max \ J=\frac{S_b}{S_w} max J=SwSb
下面详细介绍 S b , S w S_b,S_w Sb,Sw的求法。
数学描述
设有带标签的样本集 X = { X 1 , X 2 , . . . , X n } X=\{X_1,X_2,...,X_n\} X={X1,X2,...,Xn},其中 X i X_i Xi为n维的特征向量,首先计算原样本的类内离散度 S w S_w Sw,为了描述“离散度”的概念,我们可以理解为数据的离散程度,统计描述就是方差。
假设整个数据样本集一共可以分成K类,那么有:
S w = ∑ k = 1 K S k S_w=\sum_{k=1}^KS_k Sw=k=1∑KSk
S i 2 S_i^2 Si2是第k类数据样本的方差矩阵,定义如下:
S i = ∑ i ∈ X k ( X i − M i ) ( X i − M i ) T S_i=\sum_{i\in X_k}(X_i-M_i)(X_i-M_i)^T Si=i∈Xk∑(Xi−Mi)(Xi−Mi)T
其中 M i = 1 N k ∑ i ∈ X k X i M_i=\frac{1}{N_k}\sum_{i\in X_k}X_i Mi=Nk1∑i∈XkXi为均值向量。
下面考虑类间的离散度 S b S_b Sb
类间离散度定义为各类样本均值向量的离散程度,定义如下:
S b = ∑ i K ∑ j K ( M i − M j ) ( M i − M j ) T ( i ≠ j ) (1) S_b=\sum_{i}^K\sum_{j}^K(M_i-M_j)(M_i-M_j)^T(i \ne j)\tag{1} Sb=i∑Kj∑K(Mi−Mj)(Mi−Mj)T(i=j)(1)
这个考虑K分类的情况,找了很多资料都没有说Fisher分类器进行多分类的情况,式 ( 1 ) (1) (1)的定义还存在一定疑问。
以上都是在原样本集上的计算,下面考虑在 w w w方向上投影,记投影后的类内类间离散度为 S w ˉ , S b ˉ \bar{S_w},\bar{S_b} Swˉ,Sbˉ,相应的表达式如下:
S w ˉ = ∑ k = 1 K S k ˉ = ∑ i ∈ X k ( w T X i − w T M i ) 2 = w T S w w \bar{S_w}=\sum_{k=1}^K\bar{S_k}=\sum_{i\in X_k}(w^TX_i-w^TM_i)^2=w^TS_ww Swˉ=k=1∑KSkˉ=i∈Xk∑(wTXi−wTMi)2=wTSww
S b ˉ = ∑ i K ∑ j K ( w T M i − w T M j ) 2 = w T S b w ( i ≠ j ) \bar{S_b}=\sum_{i}^K\sum_{j}^K(w^TM_i-w^TM_j)^2=w^TS_bw(i \ne j) Sbˉ=i∑Kj∑K(wTMi−wTMj)2=wTSbw(i=j)
因此,损失函数为:
m
a
x
J
=
S
b
ˉ
S
w
ˉ
=
w
T
S
b
w
w
T
S
w
w
max \ J=\frac{ \bar{S_b}}{\bar{S_w}}=\frac{w^TS_bw}{w^TS_ww}
max J=SwˉSbˉ=wTSwwwTSbw
利用一些常用的优化迭代算法即可得到最佳的
w
∗
w^*
w∗。在二分类情况下,
w
∗
w^*
w∗的解析解如下:
w
∗
=
S
w
−
1
(
M
1
−
M
2
)
w^*=S_w^{-1}(M_1-M_2)
w∗=Sw−1(M1−M2)