最大边界降维算法(large margin dimensionality reduction)

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 nm.

  • 其次,我们定义一个线性变换矩阵 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(bdW2(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)=WxiWxj2=(xixj)TWTW(xixj),
    其中 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,jmax[1yij(b(xixj)TWTW(xixj)),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(bdW2(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(bdW2(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)=1yij(b(xixj)TWTW(xixj)),,
下面我们分别对 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. bC(W,b)=yij0,,iffyij(bdW2(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. wC(W,b)=yijW(xixj)(xixj)T0,,iffyij(bdW2(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(bdW2(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(xixj)(xixj)T,,iffyij(bdW2(xi,xj))>1otherwise

The End

  • 关于W的初始化, 可以采用PCA分析, 提取前m条主元, 来构成W的初始矩阵. 再次基础上进行迭代.
  • 在测试集合上迭代到一定的条件的时候可终止, 也可以在迭代固定次数的时候终止.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值