APP下载

浅析生成对抗网络及其在计算机视觉中的应用*

2023-08-22张晨曦秦飞巍葛瑞泉

计算机时代 2023年8期
关键词:函数图像模型

张晨曦,姚 琼,秦飞巍,葛瑞泉

(1.杭州电子科技大学计算机学院,浙江 杭州 310018;2.台州中学)

0 引言

上世纪90年代机器学习研究兴起,各种新技术不断涌现,如卷积神经网络、循环神经网络。当计算机神经网络拓展到三层及三层以上时便出现了深度学习技术。深度学习作为计算机机器学习领域新的研究方法,已经广泛运用于计算机视觉、图像识别、语音识别、自然语言识别等不同领域。其中基于对抗学习的生成对抗网络也逐渐成为近几年的热点之一。

自2014年Goodfellow博士提出生成对抗网络概念以来,截至2022 年,生成对抗网络(GAN,Generative Adversarial Network)衍生出多种不同类型的对抗网络结构,它们在图像处理的不同领域发挥着各自的作用,成为深度学习领域不可或缺的一部分[1]。目前,国内外涌现的许多基于原始GAN 的改良生成对抗网络,大多从以下五个方向对GAN进行了优化拓展[2]。

⑴可解释性与可控性:在使用GAN进行图像生成训练时,以往我们不能具体量化每个参数对生成结果的影响,如今其可解释性得到提升。在可控性方面,传统GAN 的输入取决于随机函数不受控制,因此也产生了如条件GAN等可自定义输入的改良模型。

⑵稳定性:在训练模型时可能出现梯度消失或梯度爆炸现象,导致模型坍塌得不到正确的训练结果,即稳定性低。现在的GAN模型在稳定性方面得到了极大改善。

⑶评价标准:区别于以往纯肉眼观察,如今大多使 用Amazon Mechanical Turk(AMT)、Frechet Inception Distance(FID)、Inception Score(IS)三种标准来进行定量评价模型。

⑷学科交叉:通过引入其他学科,如人工智能、概率论、信息论等,使模型性能得到提升。

⑸实用价值:对生成对抗网络的应用进行开发拓展,结合日常生活,挖掘其实用价值。

尽管生成对抗网络领域的研究成果众多,但仍存在许多问题,其生成图像结果也还有进步的空间,为了解决这些问题,模型优化基本可分为两类:一类是对GAN的原理算法进行改进,从数学的角度修改函数达到更精确的拟合,另一类是对GAN的外部结构进行改进,通过判别器与生成器的组合来实现优化。

1 生成对抗网络概述

1.1 生成对抗网络原理

GAN 模型是对联合分布概率P(x,y)建模的一种生成式模型,其中的对抗是指在模型训练过程中处于一种对抗博弈的状态。随机生成的测试图片会与真实目标图片进行对比,互相促进以优化模型。一个GAN 模型主要包含两部分:生成器G(Generator)和判别器D(Discriminator)[3]。

⑴生成器

生成器先随机输入一个噪声变量,最好满足常见分布如高斯分布与均值分布,接着将其映射到一个可以输出图片的数据空间G(z,θg),例如全连接神经网络或者反卷积网络等。其中θg是该数据空间模型的参数。然后得到一组由生成器生成的数据G(z),它构成一张测试假图片。

⑵判别器

判别器将通过价值函数对输入的真实图片与生成器生成的假图片进行判别,最后输出一个概率P 代表图片的真实性,1-P 即为假图片的概率。而最理想的情况是当判别器对于真实图片与假图片的判别结果都为0.5(此时判别器无法区分真假图片的不同,又称达到纳什均衡),此时GAN模型达到平衡。

⑶训练过程

训练时GAN 通过价值函数(损失函数)来进行真假区分判断,其函数为:

该函数中z 是随机噪点变量,G(z)是z 通过生成器G映射的数据分布。因此函数也可以写为:

其中,V(D,G)代表训练图片与真实图片的差别。当训练判别器时(计算maxD),生成器G 保持不变,函数中前半部分表示真实图片的价值,其中D(x)表示x 的判别结果为真的概率,我们希望这个值无限接近于1。而函数后半部分表示假图片的价值,1-D(x)表示判别结果为假的概率,同样我们希望它能100%判别它为假(即D(x)=0),此时整个函数的值趋近于0(系统的熵为0,趋于稳定)。当训练生成器时(计算minG),判别器D保持不变,即函数的前半部分为常数,此时我们希望每一张假图片在经过判别器时都会被判别为真,则D(x)=1,1-D(x)=0[4]。

最终,当判别结果达到0.5 时系统最优。同时执行时按照先训练更新k次判别器后更新一次生成器的流程,这样可以使判别器尽量不出错,使结果更加可靠。

1.2 典型生成对抗网络变种

⑴深度卷积对抗网络(DCGAN)

DCGAN 模型是将GAN 模型使用的多层感知机用卷积神经网络(CNN)代替,也就是从内部原理进行优化,进一步提升模型的生成质量,使图像更接近于真实。

