The Hessian Penalty: A Weak Prior for Unsupervised Disentanglement
概
disentagle a function 究竟是什么不是很了解, 仅仅关于此方法如何运用二阶信息做一个记录. 其目的是显然的, 就是希望生成器输入的隐变量所调节的特征是独立的.
如图 逐渐增加
z
6
z_6
z6, 其生成图片由外轮廓变成实物, 但不加hessian penalty的GAN似乎缺少一种严格的划分.
主要内容
hessian penalty的目的就是希望令hessian矩阵的非对角线元素小(最好为0).
标量情况
任意函数
G
:
R
d
→
R
G:\mathbb{R}^d \rightarrow \mathbb{R}
G:Rd→R. 其hessian矩阵
H
H
H的元素为
H
i
j
=
∂
2
G
∂
z
i
∂
z
j
,
(1)
\tag{1} H_{ij} = \frac{\partial^2G}{\partial z_i \partial z_j},
Hij=∂zi∂zj∂2G,(1)
假设其非对角线元素为0, 即
H
i
j
=
∂
∂
z
j
(
∂
G
∂
z
i
)
=
0
,
i
≠
j
(1.5)
\tag{1.5} H_{ij} = \frac{\partial}{\partial z_j} (\frac{\partial G}{\partial z_i}) = 0, \quad i \not =j
Hij=∂zj∂(∂zi∂G)=0,i=j(1.5)
这意味着,
G
G
G关于
z
i
z_i
zi的导函数不含
z
j
z_j
zj, 即与
z
j
z_j
zj无关(倘若在考虑定义域内(1.5)均满足), 这说明, 调节
z
j
z_j
zj对调节
z
i
z_i
zi导致
G
G
G的变化没有影响.
为求目标(1.5), 添加如下hessian penalty:
L
H
(
G
)
=
∑
i
=
1
d
∑
j
≠
i
d
H
i
j
2
.
(2)
\tag{2} \mathcal{L}_H (G) = \sum_{i=1}^d \sum_{j\not= i}^d H_{ij}^2.
LH(G)=i=1∑dj=i∑dHij2.(2)
向量情况
此时
G
:
R
d
→
R
p
G: \mathbb{R}^d \rightarrow \mathbb{R}^p
G:Rd→Rp, 设
x
i
=
(
G
(
z
)
)
i
x_i=(G(z))_i
xi=(G(z))i,
H
i
H_i
Hi是
x
i
x_i
xi关于
z
z
z的hessian矩阵, 则
L
H
(
G
)
=
max
i
L
H
i
(
G
)
.
(3)
\tag{3} \mathcal{L}_H (G) = \max_i \mathcal{L}_{H_i} (G).
LH(G)=imaxLHi(G).(3)
实际上别的比如 m e a n \mathrm{mean} mean也是可以的, 但是作者实验发现用 max \max max最好.
处于实际(计算量)的考量
如果输入的维度很大的话, 想要直接计算hessian矩阵是不容易的, 作者采用的是一种采样加逼近的方式, 首先
定理1: V a r v ( v T H v ) = 2 ∑ i = 1 d ∑ j ≠ i d H i j 2 Var_v (v^THv)=2\sum_{i=1}^d\sum_{j\not=i}^d H_{ij}^2 Varv(vTHv)=2∑i=1d∑j=idHij2.
其中 v v v是Rademacher vectors, 即 v v v的每个元素独立同分布于伯努利分布( p = 1 / 2 p=1/2 p=1/2).
故只需用 v T H v v^THv vTHv的经验方差来替换 L H ( G ) \mathcal{L}_H (G) LH(G)就可以了.
注: 生成器的输入很少, 感觉用不到这个啊.
然后再来看怎么估计一次
v
T
H
v
v^THv
vTHv, 便是很直接的中心差分
v
T
H
v
≈
1
ϵ
2
[
G
(
z
+
ϵ
v
)
−
2
G
(
z
)
+
G
(
z
−
ϵ
v
)
]
.
(5)
\tag{5} v^THv \approx \frac{1}{\epsilon^2} [G(z+\epsilon v) - 2G(z) + G(z-\epsilon v)].
vTHv≈ϵ21[G(z+ϵv)−2G(z)+G(z−ϵv)].(5)
应用到生成模型中
此思想仅仅运用于训练生成器
L G = E x ∼ p z ( z ) [ f ( 1 − D ( G ( z ) ) ) ] + λ ⋅ E z ∼ p z ( z ) [ L H ( G ) ] . (7) \tag{7} \mathcal{L}_G = \mathbb{E}_{x \sim p _z(z)} [f(1-D(G(z)))] + \lambda \cdot \mathbb{E}_{z \sim p_z(z)} [\mathcal{L}_H(G)]. LG=Ex∼pz(z)[f(1−D(G(z)))]+λ⋅Ez∼pz(z)[LH(G)].(7)