LDA-作为线性判别 降维 推导

LDA 降维原理

前面对 LDA 作为作为分类器 有详细推导, 其核心就是 贝叶斯公式, 已知全概率, 求(条件概率)最大先验概率, 类似的问题. 而 LDA 如果作为 降维 的原理是:

a. 将带上标签的数据点, 通过投影, 投影到维度更低的空间中,

b. 使得投影后的点, 同类别会"内聚", 不同类别会 "分隔开",

类似写代码的"高内聚, 低耦合". 注意是要 带标签的点, 不同于 PCA 值考虑 X 降维, y 不考虑. 直观上来理解还是比较容易的, 但怎么去确定投影方向, 这就不好弄了.

假设, 先计算不同类别数据的中心 (这里假设2维, 方便可视化). 如果将数据直接投影到连接中心的向量 w 上(降维), 会发现有重叠, (脑补吧, 不想贴图).

最近我有个奇怪的观点: 理解一个抽象概念, "数形结合" 在某种程度上, 反而不利于直观理解.

比如, 多维下, 是很难可视化的, 而此时的脑图像, 可能还是停留在 2维度, 因而总感觉, "很抽象"

其实,

我认为,

最好理解抽象概念的方式

回到抽象概念自身, 从规则, 从内部结构, 从定义去理解, "而非画个图", 低维可以, 高维凉凉了.

比如, 理解 "向量空间", 就不要画什么坐标性, 箭头之类的, "技术层", 多花心思去理解内部结构 加和数乘, 这样的 思想层.

这样就会导致,原来可以线性分割的的数据, 降维后无法分割了. 因此, 类别中心点连线作为 投影线, 是不行的哦.

那么, 最优的投影线要如何确定, 这就是接下来的求解问题

LDA 降维推导

Fisher's 线性降维

  • 不同类别, 降维后, 类与类之间, 差异大
  • 同一类别, 降维后, 类中数据点, 差异小

自然语言是很好描述的, 如何转为数学语言, 这其实是很有趣味的问题, 突然想到一句很有感触的一句话:

"相比于解决问题, 最难的其实是发现(定义)问题"

不扯了, 直接来吧, 宝贝~ 假设 样本 X 有大 K 个类别, 各个类别(矩阵)的中心 (均值向量) 为 \(\mu_1, \mu_2, ...\mu_k\)

首先,

来描述, 不同类别的 均值 和全局的 均值 之间的 "差异总量" 有多大, 得到一个矩阵

\(S_B = \sum \limits_{k=1}^K(\mu_k - \bar x) (\mu_k - \bar x)^T\)

都是列向量哦, 最后得到一个矩阵, B: 类别间 Between

然后,

来描述, 同一类别中, 各样本点 与 该类的 "中心点" , "距离" 有多大, 同样得到一个矩阵

\(\sum \limits_{i =1}^{n} (x_i - \mu_k)(x_i -\mu_k)^T\)

注: 我这里 n 表示 类别为 k 的 样本数, 是动态变化的哈,非 总体样本数哈

考虑所有类别, 各类之间的样本点差异 "总量", 就再 外层对 k求和, 即:

\(S_W = \sum \limits _{i=1}^K \sum \limits_{i =1}^n (x_i - \mu_k)(x_i -\mu_k)^T\)

W: 同类间的样本点, Within

目标: 其实就是想 找到一个 最优的 投影方向, 即一个向量

又理解了一波向量: 大小即其长度(模), 方向即, 与基坐标原点的连线方向. 二维下即可用 与某轴 的 "夹角" 衡量

\(max _w \ J(w) = \frac {w'S_Bw}{w'S_Ww}\)

