图 2
以生成小狗的假图片为例。如上图所示,输入一个随机噪声,送入生成器模型将产生一张小狗的假图片,而后将假图与真图配对,打上标签(假图为0,真图为1),用于训练判别器,经初步训练,判别器已有了必定的精度。此后,保持判别器参数不变,不断调整生成器参数直至判别器没法区分生成器生成的假图与真图;而后,保持生成器参数不变,调整判别器参数直至判别器能最大程度地区分生成器生成的假图与真图。如此重复上述两个步骤,最终生成器将能产生人眼没法分辨的图片。
公式(1)
上式中 G( ) 表示生成器,输出一张生成图片,D( ) 表示判别器,输出判别为真图的几率,x 为真图,z 为噪声。即咱们训练 D 使其有最大的判别精度(使上式中第一项和第二项都最大),又训练 G 使其能生成最容易骗过判别器的图片(使上式第二项最小)。
初识CycleGan
Gan 能生成与训练集风格相似的图片,但没法指定具体的图片。以上文生成小狗图片为例,生成器可能一直输出同一张最像小狗的图片,而没法针对输入图片输出对应的小狗图片。CycleGan 有效解决了这个问题。网络
图 3
上图是 CycleGan 的原理图解。图(a)中 X,Y 对应两个领域,咱们但愿将 X 领域中的图片转换为 Y 领域中的图片;G,F 分别对应正向和逆向 Gan 中的两个生成器,即 G 将 X 领域中的图片 x 转换为 Y 领域中的图片 G(x),而后用判别器 DY 判别是否属于 Y 领域的图片,以此构成生成对抗网络,此即为 Gan 的基本结构。图(b)相较图(a)增长了部分结构,即要求 G(x) 再通过逆向 Gan 中的生成器 F 生成 F(G(x)),使之与原输入 x 尽量接近,即 cycle-consistency loss 尽可能小,由此便可解决 Gan 没法针对性地输出对应图片的问题。图(b)过程 x->G(x)->F(G(x))≈x,咱们将之称为 forward cycle consistency。为了提升训练效果,相似地,咱们又训练从 Y 领域到 X 领域的转换,如图(c)过程 y->F(y)->G(F(y))≈y, 咱们称之为 backward cycle consistency。
对于 Unpaired 问题来讲,只是用普通 GAN 的话能够学到的模型有不少种。种类数目为领域 X 和领域 Y 之间的随机映射数目,因此只是用普通 GAN 损失函数没法保证输入 x 可以获得对应领域的 y。而 Cycle 一致性的出现,下降了随机映射的数目,从而保证获得的输出再也不是随机的,所以可以实现图片从一个领域到另外一个领域的转换。 项目源码地址:momodel.cn/explore/5d7…机器学习
Mo 人工智能俱乐部 是由人工智能在线建模平台(网址:momodel.cn)的研发与产品团队发起、致力于下降人工智能开发与使用门槛的俱乐部。团队具有大数据处理分析、可视化与数据建模经验,已承担多领域智能项目,具有从底层到前端的全线设计开发能力。主要研究方向为大数据管理分析与人工智能技术,并以此来促进数据驱动的科学研究。