这篇论文是ICML2019两篇best paper之一,针对无监督解耦进行了分析,从理论上证明无监督解耦是不可能的,虽然知乎上存在一些对这篇论文的负面评论,但个人感觉还是对解耦这个概念理解不一致造成的,单从这篇论文中对解耦的理解,我觉得这篇文章的工作是很有意义的。下面内容仅是个人理解,难免有失偏颇,欢迎指正。
1 解耦表示
首先简单介绍一下解耦这个概念,并没有一个统一的定义, β − V A E \beta-VAE β−VAE中有提到:A disentangled representation can be defined as one where single latent units are sensitive to changes in single generative factors, while being relatively invariant to changes in other factors,就是说隐变量中某一维的改变只会影响生成结果中某个因素的改变,不会导致其他因素的改变。简单举个例子,存在一个关于人脸的隐变量z,其中 z i z_{i} zi对应鼻子,那么 z i z_{i} zi的变化只会影响到鼻子,不会影响到其他的器官,如眼睛、嘴,这就是一个解耦表示。
2 无监督解耦是不可能的
2.1 无监督解耦的问题
之前一些无监督方法大多专注于保持隐变量z的各维是独立的,认为这样就完成了解耦表示,这显然是不合理的,可以简单设想一下,我们用一个二维的z来表示眼睛和鼻子,其中 z 1 z_{1} z1对应眼睛, z 2 z_{2} z2对应鼻子, z 1 z_{1} z1和 z 2 z_{2} z2相互独立,可以将 z 1 z_{1} z1视为一个坐标轴, z 2 z_{2} z2视为一个坐标轴,两坐标轴正交,这样改变 z 1 z_{1} z1的时候只有眼睛会改变,不会影响 z 2 z_{2} z2的值,同样改变 z 2 z_{2} z2的时候只有鼻子会改变,不会影响眼睛,这样看来的确实现了解耦表示,但有一个关键的问题,无监督的方式下我们怎么知道 z 1 z_{1} z1对应眼睛, z 2 z_{2} z2对应鼻子,大多数无监督解耦的方法只能保证 z 1 z_{1} z1和 z 2 z_{2} z2相互独立,对应到这个例子里面只能保证两个坐标轴正交,但并不能保证眼睛和鼻子正好对应到两个坐标轴上。
当然这个例子并不严谨,仅提供一个个人理解。论文中对这个问题进行了证明,下面将对这个证明进行讲述。
2.2 定理及其证明
论文中提出了一个定理:
这个定理说了这样一个事情,对于任意满足 P ( z ) = ∏ i p ( z i ) P(z)=\prod _{i}p(z_{i}) P(z)=∏ip(zi)的分布,都存在无穷多个双射函数 f f f,使得 P ( z ) P(z) P(z)和 P ( f ( z ) ) P(f(z)) P(f(z))是一样的,即无法从分布上进行区分,并且当 i ≠ j i\neq j i=