网络架构
网络架构是由两个生成器G,F和两个判别器Dx,Dy组成。网络的输入是y中的数据和x中的数据。生成器G被用来拟合G:Y->X的域映射关系;生成器F被用来拟合F:X->Y的域映射关系。
从训练意图上,生成网络依旧是被要求学习某种映射的训练对象,判别网络在训练的过程中更偏向于辅助指导;从结构上,两个生成网络之间首尾相接,构成了一个环形网络,数据在两者之间频繁流动,不断变更着分布。
生成网络
生成器网络由编码器、转换器和解释器三部分组成。其中,编码器的作用是从输入中提取特征,转换器的作用是将特征向量在两个域之间进行转换,具体到生成网络G中,其功能便是将信号在Y域中的特征向量对应转换为X域中的特征向量,而解码器的作用是将特征向量恢复为信号。具体到实现细节上,编码器由多个卷积层堆叠搭建,卷积层能够从原本输入中不断提取高阶特征,符合编码器的需求。与之对应的,解码器由多个反卷积层搭建而成,反卷积层是卷积的逆过程,能够根据特征来恢复合成信号。而在特征转换器的搭建上,使用多个ResNet模块进行堆叠搭建,每一个ResNet模块由两个卷积层构成,其中包含有残差连接通道,从而使得转换器中可以尽可能多地增加层数,从而拟合更加复杂 的映射。
判别网络
鉴别器将需要鉴定的数据作为输入,并尝试预测它是原始数据或是生成网络的输出数据。鉴别器使用的是卷积神经网络的结构,它从输入中不断提取特征,最终确定输入数据的特定类别。
损失函数
“如果说把模型的参数更新比作是一场旅行,优化算法为这场旅行提供了“动力”,那么损失函数的设计可以说是为这场旅行提供了“地图”。”——损失函数的定义对于网络训练至关重要。
对抗损失
循环一致性损失