【已开源华为诺亚方舟实验室首创针对生成对抗网络(GAN)的剪枝算法

网友投稿 799 2022-05-29

7月23日,ICCV 2019公布录用结果,华为诺亚方舟实验室的论文《Co-Evolutionary Compression for Unpaired Image Translation》被成功录用,该论文首次提出针对GAN中生成网络的剪枝算法,在图像迁移任务中,可以在保持迁移效果的情况下,网络参数量和计算量压缩四倍以上,实测推理时间压缩压缩三倍以上。

论文地址:https://arxiv.org/abs/1907.10804

【已开源】华为诺亚方舟实验室首创针对生成对抗网络(GAN)的剪枝算法

开源地址:https://github.com/huawei-noah/GAN-pruning

研究背景

随着手机等智能终端的广泛普及,基于移动端的图像风格迁移,人像渲染等应用有着广泛的需求,在智能相机、移动社交、虚拟穿戴等领域有着巨大的应用前景。生成对抗神经网络在图像风格迁移、人脸属性控制等任务中取得了良好的效果。但是生成式模型由于其本身输出结果和优化目标的特点,模型往往需要较大的内存,运行这些模型需要较大的计算开销,一般只能在GPU平台上运行,不能直接将这些模型迁移到移动端上。而现有的针对神经网络的压缩算法都是针对判别式神经网络模型设计,直接应用在生成网络上不能取得令人满意的压缩结果。

生成模型参数冗余建模

对生成模型来说,网络输出是高维的生成图像,很难直接从这些图像本身去量化评价压缩模型的好坏,借鉴传统的剪枝算法,可以直接最小化压缩生成模型前后的重建误差来获得压缩后的模型。可以定义为生成器感知误差,

(公式1)

直接优化公式1可以让压缩后的生成器和原始生成器尽量像素相近,但是在图像风格迁移任务中确没必要。比如,一个“斑马”,不管是有5条还是8条白色条纹,都可以看成是成功的风格迁移,但是体现在公式1中的差别可能很大。所以优化公式1并不能准确地去除风格迁移任务中的参数冗余。

虽然在推理阶段,判别器经常不会被使用,但是判别器中包含了判别图像域的重要信息,因此论文提出了判别器感知损失来牵引生成器的压缩过程。

(公式2)

是原始网络中的判别器。与公式1相比,公式2并不直接关注压缩前后的生成器模型在像素级别的相似性,而是通过判别器,更加关注压缩前后风格的一致性,这对压缩生成器是一个更好的优化方向。

对于两个图像域的互相转换,循环一致性误差的重要性也在多篇论文里得到证明,所以也是压缩生成器重要的优化方向。

(公式3)

所以总体来说,压缩一个生成网络的目标函数如下:

(公式4)

其中表示网络的参数量,用来平衡网络参数量和压缩模型的误差。

对于两个的图像域互相转换,两个生成器一般有相同的网络结构和参数量,如果只优化其中一个生成器会导致网络训练过程不稳定,所以提出同时优化两个生成器,这样也可以节省计算时间和资源。

(公式5)

协同进化压缩

考虑到无法准确地计算生成网络中的每一个通道对于最终输出结果的影响,采用进化算法,对网络进行全局二值编码,如图1所示,对两个对称的生成器分别维持一个种群,将生成器A种群适应值最高的个体与生成器B的种群一起训练,选出B种群中适应值最高的个体,再和A的下一代种群进行训练,以此类推,进行协同交替压缩,最终得到两个压缩的生成器,算法流程如算法1所示。

图1 协同进化交替迭代,最终得到两个压缩后模型

更新: 压缩后的由一串固定长度的二值编码表示,编码的每一位表示网络的每一个通道,如公式6所示。 表示生成网络中第 层的通道编码,表示把第n个卷积通道去除,反之则保留。

(公式6)

用公式7表示网络压缩后的参数量。

(公式7)

所以在进化算法中,一个压缩个体的适应值可以用公式8来计算:

(公式8)

定义了适应值的计算规则后,采用进化算法进行多代进化,可以选出适应值较高的个体。对于每一个压缩生成器的结构来说,先用10%的训练数据集训练,然后在验证集上计算适应值,根据种群中的适应值,个体可以被赋予一个选择概率,通过轮 盘赌算法可以通过上一代种群通过选择、交叉和变异得到下一代个体。

更新: 与一样,对维持一个种群,也可以通过进化算法选出适应值最优的个体。但是,通过公式8可以看出,循环一致性误差计算同时涉及两个生成器,所以同时对和分别维护一个种群。具体来说,在t次迭代中,用t-1次迭代中适应值最优的去和种群训练,得到适应值最优的,然后用适应值最优的和种群训练,得到t迭代种群的适应值。

算法1:协同进化算法流程

实验结果

我们在horse2zebra, summer2winter和cityscapes三个数据集上分别进行大量实验来说明算法的有效性。

超参影响:实验对平衡参数量和损失的超参数γ进行了实验,如图2所示,大的γ使得压缩比更低,但是风格迁移效果更好。

消融实验:在实验数据和超参数相同的情况下,我们比较了不用的进化策略和优化目标的影响,如下图3所示。(a)是采用传统的剪枝方法的结果,(c)采用了类似于传统剪枝最小重构误差的生成器感知误差,(b)和(d)则采用了本文提出的判别器感知误差,其中(b)是单独优化一个生成器的结果,而(d)是采用协同的策略同时优化两个生成器的结果。

与传统剪枝方法比较:表2和表3分别列出了压缩前后,传统的剪枝方法和论文提出的剪枝方法在三个数据集上的量化结果。在cityscapes数据集采用FCN分数,horse2zebra和summer2winter数据集采用FID分数,论文提出方法结果与压缩之前的模型接近,远远好于传统的剪枝方法。

压缩结果:表1展示了三个数据集压缩的结果,论文提出的算法在能够得到4倍左右参数量和计算量的压缩,在运行时间上,在Kirin 980芯片上,推理时间从6.8s压缩到了2.1s。

人工智能园地,力求打造运营商领域第一的人工智能交流平台,促进华为NAIE

理念在业界(尤其通信行业)形成影响力!

本文来自“人工智能园地”

人工智能 华为 AI

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Jetpack DataStore 你总要了解一下吧?
下一篇:RDS快速入门【玩转华为云】
相关文章