DLA降维简述

本文介绍了DLA(Discriminative Locality Alignment)降维方法的原理与实现过程。DLA通过三个步骤进行:首先为每个样本构建包含同类与非同类邻居的patch;接着计算margin degree来衡量样本的重要性;最后整合所有patch并求解最优降维矩阵。
摘要由CSDN通过智能技术生成

DLA起源之解

考虑一个样本集合X=[x1,x2...xN],每个样本属于C个类中的一个。我们可以使用类似于PCA,LDA的线性降维方法将x由m维降至d维(m>d)。但是线性降维方法存在一些问题,例如LDA中的求逆运算,经常可能因为矩阵的奇异性是降维结果恶化。而这里介绍的DLA方法可以避免这个问题。对了忘了给DLA一个'名正言顺'的名字,全名就是'Discriminative Locality Alignment'。名字不是我取的,就不要取笑博主说取了这么难懂的名字了。

DLA三部曲

DLA的降维矩阵计算分为3个步骤:

  • 为数据集中的每个样本 建立一个patch,这个patch主要是本样本及其neighbors构成,既有本类还有其它类的样本。可以这样认为,每个patch都包含了局部判别信息,称这个步骤为'part optimization'。
  • margin degree可以看成是该样本在正确分类的贡献的多少的衡量尺度,贡献越大,重要性越高,称这个步骤为'sample weighting'。
  • 最后一步称为'whole alignment',是将所有的patch整合起来,求其最优化结果,得到降维矩阵。

Part Optimization

对于某个样本xi,我们选择k1个同类的最近邻样本[xi1,xi2,...xik1],选择k2个非同类的最近邻样本[xi1,xi2,...xik2],这样我们就构建了样本xi的patch:Xi=[xi,xi1,xi2,...xik1,xi1,xi2,...xik2],对这个patch的降维结果,我们可以记为Yi=[yi,yi1,yi2,...yik1,yi1,yi2,...yik2]。讲到这里,突然想起了降维的目的,简化运算复杂度是其一,还有就是可以将不同的类分离这也是一个目的!!!所以这里我们也是希望,降维后Y中同类样本更近些,而与xi不同类样本离之远些。写成公式就是

argminyij=1k1||yiyij||2

argmaxyip=1k2||yiyip||2

将上面的两个公式整合在一起就得到了下面的公式
argminyi(j=1k1||yiyij||2βp=1k2||yiyip||2)

其中的 β是一个尺度因子,取值范围 [0,1]
将同类样本的系数 1和异类样本的系数 β构成一个系数向量 ω=[1,...1,β,..β],于是上面那个公式可以用矩阵运算表示:

其中 ek1+k2=[1,...1]T k1+k2维列向量, I是一个单位矩阵
所以最后可以计算出 Li矩阵如下:

Margin Degree

为了衡量一个样本的重要性,我们使用了margin degree这一概念。通常在机器学习中,一个样本的重要性并不是它能否更为正确的区分,相反是它的难分程度,越难区分则越重要。
在此处,我们通过在样本xi的周围画一个半径ξ大小的圈,圈中的非同类样本数为ni,则margin degree可以定义为

mi=exp(1ni+δ)t

加入 mi后,前面的公式转为:

Whole Alignment

定义一个值为0-1的N(k1+k2+1)的矩阵Si,它用于从样本全集Y中找出Yi,即Yi=YSi,其中,(Si)pq=1ifp=Fiq
这样上面的式子又可以写成:


最终,整个数据集的优化变为了:

而对L矩阵的求解,可以用如下方法,(L初始化为N*N的0矩阵):

最终我们的优化问题变为:求降维矩阵 U,使下式最小:

解决方法是求XLXTu=λu的前d个最小特征根对应的特征向量

最后推荐在使用DLA降维前,先使用PCA去除一些噪声。





转载于:https://www.cnblogs.com/MaiYatang/p/4826550.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值