2020-3-7 深度学习笔记13 - 线性因子模型 2(慢特征分析SFA,稀疏编码,PCA的流形解释)

第十三章 线性因子模型

官网
原版

2020-3-6 深度学习笔记13 - 线性因子模型 1(降维技术:概率主成分分析PCA和因子分析,独立成分分析ICA)

慢特征分析(Slow Feature Analysis,SFA)

慢特征分析是使用来自时间信号的信息学习不变特征的线性因子模型。

SFA,源于所谓的慢性原则。希望学习随时间变化较为缓慢的特征,其核心思想是认为一些重要的特征通常相对于时间来讲相对变化较慢。

例如:视频图像识别中,单个像素值可以非常快速地改变。假如我们要探测图片中是否包含斑马,如果斑马从左到右移动穿过图像并且它的条纹穿过对应的像素时,两帧之间单个像素可能从黑突变为白,并再次恢复成黑色。通过比较,指示斑马是否在图像中的特征将不发生改变,并且描述斑马位置的特征将缓慢地改变。所以我们可能希望将模型正则化,从而能够学习到一些随时间变化更慢的特征来决定我们的预测结果。

慢性原则早于慢特征分析,并已被应用于各种模型。 一般来说,我们可以将慢性原则应用于可以使用梯度下降训练的任何可微分模型。 为了引入慢性原则,假设我们的特征提取函数为 f f f,我们可以向代价函数添加以下项 λ ∑ t L ( f ( x ( t + 1 ) ) , f ( x ( t ) ) ) λ\sum_tL(f(x^{(t+1)}),f(x^{(t)})) λtL(f(x(t+1)),f(x(t)))
其中

  • λ \lambda λ是确定慢度正则化强度的超参数项
  • t t t是样本时间序列的索引,
  • f f f是需要正则化的特征提取器
  • L L L是测量 f ( x ( t ) ) f(x^{(t)}) f(x(t)) f ( x ( t + 1 ) ) f(x^{(t+1)}) f(x(t+1))之间的距离的损失函数。 L L L的一个常见选择是均方误差。

SFA即假定特征提取函数 f ( x ; θ ) f(x;\theta) f(x;θ) 为线性变换,进而解决如下的优化问题
在这里插入图片描述
并且满足下面的约束: E t f ( x ( t ) ) i = 0 E_tf(x^{(t)})_i=0 Etf(x(t))i=0
以及 E t [ f ( x ( t ) ) i 2 ] = 1 E_t[f(x^{(t)})^2_i]=1 Et[f(x(t))i2]=1
以上学习特征具有零均值的约束对于使问题具有唯一解是必要的,否则我们可以向所有特征值添加一个常数,并获得具有相等慢度目标值的不同解。

另外我们还要求各个不同特征之间是去相关的 ∀ i < j , E t [ f ( x ( t ) ) i f ( x ( t ) ) j ] = 0 ∀ii<j,Et[f(x(t))if(x(t))j]=0 ,否则所有的特征都会变成最慢的那个信号的不同表征。

稀疏编码

稀疏编码(sparse coding)是一个线性因子模型,已作为一种无监督特征学习和特征提取机制得到了广泛研究。

稀疏编码希望隐性特征更稀疏,即集中在少数几个特征上,所以它的先验函数通常选为在零点附近有比较陡峭的峰值的函数。例如:拉普拉斯函数 p ( h i ) = L a p l a c e ( h i ; 0 , 2 λ ) = λ 4 e − 1 2 λ ∣ h i ∣ p(h_i)=Laplace(h_i;0,\frac2λ)=\fracλ4e^{−\frac12λ|h_i|} p(hi)=Laplace(hi;0,λ2)=4λe21λhi
而noise是高斯噪声 p ( x ∣ h ) = N ( x ; W h + b , 1 β I ) p(x∣h)=N(x;Wh+b,\frac1βI) p(xh)=N(x;Wh+b,β1I)
我们的而优化问题是 a r g m a x h p ( h ∣ x ) = a r g m a x h l o g p ( h ∣ x ) = a r g m i n h λ ∥ h ∥ 1 + β ∥ x − W h ∥ 2 2 \underset h{argmax} p(h∣x)= \underset h{argmax} logp(h∣x)= \underset h{argmin} λ∥h∥_1+β∥x−Wh∥^2_2 hargmaxp(hx)=hargmaxlogp(hx)=hargminλh1+βxWh22
其中,我们扔掉了与 h h h无关的项,并除以一个正的缩放因子来简化表达。由于在 h h h上施加 L 1 L^1 L1范数,这个过程将产生稀疏的 h ∗ h^* h