\(w'\) 也表示 \(w^T\). 对应向量/矩阵来说, ' 表示转置, 对应函数来说表示 求导

w 的不同数值, 即表示了不同方向的 投影线 (向量的方向)

"组间大,组内小" , 即上式的 分母要尽可能大,分子相对下, 则总体是以最大化问题 ,关于投影线(向量) w 的函数 J(w).

w 向量是可以任意取值的, 为了尽快求解, 可以对 w 做一个条件约束:

\(w'S_ww =1\)

为啥要分子 为1 而不出2,3,4 呢? 其实也可以, 1感觉比较好看 嗯.

为啥能对w约束? \(S_w\) 是已知的嘛, 如果 \(S_w\) 很大, 那 w 必然很小, 瞧, 约束上了

约束的是在干啥? 控制 w 的大致方向范围, 不要人生, 没有方向

转为带约束的最小值问题 ( - 最大 = 最小 )

\(min_w \ J(w) =- \frac{1}{2} w'S_Bw\)

\(s.t. \ w'S_ww = 1\)

引入拉格朗日函数

\(L(w) = - \frac {1}{2} w'S_B w+ \frac {1}{2} \lambda (w'S_ww-1)\)

后面的 \(\frac {1}{2}\) 是为了求导后形式更好看一点, 没啥实际意义

对 w 求偏导, 让其值 为0

\(\nabla_w = 0 = -S_Bw + \lambda S_ww\)

矩阵求导, 网查的, 具体也不太理解和会

即: \(S_Bw = \lambda S_ww\)

等号两边同时 左乘 \(S_w^{-1}\) 即:

\(S_w^{-1} S_B w = \lambda w\)

兄弟们, 这个形式, 形如 "\(Ax = \lambda x\)" 不就是特征分解嘛 (方向平行, 做拉伸变换对向量), 严格来说,

如果 \(S_w^{-1} S_B\) 是对称矩阵, 则 求解 w 则是一个特征分解问题, 但如果 不是对称矩阵呢, 问题就变为了广义特征向量问题了哦.

由于 \(S_B\)正交正定矩阵, (先不证明了哈) , 对 \(S_B\) 做特征分解, 可得:

S_B 跟协方差差不多的, 这里证明下协方差是半正定的

协方差阵定义为: \(\Sigma = E[(X-\mu)(X-\mu)^T]\)

只需证明对于任意非零向量 z, 满足:

\(z^T\Sigma z \ge 0 即可\)

\(z'\Sigma z = z' E[(X-\mu)(X-\mu)^T]z\)

\(= E[z'(X-\mu)(z'(X-\mu))^T]\)

\(=E[z'(X-\mu)]^2 \ge 0\)

期望必然是非负, 即证协方差是 半正定

\(S_B = S \land S^{-1} = Q \land Q'\)

矩阵性质: if X 是正交的

\(S_B ^{\frac {1}{2}} = Q \land ^{\frac {1}{2}}Q'\), \(\land\) 是一个对角阵, 就是只有主对角线有值的矩阵.

因此,

\(S_B = S_B^{\frac {1}{2}} S_B^{\frac {1}{2}}\)

现在, 再定义 \(v = S_B ^{\frac{1}{2}} w\) 则对于之前的等式: \(S_w^{-1} S_B w = \lambda w\) 可写为

\(S_w ^{-1} S_B^{\frac {1}{2}} S_B^{\frac {1}{2}} w = \lambda w\)

将 v 代入得:

\(S_w^{-1} S_B ^{\frac {1}{2}} v = \lambda w\)

再两边 左乘 \(S_B^{\frac {1}{2}}\) 得:

\(S_B^{\frac {1}{2}} S_w^{-1} S_B ^{\frac {1}{2}} v = S_B^{\frac {1}{2}} \lambda w = \lambda v\)

简写一波, 令 \(A = S_B^{\frac {1}{2}} S_w^{-1} S_B ^{\frac {1}{2}}\) 其实 A 也是正定矩阵, 此时的形式, 又变为咱熟悉的形式:

\(Av = \lambda v, \ 其中 v = S_B^{\frac {1}{2}}w\)

为啥要弄一通转换? 就是为了求解 w 啊

然后对 A 进行特征分解, 找到 \(\lambda_k 和 v_k\) 后, (回得到很多配对的 \(\lambda_k, v_k\) 取几个大的不就行了吗)

对应的求解 w, 即找到了最佳的投影方向, 能满足 "高内聚, 低耦合"

\(w = (S_B^{\frac {1}{2}})^{-1}v_k\)

LDA vs PCA

  • PCA 的 投影线(方向) 是 使得数据点在只上的方差最大, 该投影线的垂直方向可作为类分割线, 不关注标签值

  • LDA 的 投影线(方向) 是 使得不同标签的点, 类别之间距离大, 同类之间的点距离小, 标签必须考虑

小结

连推了这两波LDA, 嗯...

作为, 线性分类器, 其核心思想, 就是 贝叶斯

作为, 降维工具, 其原理就是写代码风格的 高内聚, 低耦合

想想, 接下来, 扩展一波, 嗯 综合 LDA 先升维, 在分类 + 核函数技巧 , 琢磨一波....

猜你喜欢

转载自www.cnblogs.com/chenjieyouge/p/11999919.html