UTF8gbsn
本文介绍一种非常简单的降维算法, 叫做最大边界降维算法.
背景
加入你有一个向量的集合
S
=
{
x
1
,
x
2
,
⋯
,
x
n
}
S=\{ \mathbf{x}_1, \mathbf{x}_2, \cdots, \mathbf{x}_n \}
S={x1,x2,⋯,xn}
,其中
x
i
\mathbf{x}_i
xi, 是一个
n
×
1
n\times 1
n×1的向量.
并且每一个向量
x
i
\mathbf{x}_i
xi具有一个类别
l
a
b
e
l
i
label_i
labeli.
那么如何来降维并使得不同的向量在计算欧式距离时满足以下条件:
-
类标相同的向量欧式距离应该越小.
-
类别不同的向量欧式距离应该越大.
建立代价函数
-
首先,我们明确以下,
我们希望将向量 x n × 1 \mathbf{x}_{n\times 1} xn×1降低到 m × 1 \mathbf{m\times 1} m×1的维度,
其中 n ≫ m n\gg m n≫m. -
其次,我们定义一个线性变换矩阵 W m × n W_{m\times n} Wm×n, 它可以进行变换 W x i Wx_i Wxi,
将 x i x_i xi从一个n维度的向量变换位一个 m m m维度的向量. -
最后, 为了使得边界最大化, 定义一个代价函数
y i j ( b − d W 2 ( x i , x j ) ) > 1 y_{i j}\left(b-d_{W}^{2}\left(x_{i}, x_{j}\right)\right)>1 yij(b−dW2(xi,xj))>1其中, d W 2 ( x i , x j ) = ∥ W x i − W x j ∥ 2 = ( x i − x j ) T W T W ( x i − x j ) d_{W}^2(x_i,x_j)=\|Wx_i-Wx_j \|^2=(x_i-x_j)^TW^TW(x_i-x_j) dW2(xi,xj)=∥Wxi−Wxj∥2=(xi−xj)TWTW(xi−xj),
其中 y i j = 1 y_{ij}=1 yij=1,如果 x i , x j x_i,x_j xi,xj含有相同的label, 反之 y i j = − 1 y_{ij}=-1 yij=−1.
b是个margin控制变量.
最后我们可以定义我们的优化任务为
arg min W , b ∑ i , j m a x [ 1 − y i j ( b − ( x i − x j ) T W T W ( x i − x j ) ) , 0 ] \arg \min _{W, b} \sum_{i,j}max[1-y_{ij}(b-(x_i-x_j)^TW^TW(x_i-x_j)),0] argW,bmini,j∑max[1−yij(b−(xi−xj)TWTW(xi−xj)),0]
求解
对于上面的代价函数, 比较好的办法是采用随机次梯度下降算法.
因为不能保证代价函数为凸函数.
因为只有当
y
i
j
(
b
−
d
W
2
(
x
i
,
x
j
)
)
⩽
0
y_{ij}(b-d_{W}^2(x_i, x_j))\leqslant 0
yij(b−dW2(xi,xj))⩽0时,
代价函数的对应项位0.
所以我们只考虑
y
i
j
(
b
−
d
W
2
(
x
i
,
x
j
)
)
>
0
y_{ij}(b-d_{W}^2(x_i, x_j))> 0
yij(b−dW2(xi,xj))>0的情况.
设
C
(
W
,
b
)
=
1
−
y
i
j
(
b
−
(
x
i
−
x
j
)
T
W
T
W
(
x
i
−
x
j
)
)
,
C(W,b)=1-y_{ij}(b-(x_i-x_j)^TW^TW(x_i-x_j)),
C(W,b)=1−yij(b−(xi−xj)TWTW(xi−xj)),,
下面我们分别对
W
,
b
W, b
W,b求导,可得
{
∂
C
(
W
,
b
)
∂
b
=
−
y
i
j
,
i
f
f
y
i
j
(
b
−
d
W
2
(
x
i
,
x
j
)
)
⩽
1
0
,
o
t
h
e
r
w
i
s
e
\left\{ \begin{aligned} &\frac{\partial C(W,b)}{\partial b}=-y_{ij}&,& \quad iff \quad y_{ij}(b-d_{W}^2(x_i, x_j))\leqslant 1\\ &0\quad \quad \quad &,& \quad otherwise \end{aligned} \right.
⎩⎨⎧∂b∂C(W,b)=−yij0,,iffyij(b−dW2(xi,xj))⩽1otherwise
{ ∂ C ( W , b ) ∂ w = y i j W ( x i − x j ) ( x i − x j ) T , i f f y i j ( b − d W 2 ( x i , x j ) ) ⩽ 1 0 , o t h e r w i s e \left\{ \begin{aligned} &\frac{\partial C(W,b)}{\partial w}=y_{ij}W(x_i-x_j)(x_i-x_j)^T&,&\quad iff \quad y_{ij}(b-d_{W}^2(x_i, x_j))\leqslant 1\\ &\mathbf{0} \quad \quad \quad &,& \quad otherwise \end{aligned} \right. ⎩⎨⎧∂w∂C(W,b)=yijW(xi−xj)(xi−xj)T0,,iffyij(b−dW2(xi,xj))⩽1otherwise
那么我们可以得到一个迭代关系位 b t + 1 = { b t , i f f y i j ( b − d W 2 ( x i , x j ) ) > 1 b t + γ y i j , o t h e r w i s e b_{t+1}=\left\{ \begin{aligned} &b_t\quad \quad \quad &,& \quad iff \quad y_{ij}(b-d_{W}^2(x_i, x_j))> 1\\ &b_t+\gamma y_{ij}&,&\quad otherwise \end{aligned} \right. bt+1={btbt+γyij,,iffyij(b−dW2(xi,xj))>1otherwise
W t + 1 = { W t , i f f y i j ( b − d W 2 ( x i , x j ) ) > 1 W t − γ y i j W t ( x i − x j ) ( x i − x j ) T , o t h e r w i s e W_{t+1}=\left\{ \begin{aligned} &W_t\quad \quad \quad &,& \quad iff \quad y_{ij}(b-d_{W}^2(x_i, x_j))> 1\\ &W_t-\gamma y_{ij}W_t(x_i-x_j)(x_i-x_j)^T \quad &,&\quad otherwise \end{aligned} \right. Wt+1={WtWt−γyijWt(xi−xj)(xi−xj)T,,iffyij(b−dW2(xi,xj))>1otherwise
The End
- 关于W的初始化, 可以采用PCA分析, 提取前m条主元, 来构成W的初始矩阵. 再次基础上进行迭代.
- 在测试集合上迭代到一定的条件的时候可终止, 也可以在迭代固定次数的时候终止.