相比传统GAN,DCGAN的改进在于:使用卷积和去卷积代替池化层;在生成器和判别器中都添加批量归一化操作;去掉全连接层,代替使用全局池化层;生成器输出层使用Tanh 激活函数,其他层使用ReLU;判别器所有层都使用LeakyReLU 激活函数[5]。

在训练方法上,DCGAN 和GAN 并无区别,都是先训练k 次判别器后训练一次生成器,同时使其判别器结果稳定在0.5 达到纳什均衡。在加入CNN 后,深度卷积对抗网络具备了更强的性能,更好的拟合度,同时生成图也具备了多样性特点,因此该模型获得了广泛的应用。但与传统GAN 相比它仍没能解决生成图像素低,图像质量差的问题。

⑵Wasserstein生成对抗网络(WGAN)

GAN 模型在数据层面的问题会导致当判别器性能极佳时,生成器会有梯度消失的情况发生,即无论生成器生成怎样的图片都会被判为假,此时生成器就无法得到优化。为了解决这一问题,WGAN从内部原理进行改进,与条件GAN不同的是它从损失函数入手。

WGAN 对比GAN 做出了以下几点改变:①去掉判别器的sigmoid 函数,即神经元非线性激活函数(输出范围0~1,可表示概率);②损失函数的计算使用乘法;③每次训练时将判别器权重参数截断在某一范围,这样可以满足lipschitz 条件(利普希茨连续条件),使判别器改变速度受限,优化更为平滑,提高其稳定性[6]。

WGAN 提高了训练的稳定性,较好地应对了梯度消失崩溃的问题,同时生成结果拟合度也得到一定程度提高。但是WGAN 训练时间长,而且当判别器权重裁剪到一定范围时,会导致权重堆积在裁剪边界上,造成梯度爆炸。

⑶Pix2PixHD

与上面两种方式不同,Pix2Pix是通过改变外部结构进行优化的。首先生成器的输入由以前的随机生成噪点变为用户自定义图片,解决了GAN模型的无用户控制能力问题。但随之而来的是,判别器在判断用户自定义输入图片经过生成器映射出的G(x)时,无法对其相关性做出准确判别。所以在原来GAN 的基础上,Pix2Pix 在判断时加入用户自定义图片输入作为条件共同判断。

通过Pix2Pix模型可以得到自己想要的生成方向,但同样的让网络产生高维数据输出高精度图像十分困难,图像分辨率与图像质量仍然是一个没解决的问题。所以Pix2PixHD 模型采用了一种循环的金字塔式方法(一层层向上递进细化),其将第一次生成的低分辨率图片作为下一次训练的自定义输入图片,在不停的循环后得到一个高质量输出结果。在这种训练模式下,要求训练集必须是一一对应的成对数据,这也算是该模型的一个缺点[7]。

⑷CycleGAN

在现实生活中,有时要得到成对数据十分困难,例如我们想把猫变成狗,其对应的真实图片是不存在的,这时就要用到CycleGAN 模型。该模型训练集可以是两个毫无关联的不成对数据,因此它同样是从外部结构入手,通过构建两个相同的GAN模型来实现一个环形网络,避免所有的x都被映射到同一个y。

在CycleGAN 模型中,这两个对称的GAN 模型共享两个生成器G 和F,同时各自拥有一个判别器Dx 与Dy。模型中两个GAN 的损失函数与之前一样,但CycleGAN 模型中又加入了循环一致性损失或重构误差,以此达到不成对训练的目的[8]。

2 生成对抗网络在计算机视觉领域的应用

⑴图像生成

图像生成是GAN模型最基本的应用方式,本文中提到的方法都能实现该功能。通过给定的条件或对应的真实图,利用模型训练生成目标图。在应用方面可以实现从文字生成图像或图像生成图像,运用图像生成可以减少绘图的工作量,快速获得大量符合要求的真实图片。例如被称为最强GAN 图像生成器的BigGAN,根据输入参数与条件的不同可以输出几近真实的照片风格图片。正如其名“Big”,BigGAN 使用了大规模GAN 模型,同时增大了每层网络的通道数,最终在提升了训练速度的情况下获得了极好的生成结果。

例如在《激光与光电子进展》期刊中,有研究者基于HistoGAN 算法,提出了一种新的火焰生成算法fire-GAN。通过对目标图像进行预处理,减少背景影响,使用圆形度目标函数生成了与目标火焰颜色相近,清晰度好的火焰图像,其FID达到59.23[9]。

⑵图像高清修复

高清修复可以说是极具应用价值,它与网络上备受关注的去马赛克技术类似,都可以通过生成对抗网络来实现,例如上文中提到的Pix2PixHD。通过不断训练网络,一张16×16的低分辨率图片可以得到一张128×128 或更高精度的图片。这在照片去雾、表情包高清化等命题中得到实践,通过不断迭代,将上一次的生成结果作为下一次的输入,使图像中的特征信息不断强化,同时去除噪点信息,最终可以得到清晰的处理结果[10]。

