我们常常遇到这样的问题:给出一系列测量值,如何确定隐式参数?以配色为例,即给出标准样的光谱反射率曲线,如何确定配色配方。通常,从参数到测量空间的前向过程是明确定义的函数,而反问题是模糊的,因为一个测量值可以映射到多个不同的参数集。有一种类型的神经网络适合解决这类问题——即可逆神经网络 INN。传统的神经网络会尝试直接解决这类问题,而 INN 则能够与明确定义的前向过程一起学习它,使用额外的隐式输出变量来捕获正向过程中可能丢失的信息。
一、什么是可逆神经网络
对于一些问题,研究人员建立了复杂的理论模型,用于实现隐式参数到可测量值的映射,这种映射称之为前向过程。逆向过程即根据测量值得到隐式参数,这也是实际需要解决的问题。但是逆向过程难以解决,因为在前向过程中丢失了一些关键信息。
如果直接用传统神经网络去训练逆向过程,则效果会很受限,因为逆向过程为一对多映射。神经网络训练出的模型,最好情况是识别最可能的解决方案;最差情况是采用多种解决方案的平均值。
INN 有三个特征:(i)从输入到输出的映射是双射的,即它的逆存在(ii)正向和反向映射都是有效可计算的(iii)映射具有易处理的雅可比行列式,因此概率可以通过变量公式明确转换。
标准 NN 直接对逆向过程进行训练,但其需要一个监督损失(SL)项,来区分真正的 x 与预测的 x(我们可以暂时把 SL 理解为一个确定的代价函数),而 y->x 这种一对多映射使得传统 NN 受到很大限制。INN 只对前向过程使用 SL,而由于并没有一个确定的 x 值,因此预测的 x 属于无监督损失(USL),需要遵循之前的 p(x);另外,潜在变量 z 需要服从高斯分布,也是属于 USL。
由于在前向过程中会丢失一些信息,因此引入了额外的潜在输出变量 z,被训练去抓获与 x 有关的但并未包含在 y 内的信息。此外,需要训练网络根据高斯分布对 p(z) 进行调整。即,p(x|y) 被调整为一个确定的函数 x = g(y,z),这个函数将已知的分布 p(z) 在满足 y 的情况下转换到 x 空间。
二、INN 详解
如果 x∈R D ,y∈R M ,那么由于前向过程中信息的丢失,y 的固有维数 m 一定小于 D,即使 M 可能大于 D。
我们希望根据模型 q(x|y) 来预测 ρ(x|y);因此引入了隐式变量 z 并将 q(x|y) 以 g(y,z;θ) 的方式呈现:
相应地,其前向过程也可以由 f(x;θ) 表示:
双向训练 f 和 g 可以避免出现在 cGAN 和贝叶斯神经网络中的问题。由于 INN 要求 f = g -1 ,所以两边的维度(不论是固有维度还是显示维度)要相同。所以要求变量 z 的维度 K = D - m,如果导致了 M + K > D,则需要用 M+K-D 维的 0 向量补齐 x 向量。
结合以上所有定义,我们的网络将 q(x|y) 表示为:
可逆神经网络的基本构建块是Real NVP模型推广的仿射耦合层。它的工作原理是将输入数据分成两部分 u 1 、u 2 ,这两部分由学习函数 s i ,t i (它们可以是任意复杂的函数,且函数本身不需要是可逆的)转换并以交替方式耦合:
输出即是 [v 1 ,v 2 ] 的连接。用公式表示为:
而给定输出,也可以得到其逆过程:
用公式表示为:
一个深度可逆网络就是由一系列上述构建块组成。另外,对这个基本架构还有两个拓展点:
INN 同时降低输入和输出域的误差,使得训练更加高效。因此,INN 交替执行前向和后向迭代,在更新参数之前积累双向梯度。
对于前向迭代,我们计算模型输出 y i = s(x i ) 与网络预测 f y (x i ) 之间的偏差,损失记为 L y (y i ,f y (x i )),L y 可以是任意有监督的损失,如回归问题中的平方误差或分类问题中的交叉熵。
对于潜在变量 z,我们计算模型输出 p(y = s(x)) = p(x) / |J s | 和潜在变量 p(z) 的边际分布的乘积与网络输出 q(y = f y (x),z = f z (x)) = p(x) / |J yz | 间的偏差,记为 L z (p(y)p(z),q(y,z)). L z 确保了两件事:首先,生成的 z 必须服从需要的正太分布 p(z);其次,y 和 z 是相互独立的,且不会涵盖同样的信息两次。L y 和 L z 都属于前向迭代过程中的损失。
L y 和 L z 理论上已经足够,但 y 和 z 之间的少量剩余依赖在复杂问题实例中仍然存在,这导致 q(x|y) 偏离真正的 p(x|y)。为避免这种情况,还额外定义了输入端的损失 L x ,L x (p(x),q(x)) 表示了 p(x) 与后向预测分布 q(x) = p(y = f y (x)) p(z = f z (x)) / |J x | 间的偏差。
L x 与 L z 都通过最大平均误差法 MMD 实现。MMD是一种基于内核的方法,用于比较只能通过样本访问的两个概率分布。论文中采用了以下方法取得了最佳效果:
三、INN 相关实验
这个实验的前向过程是根据点的二维坐标,判断其所属的模式,逆向过程则是根据所属模式标记出其二维坐标。训练结果如下:
可以看出,如果只有前向训练(L y ,L z ),会捕获已知关系,但对于 x 空间的未填充区域却有较大偏差(所以Setup1效果较好但Setup2和Setup3这种有集合***享标签的情况效果较差);而如果只有后向训练(L x ),则会学习正确的 x 分布,但丢失了已知信息。
使用 cGAN 训练,需要更多的隐式变量和更复杂的结构,且 cGAN 和 INN 间的差异不仅是因为使用了不同的损失函数,证明了 INN 优于 cGAN。而最后的 dropout 网络只使用 y 作为输入,由于其没有使用任何隐式变量,它丢失了 y 中所未包含的所有信息。
分析隐式空间的结构,即了解模型在给定 y 的情况下如何利用 z。对于隐式空间中的每个坐标 z i (在这个实验中,z 是二维变量),我们使用 [y,z i ] 作为逆向过程的输入,得到 x i ',然后给该点着色——色调取决于 x i ' 在 x 空间更接近的模式颜色,亮度取决于 x i ' 离那个模式的距离。
在医学上,肿瘤会使得血氧饱和度发生变化,从而导致组织表面的反射率发生变化。组织表面的反射率可通过多光谱相机测量;也可以根据包含血氧饱和度、血液体积分数、散射强度、各向异性指数及组织厚度的模型模拟得到。然而,根据组织表面反射率,却难以得到重要的功能特征,因为不同的组织参数可能得到同样的组织反射率。也有尝试过直接对逆向过程建模,但模型的预测效果并不理想。
就精确度而言,INN 的 MAP(maximum of the posterior)方法优于其他方法。如果不考虑 L x 损失,对精确度影响不大;但如果不考虑 L y 、L z ,网络就彻底失败了。在给定 y 的情况下,INN 对 p(x|y) 的预测结果如下:
橙色区域为 INN 预测得到的 p(x i |y);灰色区域为整个数据集的 p(x) 分布;虚线是与测试集中的 y 相关联的实际的 x 值。
从上述结果中也可以看出两点:
这个例子就不详细讲述了,和医学应用差不多,效果也还是可以的: