可逆神经网络 Invertible Neural Networks
我们常常遇到这样的问题:给出一系列测量值,如何确定隐式参数?以配色为例,即给出标准样的光谱反射率曲线,如何确定配色配方。通常,从参数到测量空间的前向过程是明确定义的函数,而反问题是模糊的,因为一个测量值可以映射到多个不同的参数集。有一种类型的神经网络适合解决这类问题——即可逆神经网络 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 值。
从上述结果中也可以看出两点:
这个例子就不详细讲述了,和医学应用差不多,效果也还是可以的:
字纨猪苓: 首先要知道你建立的这个模型的内部逻辑关系..1,确定隐层数,画出简要模型图.2,确定采用什么样的神经网络来建立模型3.通过测试数据来训练模型..4.根据测试训练得到的数据和实际数据进行比对,或者算出误差.从而修改隐层中的权值和阀值.反复重复3-4..最后得到一个最优的模型.大致是这样...楼主说的太概略...无法回答清楚请抱歉
三原县15287466910: 人工神经网络常用的4个激活函数是哪些 - ?
字纨猪苓: 何止3个(类)? 深度的大多ReLU以及类似的,softplus是reLu软化的产物; RBF的话Gaussian很常见;Sigmoif类里tanh和logistic等也很常用;实在不济,step function也可以用. 某些regression问题直接在最后层用identity function,也算是激活函数.
三原县15287466910: 人工神经网络的分类ann和bp是什么意思 - ?
字纨猪苓:[答案] 人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等.目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield网络、波耳兹曼机、适应谐振理论等. ann:人工神经网络(Artificial Neural Networks)...
三原县15287466910: 如何理解神经网络里面的反向传播算法 - ?
字纨猪苓: 反向传播算法(BP算法)主要是用于最常见的一类神经网络,叫多层前向神经网络,本质可以看作是一个general nonlinear estimator,即输入x_1 ... x_n 输出y,视图找到一个关系 y=f(x_1 ... x_n) (在这里f的实现方式就是神经网络)来近似已知...
三原县15287466910: 模糊神经网络的基本形式 - ?
字纨猪苓: 模糊神经网络有如下三种形式:1.逻辑模糊神经网络2.算术模糊神经网络3.混合模糊神经网络 模糊神经网络就是具有模糊权系数或者输入信号是模糊量的神经网络.上面三种形式的模糊神经网络中所执行的运算方法不同.模糊神经网络无论作为逼近器,还是模式存储器,都是需要学习和优化权系数的.学习算法是模糊神经网络优化权系数的关键.对于逻辑模糊神经网络,可采用基于误差的学习算法,也即是监视学习算法.对于算术模糊神经网络,则有模糊BP算法,遗传算法等.对于混合模糊神经网络,目前尚未有合理的算法;不过,混合模糊神经网络一般是用于计算而不是用于学习的,它不必一定学习.
三原县15287466910: 人工神经网络常用的网络结构有哪些 - ?
字纨猪苓: 人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等.目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield网络、波耳兹曼机、适应谐振理论等. ann:人工神经网络(Artificial Neural ...
三原县15287466910: 前馈神经网络的分类 - ?
字纨猪苓: 单层前馈神经网络是最简单的一种人工神经网络,其只包含一个输出层,输出层上节点的值(输出值)通过输入值乘以权重值直接得到.取出其中一个元进行讨论,其输入到输出的变换关系为 上式中, 是输入特征向量, 是 到 的连接权,输出量 是按照不同特征的分类结果. 多层前馈神经网络有一个输入层,中间有一个或多个隐含层,有一个输出层.多层感知器网络中的输入与输出变换关系为 这时每一层相当于一个单层前馈神经网络,如对第层,它形成一个维的超平面.它对于该层的输入模式进行线性分类,但是由于多层的组合,最终可以实现对输入模式的较复杂的分类.
三原县15287466910: 简述人工神经网络的结构形式 - ?
字纨猪苓: 神经网络有多种分类方式,例如,按网络性能可分为连续型与离散型网络,确定型与随机型网络:按网络拓扑结构可分为前向神经网络与反馈神经网络.本章土要简介前向神经网络、反馈神经网络和自组织特征映射神经网络.前向神经网络是...
三原县15287466910: 用matlab做BP神经网络,进行数据预测,全部都为正数,但是反归一化后得到负数是什么原因? - ?
字纨猪苓: net=newelm(minmax(inputn),[5,1],{'logsig','tansig'},'trainlm'); 这是老版用法,建议你用新版用法. net=newelm(P,T,S1); 输出层也用tansig吗,这可能会有负数.Elman神经网络是一种带有反馈的两层BP网络结构,其反馈连接是从隐含层的输出到其输入端.这种反馈方式使得Elman网络能够探测和识别时变模式. 其隐含层又称为反馈层,神经元的传递函数为tansig,输出层为线性层,传递函数为purelin.这种特殊的两层网络可以任意精度逼近任意函数,唯一的要求是其隐含层必须具有足够的神经元数目.隐含层神经元数越多,则逼近复杂函数的精度就越高.
三原县15287466910: 神经网络可以反向输出吗? - ?
字纨猪苓: 神经网络的机理实际上是一种函数对应关系,已知变量值可以求函数值,但是函数值却对应多个变量组合啊,应该不可以的...除非你对y到x1,2,3分别再训练一次.