文章目录
1.线性判别分析算法简介
Fisher算法的主要思想是:类内小,类间大。相当于软件工程里面的松耦合,高内聚的思想,现在我们需要将这种思想用数学模型进行转换:同一类别数据集合之间的方差要小,要集中起来,不同类别的数据之间的均值的差值要大,方便区分。它是从数据降维的思想出发,把一组数据降到一条直线上后再进行区分。
1.1数据定义:
X
=
(
x
1
,
x
2
,
.
.
.
,
x
N
)
T
=
(
x
1
T
x
2
T
⋮
x
N
T
)
=
(
x
11
x
12
.
.
.
x
1
p
x
21
x
22
.
.
.
x
2
p
⋮
⋮
⋮
⋮
x
N
1
x
N
2
.
.
.
x
N
p
)
N
×
P
,
X=(x_1,x_2,...,x_N)^T= \begin{pmatrix} x_1^T\\x_2^T\\\vdots\\x_N^T \end{pmatrix}=\begin{pmatrix} x_{11}&x_{12}&...&x_{1p}\\x_{21}&x_{22}&...&x_{2p}\\\vdots&\vdots&\vdots&\vdots\\x_{N1}&x_{N2}&...&x_{Np}\end{pmatrix}_{N \times P},
X=(x1,x2,...,xN)T=⎝⎜⎜⎜⎛x1Tx2T⋮xNT⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x11x21⋮xN1x12x22⋮xN2......⋮...x1px2p⋮xNp⎠⎟⎟⎟⎞N×P,
Y
=
(
y
1
T
y
2
T
⋮
y
N
T
)
N
×
1
Y= \begin{pmatrix} y_1^T\\y_2^T\\\vdots\\y_N^T \end{pmatrix}_{N\times1}
Y=⎝⎜⎜⎜⎛y1Ty2T⋮yNT⎠⎟⎟⎟⎞N×1
我们定义数据集
{
(
x
i
,
y
i
)
}
i
=
1
N
,
其
中
,
x
i
∈
R
P
,
y
i
∈
{
+
1
,
−
1
}
\{(x_i,y_i)\}_{i=1}^{N},其中,x_i \in \mathbb{R}^P,y_i \in\{+1,-1\}
{(xi,yi)}i=1N,其中,xi∈RP,yi∈{+1,−1},
且我们记:
y
i
=
+
1
为
C
1
类
,
X
C
1
被
定
义
为
{
(
x
i
∣
y
i
=
+
1
)
}
,
∣
X
C
1
∣
=
N
1
y_i=+1为C_1类,X_{C_1}被定义为\{(x_i|y_i=+1)\},|X_{C_1}|=N_1
yi=+1为C1类,XC1被定义为{(xi∣yi=+1)},∣XC1∣=N1
y
i
=
−
1
为
C
2
类
,
X
C
2
被
定
义
为
{
(
x
i
∣
y
i
=
−
1
)
}
,
∣
X
C
2
∣
=
N
2
;
N
1
+
N
2
=
N
y_i=-1为C_2类,X_{C_2}被定义为\{(x_i|y_i=-1)\},|X_{C_2}|=N_2;N_1+N_2=N
yi=−1为C2类,XC2被定义为{(xi∣yi=−1)},∣XC2∣=N2;N1+N2=N
1.2 Fisher判别分析图像表示:
说明:如图所示,我们就是要找到一个分类线,使得图上的蓝色点集合和红色点集合在线上的投影方向上能够很好的区分起来,达到类内小,类间大的效果,数据集合投影后我们可以很简单的在
W
X
WX
WX所组成的线上找到一个绿色的阈值(threshhold)点将两个进行区分起来。
1.3两向量投影表示:
定
义
两
个
向
量
:
x
⃗
,
w
⃗
,
它
们
之
间
的
夹
角
为
θ
,
由
图
像
可
得
向
量
x
⃗
在
向
量
w
⃗
上
的
投
影
为
:
定义两个向量:\vec{x},\vec{w},它们之间的夹角为θ,由图像可得向量\vec{x}在向量\vec{w}上的投影为:
定义两个向量:x,w,它们之间的夹角为θ,由图像可得向量x在向量w上的投影为:
L
=
∣
x
⃗
∣
⋅
∣
w
⃗
∣
⋅
cos
θ
;
由
于
向
量
的
点
乘
可
以
表
示
为
L = |\vec{x}| \cdot |\vec{w}| \cdot \cos\theta;由于向量的点乘可以表示为
L=∣x∣⋅∣w∣⋅cosθ;由于向量的点乘可以表示为
x
⃗
⋅
w
⃗
=
∣
x
⃗
∣
⋅
∣
w
⃗
∣
⋅
cos
θ
;
且
矩
阵
表
达
中
x
⃗
⋅
w
⃗
=
w
T
x
;
然
后
我
们
先
假
设
∣
w
⃗
∣
=
1
;
那
么
L
=
∣
x
⃗
∣
⋅
cos
θ
;
所
以
向
量
x
⃗
在
向
量
w
⃗
上
的
投
影
可
表
示
如
下
:
\vec{x}\cdot\vec{w}=|\vec{x}| \cdot |\vec{w}| \cdot \cos\theta;且矩阵表达中\vec{x}\cdot\vec{w}=w^Tx;然后我们先假设|\vec{w}|=1;那么L=|\vec{x}|\cdot\cos\theta;所以向量\vec{x}在向量\vec{w}上的投影可表示如下:
x⋅w=∣x∣⋅∣w∣⋅cosθ;且矩阵表达中x⋅w=wTx;然后我们先假设∣w∣=1;那么L=∣x∣⋅cosθ;所以向量x在向量w上的投影可表示如下:
L
=
▽
=
w
T
x
;
且
∣
∣
w
∣
∣
=
1
L=\bigtriangledown=w^Tx;且||w||=1
L=▽=wTx;且∣∣w∣∣=1
1.4 Fisher判别分析的损失函数(Loss Function)定义
我们定义
z
i
z_i
zi表示为数据样本
(
x
i
,
y
i
)
{(x_i,y_i)}
(xi,yi)在向量
w
⃗
\vec{w}
w上的投影坐标,定义投影的均值:
z
i
‾
\overline{z_i}
zi,投影的方差:
S
z
S_z
Sz
z
i
‾
=
1
N
∑
i
=
1
N
z
i
=
1
N
∑
i
=
1
N
w
T
x
i
\overline{z_i}=\frac{1}{N}\sum_{i=1}^{N}z_i=\frac{1}{N}\sum_{i=1}^{N}w^Tx_i
zi=N1i=1∑Nzi=N1i=1∑NwTxi
S
z
=
1
N
∑
i
=
1
N
(
z
i
−
z
‾
)
(
z
i
−
z
‾
)
T
S_z=\frac{1}{N}\sum_{i=1}^{N}(z_i-\overline{z})(z_i-\overline{z})^T
Sz=N1i=1∑N(zi−z)(zi−z)T
那么对于两组样本可以表示为:
第一类点
X
C
1
:
X_{C_1}:
XC1:
z
1
‾
=
1
N
1
∑
i
=
1
N
1
z
i
=
1
N
1
∑
i
=
1
N
1
w
T
x
i
\overline{z_1}=\frac{1}{N_1}\sum_{i=1}^{N_1}z_i=\frac{1}{N_1}\sum_{i=1}^{N_1}w^Tx_i
z1=N11i=1∑N1zi=N11i=1∑N1wTxi
S
1
=
1
N
1
∑
i
=
1
N
1
(
z
i
−
z
1
‾
)
(
z
i
−
z
1
‾
)
T
S_1=\frac{1}{N_1}\sum_{i=1}^{N_1}(z_i-\overline{z_1})(z_i-\overline{z_1})^T
S1=N11i=1∑N1(zi−z1)(zi−z1)T
第一类点
X
C
2
:
X_{C_2}:
XC2:
z
2
‾
=
1
N
2
∑
i
=
1
N
2
z
i
=
1
N
2
∑
i
=
1
N
2
w
T
x
i
\overline{z_2}=\frac{1}{N_2}\sum_{i=1}^{N_2}z_i=\frac{1}{N_2}\sum_{i=1}^{N_2}w^Tx_i
z2=N21i=1∑N2zi=N21i=1∑N2wTxi
S
2
=
1
N
2
∑
i
=
1
N
2
(
z
i
−
z
2
‾
)
(
z
i
−
z
2
‾
)
T
S_2=\frac{1}{N_2}\sum_{i=1}^{N_2}(z_i-\overline{z_2})(z_i-\overline{z_2})^T
S2=N21i=1∑N2(zi−z2)(zi−z2)T
我们定义能够表达 类内小,类间大 的L(w)损失函数:
类内小:
S
1
+
S
2
S_1+S_2
S1+S2: 需要尽可能小
类间大:
(
z
1
‾
−
z
2
‾
)
2
(\overline{z_1}-\overline{z_2})^2
(z1−z2)2 需要尽可能的大
L
(
w
)
=
(
z
1
‾
−
z
2
‾
)
2
S
1
+
S
2
L(w)=\frac{(\overline{z_1}-\overline{z_2})^2}{S_1+S_2}
L(w)=S1+S2(z1−z2)2
以上我们就可以用数学模型表达出我们的目标:类内小,类间大
1.5 损失函数L(w)化简
1.5.1 ( z 1 ‾ − z 2 ‾ ) 2 (\overline{z_1}-\overline{z_2})^2 (z1−z2)2化简
=
[
1
N
1
∑
i
=
1
N
1
w
T
x
i
−
1
N
2
∑
i
=
1
N
2
w
T
x
i
]
2
=[\frac{1}{N_1}\sum_{i=1}^{N_1}w^Tx_i-\frac{1}{N_2}\sum_{i=1}^{N_2}w^Tx_i]^2
=[N11∑i=1N1wTxi−N21∑i=1N2wTxi]2
=
(
w
T
[
(
1
N
1
∑
i
=
1
N
1
x
i
)
−
(
1
N
2
∑
i
=
1
N
2
x
i
)
]
)
2
=(w^T[(\frac{1}{N_1}\sum_{i=1}^{N_1}x_i)-(\frac{1}{N_2}\sum_{i=1}^{N_2}x_i)])^2
=(wT[(N11∑i=1N1xi)−(N21∑i=1N2xi)])2
=
(
w
T
(
X
C
1
‾
−
X
C
2
‾
)
)
2
=(w^T(\overline{X_{C1}}-\overline{X_{C2}}))^2
=(wT(XC1−XC2))2
=
w
T
(
X
C
1
‾
−
X
C
2
‾
)
(
X
C
1
‾
−
X
C
2
‾
)
T
w
=w^T(\overline{X_{C1}}-\overline{X_{C2}})(\overline{X_{C1}}-\overline{X_{C2}})^Tw
=wT(XC1−XC2)(XC1−XC2)Tw
1.5.2 S 1 + S 2 化 简 S_1+S_2化简 S1+S2化简
S
1
:
S_1:
S1:
1
N
1
∑
i
=
1
N
1
(
z
i
−
z
1
‾
)
(
z
i
−
z
1
‾
)
T
\frac{1}{N_1}\sum_{i=1}^{N_1}(z_i-\overline{z_1})(z_i-\overline{z_1})^T
N11∑i=1N1(zi−z1)(zi−z1)T
=
1
N
1
∑
i
=
1
N
1
(
w
T
x
i
−
1
N
1
∑
i
=
1
N
1
w
T
x
i
)
(
w
T
x
i
−
1
N
1
∑
i
=
1
N
1
w
T
x
i
)
T
=\frac{1}{N_1}\sum_{i=1}^{N_1}(w^Tx_i-\frac{1}{N_1}\sum_{i=1}^{N_1}w^Tx_i)(w^Tx_i-\frac{1}{N_1}\sum_{i=1}^{N_1}w^Tx_i)^T
=N11∑i=1N1(wTxi−N11∑i=1N1wTxi)(wTxi−N11∑i=1N1wTxi)T
=
∑
i
=
1
N
1
[
w
T
⋅
1
N
1
(
x
i
−
1
N
1
∑
i
=
1
N
1
x
i
)
]
[
(
x
i
−
1
N
1
∑
i
=
1
N
1
x
i
)
T
⋅
w
]
=\sum_{i=1}^{N_1}[w^T\cdot\frac{1}{N_1}(x_i-\frac{1}{N_1}\sum_{i=1}^{N_1}x_i)][(x_i-\frac{1}{N_1}\sum_{i=1}^{N_1}x_i)^T\cdot w]
=∑i=1N1[wT⋅N11(xi−N11∑i=1N1xi)][(xi−N11∑i=1N1xi)T⋅w]
=
∑
i
=
1
N
1
w
T
⋅
[
1
N
1
(
x
i
−
X
C
1
‾
)
(
x
i
−
X
C
1
‾
)
T
]
⋅
w
=\sum_{i=1}^{N_1}w^T\cdot[\frac{1}{N_1}(x_i-\overline{X_{C1}})(x_i-\overline{X_{C1}})^T]\cdot w
=∑i=1N1wT⋅[N11(xi−XC1)(xi−XC1)T]⋅w
=
w
T
⋅
[
∑
i
=
1
N
1
1
N
1
(
x
i
−
X
C
1
‾
)
(
x
i
−
X
C
1
‾
)
T
]
⋅
w
=w^T\cdot[\sum_{i=1}^{N_1}\frac{1}{N_1}(x_i-\overline{X_{C1}})(x_i-\overline{X_{C1}})^T]\cdot w
=wT⋅[∑i=1N1N11(xi−XC1)(xi−XC1)T]⋅w
=
w
T
⋅
S
C
1
⋅
w
=w^T\cdot S_{C1}\cdot w
=wT⋅SC1⋅w
S
2
:
S_2:
S2:
=
w
T
⋅
S
C
2
⋅
w
=w^T\cdot S_{C2}\cdot w
=wT⋅SC2⋅w
S
1
+
S
2
=
w
T
(
S
C
1
+
S
C
2
)
w
S_1+S_2=w^T(S_{C1}+S_{C2})w
S1+S2=wT(SC1+SC2)w
1.5.3 L(W)化简
L
(
W
)
=
w
T
(
X
C
1
‾
−
X
C
2
‾
)
(
X
C
1
‾
−
X
C
2
‾
)
T
w
w
T
(
S
C
1
+
S
C
2
)
w
L(W)=\frac{w^T(\overline{X_{C1}}-\overline{X_{C2}})(\overline{X_{C1}}-\overline{X_{C2}})^Tw}{w^T(S_{C1}+S_{C2})w}
L(W)=wT(SC1+SC2)wwT(XC1−XC2)(XC1−XC2)Tw
我
们
定
义
两
个
变
量
S
b
(
b
e
t
w
e
e
n
−
c
l
a
s
s
)
类
间
方
差
;
S
w
(
w
i
t
h
i
n
−
c
l
a
s
s
)
类
内
方
差
我们定义两个变量S_b(between-class)类间方差;S_w(within-class)类内方差
我们定义两个变量Sb(between−class)类间方差;Sw(within−class)类内方差
类
间
方
差
:
S
b
=
(
X
C
1
‾
−
X
C
2
‾
)
(
X
C
1
‾
−
X
C
2
‾
)
T
类间方差:S_b=(\overline{X_{C1}}-\overline{X_{C2}})(\overline{X_{C1}}-\overline{X_{C2}})^T
类间方差:Sb=(XC1−XC2)(XC1−XC2)T
类
内
方
差
:
S
w
=
(
S
C
1
+
S
C
2
)
类内方差:S_w=(S_{C1}+S_{C2})
类内方差:Sw=(SC1+SC2)
结
论
:
L
(
w
)
=
w
T
S
b
w
w
T
S
w
w
结论:L(w)=\frac{w^TS_bw}{w^TS_ww}
结论:L(w)=wTSwwwTSbw
1.5.4 L(W)求梯度
矩阵公式:
∂
w
T
X
w
∂
w
=
X
w
\frac{\partial{w^TXw}}{\partial w}=Xw
∂w∂wTXw=Xw
L
(
W
)
=
w
T
S
b
w
(
w
T
S
w
w
)
−
1
L(W)=w^TS_bw(w^TS_ww)^{-1}
L(W)=wTSbw(wTSww)−1
∂
L
(
W
)
∂
w
=
S
b
w
(
w
T
S
w
w
)
−
1
+
w
T
S
b
w
(
−
1
)
(
w
T
S
w
w
)
−
2
S
w
w
\frac{\partial{L(W)}}{\partial w}=S_bw(w^TS_ww)^{-1}+w^TS_bw(-1)(w^TS_ww)^{-2}S_ww
∂w∂L(W)=Sbw(wTSww)−1+wTSbw(−1)(wTSww)−2Sww
我
们
令
:
∂
L
(
W
)
∂
w
=
0
我们令:\frac{\partial{L(W)}}{\partial w}=0
我们令:∂w∂L(W)=0
S
b
w
(
w
T
S
w
w
)
−
1
+
w
T
S
b
w
(
−
1
)
(
w
T
S
w
w
)
−
2
S
w
w
=
0
S_bw(w^TS_ww)^{-1}+w^TS_bw(-1)(w^TS_ww)^{-2}S_ww=0
Sbw(wTSww)−1+wTSbw(−1)(wTSww)−2Sww=0
显然,w的维度是P×1,
w
T
的
维
度
是
1
×
P
,
S
w
的
维
度
是
P
×
P
,
所
以
(
w
T
S
w
w
)
是
实
数
标
量
w^T的维度是1×P,S_w的维度是P\times P,所以(w^TS_ww)是实数标量
wT的维度是1×P,Sw的维度是P×P,所以(wTSww)是实数标量
注
:
w
T
S
w
w
:
维
数
:
1
×
p
⋅
p
×
p
⋅
p
×
1
=
1
实
数
注:w^TS_ww:维数:1\times p\cdot p\times p\cdot p\times 1=1实数
注:wTSww:维数:1×p⋅p×p⋅p×1=1实数
S
b
w
(
w
T
S
w
w
)
=
(
w
T
S
b
w
)
S
w
w
S_bw(w^TS_ww)=(w^TS_bw)S_ww
Sbw(wTSww)=(wTSbw)Sww
S
w
w
=
(
w
T
S
w
w
)
(
w
T
S
b
w
)
S
b
w
S_ww=\frac{(w^TS_ww)}{(w^TS_bw)}S_bw
Sww=(wTSbw)(wTSww)Sbw
结
论
:
w
^
=
(
w
T
S
w
w
)
(
w
T
S
b
w
)
(
S
w
)
−
1
S
b
w
结论:\hat{w}=\frac{(w^TS_ww)}{(w^TS_bw)}(S_w)^{-1}S_bw
结论:w^=(wTSbw)(wTSww)(Sw)−1Sbw
我
们
对
于
上
式
的
梯
度
结
果
看
中
的
是
方
向
而
不
是
大
小
,
所
以
我
们
可
得
:
我们对于上式的梯度结果看中的是方向而不是大小,所以我们可得:
我们对于上式的梯度结果看中的是方向而不是大小,所以我们可得:
w
^
=
(
w
T
S
w
w
)
(
w
T
S
b
w
)
(
S
w
)
−
1
S
b
w
∝
(
S
w
)
−
1
S
b
w
\hat{w}=\frac{(w^TS_ww)}{(w^TS_bw)}(S_w)^{-1}S_bw\propto (S_w)^{-1}S_bw
w^=(wTSbw)(wTSww)(Sw)−1Sbw∝(Sw)−1Sbw
(
S
w
)
−
1
S
b
w
=
(
S
w
)
−
1
(
X
C
1
‾
−
X
C
2
‾
)
(
X
C
1
‾
−
X
C
2
‾
)
T
w
(S_w)^{-1}S_bw=(S_w)^{-1}(\overline{X_{C1}}-\overline{X_{C2}})(\overline{X_{C1}}-\overline{X_{C2}})^Tw
(Sw)−1Sbw=(Sw)−1(XC1−XC2)(XC1−XC2)Tw
(
X
C
1
‾
−
X
C
2
‾
)
T
维
度
为
:
1
×
P
;
w
维
度
为
:
P
×
1
(\overline{X_{C1}}-\overline{X_{C2}})^T维度为:1\times P;w维度为:P\times1
(XC1−XC2)T维度为:1×P;w维度为:P×1
所
以
可
得
:
(
X
C
1
‾
−
X
C
2
‾
)
T
w
是
实
数
1
×
P
×
P
×
1
=
1
所以可得:(\overline{X_{C1}}-\overline{X_{C2}})^Tw是实数1 \times P \times P \times 1=1
所以可得:(XC1−XC2)Tw是实数1×P×P×1=1
(
S
w
)
−
1
S
b
w
∝
(
S
w
)
−
1
(
X
C
1
‾
−
X
C
2
‾
)
(S_w)^{-1}S_bw\propto (S_w)^{-1}(\overline{X_{C1}}-\overline{X_{C2}})
(Sw)−1Sbw∝(Sw)−1(XC1−XC2)
结论:我们求得的梯度的方向是
(
S
w
)
−
1
(
X
C
1
‾
−
X
C
2
‾
)
(S_w)^{-1}(\overline{X_{C1}}-\overline{X_{C2}})
(Sw)−1(XC1−XC2),如果
S
w
−
1
S_w^{-1}
Sw−1是一个各向同性的对角矩阵,那么我们可以得出
S
w
−
1
∝
I
S_w^{-1}\propto I
Sw−1∝I
结
论
:
w
^
∝
(
X
C
1
‾
−
X
C
2
‾
)
;
此
两
个
向
量
同
方
向
结论:\hat{w}\propto(\overline{X_{C1}}-\overline{X_{C2}});此两个向量同方向
结论:w^∝(XC1−XC2);此两个向量同方向
所以我们求得了所要求的梯度的方向,大小就可以忽略。