机器学习中的概率模型可分为频率派和贝叶斯派。频率派最终是求一个优化问题,而贝叶斯派则是求一个积分问题。
举几个例子:
线性回归
样本数据: { ( x i , y i ) } i = 1 N \{(x_i,y_i)\}_{i=1}^N {(xi,yi)}i=1N
模型: f ( w ) = w T x f(w)=w^Tx f(w)=wTx
策略:损失函数: L ( w ) = ∑ i = 1 N ∣ ∣ w T x i − y i ∣ ∣ 2 L(w)=\sum_{i=1}^N||w^Tx_i-y_i||^2 L(w)=∑i=1N∣∣wTxi−yi∣∣2, w ^ = arg min w L ( w ) \hat{w}=\arg\min_wL(w) w^=argminwL(w) 这就是一个无约束优化问题。
算法:解法
SVM
EM算法
θ
(
t
+
1
)
=
arg
max
θ
∫
Z
log
P
(
X
,
Z
∣
θ
)
P
(
Z
∣
X
,
θ
(
t
)
)
d
Z
\theta^{(t+1)}=\arg\max_{\theta}\int_Z\log P(X,Z|\theta)P(Z|X,\theta^{(t)})dZ
θ(t+1)=argθmax∫ZlogP(X,Z∣θ)P(Z∣X,θ(t))dZ
EM算法也是通过迭代来求解最大对数似然的数值解。
为什么说贝叶斯派是求积分呢?我们先来看贝叶斯定理:
P
(
θ
∣
X
)
=
P
(
X
∣
θ
)
P
(
θ
)
P
(
X
)
P(\theta|X)=\frac{P(X|\theta)P(\theta)}{P(X)}
P(θ∣X)=P(X)P(X∣θ)P(θ)
贝叶斯推断,要求得后验
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X) 。
贝叶斯决策。决策可以理解为就是做预测。即
X
X
X 为已知的
N
N
N 个样本数据。决策就是求:
P
(
x
~
∣
X
)
=
∫
θ
P
(
x
~
∣
X
)
d
θ
=
∫
θ
P
(
x
~
∣
θ
)
P
(
θ
∣
X
)
d
θ
P(\tilde{x}|X)=\int_\theta P(\tilde{x}|X)d\theta=\int_\theta P(\tilde{x}|\theta)P(\theta|X)d\theta
P(x~∣X)=∫θP(x~∣X)dθ=∫θP(x~∣θ)P(θ∣X)dθ
在通过贝叶斯推断求得后验
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X) 之后,就可以按照上式进行贝叶斯决策。而且上面这个式子也可以写成关于后验的期望的形式(期望就是求积分):
P
(
x
~
∣
X
)
=
E
θ
∣
X
[
P
(
x
~
∣
θ
)
]
P(\tilde{x}|X)=\mathbb{E}_{\theta|X}[P(\tilde{x}|\theta)]
P(x~∣X)=Eθ∣X[P(x~∣θ)]
贝叶斯派的关键就是求得后验
P
(
θ
∣
X
)
P(\theta|X)
P(θ∣X) ,即贝叶斯推断的过程。贝叶斯推断又可分为精确推断和近似推断:
符号含义: X X X 为观测数据, Z Z Z 为隐变量和参数。注意这里参数 θ \theta θ 也一同表示在 Z Z Z 中了。
再强调一下我们的目的:求后验 P ( Z ∣ X ) P(Z|X) P(Z∣X) 。
下面的前几步与 EM 算法导出的做法类似,详见 EM算法公式推导 ,区别只是把参数
θ
\theta
θ 合并到了
Z
Z
Z 中,步骤这里就不一一说明了。
log
P
(
X
)
=
log
P
(
X
,
Z
)
−
log
P
(
Z
∣
X
)
=
log
P
(
X
,
Z
)
q
(
Z
)
−
log
P
(
Z
∣
X
)
q
(
Z
)
=
∫
Z
q
(
Z
)
log
P
(
X
,
Z
)
q
(
Z
)
d
Z
−
∫
Z
q
(
Z
)
log
P
(
Z
∣
X
)
q
(
Z
)
d
Z
=
E
L
B
O
+
K
L
(
q
(
Z
)
∣
∣
P
(
Z
∣
X
)
)
=
L
(
q
)
+
K
L
(
q
(
Z
)
∣
∣
P
(
Z
∣
X
)
)
logP(X)=logP(X,Z)−logP(Z|X)=logP(X,Z)q(Z)−logP(Z|X)q(Z)=∫Zq(Z)logP(X,Z)q(Z)dZ−∫Zq(Z)logP(Z|X)q(Z)dZ=ELBO+KL(q(Z)||P(Z|X))=L(q)+KL(q(Z)||P(Z|X))
logP(X)=logP(X,Z)−logP(Z∣X)=logq(Z)P(X,Z)−logq(Z)P(Z∣X)=∫Zq(Z)logq(Z)P(X,Z)dZ−∫Zq(Z)logq(Z)P(Z∣X)dZ=ELBO+KL(q(Z)∣∣P(Z∣X))=L(q)+KL(q(Z)∣∣P(Z∣X))
经过一系列变形,得到
E
B
L
O
+
K
L
EBLO+KL
EBLO+KL 的形式,这里我们将
E
L
B
O
ELBO
ELBO 记为
L
(
q
)
\mathcal{L}(q)
L(q) ,就是所谓的变分。
我们是要求的是后验
P
(
Z
∣
X
)
P(Z|X)
P(Z∣X) ,如果其与
q
(
Z
)
q(Z)
q(Z) 的 KL 散度接近0,那么就能用
q
(
Z
)
q(Z)
q(Z) 来对其进行近似。而等式左边
log
P
(
X
)
\log P(X)
logP(X) 与
Z
Z
Z 无关,因此
E
L
B
O
+
K
L
ELBO+KL
ELBO+KL 在
q
(
Z
)
q(Z)
q(Z) 变化时是个定值,因此,要让 KL 尽量小就转换为让 ELBO 尽量大,即有:
q
^
(
Z
)
=
arg
max
q
(
Z
)
L
(
q
)
→
q
(
Z
)
≈
P
(
Z
∣
X
)
\hat{q}(Z)=\arg\max_{q(Z)}\mathcal{L}(q)\ \ \ \ \rightarrow\ \ \ \ q(Z)\approx P(Z|X)
q^(Z)=argq(Z)maxL(q) → q(Z)≈P(Z∣X)
接下来,我们根据平均场理论,将
q
(
Z
)
q(Z)
q(Z) 划分为
M
M
M 个相互独立的份:
q
(
Z
)
=
∏
i
=
1
M
q
i
(
Z
i
)
q(Z)=\prod_{i=1}^Mq_i(Z_i)
q(Z)=i=1∏Mqi(Zi)
之后在求解的时候,我们会先固定
q
1
,
q
2
,
…
,
q
j
−
1
,
…
,
q
M
q_1,q_2,\dots,q_{j-1},\dots,q_M
q1,q2,…,qj−1,…,qM ,然后求解单个分量
q
j
q_j
qj ,最后将所有分量连乘起来,得到完整的
q
(
Z
)
q(Z)
q(Z) 。
首先先将
q
(
Z
)
q(Z)
q(Z) 代回到原式中:
L
(
q
)
=
∫
Z
q
(
Z
)
log
P
(
X
,
Z
)
d
Z
−
∫
Z
log
q
(
Z
)
d
Z
=
①
−
②
\mathcal{L}(q)=\int_Zq(Z)\log P(X,Z)dZ-\int_Z\log q(Z)dZ=①-②\\
L(q)=∫Zq(Z)logP(X,Z)dZ−∫Zlogq(Z)dZ=①−②
一项一项地来看:
①
=
∫
Z
q
(
Z
)
log
P
(
X
,
Z
)
d
Z
=
∫
Z
∏
i
=
1
M
q
i
(
Z
i
)
log
P
(
X
,
Z
)
d
Z
=
∫
Z
j
q
j
(
Z
j
)
∫
Z
i
(
i
≠
j
)
∏
i
≠
j
M
q
i
(
Z
i
)
log
P
(
X
,
Z
)
d
Z
i
(
i
≠
j
)
d
Z
j
=
∫
Z
j
q
j
(
Z
j
)
∫
Z
i
(
i
≠
j
)
log
P
(
X
,
Z
)
∏
i
≠
j
M
q
i
(
Z
i
)
d
Z
i
(
i
≠
j
)
d
Z
j
=
∫
Z
j
q
j
(
Z
j
)
⋅
E
∏
i
≠
j
M
q
i
(
Z
i
)
[
log
P
(
X
,
Z
)
]
d
Z
j
①=∫Zq(Z)logP(X,Z)dZ=∫ZM∏i=1qi(Zi)logP(X,Z)dZ=∫Zjqj(Zj)∫Zi(i≠j)M∏i≠jqi(Zi)logP(X,Z)dZi(i≠j)dZj=∫Zjqj(Zj)∫Zi(i≠j)logP(X,Z)M∏i≠jqi(Zi)dZi(i≠j)dZj=∫Zjqj(Zj)⋅E∏Mi≠jqi(Zi)[logP(X,Z)]dZj
①=∫Zq(Z)logP(X,Z)dZ=∫Zi=1∏Mqi(Zi)logP(X,Z)dZ=∫Zjqj(Zj)∫Zi(i=j)i=j∏Mqi(Zi)logP(X,Z)dZi(i=j)dZj=∫Zjqj(Zj)∫Zi(i=j)logP(X,Z)i=j∏Mqi(Zi)dZi(i=j)dZj=∫Zjqj(Zj)⋅E∏i=jMqi(Zi)[logP(X,Z)]dZj
然后看后面一项:
②
=
∫
Z
q
(
Z
)
log
q
(
Z
)
d
Z
=
∫
Z
∏
i
=
1
M
q
i
(
Z
i
)
log
∏
i
=
1
M
q
i
(
Z
i
)
d
Z
=
∫
Z
∏
i
=
1
M
q
i
(
Z
i
)
∑
i
=
1
M
log
q
i
(
Z
i
)
d
Z
=
∫
Z
∏
i
=
1
M
q
i
(
Z
i
)
[
log
q
1
(
Z
1
)
+
log
q
2
(
Z
2
)
+
⋯
+
log
q
M
(
Z
M
)
]
d
Z
②=∫Zq(Z)logq(Z)dZ=∫ZM∏i=1qi(Zi)logM∏i=1qi(Zi)dZ=∫ZM∏i=1qi(Zi)M∑i=1logqi(Zi)dZ=∫ZM∏i=1qi(Zi)[logq1(Z1)+logq2(Z2)+⋯+logqM(ZM)]dZ
②=∫Zq(Z)logq(Z)dZ=∫Zi=1∏Mqi(Zi)logi=1∏Mqi(Zi)dZ=∫Zi=1∏Mqi(Zi)i=1∑Mlogqi(Zi)dZ=∫Zi=1∏Mqi(Zi)[logq1(Z1)+logq2(Z2)+⋯+logqM(ZM)]dZ
∫ Z ∏ i = 1 M q i ( Z i ) ⋅ log q 1 ( Z 1 ) d Z = ∫ Z q 1 ( Z 1 ) q 2 ( Z 2 ) … q M ( Z M ) log q 1 ( Z 1 ) d Z = ∫ Z 1 Z 2 … Z M q 1 ( Z 1 ) q 2 ( Z 2 ) … q M ( Z M ) log q 1 ( Z 1 ) d Z 1 d Z 2 … d Z M = ∫ Z 1 q 1 ( Z 1 ) log q 1 ( Z 1 ) d Z 1 ∏ i = 2 M ∫ Z i q i ( Z i ) d Z i = ∫ Z 1 q 1 ( Z 1 ) log q 1 ( Z 1 ) d Z 1 ∫ZM∏i=1qi(Zi)⋅logq1(Z1)dZ=∫Zq1(Z1)q2(Z2)…qM(ZM)logq1(Z1)dZ=∫Z1Z2…ZMq1(Z1)q2(Z2)…qM(ZM)logq1(Z1)dZ1dZ2…dZM=∫Z1q1(Z1)logq1(Z1)dZ1M∏i=2∫Ziqi(Zi)dZi=∫Z1q1(Z1)logq1(Z1)dZ1 ∫Zi=1∏Mqi(Zi)⋅logq1(Z1)dZ=∫Zq1(Z1)q2(Z2)…qM(ZM)logq1(Z1)dZ=∫Z1Z2…ZMq1(Z1)q2(Z2)…qM(ZM)logq1(Z1)dZ1dZ2…dZM=∫Z1q1(Z1)logq1(Z1)dZ1i=2∏M∫Ziqi(Zi)dZi=∫Z1q1(Z1)logq1(Z1)dZ1
② = ∑ i = 1 M ∫ Z i q i ( Z i ) log q i ( Z i ) d Z i = ∫ Z j q j ( Z j ) log q j ( Z j ) d Z j + C ②=M∑i=1∫Ziqi(Zi)logqi(Zi)dZi=∫Zjqj(Zj)logqj(Zj)dZj+C ②=i=1∑M∫Ziqi(Zi)logqi(Zi)dZi=∫Zjqj(Zj)logqj(Zj)dZj+C
这样处理完两项,有:
①
−
②
=
∫
Z
j
q
j
(
Z
j
)
⋅
E
∏
i
≠
j
M
q
i
(
Z
i
)
[
log
P
(
X
,
Z
)
]
d
Z
j
−
∫
Z
j
q
j
(
Z
j
)
log
q
j
(
Z
j
)
d
Z
j
+
C
=
∫
Z
j
q
j
(
Z
j
)
⋅
log
P
^
(
X
,
Z
j
)
d
Z
j
−
∫
Z
j
q
j
(
Z
j
)
log
q
j
(
Z
j
)
d
Z
j
+
C
=
∫
Z
j
q
j
(
Z
j
)
⋅
log
P
^
(
X
,
Z
j
)
q
j
(
Z
j
)
d
Z
j
=
−
K
L
(
P
^
(
X
,
Z
j
)
∣
∣
q
j
(
Z
j
)
)
≤
0
①−②=∫Zjqj(Zj)⋅E∏Mi≠jqi(Zi)[logP(X,Z)]dZj−∫Zjqj(Zj)logqj(Zj)dZj+C=∫Zjqj(Zj)⋅logˆP(X,Zj)dZj−∫Zjqj(Zj)logqj(Zj)dZj+C=∫Zjqj(Zj)⋅logˆP(X,Zj)qj(Zj)dZj=−KL(ˆP(X,Zj)||qj(Zj))≤0
①−②=∫Zjqj(Zj)⋅E∏i=jMqi(Zi)[logP(X,Z)]dZj−∫Zjqj(Zj)logqj(Zj)dZj+C=∫Zjqj(Zj)⋅logP^(X,Zj)dZj−∫Zjqj(Zj)logqj(Zj)dZj+C=∫Zjqj(Zj)⋅logqj(Zj)P^(X,Zj)dZj=−KL(P^(X,Zj)∣∣qj(Zj))≤0