BatchBALD Acquisition Function
引言
BatchBALD(2019)的Acquisition的公式和我读过"Simulation-based optimal Bayesian experimental design for nonlinear systems"(2013)中的效益函数近乎一模一样,但是计算方式不同。主动学习说白了就是理论统计中的贝叶斯实验设计在深度学习领域的应用,就如同“学习”二字比之于“参数估计”,说的是一个东西。
1.Acquisition Function
Acquisition function用于评判一组样本的好坏。值越高,说明样本越好。BatchBALD中采用互信息来表征,其思想是:给定一组样本,使得标签Label与待估计参数之间的互信息越大,则说明样本的价值越大。
2.计算
计算还是采用蒙特卡洛估计。下面的
y
y
y是随机向量,忽略条件推导(不影响结果)。
w
w
w是定值,然后对
w
w
w求了期望。实际上就是下面的表达式。
I
(
y
,
ω
)
=
H
(
y
)
−
E
p
(
ω
)
H
(
y
∣
ω
)
\begin{aligned} I(y,\omega)= H(y)-E_{p(\omega)}H(y|\omega) \end{aligned}
I(y,ω)=H(y)−Ep(ω)H(y∣ω)
其中,利用蒙特卡洛采样,第二项的表达为:
∑
j
=
1
k
H
(
y
∣
ω
j
)
\sum_{j=1}^{k}H(y|\omega_j)
j=1∑kH(y∣ωj)
各个维度
y
i
y_i
yi在给定
w
w
w时是条件独立的,可以进一步分开求和,得到论文中的表达式。
第一项相较第二项来说稍有困难,因为第二项中的
p
(
y
i
∣
ω
j
)
p(y_i|\omega_j)
p(yi∣ωj)是可以计算的,进而可以计算熵。然而第一项的
p
(
y
)
p(y)
p(y)没有表达式,导致熵不能计算。利用技巧
p
(
y
)
=
∫
ω
p
(
y
∣
ω
)
p
(
ω
)
d
ω
p(y)=\int_\omega p(y|\omega)p(\omega)d\omega
p(y)=∫ωp(y∣ω)p(ω)dω将其转化为期望,此时,表达式就可以改写成为
I
(
y
,
ω
)
=
H
(
y
)
=
−
∫
y
p
(
y
)
log
p
(
y
)
d
y
=
∫
y
∫
ω
p
(
y
∣
ω
)
p
(
ω
)
[
log
∫
ω
p
(
y
∣
ω
)
p
(
ω
)
d
ω
]
d
ω
d
y
=
∫
y
1
k
∑
j
=
1
k
p
(
y
∣
ω
j
)
[
l
o
g
1
k
∑
j
=
1
k
p
(
y
∣
ω
j
)
]
d
y
=
∑
y
1
k
∑
j
=
1
k
p
(
y
∣
ω
j
)
[
l
o
g
1
k
∑
j
=
1
k
p
(
y
∣
ω
j
)
]
\begin{aligned} I(y,\omega) &= H(y)\\ &=-\int_yp(y)\log p(y)dy\\ &=\int_y\int_\omega p(y|\omega)p(\omega)[\log\int_\omega p(y|\omega)p(\omega)d\omega]d\omega dy\\ &=\int_y\frac{1}{k}\sum_{j=1}^{k}p(y|\omega_j)[log\frac{1}{k}\sum_{j=1}^{k}p(y|\omega_j)]dy\\ &=\sum_{y}\frac{1}{k}\sum_{j=1}^{k}p(y|\omega_j)[log\frac{1}{k}\sum_{j=1}^{k}p(y|\omega_j)] \end{aligned}
I(y,ω)=H(y)=−∫yp(y)logp(y)dy=∫y∫ωp(y∣ω)p(ω)[log∫ωp(y∣ω)p(ω)dω]dωdy=∫yk1j=1∑kp(y∣ωj)[logk1j=1∑kp(y∣ωj)]dy=y∑k1j=1∑kp(y∣ωj)[logk1j=1∑kp(y∣ωj)]
最后一步是对所有可能的
y
y
y求和,这是由于
y
y
y是离散型随机变量(分类问题)。对于连续随机变量,我还是推荐2013年的文章的方法。