北京交通大学的研究者在GAN网络的基础上,结合基于深度学习的FaceSR 技术,提出了一种高性能的人脸图像超分辨率重建模型:CSP-GAN。该模型实现了有效利用先验人脸信息来重建高质量的高清人脸图像[10]。

⑶视频预测

视频预测是对静态图应用的扩展,将时序信息加入到GAN模型中,达到对视频中出现的几帧图像进行处理,然后将其输入到生成器G 中得到接下来预测的几帧图像。而判别器则对比生成的视频帧与真实视频帧的区别,从而对生成器产生优化作用。GAN 模型可以估算数据,例如汽车自动驾驶技术中用于预测行人或汽车的行动轨迹,或者在游戏中通过上几帧画面预测并生成下几帧画面,达到性能优化的作用。

⑷草稿上色复原

通过GAN模型,我们可以批量对草稿图片进行上色还原,在训练数据较多时往往能得到较好的结果,同时也能实现真实图片与简笔画的反向转换,得到其轮廓草图。可以使用Pix2Pix模型,通过对比草稿图与上色图,迭代训练得出上色特征来达到效果。同样使用DCGAN 与StyleGAN 也可以实现动漫人脸的上色生成,甚至可以自由调节发色、瞳色等特征。

⑸图像风格迁移

图像的艺术风格是一种很难用程序语言来描述的模糊概念,因此传统的风格迁移要先分析某种风格的特点,并对其建模,但这样建立的模型只适用于一种风格或场景的切换,同时也较为耗时费力。而运用GAN 模型,我们可以生成任意一种风格的对应图像,并且与手动建模不同的是我们可以通过训练生成器来自动生成,其可用性与实用价值得到大大提升。

例如笔者使用CycleGAN 模型实现了人脸照片转换为素描风格(图1),但CycleGAN 将多个向量维度表示一种人脸特征信息,造成特征纠缠问题,一些噪点细节也会被识别成人脸器官。因此,笔者通过修改输入层为mappingnetwork 网络来分解纠缠,最终得到较好结果,并在此基础上实现了照片转油画的风格迁移。同时在一些图像增强领域,如矿井暗光环境下的图像增强,浑浊水体下的颜色矫正等,GAN 模型都具有较好的实践体验。

图1 CycleGAN实现人脸素描风格迁移

3 生成对抗网络的优势与劣势

⑴优势:GAN 模型使用了判别器来代替损失函数,这样能够实现更大致的拟合,使图像在对比时不会因为某几个像素点的不同而影响全局。在这种情况下,单纯的几个像素点的区别并不能决定判别器对真假的判断,因此我们能得到总体上以假乱真的图像。

⑵劣势:简单GAN 模型的优势同时也引出了它的一些问题:没有用户控制能力且图像质量差。GAN输入输出取决于随机噪点P(z),它的输入输出与用户需求无关,即网络没有用户控制能力。例如用户无法指定输入铅笔简笔画图片来生成该简笔画的油画版本。有时生成的图像总体上算是符合要求,但图像质量差,图像放大后的细节惨不忍睹。

除此之外,GAN 模型为了达到最佳的纳什均衡,在判别器判别效率的迭代优化过程中,当判别器效率太高时,生成器中会出现自相矛盾的情况,此时真假图片都判定为假,造成梯度消失。而判别器中神经网络层数过多或权值设置过大则会出现梯度爆炸等问题。

4 前景分析

如今大数据技术的飞速发展,无监督学习无疑是一种降低研究成本提高效率的重要手段。而GAN 技术作为典型的无监督学习方法,用生成器与判别器的自动博弈对抗来替代复杂的特征分析建模工作,无疑是今后十分热门的研究方向。

GAN 模型本质上是求解损失函数的最优解,找出最合适的权值,因此,反向传播训练是其中的关键。而解决反向传播中出现的各种梯度消失爆炸,过拟合问题、寻找更加优秀的激活函数将会是研究的重点。除此之外还有另一种思路,直接抛弃传统神经网络的反向传播方式,使用Capsule 胶囊网络来进行优化,这也是可能的发展方向。

在应用层面,GAN 模型将会结合不同领域,例如医学图像识别,人工智能绘画等领域,实现更多价值实践应用。

5 结束语

自2014年生成对抗网络提出以来,它便吸引了许多目光,在最近几年更是涌现出了许多不仅好玩有趣,而且具备较强实用价值的优秀网络结构。这是一个十分具有应用前景的研究领域,相信随着大数据技术以及设备性能算力的不断发展,生成对抗网络也能不断前进,在计算机科学的不同领域乃至其他学科发挥更大的应用价值。

猜你喜欢

函数图像模型
改进的LapSRN遥感图像超分辨重建
二次函数
第3讲 “函数”复习精讲
二次函数
重要模型『一线三等角』
函数备考精讲
有趣的图像诗
重尾非线性自回归模型自加权M-估计的渐近分布
3D打印中的模型分割与打包
FLUKA几何模型到CAD几何模型转换方法初步研究