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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/86556223

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

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

0. 前言

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

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

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

在不同的线性因子模型中,都是选择了不同形式的噪声不同潜变量的先验生成 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)

概率PCA中,将条件方差 σ i 2 \sigma_i^2 等于同一个值:
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)

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

2. 独立成分分析 ICA

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

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

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

ICA的许多变种不是生成模型,生成模型可以直接表示 p ( x ) p(x) ,而ICA的许多变种仅知道如何在 x x h h 之间变换,而不能表示 p ( h ) p(h) 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)}))
其中, t t 表示时间序列的索引, f f 是需要正则化的特征提取器, L L 是度量距离的损失函数,例如均方误差。

SFA算法将 f ( x ; θ ) f(x;\theta) 定义为线性变换,对下式优化:
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
并满足约束:
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

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 ( 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|}

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

我们寻找单个最可能的编码值:
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}

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

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


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

猜你喜欢

转载自blog.csdn.net/zhq9695/article/details/86556223