线性因子模型

线性因子模型

线性因子模型是基于潜变量的一类简单概率模型,线性因子模型通过随机线性解码器函数来定义,通过函数对 h h h 的线性变换以及添加噪声来生成 x x x

线性因子模型描述了如下的数据生成过程。首先我们从一个分布中抽取解释性因子 h h h h ∼ p ( h ) h \sim p(h) hp(h) ,其中 p ( h ) p(h) p(h) 是一个因子分布,满足 p ( h ) = ∏ i p ( h i ) p(h)=\prod_{i}p(h_i) p(h)=ip(hi) ,易于从中采样。接下来,再给定因子的情况下,我们对实值的可观察变量进行采样。

x = W h + b + n o i s e x=Wh+b+noise x=Wh+b+noise

其中噪声通常是对角化(相互独立)的且服从高斯分布。

1 概率 PCA 和因子分析

1.1 因子分析

因子分析中,潜变量的先验是一个方差单位矩阵的高斯分布

h ∼ N ( h ; 0 , I ) h\sim \mathcal{N}(h;0, I) hN(h;0,I)

同时假设给定 h h h 观测下的 x i x_i xi 是条件独立的(因子分析的假设)。我们可以假设上面提到的线性因子模型的 noise 是从对角协方差矩阵的高斯分布中抽取出来的,协方差矩阵为 ψ = d i a g ( σ 2 ) \psi=diag(\sigma^2) ψ=diag(σ2) ,其中 σ 2 = [ σ 1 2 , ⋯   , σ n 2 ] T \sigma^2=[\sigma_1^2, \cdots, \sigma^2_n]^T σ2=[σ12,,σn2]T,每个元素代表一个变量的方差。

因此我们可以得出 x x x 服从多维正态分布

x ∼ N ( x ; b , W W T + ψ I ) x \sim \mathcal{N}(x;b, WW^T+\psi I) xN(x;b,WWT+ψI)

1.2 概率 PCA

概率 PCA 和因子分析很相似,在因子分析模型中,我们使噪声 ψ \psi ψ 的每个元素都相等,即噪声的每个维度都服从相同的分布即可得到概率 PCA

x ∼ N ( x ; b , W W T + σ 2 I ) x \sim \mathcal{N}(x;b, WW^T+\sigma^2 I) xN(x;b,WWT+σ2I)

等价于

x = W h + b + σ z x=Wh+b+\sigma z x=Wh+b+σz

z ∼ N ( z ; 0 , I ) z\sim \mathcal{N}(z;0, I) zN(z;0,I) 是噪声,可以用 EM 算法去求解概率 PCA 和因子分析中的潜变量 W W W σ \sigma σ

σ → 0 \sigma \rightarrow 0 σ0 时,概率 PCA 退化成 PCA,在这种情况下,给定 x x x 的情况下 h h h 的条件期望等于将 x − b x-b xb 投影在 W W W 的列向量生成的空间上,这与 PCA 的情形一样。

2.独立成分分析

独立主成分分析(independent component analysis, ICA) 是一种建模线性因子的方法旨在将观察到的信号分离成许多潜在信号吗,这些潜在信号通过缩放和叠加可以恢复成观察数据,这些信号是完全独立的,而不仅仅是彼此不相关(不相关只是指两者没有线性关系,不代表独立)。

ICA 和其他的因子模型有些不太一样,其他的因子模型都假设潜变量是服从高斯分布的,而 ICA 假设隐变量一定不能服从高斯分布。

ICA 的仍是给出假设变量概率分布 p ( h ) = ∏ i p ( h i ) p(h)=\prod_{i}p(h_i) p(h)=ip(hi) X = A H X = AH X=AH, 我们要求达到编码器那种效果的权重矩阵 W W W, H = A − 1 X = W X H=A^{-1}X=WX H=A1X=WX 。我们知道 H H H X X X 具有相同的累积分布函数 CDF (ICA 核心), 根据以下公式(花书的3.47)

p ( h ) = p ( W x ) ∣ W ∣ = ( ∏ i = 1 p ( W i x ) ) ∣ W ∣ p(h)=p(Wx)|W|=(\prod_{i=1}p(W_ix))|W| p(h)=p(Wx)W=(i=1p(Wix))W

然后我们使用对数极大似然估计得到

l ( W ) = ∑ j = 1 n log ⁡ ( ( ∏ i = 1 p ( W i x ( j ) ) ∣ W ∣ ) l(W)=\sum_{j=1}^{n}\log ((\prod_{i=1}p(W_ix^{(j)})|W|) l(W)=j=1nlog((i=1p(Wix(j))W)

然后使用梯度上升法就能求得权重矩阵 W W W

3. 稀疏编码

稀疏编码是一种线性因子模型,严格来说,术语“稀疏编码”是指在该模型中推断 h h h 值的过程,而“稀疏建模”是指设计和学习模型的过程,但是通常两者都可以用“稀疏编码”来表述。这里的稀疏编码也不同于稀疏编码器,这里的的稀疏编码是线性因子模型,是线性的。它使用了线性的解码器加上噪声的方式获得一个 x x x 的重构,更具体的,稀疏编码模型通常假设线性因子有一个各向同性精度为 β \beta β 的高斯噪声:

p ( x ∣ h ) = N ( x ; W h + b , 1 β I ) p(x|h)=\mathcal{N}(x;Wh+b, \frac{1}{\beta}I) p(xh)=N(x;Wh+b,β1I)

分布 p ( h ) p(h) p(h) 通常选取为一个峰值很尖锐且接近 0 的分布,可以用 Laplace 分布,例如以稀疏惩罚系数 λ \lambda λ 为参数的 Laplace 先验分布可以表示为

p ( h i ) = L a p l a c e ( h i ; 0 , 2 λ ) = λ 4 e x p ( − 1 2 λ ∣ h i ∣ ) p(h_i)=Laplace(h_i;0, \frac{2}{\lambda})=\frac{\lambda}{4}exp(-\frac{1}{2}\lambda|h_i|) p(hi)=Laplace(hi;0,λ2)=4λexp(21λhi)

使用最大似然的方法训练稀疏编码模型行不通(要使用最大后验推断,类似 EM 算法),相反们为了再给定编码的情况下更好的重构数据,训练过程在编码数据和训练解码器之间交替进行。

因为稀疏编码模型与其他的线性因子模型不同,其他线性因子模型可以很好的将似然概率表达为 p ( v ) = N ( v ; b , W W T + ψ I ) p(v)=\mathcal{N}(v;b,WW^T+\psi I) p(v)=N(v;b,WWT+ψI) ,是简单的正态分布。而稀疏编码由于其隐藏单元 h h h 添加了稀疏先验,导致 p ( v ) p(v) p(v) 复杂,其梯度也很难得到。取而代之的是使用最大后验推断来极大化 ELBO,类似 EM 算法。详情见花书 p388。

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