总结一下,因子分析,概率PCA,ICA,SFA等线性因子模型是比较简单的学习数据的高效表征的方法,而且它们也可以扩展为之后更复杂的自编码网络以及深度概率模型,所以有必要对其有基本的理解。

PCA的流形解释 Manifold Interpretation of PCA

流形学习(Manifold Learning)是机器学习的一种,这种方法是对数据本身特征的一种挖掘,是信号处理领域最经典的方法之一。

流形学习的本质是用低维度数据分布去解释高纬度数据,也可以把它理解成寻找一个高维数据空间到低维数据空间的映射。

例如,空间中有一个三维圆锥物体,一个二维世界的人想去观测这个物体,用什么样的方法呢?如果圆锥位于它的正上方,二维人只能观测到一个圆形的投影,它也无法区分这个投影是属于一个圆锥还是一个圆球。此时,我们旋转一下这个物体,让三角形部分投影到观测面上,二维人可以揣测这个物体具有一个三角形的尖端和一个弧形的底部。所有我们在流形学习中用到的方法,比如PCA, ICA类似于旋转这个圆锥的“上帝之手”,让圆锥的特征更多的投影到二维观测面上。

线性因子模型,包括PCA和因子分析,可以理解为学习一个流形。我们可以将概率PCA定义为高概率的薄饼状区域,即一个高斯分布,沿着某些轴非常窄,就像薄饼沿着其垂直轴非常平坦,但沿着其他轴是细长的,正如薄饼在其水平轴方向是很宽的一样。

2020-3-7 深度学习笔记13 - 线性因子模型 2(慢特征分析SFA,稀疏编码,PCA的流形解释)_第1张图片
图13.3解释了这种现象。PCA可以理解为将该薄饼与更高维空间中的线性流形对准。这种解释不仅适用于传统PCA,而且适用于学习矩阵W和V的任何线性自编码器,其目的是使重构的x尽可能接近于原始的x。

编码器表示为 h = f ( x ) = W ⊤ ( x − μ ) h=f(x)=W^⊤(x−μ) h=f(x)=W(xμ)
编码器计算 h h h的低维表示。从自编码器的角度来看,解码器负责计算重构: x ^ = g ( h ) = b + V h \hat x=g(h)=b+Vh x^=g(h)=b+Vh

能够最小化重构误差 E [ ∥ x − x ^ ∥ 2 ] E[∥x−\hat x∥^2] E[xx^2]的线性编码器和解码器的选择,对应着 V = W V = W V=W μ = b = E [ x ] {\mu} = b = E[x] μ=b=E[x] W W W的列形成一组标准正交基,这组基生成的子空间与协方差矩阵 C = E [ ( x − μ ) ( x − μ ) ⊤ ] C=E[(x−μ)(x−μ)^⊤] C=E[(xμ)(xμ)]的主特征向量所生成的子空间相同。

在PCA中, W W W的列是按照对应特征值(其全部是实数和非负数)幅度大小排序所对应的特征向量。

我们还可以发现 C C C的特征值 λ i \lambda_i λi对应了 x x x在特征向量 v ( i ) v^{(i)} v(i)方向上的方差。 如果 x ∈ R D x\in R^D xRD h ∈ R d h\in R^d hRd并且满足 d < D dd<D,则(给定上述的 μ , b , V , W {\mu},b,V,W μ,b,V,W的情况下)最佳的重构误差是
m i n E [ ∥ x − x ^ ∥ 2 ] = ∑ i = d + 1 D λ i minE[∥x−\hat x∥^2]=\sum_{i=d+1}^Dλ_i minE[xx^2]=i=d+1Dλi
因此,如果协方差矩阵的秩为 d d d,则特征值 λ d + 1 \lambda_{d+1} λd+1 λ D \lambda_{D} λD都为 0 0 0,并且重构误差为 0 0 0。 上面这个公式就是PCA的优化目:让重构误差E最小。

你可能感兴趣的:(深度学习,IT)