文章目录
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
花书+吴恩达深度学习(二七)深度生成模型之玻尔兹曼机及其变体(RBM, DBN, DBM)
花书+吴恩达深度学习(二八)深度生成模型之有向生成网络(VAE, GAN, 自回归网络)
花书+吴恩达深度学习(二九)生成随机网络 GSN
0. 前言
玻尔兹曼机(Boltzmann machine)最初用来学习二值向量上的任意概率分布。
玻尔兹曼机的变体早已超过了原始玻尔兹曼机的流行程度。
1. 玻尔兹曼机
在 d d d维二值随机向量 x ∈ { 0 , 1 } d x\in \{0,1\}^d x∈{
0,1}d上定义玻尔兹曼机,玻尔兹曼机是一种基于能量的模型:
P ( x ) = exp ( − E ( x ) ) Z E ( x ) = − x T U x − b T x P(x)=\frac{\exp(-E(x))}{Z}\\ E(x)=-x^TUx-b^Tx P(x)=Zexp(−E(x))E(x)=−xTUx−bTx
这意味着一个单元的概率由其他单元值得线性模型给出。
正式的,将单元 x x x分解成:可见单元 v v v和隐藏单元 h h h,能量函数表示为:
E ( v , h ) = − v T R v − v T W h − h T S h − b T v − c T h E(v,h)=-v^TRv-v^TWh-h^TSh-b^Tv-c^Th E(v,h)=−vTRv−vTWh−hTSh−bTv−cTh
当基于最大似然的学习规则训练时,连接两个单元的特定权重的更新仅取决于这两个单元在不同分布下收集的统计信息 P m o d e l ( v ) P_{model}(v) Pmodel(v)和 P ^ d a t a ( v ) P m o d e l ( h ∣ v ) \hat{P}_{data}(v)P_{model}(h\mid v) P^data(v)Pmodel(h∣v),这意味着学习规则是“局部的”。
2. 受限玻尔兹曼机 RBM
受限玻尔兹曼机(restricted Boltzmann machine)是包含一层可观察变量和单层潜变量的无向概率图模型。
如下图所示(图源:深度学习):
RBM也是基于能量的模型:
P ( v , h ) = exp ( − E ( v , h ) ) Z E ( v , h ) = − v T W h − b T v − c T h Z = ∑ v ∑ h exp ( − E ( v , h ) ) P(v,h)=\frac{\exp(-E(v,h))}{Z}\\ E(v,h)=-v^TWh-b^Tv-c^Th\\ Z=\sum_v\sum_h\exp(-E(v,h)) P(v,h)=Zexp(−E(v,h))E(v,h)=−vTWh−bTv−cThZ=v∑h∑exp(−E(v,h))
难解的配分函数 Z Z Z意味着归一化联合概率分布 P ( v ) P(v) P(v)也难以估计,但RBM的二分图结构具有非常特殊的性质,其条件分布 P ( h ∣ v ) P(h\mid v) P(h∣v)和 P ( v ∣ h ) P(v\mid h) P(v∣h)是因子的,并且计算和采样时相对简单的:
P ( h ∣ v ) = ∏ j = 1 n h σ ( ( 2 h − 1 ) ⊙ ( c + W T v ) ) j P ( v ∣ h ) = ∏ i = 1 n v σ ( ( 2 v − 1 ) ⊙ ( b + W h ) ) i P(h\mid v)=\prod_{j=1}^{n_h}\sigma((2h-1)\odot(c+W^Tv))_j\\ P(v\mid h)=\prod_{i=1}^{n_v}\sigma((2v-1)\odot(b+Wh))_i P(h∣v)=j=1∏nhσ((2h−1)⊙(c+WTv))jP(v∣h)=i=1∏nvσ((2v−1)⊙