当前位置:   article > 正文

深度学习之自然梯度法和线性判别分析

深度学习之自然梯度法和线性判别分析

1 自然梯度法

1.1 为什么我们需要自然梯度

传统的梯度下降方法是在欧氏空间进行、并与时序过程结合的优化方法,但这样的更新过程无法度量由于参数变化引起的概率属性的变化(这一点也可以认为是传统梯度下降方法的缺点)。在如强化学习等很多应用领域关注模型输出的概率分布,优化过程常常需要在一定概率属性的约束下完成,这就需要自然梯度。

1.2 如何定义自然梯度

若度量模型参数变化引起的概率分布变化,常用的“距离”度量是KL散度(Kullback-Leibler divergence)。设模型概率分布为 p ( x ; θ ) p(x;\theta) p(x;θ),其与参数变动后的概率分布间的KL散度为:
D K L ( p ( x ; θ ) ∣ ∣ p ( x ; θ + δ θ ) ) = ∫ p ( x ; θ ) l o g p ( x ; θ ) p ( x ; θ + δ θ ) d x D_{KL}(p(x;\theta)||p(x;\theta+\delta\theta))=\int p(x;\theta)log\frac {p(x;\theta)}{p(x;\theta+\delta\theta)}dx DKL(p(x;θ)∣∣p(x;θ+δθ))=p(x;θ)logp(x;θ+δθ)p(x;θ)dx
我们令 f ( θ + δ θ ) = l o g p ( x ; θ + δ θ ) f(\theta+\delta\theta)=log p(x;\theta+\delta\theta) f(θ+δθ)=logp(x;θ+δθ),做泰勒展开取二阶近似(忽略高阶余项)得到:
f ( θ + δ θ ) ≈ f ( θ ) + δ θ T ∂ f ( θ ) ∂ θ + 1 2 δ θ T ∂ f ( θ ) ∂ θ ∂ f ( θ ) T ∂ θ δ θ f(\theta+\delta\theta)\approx f(\theta)+\delta\theta^T\frac{\partial f(\theta)}{\partial\theta}+\frac{1}{2}\delta\theta^T\frac{\partial f(\theta)}{\partial\theta}\frac{\partial f(\theta)^T}{\partial\theta}\delta\theta f(θ+δθ)f(θ)+δθTθf(θ)+21δθTθf(θ)θf(θ)Tδθ
带入到 D K L ( p ( x ; θ ) ∣ ∣ p ( x ; θ + δ θ ) ) D_{KL}(p(x;\theta)||p(x;\theta+\delta\theta)) DKL(p(x;θ)∣∣p(x;θ+δθ))中可得到:
KaTeX parse error: No such environment: eqnarray at position 8: \begin{̲e̲q̲n̲a̲r̲r̲a̲y̲}̲ D_{KL}(p(x;\th…
我们记在KL散度意义下的参数增量为 δ θ G \delta\theta_G δθG,接下来我们寻求在 ∣ ∣ δ θ G ∣ ∣ 2 = ϵ ||\delta\theta_G||^2=\epsilon ∣∣δθG2=ϵ约束下 δ θ G \delta\theta_G δθG的方向,使得目标函数 J ( θ ) J(\theta) J(θ)下降最快,即 J ( θ + δ θ ) − J ( θ ) J(\theta+\delta\theta)-J(\theta) J(θ+δθ)J(θ)最大。应用拉格朗日乘子法:
max ⁡ δ θ J ( θ + δ θ ) − J ( θ ) − λ ( ∣ ∣ δ θ G ∣ ∣ 2 − ϵ ) \max_{\delta\theta}J(\theta+\delta\theta)-J(\theta)-\lambda(||\delta\theta_G||^2-\epsilon) δθmaxJ(θ+δθ)J(θ)λ(∣∣δθG2ϵ)
应用一阶泰勒展开等价于:
max ⁡ δ θ ∇ δ θ T J ( θ ) − 1 2 λ δ θ T G δ θ \max_{\delta\theta}\nabla \delta\theta^T J(\theta)-\frac{1}{2}\lambda\delta\theta^TG\delta\theta δθmaxδθTJ(θ)21λδθTGδθ
δ θ \delta\theta δθ求导得 ∇ J ( θ ) − λ G δ θ = 0 \nabla J(\theta)-\lambda G\delta\theta=0 J(θ)λGδθ=0,即 δ θ = 1 λ G − 1 ∇ J ( θ ) \delta\theta=\frac{1}{\lambda}G^{-1}\nabla J(\theta) δθ=λ1G1J(θ),其中 G − 1 ∇ J ( θ ) G^{-1}\nabla J(\theta) G1J(θ)称为自然梯度,相应的自然梯度下降公式为 θ k + 1 = θ k − α k G − 1 ( θ k ) ∇ J ( θ K ) \theta_{k+1}=\theta_k-\alpha_kG^{-1}(\theta_k)\nabla J(\theta_K) θk+1=θkαkG1(θk)J(θK)

1.3 Fisher信息矩阵的意义

首先我们对一个模型进行建模,成为以 θ \theta θ为参数的概率分布 p ( x ; θ ) p(x;\theta) p(x;θ)。为求出一个合理的 θ \theta θ我们需要一个评分函数(score function): s ( θ ) = ∇ θ l o g p ( x ; θ ) s(\theta)=\nabla_{\theta}logp(x;\theta) s(θ)=θlogp(x;θ),意为对数似然的梯度,当分数为0时(对数似然梯度为0),对数似然达到极值。对评分函数求关于 p ( x ; θ ) p(x;\theta) p(x;θ)数学期望 p E p_E pE不难发现期望为0。接下来求估计误差的界,我们用评分函数的方差来确定,即 E p ( x ; θ ) [ ( s ( θ ) − p E ) ( s ( θ − p E ) T ) ] E_{p(x;\theta)}[(s(\theta)-p_E)(s(\theta-p_E)^T)] Ep(x;θ)[(s(θ)pE)(s(θpE)T)]。带入评分函数的数学表达形式则等价于Fisher信息矩阵 G ( θ ) = ∫ p ( x ; θ ) ∂ f ( θ ) ∂ θ ∂ f ( θ ) T ∂ θ d x G(\theta)=\int p(x;\theta)\frac{\partial f(\theta)}{\partial\theta}\frac{\partial f(\theta)^T}{\partial\theta}dx G(θ)=p(x;θ)θf(θ)θf(θ)Tdx。特别地,Fisher信息矩阵与评分函数 ∇ θ l o g p ( x ; θ ) \nabla_{\theta}logp(x;\theta) θlogp(x;θ)的Hessian似然的负数等价。

证明:首先求出评分函数的Hessian矩阵,由梯度的Jacobian决定
KaTeX parse error: No such environment: eqnarray at position 8: \begin{̲e̲q̲n̲a̲r̲r̲a̲y̲}̲ H_{logp(x;\the…
等式两边同时求关于 p ( x ; θ ) p(x;\theta) p(x;θ)的数学期望:
KaTeX parse error: No such environment: eqnarray at position 8: \begin{̲e̲q̲n̲a̲r̲r̲a̲y̲}̲ E_{p(x;\theta)…
而Hessian矩阵刻画着对数似然函数的曲率,所以本质上自然梯度下降法是在一个消除了不同概率分布的曲率后,在同一个“平坦”曲面上进行迭代更新,步长等于原概率分布空间的步长按照曲率折合到新的“平坦曲面”的大小。

值得注意的一点是,一般来说似然函数获取很难,在实际问题中,我们可以用采样的方法从数据集中采样数据,将Fisher信息矩阵原始表达式的积分变为求和来近似估计,这样的方式得到的Fisher信息矩阵称为经验Fisher。

2. 线性判别分析(LDA)

2.1 LDA思想总结

​ 线性判别分析(Linear Discriminant Analysis,LDA)是一种经典的降维方法。和主成分分析PCA不考虑样本类别输出的无监督降维技术不同,LDA是一种监督学习的降维技术,数据集的每个样本有类别输出。

LDA分类思想简单总结如下:

  1. 多维空间中,数据处理分类问题较为复杂,LDA算法将多维空间中的数据投影到一条直线上,将d维数据转化成1维数据进行处理。
  2. 对于训练数据,设法将多维数据投影到一条直线上,同类数据的投影点尽可能接近,异类数据点尽可能远离。
  3. 对数据进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。

如果用一句话概括LDA思想,即“投影后类内方差最小,类间方差最大”。

2.2 图解LDA核心思想

​ 假设有红、蓝两类数据,这些数据特征均为二维,如下图所示。我们的目标是将这些数据投影到一维,让每一类相近的数据的投影点尽可能接近,不同类别数据尽可能远,即图中红色和蓝色数据中心之间的距离尽可能大。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

左图和右图是两种不同的投影方式。

​ 左图思路:让不同类别的平均点距离最远的投影方式。

​ 右图思路:让同类别的数据挨得最近的投影方式。

​ 从上图直观看出,右图红色数据和蓝色数据在各自的区域来说相对集中,根据数据分布直方图也可看出,所以右图的投影效果好于左图,左图中间直方图部分有明显交集。

​ 以上例子是基于数据是二维的,分类后的投影是一条直线。如果原始数据是多维的,则投影后的分类面是一低维的超平面。

2.3 二类LDA算法原理

​ 输入:数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } ​ D=\{(\boldsymbol x_1,\boldsymbol y_1),(\boldsymbol x_2,\boldsymbol y_2),...,(\boldsymbol x_m,\boldsymbol y_m)\}​ D={(x1,y1),(x2,y2),...,(xm,ym)},其中样本 x i ​ \boldsymbol x_i ​ xi 是n维向量, y i ϵ { 0 , 1 } ​ \boldsymbol y_i \epsilon \{0, 1\}​ yiϵ{0,1},降维后的目标维度 d ​ d​ d。定义

N j ( j = 0 , 1 ) N_j(j=0,1) Nj(j=0,1) 为第 j j j 类样本个数;

X j ( j = 0 , 1 ) X_j(j=0,1) Xj(j=0,1) 为第 j j j 类样本的集合;

u j ( j = 0 , 1 ) ​ u_j(j=0,1)​ uj(j=0,1) 为第 j ​ j​ j 类样本的均值向量;

∑ j ( j = 0 , 1 ) \sum_j(j=0,1) j(j=0,1) 为第 j j j 类样本的协方差矩阵。

​ 其中
u j = 1 N j ∑ x ϵ X j x ( j = 0 , 1 ) , ∑ j = ∑ x ϵ X j ( x − u j ) ( x − u j ) T ( j = 0 , 1 ) u_j = \frac{1}{N_j} \sum_{\boldsymbol x\epsilon X_j}\boldsymbol x(j=0,1), \sum_j = \sum_{\boldsymbol x\epsilon X_j}(\boldsymbol x-u_j)(\boldsymbol x-u_j)^T(j=0,1) uj=Nj1xϵXjx(j=0,1)j=xϵXj(xuj)(xuj)T(j=0,1)
​ 假设投影直线是向量 w \boldsymbol w w,对任意样本 x i \boldsymbol x_i xi,它在直线 w w w上的投影为 w T x i \boldsymbol w^Tx_i wTxi,两个类别的中心点 u 0 u_0 u0, $u_1 $在直线 w w w 的投影分别为 w T u 0 \boldsymbol w^Tu_0 wTu0 w T u 1 \boldsymbol w^Tu_1 wTu1

​ LDA的目标是让两类别的数据中心间的距离 ∥ w T u 0 − w T u 1 ∥ 2 2 \| \boldsymbol w^Tu_0 - \boldsymbol w^Tu_1 \|^2_2 wTu0wTu122 尽量大,与此同时,希望同类样本投影点的协方差 w T ∑ 0 w \boldsymbol w^T \sum_0 \boldsymbol w wT0w w T ∑ 1 w \boldsymbol w^T \sum_1 \boldsymbol w wT1w 尽量小,最小化 w T ∑ 0 w + w T ∑ 1 w ​ \boldsymbol w^T \sum_0 \boldsymbol w + \boldsymbol w^T \sum_1 \boldsymbol w​ wT0w+wT1w
​ 定义
​ 类内散度矩阵
S w = ∑ 0 + ∑ 1 = ∑ x ϵ X 0 ( x − u 0 ) ( x − u 0 ) T + ∑ x ϵ X 1 ( x − u 1 ) ( x − u 1 ) T S_w = \sum_0 + \sum_1 = \sum_{\boldsymbol x\epsilon X_0}(\boldsymbol x-u_0)(\boldsymbol x-u_0)^T + \sum_{\boldsymbol x\epsilon X_1}(\boldsymbol x-u_1)(\boldsymbol x-u_1)^T Sw=0+1=xϵX0(xu0)(xu0)T+xϵX1(xu1)(xu1)T
​ 类间散度矩阵 S b = ( u 0 − u 1 ) ( u 0 − u 1 ) T S_b = (u_0 - u_1)(u_0 - u_1)^T Sb=(u0u1)(u0u1)T

​ 据上分析,优化目标为
KaTeX parse error: Got function '\boldsymbol' with no arguments as subscript at position 20: …thop{\arg\max}_\̲b̲o̲l̲d̲s̲y̲m̲b̲o̲l̲ ̲w J(\boldsymbol…
​ 根据广义瑞利商的性质,矩阵 S w − 1 S b S^{-1}_{w} S_b Sw1Sb 的最大特征值为 J ( w ) J(\boldsymbol w) J(w) 的最大值,矩阵 S w − 1 S b S^{-1}_{w} S_b Sw1Sb 的最大特征值对应的特征向量即为 w \boldsymbol w w

2.4 LDA算法流程总结

LDA算法降维流程如下:

​ 输入:数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D = \{ (x_1,y_1),(x_2,y_2), ... ,(x_m,y_m) \} D={(x1,y1),(x2,y2),...,(xm,ym)},其中样本 $x_i $ 是n维向量, y i ϵ { C 1 , C 2 , . . . , C k } y_i \epsilon \{C_1, C_2, ..., C_k\} yiϵ{C1,C2,...,Ck},降维后的目标维度 d d d

​ 输出:降维后的数据集 $\overline{D} $ 。

步骤:

  1. 计算类内散度矩阵 S w S_w Sw
  2. 计算类间散度矩阵 S b ​ S_b​ Sb
  3. 计算矩阵 S w − 1 S b ​ S^{-1}_wS_b​ Sw1Sb
  4. 计算矩阵 S w − 1 S b S^{-1}_wS_b Sw1Sb 的最大的 d 个特征值。
  5. 计算 d 个特征值对应的 d 个特征向量,记投影矩阵为 W 。
  6. 转化样本集的每个样本,得到新样本 P i = W T x i ​ P_i = W^Tx_i​ Pi=WTxi
  7. 输出新样本集 D ‾ = { ( p 1 , y 1 ) , ( p 2 , y 2 ) , . . . , ( p m , y m ) } ​ \overline{D} = \{ (p_1,y_1),(p_2,y_2),...,(p_m,y_m) \}​ D={(p1,y1),(p2,y2),...,(pm,ym)}

2.5 LDA和PCA区别

异同点LDAPCA
相同点1. 两者均可以对数据进行降维;
2. 两者在降维时均使用了矩阵特征分解的思想;
3. 两者都假设数据符合高斯分布;
不同点有监督的降维方法;无监督的降维方法;
降维最多降到k-1维;降维多少没有限制;
可以用于降维,还可以用于分类;只用于降维;
选择分类性能最好的投影方向;选择样本点投影具有最大方差的方向;
更明确,更能反映样本间差异;目的较为模糊;

2.6 LDA优缺点

优缺点简要说明
优点1. 可以使用类别的先验知识;
2. 以标签、类别衡量差异性的有监督降维方式,相对于PCA的模糊性,其目的更明确,更能反映样本间的差异;
缺点1. LDA不适合对非高斯分布样本进行降维;
2. LDA降维最多降到分类数k-1维;
3. LDA在样本分类信息依赖方差而不是均值时,降维效果不好;
4. LDA可能过度拟合数据。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/582525
推荐阅读
相关标签
  

闽ICP备14008679号