受限波尔兹曼机(Restricted Blotzmann Machine,RBM)是一种可用随机神经网络(stochastic neural network)来解释的概率图模型(probabilistic graphical model),由Smolensky在波尔兹曼机(Blotzmann Machine,BM)基础上提出,其输出只有激活与未激活两种状态,一般用1和0表示,具体取值依据概率统计法则决定。
基础知识
sigmoid函数
s i g m o i d ( x ) = 1 1 + e − x sigmoid(x)=\frac{1}{1+e^{-x}} sigmoid(x)=1+e−x1
Bayes定理
P
(
A
∣
B
)
=
P
(
A
)
P
(
B
∣
A
)
P
(
B
)
P(A|B)=P(A)\frac{P(B|A)}{P(B)}
P(A∣B)=P(A)P(B)P(B∣A)
其中,
P
(
A
)
P(A)
P(A)称为先验概率(Prior probability),
P
(
A
∣
B
)
P(A|B)
P(A∣B)称为后验概率(Posterior probability)。
二分图
G = ( V , E ) G=(V,E) G=(V,E)为一个无向图,其中顶点集 V V V可以分为两个互不相交的子集 V 1 V_1 V1、 V 2 V_2 V2,对于每条边上两个顶点分别属于这两个顶点集,则称为一个二分图。
MCMC方法
随机算法可分为Las Vegas算法与蒙特卡罗算法,其中Las Vegas算法总是精准返回一个正确答案或者返回无解,占用计算资源(CPU、内存等)随机,而蒙特卡罗算法具有随机大小的错误,可以通过花费更多计算资源来稳定减小这种误差。蒙特卡罗方法核心问题为如何从分布上随机采样,一般采用马尔可夫链蒙特卡罗方法(Markov Chain Monte Carlo, MCMC)产生指定分布下样本。
蒙特卡罗采样
有的时候需要通过采样的方式以较小的代价处理一些问题,比如采用小批量计算梯度,或者比如近似一个难以处理的求和或积分。
比如
s
=
∑
p
(
x
)
f
(
x
)
=
E
p
[
f
(
x
)
]
s=\sum p(x)f(x)=E_p[f(x)]
s=∑p(x)f(x)=Ep[f(x)]
或者
s
=
∫
p
(
x
)
f
(
x
)
d
x
=
E
p
[
f
(
x
)
]
s=\int p(x)f(x)dx=E_p[f(x)]
s=∫p(x)f(x)dx=Ep[f(x)]
此时,可通过计算
s
^
n
=
1
n
∑
i
=
1
n
f
(
x
(
i
)
)
\hat{s}_n=\frac{1}{n}\sum\limits_{i=1}\limits^nf(x^{(i)})
s^n=n1i=1∑nf(x(i))
依据大数定律,若
x
(
i
)
x^{(i)}
x(i)独立同分布,则其均值收敛于其期望值,即
lim
n
→
∞
s
^
n
=
s
\lim\limits_{n\to \infty}\hat{s}_n=s
n→∞lims^n=s
其方差
V
a
r
[
s
^
n
]
=
1
n
2
∑
i
=
1
n
V
a
r
[
f
(
x
)
]
=
V
a
r
[
f
(
x
)
]
n
Var[\hat{s}_n]=\frac{1}{n^2}\sum\limits_{i=1}\limits^{n}Var[f(x)]=\frac{Var[f(x)]}{n}
Var[s^n]=n21i=1∑nVar[f(x)]=nVar[f(x)]
由中心极限定理,
s
^
n
\hat{s}_n
s^n收敛到以
s
s
s为均值以
V
a
r
[
f
(
x
)
]
n
\frac{Var[f(x)]}{n}
nVar[f(x)]为方差的正态分布,因此可用正态分布累积函数估计其置信区间。
补充:
[1]大数定律:样本量无穷大时,样本均值收敛于总体均值。(依概率收敛)
[2]中心极限定理:样本抽样分布接近于期望为u的正态分布。
[3]切比雪夫不等式:
P
{
∣
X
−
μ
∣
≥
ε
}
≤
σ
2
ε
2
P\{|X-\mu|\geq \varepsilon\}\leq\frac{\sigma ^2}{\varepsilon ^2}
P{∣X−μ∣≥ε}≤ε2σ2
马尔科夫链
令
X
t
X_t
Xt表示随机变量
X
X
X在离散时间
t
t
t时刻的取值,若满足
P
(
X
t
+
1
=
s
j
∣
X
0
=
s
i
0
,
X
1
=
s
i
1
,
.
.
.
,
X
t
=
s
i
)
=
P
(
X
t
+
1
=
s
j
∣
X
t
=
s
i
)
P(X_{t+1}=s_j|X_0=s_{i0},X_1=s_{i1},...,X_t=s_i)=P(X_{t+1}=s_j|X_t=s_i)
P(Xt+1=sj∣X0=si0,X1=si1,...,Xt=si)=P(Xt+1=sj∣Xt=si)
则称该变量为马尔可夫变量,一段时间内变量
X
X
X的取值序列称为马尔可夫链。
P
i
,
j
=
P
(
X
t
+
1
=
s
j
∣
X
t
=
s
i
)
P_{i,j}=P(X_{t+1}=s_j|X_t=s_i)
Pi,j=P(Xt+1=sj∣Xt=si)称为转移概率,
π
k
(
t
)
\pi ^{(t)}_k
πk(t)表示该随机变量在时刻
t
t
t取值为
s
k
s_k
sk的概率,则
π
i
(
t
+
1
)
=
∑
k
P
k
,
i
π
k
(
t
)
\pi_i^{(t+1)}=\sum\limits_kP_{k,i}\pi_k^{(t)}
πi(t+1)=k∑Pk,iπk(t)
也可写为矩阵形式,则
π
(
t
+
1
)
=
π
(
t
)
P
\pi^{(t+1)}=\pi^{(t)}P
π(t+1)=π(t)P
其中
P
P
P为转移概率矩阵。
若存在某取值,从其转移回本身所需次数总是整数
d
d
d的倍数,则称该马尔可夫过程具有周期性(Periodic)。若任意两个取值总能以非零概率互相转移,则称该马尔可夫过程不可约(Irreducible)。若一个马尔可夫过程既没有周期性,又不可约,则称其各态遍历(Ergodic)。
对于各态遍历的马尔可夫过程,无论
π
(
0
)
\pi^{(0)}
π(0)如何取值,随机变量分布最终收敛于唯一的平稳分布
π
∗
\pi^*
π∗,即
lim
t
→
∞
π
(
0
)
P
t
=
π
∗
\lim\limits_{t\to\infty}\pi^{(0)}P^t=\pi^*
t→∞limπ(0)Pt=π∗
并且,满足
π
∗
P
=
π
∗
\pi^*P=\pi^*
π∗P=π∗
正则分布
在统计力学中,当系统与外界达到热平衡时,系统所处状态
i
i
i的概率
p
i
p_i
pi表示为
p
i
=
1
Z
T
e
−
E
i
T
p_i=\frac{1}{Z_T}e^{-\frac{E_i}{T}}
pi=ZT1e−TEi,其中
Z
T
=
∑
i
e
−
E
i
T
Z_T=\sum\limits_ie^{-\frac{E_i}{T}}
ZT=i∑e−TEi称为归一化常数,
T
T
T为正数,表示系统所处温度,该概率分布称为正则分布。
由分布可以看出,同一温度下,能量越小的状态具有越高的概率,并且随温度升高,逐渐趋于均匀分布。在机器学习领域,通常根据需求自定能量函数,并借鉴物理规律实现其功能。
Metropolis-Hastings采样
想从分布
π
(
)
\pi()
π()上采样,则引入另一组转移提议分布(proposal density)
Q
(
:
,
i
)
Q(:,i)
Q(:,i),作用为根据当前状态
i
i
i,提议转移后的状态。每次状态转移时,根据
Q
Q
Q题意下一步状态,假设
j
j
j,则以下面概率接受该状态
α
(
i
→
j
)
=
min
{
1
,
π
(
j
)
Q
(
i
,
j
)
π
(
i
)
Q
(
j
,
i
)
}
\alpha(i\to j)=\min\{1,\frac{\pi(j)Q(i,j)}{\pi(i)Q(j,i)}\}
α(i→j)=min{1,π(i)Q(j,i)π(j)Q(i,j)}
称为接受概率。为模拟接受过程,生成从[0,1]之间均匀分布随机数
r
r
r,若
r
r
r小于接受概率,则采用新状态,否则维持不变。
Gibbs采样
Gibbs采样是Metropolis-Hastings采样的特殊形式,其应用于系统具有多个变量,并且变量间的条件分布我们能够直接采样的情况下。Metropolis-Hastings采样缺点在于过于灵活,若
Q
Q
Q选择不当,则可能存在多次提议均被拒绝(接受概率总是很小),影响收敛过程。因此在Gibbs采样中,假设系统由
m
m
m个变量构成,定义
X
=
(
x
1
,
x
2
,
.
.
.
x
m
)
X=(x_1,x_2,...x_m)
X=(x1,x2,...xm),并且对于任一变量
x
i
x_i
xi,能够直接从条件分布
P
(
x
i
∣
x
1
,
x
2
,
.
.
.
,
x
i
−
1
,
x
i
+
1
,
.
.
.
,
x
m
)
P(x_i|x_1,x_2,...,x_{i-1},x_{i+1},...,x_m)
P(xi∣x1,x2,...,xi−1,xi+1,...,xm)中为其采样,算法流程为:
[1]初始化系统状态
X
(
0
)
X^{(0)}
X(0)
[2]初始化时间
t
=
0
t=0
t=0
[3]对于每个
x
i
(
t
+
1
)
x_i^{(t+1)}
xi(t+1),依以下概率采样
P
(
x
i
∣
x
1
(
t
+
1
)
,
x
2
(
t
+
1
)
,
.
.
.
,
x
i
−
1
(
t
+
1
)
,
x
i
+
1
(
t
)
,
.
.
.
,
x
m
(
t
)
)
P(x_i|x_1^{(t+1)},x_2^{(t+1)},...,x_{i-1}^{(t+1)},x_{i+1}^{(t)},...,x_m^{(t)})
P(xi∣x1(t+1),x2(t+1),...,xi−1(t+1),xi+1(t),...,xm(t))
[4]
t
=
t
+
1
t=t+1
t=t+1
[5]若
t
t
t少于既定次数,返回[3]
[6]返回
X
(
t
)
X^{(t)}
X(t)
相比于MH采样,Gibbs采样不存在接受概率,状态转移总是能够进行,比MH具有更快收敛速度。
网络结构
RBM包含两个层——可见层(visible layer)和隐藏层(hidden layer),层内无连接,层间全连接(BM层内允许有连接),因此是一个二分图。
给定v层神经元状态时,h层内神经元状态条件独立;反之亦然。为方便起见,假定RBM内所有神经元是二值的,即对任意
i
,
j
i,j
i,j,有
v
i
,
h
j
∈
{
0
,
1
}
v_i,h_j\in \{0,1\}
vi,hj∈{0,1}。
定义
v
=
(
v
1
,
v
2
,
.
.
.
,
v
n
v
)
T
v=(v_1,v_2,...,v_{n_v})^T
v=(v1,v2,...,vnv)T表示可见层状态向量,
h
=
(
h
1
,
h
2
,
.
.
.
,
h
n
h
)
T
h=(h_1,h_2,...,h_{n_h})^T
h=(h1,h2,...,hnh)T表示隐藏层状态向量,
a
=
(
a
1
,
a
2
,
.
.
.
,
a
n
v
)
T
a=(a_1,a_2,...,a_{n_v})^T
a=(a1,a2,...,anv)T表示可见层偏置向量,
b
=
(
b
1
,
b
2
,
.
.
.
,
b
n
v
)
T
b=(b_1,b_2,...,b_{n_v})^T
b=(b1,b2,...,bnv)T表示隐藏层偏置向量,
W
=
(
w
i
,
j
)
∈
R
n
h
×
n
v
W=(w_{i,j})\in R^{n_h\times n_v}
W=(wi,j)∈Rnh×nv表示可见层与隐藏层之间权重矩阵,记
θ
=
(
W
,
a
,
b
)
\theta=(W,a,b)
θ=(W,a,b)表示RBM中的参数,将其视为将W,a,b中所有分量拼接而得的长向量。
能量函数与概率分布
RBM为一基于能量的模型(Energy Based Model, EBM),定义能量函数
E
θ
(
v
,
h
)
=
−
∑
i
=
1
n
v
a
i
v
i
−
∑
j
=
1
n
h
b
j
h
j
−
∑
i
=
1
n
v
∑
j
=
1
n
h
h
j
w
j
,
i
v
i
E_\theta(v,h)=-\sum\limits_{i=1}\limits^{n_v}a_iv_i-\sum\limits_{j=1}\limits^{n_h}b_jh_j-\sum\limits_{i=1}\limits^{n_v}\sum\limits_{j=1}\limits^{n_h}h_jw_{j,i}v_i
Eθ(v,h)=−i=1∑nvaivi−j=1∑nhbjhj−i=1∑nvj=1∑nhhjwj,ivi
也可写作矩阵向量形式
E
θ
(
v
,
h
)
=
−
a
T
v
−
b
T
h
−
h
T
W
v
E_\theta(v,h)=-a^Tv-b^Th-h_TWv
Eθ(v,h)=−aTv−bTh−hTWv
由此,可以得到状态
(
v
,
h
)
(v,h)
(v,h)的联合概率分布
P
θ
(
v
,
h
)
=
1
Z
θ
e
E
θ
(
v
,
h
)
P_{\theta}(v,h)=\frac{1}{Z_{\theta}}e^{E_{\theta}(v,h)}
Pθ(v,h)=Zθ1eEθ(v,h)
其中
Z
θ
=
∑
v
,
h
e
E
θ
(
v
,
h
)
Z_{\theta}=\sum\limits_{v,h}e^{E_{\theta}(v,h)}
Zθ=v,h∑eEθ(v,h)
为归一化因子,也称配分函数(partition function)。
对于一个实际问题,我们最关心的是关于观测数据
v
v
v的概率分布
P
θ
(
v
)
P_{\theta}(v)
Pθ(v),其对应
P
θ
(
v
,
h
)
P_{\theta}(v,h)
Pθ(v,h)的边缘分布,也称似然函数(likelihood function),具体为
P
θ
(
v
)
=
∑
h
P
θ
(
v
,
h
)
=
1
Z
θ
∑
h
e
−
E
θ
(
v
,
h
)
P_{\theta}(v)=\sum\limits_{h}P_{\theta}(v,h)=\frac{1}{Z_{\theta}}\sum\limits_he^{-E_{\theta}(v,h)}
Pθ(v)=h∑Pθ(v,h)=Zθ1h∑e−Eθ(v,h)
对于隐藏层相似。
以下为
P
(
h
k
=
1
∣
v
)
P(h_k=1|v)
P(hk=1∣v)的推导过程,视情况阅读。
记
h
−
k
=
(
h
1
,
h
2
,
.
.
.
,
h
k
−
1
,
h
k
+
1
,
.
.
.
,
h
n
h
)
T
h_{-k}=(h_1,h_2,...,h_{k-1},h_{k+1},...,h_{n_h})^T
h−k=(h1,h2,...,hk−1,hk+1,...,hnh)T
表示
h
h
h在挖掉分量
h
k
h_k
hk后得到的向量,并引入
α
k
(
v
)
=
b
k
+
∑
i
=
1
n
v
w
k
,
i
v
i
\alpha_k(v)=b_k+\sum\limits_{i=1}\limits^{n_v}w_{k,i}v_i
αk(v)=bk+i=1∑nvwk,ivi
以及
β
(
v
,
h
−
k
)
=
∑
i
=
1
n
v
a
i
v
i
+
∑
j
=
1
,
j
≠
k
n
h
b
j
h
j
+
∑
i
=
1
n
v
∑
j
=
1
,
j
≠
k
n
h
h
j
w
j
,
i
v
i
\beta(v,h_{-k})=\sum\limits_{i=1}\limits^{n_v}a_iv_i+\sum\limits_{j=1,j\neq k}\limits^{n_h}b_jh_j+\sum\limits_{i=1}\limits^{n_v}\sum\limits_{j=1,j\neq k}\limits^{n_h}h_jw_{j,i}v_i
β(v,h−k)=i=1∑nvaivi+j=1,j̸=k∑nhbjhj+i=1∑nvj=1,j̸=k∑nhhjwj,ivi
则满足
E
(
v
,
h
)
=
−
β
(
v
,
h
−
k
)
−
h
k
α
k
(
v
)
E(v,h)=-\beta(v,h_{-k})-h_k\alpha_k(v)
E(v,h)=−β(v,h−k)−hkαk(v)
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ P(h_k=1|v) & =…
对数似然函数
假设给定样本集合为
S
=
{
v
1
,
v
2
,
.
.
.
,
v
n
s
}
S=\{v^1,v^2,...,v^{n_s}\}
S={v1,v2,...,vns}
不同样本之间独立同分布,则RBM目标为最大化似然
L
θ
,
S
=
∏
i
=
1
n
s
P
(
v
i
)
L_{\theta,S}=\prod\limits_{i=1}\limits^{n_s}P(v^i)
Lθ,S=i=1∏nsP(vi)
连乘式处理相对麻烦,因此通过对数处理后,最大化
L
θ
,
S
=
∑
i
=
1
n
s
l
n
P
(
v
i
)
L_{\theta,S}=\sum\limits_{i=1}\limits^{n_s}lnP(v^i)
Lθ,S=i=1∑nslnP(vi)
梯度计算
最大化
L
S
L_S
LS常用数值方法为梯度上升法,迭代公式为
θ
=
θ
+
η
∂
l
n
L
S
∂
θ
\theta=\theta+\eta \frac{\partial lnL_S}{\partial \theta}
θ=θ+η∂θ∂lnLS
关键是计算对各个参数的偏导数,通常采用MCMC采样来估计,但常规的MCMC需要经过许多步状态转移才能保证采集到的样本符合目标分布,若以训练样本为起点,仅需很少步状态转移就可以抵达RBM的分布。Hinton于2002年在此想法基础上发明了对比散度(Contrastive Divergence, CD)算法,目前为训练RBM的标准算法。