1、前言
受限玻尔兹曼机,一个基于概率图的模型。本文对受限玻尔兹曼机的原理进行简单推导,其中相关知识的某些原理也不会过多涉及,只着重于受限玻尔兹曼机。代码实现
数学基础:【概率论与数理统计知识复习-哔哩哔哩】
2、引入
2.1、无向图
在一张图中,我们存在一些节点和边,这些节点之间存在的某种关系,通过边来表示,节点和边共同组成了一张图,并且这些边是没有方向的(即互联),这种图被称为无向图。
在我们应用的过程中,里面的每一个节点,一般就是我们某个数据的一个维度。比如假设某个样本 x i ∈ ( x 1 , x 2 , x 3 , x 4 , x 5 ) x_i \in (x_1,x_2,x_3,x_4,x_5) xi∈(x1,x2,x3,x4,x5),那么图中的 a , b , c , d , e a,b,c,d,e a,b,c,d,e就分别对应 x 1 , x 2 , x 3 , x 4 , x 5 x_1,x_2,x_3,x_4,x_5 x1,x2,x3,x4,x5。
性质: 成对马尔可夫性:当节点 i , j 没有边相连,则有 x i ⊥ x j ∣ x − i − j \boxed{成对马尔可夫性:当节点i,j没有边相连,则有x_i\perp x_j|x_{-i-j}} 成对马尔可夫性:当节点i,j没有边相连,则有xi⊥xj∣x−i−j。比如图中,对节点a和c,再给定d的情况下,两者独立 → a ⊥ c ∣ b \rightarrow a\perp c | b →a⊥c∣b
2.2、受限玻尔兹曼机(RBM)
受限玻尔兹曼机(以下简称RBM),本质上就是一个无向概率图模型,但是它有一个特点,便是引入了隐变量h(无法观测到的数据,意为我们仅仅知道观测数据 x x x),其模型图可表示为
可以看到,对于观测变量 x x x,其两两之间是没有边相连。隐变量h也是同理。在实际应用中,一般就是求 P ( h ∣ x ) P(h|x) P(h∣x)或者 P ( x ∣ h ) P(x|h) P(x∣h)。
这是一个概率图模型,既然是概率图,那就必须有三大问题—— 表示、推断、学习 \boxed{表示、推断、学习} 表示、推断、学习
表示——如何将模型表示成概率分布函数的形式 \boxed{表示——如何将模型表示成概率分布函数的形式} 表示——如何将模型表示成概率分布函数的形式
推断——如何求出边缘概率,条件概率等 ( 包含预测 ) \boxed{推断——如何求出边缘概率,条件概率等(包含预测)} 推断——如何求出边缘概率,条件概率等(包含预测)
学习——如何学习模型参数 \boxed{学习——如何学习模型参数} 学习——如何学习模型参数
3、三大问题
3.1、表示
3.1.1、无向图模型表示
在无向图中,一般情况下我们将里面所有的节点表示为
P
(
x
)
=
1
Z
∏
i
=
1
k
ϕ
(
x
c
i
)
P(x)=\frac{1}{Z}\prod\limits_{i=1}^k\phi(x_{ci})
P(x)=Z1i=1∏kϕ(xci)
其中,
Z
Z
Z被称为配分函数(用于归一化,保证概率值在0~1),
ϕ
\phi
ϕ被称为势函数,
k
k
k就是图中
最大团
\boxed{最大团}
最大团的个数(不理解没关系,也可以直接看RBM的模型表示),其中
Z
=
∑
x
∏
i
=
1
k
ϕ
(
x
c
i
)
Z=\sum\limits_{x}\prod\limits_{i=1}^k\phi (x_{ci})
Z=x∑i=1∏kϕ(xci)
对于势函数
ϕ
\phi
ϕ,我们一般定义为
ϕ
(
x
c
i
)
=
exp
{
−
E
(
x
c
i
)
}
\phi(x_{ci})=\exp\left\{-E(x_{ci})\right\}
ϕ(xci)=exp{−E(xci)}
E
(
x
c
i
)
E(x_{ci})
E(xci)为最大团对应的能量函数
所以,最终的模型可以表示为(将多个exp相乘转成相加)
P
(
x
)
=
1
Z
exp
{
−
∑
i
=
1
k
E
(
x
c
i
)
}
(1)
P(x)=\frac{1}{Z}\exp\left\{-\sum\limits_{i=1}^kE(x_{ci})\right\}\tag{1}
P(x)=Z1exp{−i=1∑kE(xci)}(1)
这只是一个大体形式的表达,具体到其他模型中,能量函数需要自行去设定。
3.1.2、RBM模型表示
对于(式1),exp里面的
x
c
i
x_{ci}
xci,加上连加号,可以用所有的x表示(去掉连加号)
P
(
x
)
=
1
Z
exp
{
−
E
(
x
)
}
P(x)=\frac{1}{Z}\exp\left\{-E(x)\right\}
P(x)=Z1exp{−E(x)}
又因为在RBM中,节点数包括隐变量
h
h
h和观测变量
x
x
x,所以,理应表达成
P
(
x
,
h
)
=
1
Z
exp
{
−
E
(
x
,
h
)
}
P(x,h)=\frac{1}{Z}\exp\left\{-E(x,h)\right\}
P(x,h)=Z1exp{−E(x,h)}
定义变量
x
=
(
x
1
x
2
⋯
x
n
)
n
×
1
;
h
=
(
h
1
h
2
⋯
h
m
)
m
×
1
;
w
=
[
w
11
w
12
⋯
w
1
m
w
21
w
22
⋯
w
2
m
⋮
⋮
⋱
⋮
w
n
1
w
n
2
⋯
w
n
m
]
n
×
m
x=\begin{pmatrix} x_1 \\ x_2 \\ \cdots \\ x_n \end{pmatrix}_{n\times 1};h=\begin{pmatrix} h_1 \\ h_2 \\ \cdots \\ h_m \end{pmatrix}_{m\times 1};w=\begin{bmatrix} w_{11} & w_{12} & \cdots & w_{1m} \\ w_{21} & w_{22} & \cdots & w_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ w_{n1} & w_{n2} & \cdots & w_{nm} \end{bmatrix}_{n \times m}
x=
x1x2⋯xn
n×1;h=
h1h2⋯hm
m×1;w=
w11w21⋮wn1w12w22⋮wn2⋯⋯⋱⋯w1mw2m⋮wnm
n×m
x为观测变量的维度,h为隐变量的维度,w为x和h节点相连的的边
所以,一般情况下,我们定义受限玻尔兹曼机
E
(
x
,
h
)
=
−
(
x
T
w
h
+
α
T
h
+
β
T
x
)
E(x,h)=-(x^Twh+\alpha^T{h}+\beta^T{x})
E(x,h)=−(xTwh+αTh+βTx)
负号是为了抵消掉exp中的负号,
α
维度是
m
×
1
\boxed{\alpha维度是m\times 1}
α维度是m×1,
β
维度是
n
×
1
\boxed{\beta维度是n\times 1}
β维度是n×1,参数为
w
,
α
,
β
w,\alpha,\beta
w,α,β
可以看到,我们表示成了 观测变量与隐变量相连 + 隐变量节点 + 观测变量节点 \boxed{观测变量与隐变量相连+隐变量节点+观测变量节点} 观测变量与隐变量相连+隐变量节点+观测变量节点。这种表达是相当合理的。
所以我们的模型就表示为
P
(
x
,
h
)
=
1
Z
exp
{
x
T
w
h
+
α
T
h
+
β
T
x
}
(2)
P(x,h)=\frac{1}{Z}\exp\left\{x^Twh+\alpha^Th+\beta^Tx\right\}\tag{2}
P(x,h)=Z1exp{xTwh+αTh+βTx}(2)
3.2、推断
在推断中,是假设我们的参数已经学习出来了。
在传统的RBM中,对于每一个 h i , x i ∈ 0 , 1 h_i,x_i \in {0,1} hi,xi∈0,1,也就是一般它们是取二值。
在后面学习问题中,我们仅仅会用到 P ( h l ∣ x ) 或者 P ( x l ∣ h ) ( l 代表某一个样本索引),所以推断我们仅仅讲这个 \boxed{在后面学习问题中,我们仅仅会用到P(h_l|x)或者P(x_l|h)(l代表某一个样本索引),所以推断我们仅仅讲这个} 在后面学习问题中,我们仅仅会用到P(hl∣x)或者P(xl∣h)(l代表某一个样本索引),所以推断我们仅仅讲这个
因为这是一个二值问题,所以我们只需要求出 P ( h l = 1 ∣ x ) P(h_l=1|x) P(hl=1∣x), P ( h l = 0 ∣ x ) P(h_l=0|x) P(hl=0∣x)自然可以为 1 − P ( h l = 1 ∣ x ) 1-P(h_l=1|x) 1−P(hl=1∣x)
在求解之前,我们将式(
2
)分解为和节点
l
相关与无关的两部分(后面用到)
\boxed{在求解之前,我们将式(2)分解为和节点l相关与无关的两部分(后面用到)}
在求解之前,我们将式(2)分解为和节点l相关与无关的两部分(后面用到)
P
(
x
,
h
)
=
1
Z
exp
{
x
T
w
h
+
α
T
h
+
β
T
x
}
=
1
Z
exp
{
∑
i
=
1
n
∑
j
=
1
m
x
i
w
i
j
h
j
+
∑
j
=
1
m
α
j
h
j
+
∑
i
=
1
n
β
i
x
i
}
=
1
Z
exp
{
(
∑
i
=
1
n
∑
j
≠
l
m
x
i
w
i
j
h
j
+
∑
i
=
1
n
x
i
w
i
l
h
l
)
+
(
∑
j
≠
l
m
α
j
h
j
+
α
l
h
l
)
+
∑
i
=
1
n
β
i
x
i
}
\begin{aligned} P(x,h)=&\frac{1}{Z}\exp\left\{x^Twh+\alpha^Th+\beta^Tx\right\} \\=&\frac{1}{Z}\exp\left\{\sum\limits_{i=1}^n\sum\limits_{j=1}^mx_iw_{ij}h_{j}+\sum\limits_{j=1}^m\alpha_jh_j+\sum\limits_{i=1}^n\beta_ix_i\right\} \\=&\frac{1}{Z}\exp\left\{\left(\sum\limits_{i=1 }^n\sum\limits_{j\neq l}^mx_iw_{ij}h_{j}+\sum\limits_{i=1}^nx_{i}w_{il}h_{l}\right)+\left(\sum\limits_{j\neq l}^m\alpha_jh_j+\alpha_lh_l\right)+\sum\limits_{i=1}^n\beta_ix_i\right\} \end{aligned}
P(x,h)===Z1exp{xTwh+αTh+βTx}Z1exp{i=1∑nj=1∑mxiwijhj+j=1∑mαjhj+i=1∑nβixi}Z1exp⎩
⎨
⎧
i=1∑nj=l∑mxiwijhj+i=1∑nxiwilhl
+
j=l∑mαjhj+αlhl
+i=1∑nβixi⎭
⎬
⎫
将与
l
l
l相关的部分记作
H
l
H_{l}
Hl,无关记作
H
ˉ
l
\bar H_{l}
Hˉl
H
l
=
∑
i
=
1
n
x
i
w
i
l
h
l
+
α
l
h
l
H
ˉ
l
=
∑
i
=
1
n
∑
j
≠
l
m
x
i
w
i
j
h
j
+
∑
j
≠
l
m
α
j
h
j
+
∑
i
=
1
n
β
i
x
i
\begin{aligned} H_l=&\sum\limits_{i=1}^nx_iw_{il}h_l+\alpha_lh_l\\ \bar H_l=&\sum\limits_{i=1 }^n\sum\limits_{j\neq l}^mx_iw_{ij}h_{j}+\sum\limits_{j\neq l}^m\alpha_jh_j+\sum\limits_{i=1}^n\beta_ix_i \end{aligned}
Hl=Hˉl=i=1∑nxiwilhl+αlhli=1∑nj=l∑mxiwijhj+j=l∑mαjhj+i=1∑nβixi
所以
P
(
x
,
h
)
=
1
Z
exp
{
H
l
+
H
ˉ
l
}
P(x,h)=\frac{1}{Z}\exp\left\{H_l+\bar H_l\right\}
P(x,h)=Z1exp{Hl+Hˉl}
3.2.1、求解 P ( h l = 1 ∣ x ) P(h_l=1|x) P(hl=1∣x)
P ( h l = 1 ∣ x ) = P ( h l = 1 ∣ h − l , x ) = P ( h l = 1 , h − l , x ) ∑ l P ( h l , h − l , x ) = P ( h l = 1 , h − l , x ) P ( h l = 1 , h − l , x ) + P ( h l = 0 , h − l , x ) \begin{align} P(h_l=1|x)=&P(h_l=1|h_{-l},x)\tag{a} \\=&\frac{P(h_l=1,h_{-l},x)}{\sum\limits_{l}P(h_l,h_{-l},x)}\tag{b} \\=&\frac{P(h_l=1,h_{-l},x)}{P(h_l=1,h_{-l},x)+P(h_l=0,h_{-l},x)}\nonumber \end{align} P(hl=1∣x)===P(hl=1∣h−l,x)l∑P(hl,h−l,x)P(hl=1,h−l,x)P(hl=1,h−l,x)+P(hl=0,h−l,x)P(hl=1,h−l,x)(a)(b)
− l -l −l表示除了 l l l以外的其他样本。(式a)用到了前面提到的 成对马尔科夫性 \boxed{成对马尔科夫性} 成对马尔科夫性,(式b)用到了贝叶斯公式。
注意看,分子和分母实际上都是一个
P
(
x
,
h
)
P(x,h)
P(x,h),只是第
l
l
l个节点确定了某一个值而已。记
H
l
(
1
)
H_l(1)
Hl(1)表示
h
l
=
1
h_l=1
hl=1的情况,所以分子,分母分别是
P
(
h
l
=
1
,
h
−
i
,
x
)
=
1
Z
exp
{
H
l
(
1
)
+
H
ˉ
l
}
P
(
h
l
=
1
,
h
−
i
,
x
)
+
P
(
h
l
=
0
,
h
−
i
,
x
)
=
1
Z
exp
{
H
l
(
1
)
+
H
ˉ
l
}
+
1
Z
exp
{
H
l
(
0
)
+
H
ˉ
l
}
\begin{aligned} P(h_l=1,h_{-i},x)=&\frac{1}{Z}\exp\left\{H_l(1)+\bar H_l\right\}\\ P(h_l=1,h_{-i},x)+P(h_l=0,h_{-i},x)=&\frac{1}{Z}\exp\left\{H_l(1)+\bar H_l\right\}+\frac{1}{Z}\exp\left\{H_l(0)+\bar H_l\right\} \end{aligned}
P(hl=1,h−i,x)=P(hl=1,h−i,x)+P(hl=0,h−i,x)=Z1exp{Hl(1)+Hˉl}Z1exp{Hl(1)+Hˉl}+Z1exp{Hl(0)+Hˉl}
所以
P
(
h
l
=
1
∣
x
)
=
1
Z
exp
{
H
l
(
1
)
+
H
ˉ
l
}
1
Z
exp
{
H
l
(
1
)
+
H
ˉ
l
}
+
1
Z
exp
{
H
l
(
0
)
+
H
ˉ
l
}
=
1
1
+
exp
{
H
l
(
0
)
+
H
l
ˉ
−
H
l
(
1
)
−
H
ˉ
l
}
=
1
1
+
exp
{
H
l
(
0
)
−
H
l
(
1
)
}
=
1
1
+
exp
{
−
∑
i
=
1
n
x
i
w
i
l
−
α
l
}
\begin{align} P(h_l=1|x)=&\frac{\frac{1}{Z}\exp\left\{H_l(1)+\bar H_l\right\}}{\frac{1}{Z}\exp\left\{H_l(1)+\bar H_l\right\}+\frac{1}{Z}\exp\left\{H_l(0)+\bar H_l\right\}}\tag{a} \\=&\frac{1}{1+\exp\left\{H_l(0)+\bar{H_l}-H_l(1)-\bar H_l\right\}}\tag{b} \\=&\frac{1}{1+\exp\left\{H_l(0)-H_l(1)\right\}}\tag{c} \\=&\frac{1}{1+\exp\left\{-\sum\limits_{i=1}^nx_iw_{il}-\alpha_l\right\}}\tag{d} \end{align}
P(hl=1∣x)====Z1exp{Hl(1)+Hˉl}+Z1exp{Hl(0)+Hˉl}Z1exp{Hl(1)+Hˉl}1+exp{Hl(0)+Hlˉ−Hl(1)−Hˉl}11+exp{Hl(0)−Hl(1)}11+exp{−i=1∑nxiwil−αl}1(a)(b)(c)(d)
(式a)到(式b)是分式上下同时除以分子。(式c)到(式d)是将
H
l
H_l
Hl的值代入。·
3.2.2、求解 P ( x l = 1 ∣ h ) P(x_l=1|h) P(xl=1∣h)
由于推导过程与
P
(
h
l
=
1
∣
x
)
P(h_l=1|x)
P(hl=1∣x)一致,所以便不再重复推导,给出结论
P
(
x
l
=
1
∣
h
)
=
1
1
+
exp
{
−
∑
j
=
1
m
w
l
j
h
j
−
β
l
}
P(x_l=1|h)=\frac{1}{1+\exp\left\{-\sum\limits_{j=1}^mw_{lj}h_j-\beta_l\right\}}
P(xl=1∣h)=1+exp{−j=1∑mwljhj−βl}1
3.3、学习
L e a n i n g 问题是学习出参数 θ ∈ { w , α , β } \boxed{Leaning问题是学习出参数\theta \in \{w,\alpha,\beta\}} Leaning问题是学习出参数θ∈{w,α,β}
3.3.1、目标函数
令
x
∈
X
x \in X
x∈X,其中
X
X
X是一个
N
N
N维向量,上标表示样本,下标表示维度
X
=
(
x
1
x
2
⋮
x
N
)
N
×
n
X=\begin{pmatrix} x^1 \\ x^2 \\ \vdots \\ x^N \end{pmatrix}_{N \times n}
X=
x1x2⋮xN
N×n
采用极大似然估计的思想,我们对log似然求最大
log
P
(
X
)
=
log
∏
i
=
1
N
P
(
x
i
)
=
∑
i
=
1
N
log
P
(
x
i
)
\begin{aligned} \log{P(X)}=&\log{\prod\limits_{i=1}^NP(x^i)} \\=&\sum\limits_{i=1}^N\log{P(x^i)} \end{aligned}
logP(X)==logi=1∏NP(xi)i=1∑NlogP(xi)
所以目标函数就是
arg
max
θ
log
P
(
X
)
=
arg
max
θ
1
N
∑
i
=
1
N
log
P
(
x
i
)
\arg\max_{\theta}\log P(X)=\arg\max_{\theta}\frac{1}{N}\sum\limits_{i=1}^N\log P(x^i)
argθmaxlogP(X)=argθmaxN1i=1∑NlogP(xi)
1
N
\frac{1}{N}
N1是常数,不影响最终结果,加上仅是为了后面的
梯度下降
\boxed{梯度下降}
梯度下降
3.3.2、梯度上升
对目标函数关于
θ
求偏导得
\boxed{对目标函数关于\theta求偏导得}
对目标函数关于θ求偏导得
∂
∂
θ
1
N
∑
i
=
1
N
log
P
(
x
i
)
=
1
N
∑
i
=
1
N
∂
∂
θ
log
P
(
x
i
)
(3)
\begin{aligned} &\frac{\partial}{\partial \theta}\frac{1}{N}\sum\limits_{i=1}^N\log P(x^i) \\=&\frac{1}{N}\sum\limits_{i=1}^N\frac{\partial}{\partial \theta}\log P(x^i) \end{aligned}\tag{3}
=∂θ∂N1i=1∑NlogP(xi)N1i=1∑N∂θ∂logP(xi)(3)
该问题并没有解析解,需要迭代式求解,将(式3)每一项单独看(为了简便,用x代表某一个样本)
log
P
(
x
)
=
log
∑
h
P
(
x
,
h
)
=
log
∑
h
1
Z
exp
{
−
E
(
x
,
h
)
}
=
log
1
Z
∑
h
exp
{
−
E
(
x
,
h
)
}
=
log
∑
h
exp
{
−
E
(
x
,
h
)
}
−
log
Z
=
log
∑
h
exp
{
−
E
(
x
,
h
)
}
⏟
①
−
log
∑
x
,
h
exp
{
−
E
(
x
,
h
)
}
⏟
②
\begin{aligned} \log P(x)=&\log\sum\limits_{h} P(x,h) \\=&\log \sum\limits_{h}\frac{1}{Z}\exp\left\{-E(x,h)\right\} \\=&\log\frac{1}{Z}\sum\limits_{h}\exp\left\{-E(x,h)\right\} \\=&\log\sum\limits_{h}\exp\left\{-E(x,h)\right\}-\log Z \\=&\underbrace{\log\sum\limits_{h}\exp\left\{-E(x,h)\right\}}_{①}-\underbrace{\log\sum\limits_{{x,h}}\exp\left\{-E(x,h)\right\}}_{②} \end{aligned}
logP(x)=====logh∑P(x,h)logh∑Z1exp{−E(x,h)}logZ1h∑exp{−E(x,h)}logh∑exp{−E(x,h)}−logZ①
logh∑exp{−E(x,h)}−②
logx,h∑exp{−E(x,h)}
分别对里面两部分求偏导(链式求导法则)
①
=
∂
∂
θ
log
∑
h
exp
{
−
E
(
x
,
h
)
}
=
−
1
∑
h
exp
{
−
E
(
x
,
h
)
}
×
∑
h
exp
{
−
E
(
x
,
h
)
}
∂
E
(
x
,
h
)
∂
θ
=
−
∑
h
exp
{
−
E
(
x
,
h
)
}
∂
E
(
x
,
h
)
∂
θ
∑
h
exp
{
−
E
(
x
,
h
)
}
=
−
∑
h
P
(
x
,
h
)
∂
E
(
x
,
h
)
∂
θ
P
(
x
)
=
−
∑
h
P
(
h
∣
x
)
∂
E
(
x
,
h
)
∂
θ
\begin{align} ①=&\frac{\partial }{\partial \theta}\log\sum\limits_{h}\exp\left\{-E(x,h)\right\}\nonumber \\=&-\frac{1}{\sum\limits_{h}\exp\left\{-E(x,h)\right\}}\times\sum\limits_{h}\exp\left\{-E(x,h)\right\}\frac{\partial E(x,h)}{\partial \theta}\nonumber \\=&-\sum\limits_{h}\frac{\exp\left\{-E(x,h)\right\}\frac{\partial E(x,h)}{\partial \theta}}{\sum\limits_{h}\exp\left\{-E(x,h)\right\}}\tag{a} \\=&-\sum\limits_{h}\frac{P(x,h)\frac{\partial E(x,h)}{\partial \theta}}{P(x)}\tag{b} \\=&-\sum\limits_{h}P(h|x)\frac{\partial E(x,h)}{\partial \theta}\nonumber \end{align}
①=====∂θ∂logh∑exp{−E(x,h)}−h∑exp{−E(x,h)}1×h∑exp{−E(x,h)}∂θ∂E(x,h)−h∑h∑exp{−E(x,h)}exp{−E(x,h)}∂θ∂E(x,h)−h∑P(x)P(x,h)∂θ∂E(x,h)−h∑P(h∣x)∂θ∂E(x,h)(a)(b)
(式a)到(式b)为分子分母同时除以
1
Z
\frac{1}{Z}
Z1。
同理有
②
=
∂
∂
θ
log
∑
x
,
h
exp
{
−
E
(
x
,
h
)
}
=
−
1
∑
x
,
h
exp
{
−
E
(
x
,
h
)
}
×
∑
x
,
h
exp
{
−
E
(
x
,
h
)
}
∂
E
(
x
,
h
)
∂
θ
=
−
∑
x
,
h
exp
{
−
E
(
x
,
h
)
}
∂
E
(
x
,
h
)
∂
θ
∑
x
,
h
exp
{
−
E
(
x
,
h
)
}
=
−
∑
x
,
h
P
(
x
,
h
)
∂
E
(
x
,
h
)
∂
θ
\begin{aligned} ②=&\frac{\partial }{\partial \theta}\log\sum\limits_{{x,h}}\exp\left\{-E(x,h)\right\} \\=&-\frac{1}{\sum\limits_{x,h}\exp\left\{-E(x,h)\right\}}\times\sum\limits_{x,h}\exp\left\{-E(x,h)\right\}\frac{\partial E(x,h)}{\partial \theta} \\=&-\sum\limits_{x,h}\frac{\exp\left\{-E(x,h)\right\}\frac{\partial E(x,h)}{\partial \theta}}{\sum\limits_{x,h}\exp\left\{-E(x,h)\right\}} \\=&-\sum\limits_{x,h}P(x,h)\frac{\partial E(x,h)}{\partial \theta} \end{aligned}
②====∂θ∂logx,h∑exp{−E(x,h)}−x,h∑exp{−E(x,h)}1×x,h∑exp{−E(x,h)}∂θ∂E(x,h)−x,h∑x,h∑exp{−E(x,h)}exp{−E(x,h)}∂θ∂E(x,h)−x,h∑P(x,h)∂θ∂E(x,h)
所以
∂
log
P
(
x
)
∂
θ
=
∑
x
,
h
P
(
x
,
h
)
∂
E
(
x
,
h
)
∂
θ
−
∑
h
P
(
h
∣
x
)
∂
E
(
x
,
h
)
∂
θ
(4)
\begin{aligned} \frac{\partial \log P(x)}{\partial \theta}=\sum\limits_{x,h}P(x,h)\frac{\partial E(x,h)}{\partial \theta}-\sum\limits_{h}P(h|x)\frac{\partial E(x,h)}{\partial \theta} \end{aligned}\tag{4}
∂θ∂logP(x)=x,h∑P(x,h)∂θ∂E(x,h)−h∑P(h∣x)∂θ∂E(x,h)(4)
对
w
,
α
,
β
w,\alpha,\beta
w,α,β分别求导
3.3.2.1、w
将
E
(
x
,
h
)
E(x,h)
E(x,h)代入(式4),并对
w
i
j
w_{ij}
wij求导
∂
log
P
(
x
)
∂
w
i
j
=
−
∑
x
,
h
P
(
x
,
h
)
x
i
h
j
⏟
①
+
∑
h
P
(
h
∣
x
)
x
i
h
j
⏟
②
\begin{aligned} \frac{\partial \log P(x)}{\partial w_{ij}}=-\underbrace{\sum\limits_{x,h}P(x,h)x_ih_j}_{①}+\underbrace{\sum\limits_{h}P(h|x)x_ih_j}_{②} \end{aligned}
∂wij∂logP(x)=−①
x,h∑P(x,h)xihj+②
h∑P(h∣x)xihj
对于①
∑
x
,
h
P
(
x
,
h
)
x
i
h
j
=
∑
x
∑
h
j
x
i
h
j
∑
h
1
,
⋯
,
h
j
−
1
,
h
j
+
1
,
h
m
P
(
x
,
h
)
=
∑
x
∑
h
j
P
(
h
j
∣
x
)
P
(
x
)
x
i
h
j
=
∑
x
P
(
h
j
=
1
∣
x
)
P
(
x
)
x
i
\begin{align} \sum\limits_{x,h}P(x,h)x_ih_j=&\sum\limits_{x}\sum\limits_{h_j}x_ih_j\sum\limits_{h_1,\cdots,h_{j-1},h_{j+1},h_{m}}P(x,h)\nonumber \\=&\sum\limits_{x}\sum\limits_{h_j}P(h_j|x)P(x)x_ih_j\tag{a} \\=&\sum\limits_{x}P(h_j=1|x)P(x)x_i\tag{b} \end{align}
x,h∑P(x,h)xihj===x∑hj∑xihjh1,⋯,hj−1,hj+1,hm∑P(x,h)x∑hj∑P(hj∣x)P(x)xihjx∑P(hj=1∣x)P(x)xi(a)(b)
(式a)到(式b)是将
h
j
∈
(
0
,
1
)
h_j \in (0,1)
hj∈(0,1)分别代入
第②项同理
∑
h
P
(
h
∣
x
)
x
i
h
j
=
∑
h
j
x
i
h
j
∑
h
1
,
⋯
,
h
j
−
1
,
h
j
+
1
,
h
m
P
(
h
∣
x
)
=
∑
h
j
P
(
h
j
∣
x
)
x
i
h
j
=
P
(
h
j
=
1
∣
x
)
x
i
\begin{aligned} \sum\limits_{h}P(h|x)x_ih_j=&\sum\limits_{h_j}x_ih_j\sum\limits_{h_1,\cdots,h_{j-1},h_{j+1},h_{m}}P(h|x) \\=&\sum\limits_{h_j}P(h_j|x)x_ih_j \\=&P(h_j=1|x)x_i \end{aligned}
h∑P(h∣x)xihj===hj∑xihjh1,⋯,hj−1,hj+1,hm∑P(h∣x)hj∑P(hj∣x)xihjP(hj=1∣x)xi
所以
∂
log
P
(
x
)
∂
w
i
j
=
P
(
h
j
=
1
∣
x
)
x
i
−
∑
x
P
(
h
j
=
1
∣
x
)
P
(
x
)
x
i
\frac{\partial \log P(x)}{\partial w_{ij}}=P(h_j=1|x)x_i-\sum\limits_{x}P(h_j=1|x)P(x)x_i
∂wij∂logP(x)=P(hj=1∣x)xi−x∑P(hj=1∣x)P(x)xi
3.3.2.2、 α \alpha α
∂ log P ( x ) ∂ α j = ∑ h P ( h ∣ x ) h j − ∑ x , h P ( x , h ) h j \begin{aligned} \frac{\partial \log P(x)}{\partial \alpha_j}=\sum\limits_{h}P(h|x)h_j-\sum\limits_{x,h}P(x,h)h_j \end{aligned} ∂αj∂logP(x)=h∑P(h∣x)hj−x,h∑P(x,h)hj
采用与
w
一样的方法,得到
\boxed{采用与w一样的方法,得到}
采用与w一样的方法,得到
∂
log
P
(
x
)
∂
α
j
=
P
(
h
j
=
1
∣
x
)
−
∑
x
P
(
h
j
=
1
∣
x
)
P
(
x
)
\frac{\partial \log P(x)}{\partial \alpha_j}=P(h_j=1|x)-\sum\limits_{x}P(h_j=1|x)P(x)
∂αj∂logP(x)=P(hj=1∣x)−x∑P(hj=1∣x)P(x)
3.3.2.3、 β \beta β
∂ log P ( x ) ∂ β i = ∑ h P ( h ∣ x ) x i − ∑ x , h P ( x , h ) x i \begin{aligned} \frac{\partial \log P(x)}{\partial \beta_i}=\sum\limits_{h}P(h|x)x_i-\sum\limits_{x,h}P(x,h)x_i \end{aligned} ∂βi∂logP(x)=h∑P(h∣x)xi−x,h∑P(x,h)xi
这个有点特殊
\boxed{这个有点特殊}
这个有点特殊
∂
log
P
(
x
)
∂
β
i
=
∑
h
P
(
h
∣
x
)
x
i
−
∑
x
,
h
P
(
x
,
h
)
x
i
=
x
i
∑
h
P
(
h
∣
x
)
−
∑
x
,
h
P
(
h
∣
x
)
P
(
x
)
x
i
=
x
i
−
∑
x
P
(
x
)
x
i
\begin{align} \frac{\partial \log P(x)}{\partial \beta_i}=&\sum\limits_{h}P(h|x)x_i-\sum\limits_{x,h}P(x,h)x_i\nonumber \\=&x_i\sum\limits_{h}P(h|x)-\sum\limits_{x,h}P(h|x)P(x)x_i\tag{a} \\=&x_i-\sum\limits_{x}P(x)x_i\tag{b} \end{align}
∂βi∂logP(x)===h∑P(h∣x)xi−x,h∑P(x,h)xixih∑P(h∣x)−x,h∑P(h∣x)P(x)xixi−x∑P(x)xi(a)(b)
(式a)到(式b)是因为概率求和为1。
3.3.2.4、总梯度
所以单个样本的梯度为:
\boxed{\mathbf{所以单个样本的梯度为:}}
所以单个样本的梯度为:
∂
log
P
(
x
)
∂
w
i
j
=
P
(
h
j
=
1
∣
x
)
x
i
−
∑
x
P
(
h
j
=
1
∣
x
)
P
(
x
)
x
i
∂
log
P
(
x
)
∂
α
j
=
P
(
h
j
=
1
∣
x
)
−
∑
x
P
(
h
j
=
1
∣
x
)
P
(
x
)
∂
log
P
(
x
)
∂
β
i
=
x
i
−
∑
x
P
(
x
)
x
i
\boxed{\begin{aligned} \frac{\partial \log P(x)}{\partial w_{ij}}=&P(h_j=1|x)x_i-\sum\limits_{x}P(h_j=1|x)P(x)x_i\\ \frac{\partial \log P(x)}{\partial \alpha_j}=&P(h_j=1|x)-\sum\limits_{x}P(h_j=1|x)P(x)\\ \frac{\partial \log P(x)}{\partial \beta_i}=&x_i-\sum\limits_{x}P(x)x_i \end{aligned}}
∂wij∂logP(x)=∂αj∂logP(x)=∂βi∂logP(x)=P(hj=1∣x)xi−x∑P(hj=1∣x)P(x)xiP(hj=1∣x)−x∑P(hj=1∣x)P(x)xi−x∑P(x)xi
依据
1
N
∑
i
=
1
N
∂
∂
θ
log
P
(
x
i
)
\boxed{依据\frac{1}{N}\sum\limits_{i=1}^N\frac{\partial}{\partial \theta}\log P(x^i)}
依据N1i=1∑N∂θ∂logP(xi),可得只需要对于每一个样本都求出梯度累加,然后除以N即可。然后利用梯度上升。
3.3.3、存在问题
很容易看到,求梯度的时候用到了 ∑ x \sum\limits_{x} x∑,如果 x x x维度很大,计算的复杂度往往是非常高的,加上 P ( x ) P(x) P(x)是含有配分函数。所以一般用采样的方法进行近似求解。 在 R B M 中,一般使用 C D − K ( 类似于吉布斯采样 ) \boxed{在RBM中,一般使用CD-K(类似于吉布斯采样)} 在RBM中,一般使用CD−K(类似于吉布斯采样)
4、CD-K采样
对每一项
∑
x
P
(
h
j
=
1
∣
x
)
P
(
x
)
x
i
≈
1
n
∑
i
=
1
n
P
(
h
j
=
1
∣
x
)
x
i
\sum\limits_{x}P(h_j=1|x)P(x)x_i \approx \frac{1}{n}\sum\limits_{i=1}^nP(h_j=1|x)x_i
x∑P(hj=1∣x)P(x)xi≈n1i=1∑nP(hj=1∣x)xi
其中
x
∼
P
(
x
)
x \sim P(x)
x∼P(x),采n个样本,但是对于
P
(
x
)
P(x)
P(x),其概率分布相对复杂。并且,传统的采样方法何时达到平稳分布是一个极大的问题。所以,我们的采样步骤是这样的
F
o
r
i
i
n
X
:
x
0
=
x
F
o
r
1
,
2
,
⋯
,
k
:
F
o
r
l
i
n
h
:
h
l
∼
P
(
h
l
∣
x
0
)
F
o
r
l
i
n
x
:
x
l
∼
P
(
x
l
∣
h
l
)
\boxed{\begin{aligned}For &\hspace{0.5cm}i \hspace{0.5cm} in \hspace{0.5cm} X: \\&x_0=x \\&For \hspace{0.5cm} 1,2,\cdots,k: \\&\hspace{0.5cm} For \hspace{0.5cm} l \hspace{0.5cm} in \hspace{0.5cm} h: h_l\sim P(h_l|x_0) \\&\hspace{0.5cm} For \hspace{0.5cm} l \hspace{0.5cm} in \hspace{0.5cm} x:x_l \sim P(x_l|h_l) \end{aligned}}
ForiinX:x0=xFor1,2,⋯,k:Forlinh:hl∼P(hl∣x0)Forlinx:xl∼P(xl∣hl)
即对每一个样本,以
x
0
=
x
i
x_0=x^i
x0=xi,从
x
0
x_0
x0开始,采样出h,再从h采样出x,最后的x就是我们需要的。其中k就是执行k步吉布斯采样,最终每个样本得到的梯度累加除以N即可
5、结束
以上,就是RBM的原理推导了,推导并不严谨,如有问题,还望指出,阿里嘎多。