花书+吴恩达深度学习(二一)线性因子模型(概率PCA,ICA,SFA,稀疏编码)

文章目录

  • 0. 前言
  • 1. 概率PCA和因子分析
  • 2. 独立成分分析 ICA
  • 3. 慢特征分析 SFA
  • 4. 稀疏编码

如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

花书+吴恩达深度学习(二一)线性因子模型(概率PCA,ICA,SFA,稀疏编码)
花书+吴恩达深度学习(二二)自编码器(欠完备,DAE,CAE,PSD)

0. 前言

线性因子模型是最简单的生成模型学习数据表示的最简单模型。

线性因子模型通过随机线性解码器函数来定义,对 h h h线性变换及添加噪声来生成 x x x

h ∼ p ( h ) x = W h + b + n o i s e h\sim p(h)\\ x=Wh+b+noise hp(h)x=Wh+b+noise

在不同的线性因子模型中,都是选择了不同形式的噪声不同潜变量的先验生成 x x x的。

线性分类器或线性回归模型可以扩展到深度前馈网络,线性因子模型也可以扩展到自编码器网络深度概率模型

1. 概率PCA和因子分析

因子分析中,潜变量的先验是一个方差为单位矩阵的高斯分布
h ∼ N ( h ; 0 , I ) x ∼ N ( x ; b , W W T + ψ ) ψ = d i a g ( σ 2 ) = d i a g ( [ σ 1 2 , . . . , σ n 2 ] T ) h\sim N(h;0,I)\\ x\sim N(x;b,WW^T+\psi)\\ \psi=diag(\sigma^2)=diag([\sigma_1^2,...,\sigma_n^2]^T) hN(h;0,I)xN(x;b,WWT+ψ)ψ=diag(σ2)=diag([σ12,...,σn2]T)

概率PCA中,将条件方差 σ i 2 \sigma_i^2 σi2等于同一个值:
x ∼ N ( x ; b , W W T + σ 2 I ) x = W h + b + σ z z ∼ N ( z ; 0 , I ) x\sim N(x;b,WW^T+\sigma^2I)\\ x=Wh+b+\sigma z\\ z\sim N(z;0,I) xN(x;b,WWT+σ2I)x=Wh+b+σzzN(z;0,I)

σ → 0 \sigma\rightarrow0 σ0时,概率PCA退化为PCA。

2. 独立成分分析 ICA

独立成分分析(independent component analysis)是一种建模线性因子的方法。

旨在将信号分析成许多潜在的信号,这些潜在信号可以通过缩放和叠加恢复成观察到的数据。

潜变量的先验 p ( h ) p(h) p(h)需要由用户给出,模型确定的生成 x = W h x=Wh x=Wh,通过非线性变化确定 p ( x ) p(x) p(x)

ICA的许多变种不是生成模型,生成模型可以直接表示 p ( x ) p(x) p(x),而ICA的许多变种仅知道如何在 x x x h h h之间变换,而不能表示 p ( h ) p(h) p(h) p ( x ) p(x) p(x),所以ICA多用于分离信号。

3. 慢特征分析 SFA

慢特征分析(slow feature analysis)使用来自时间信号的信息学习不变的特征

基于慢性原则:与场景中起描述作用的单个量度相比,场景的重要特征通常变化的非常缓慢。

所以,我们将模型正则化,希望能学习到随时间变化较为缓慢的特征

对代价函数添加以下正则化项:
λ ∑ t L ( f ( x ( t + 1 ) ) , f ( x ( t ) ) ) \lambda \sum_tL(f(x^{(t+1)}),f(x^{(t)})) λtL(f(x(t+1)),f(x(t)))
其中, t t t表示时间序列的索引, f f f是需要正则化的特征提取器, L L L是度量距离的损失函数,例如均方误差。

SFA算法将 f ( x ; θ ) f(x;\theta) f(x;θ)定义为线性变换,对下式优化:
m i n θ   E t ( f ( x ( t + 1 ) ) i − f ( x ( t ) ) i ) 2 min_\theta\ \mathbb{E}_t(f(x^{(t+1)})_i-f(x^{(t)})_i)^2 minθ Et(f(x(t+1))if(x(t))i)2
并满足约束:
E t f ( x ( t ) ) i = 0 E t [ f ( x ( t ) ) i 2 ] = 1 \mathbb{E}_t f(x^{(t)})_i=0\\ \mathbb{E}_t [f(x^{(t)})_i^2]=1 Etf(x(t))i=0Et[f(x(t))i2]=1

SFA的主要优点是,即使在深度非线性条件下,依然能够在理论上预测学习到哪些特征。

4. 稀疏编码

稀疏编码模型通常假设线性因子有一个各向同精度为 β \beta β的高斯噪声:
p ( x ∣ h ) = N ( x ; W h + b , 1 β I ) p(x\mid h)=N(x;Wh+b,\frac{1}{\beta}I) p(xh)=N(x;Wh+b,β1I)

p ( h ) p(h) p(h)通常选取一个峰值很尖锐且接近0的分布,例如Laplace分布:
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,\frac{2}{\lambda})=\frac{\lambda}{4}e^{-\frac{1}{2}\lambda\left|h_i\right|} p(hi)=Laplace(hi;0,λ2)=4λe21λhi

使用最大似然的方法来训练稀疏编码模型是不可行的。相反,为了在给定编码的情况下更好的重构数据,训练过程在编码数据和训练解码器之间交替进行。

我们寻找单个最可能的编码值:
h ∗ = f ( x ) = a r g m a x h   p ( h ∣ x ) = a r g m a x h   log ⁡ p ( h ∣ x ) = a r g m i n h   λ ∥ h ∥ 1 + β ∥ x − W h ∥ 2 2 \begin{aligned} h^*=f(x) &= argmax_h\ p(h\mid x)\\ &= argmax_h\ \log p(h\mid x)\\ &= argmin_h\ \lambda\left\|h\right\|_1+\beta\left\|x-Wh\right\|_2^2 \end{aligned} h=f(x)=argmaxh p(hx)=argmaxh logp(hx)=argminh λh1+βxWh22

对于绝大多数形式,推断问题是凸的,优化过程总能找到最优编码。

非参数编码器的主要缺点是,给定 x x x的情况下需要大量的时间来计算 h h h


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

你可能感兴趣的:(深度学习,深度学习,无监督学习,线性因子模型,SFA,稀疏编码)