文章地址:Distilling portable Generative Adversarial Networks for Image Translation

简介

文章是一种用于图像生成的网络蒸馏方法,属于神经网络小型化方向,文章基于用于各种图像转换的任务中的GAN,想办法减少其计算量、降低存储成本高,用于移动设备。

生成对抗式网络在图像的风格迁移,换脸,图像生成等任务中取得了很好的效果,但是因为其计算量大,存储空间大,很难应用到移动设备,而传统的网络压缩方法侧重于视觉识别任务,而从不处理生成任务。所以文章提出了一种基于知识蒸馏的生成对抗网络的压缩方法,并针对学生网络的生成器和判别器分别设计了蒸馏的损失函数。通过学习教师生成器和判别器中蕴含的信息,学生网络可以使用较少的参数取得和教师网络相似的图像转换性能。从而实现更为便捷的训练和应用。

模型压缩方法

剪枝:去掉训练好的神经网络中的冗余权重
量化:将高比特的大网络量化为低比特
蒸馏:使用训练好的大网络中的信息辅助小网络进行训练

现有的神经网络压缩方法不能直接应用于GANs模型的压缩,主要有以下几个原因:

  • 与分类模型相比,生成网络中冗余权值的确定更具挑战性,因为生成网络需要大量的参数来建立极其复杂结构的高维映射。
  • 与训练数据通常具有ground-truth(如标签和边界框)的视觉识别和检测任务不同,GAN是一种生成模型,它通常没有特定的ground-truth来评价输出图像,如超分辨率和风格转换。因此,传统的方法不能很容易地挖掘GANs中的冗余权值或过滤器。
  • GANs有一个更复杂的框架,由一个生成器和一个鉴别器组成,两个网络在极小极大二人博弈后同时训练,这与普通的深度神经网络的分类训练过程有本质的不同。

方法框架


该方法由教师网络和学生网络两部分组成,可以看到教师网络的参数和计算量等都要大于学生网络,学生网络在教师网络的帮助下,通过引入不同的Loss来对其生成器和判别器进行训练。

损失函数

该方法的损失函数主要包括,GAN网络的固有损失函数,教师网络和学生网络之间的帮助学习损失函数。

Distilling Generator

首先是对生成器进行蒸馏,第一步,让学生网络的生成图像与教师网络的生成图像相同:

公式中的T代表教师网络,S代表学生网络,G代表生成器,D代表判别器,x代表输入,y代表真实图片输入以下公式相同,不重复说明。
第二步,直接使用L1距离容易造成生成图像丢失细节语义信息,于是文章提出了基于特征的损失:

因为教师网络的训练效果好,所以将学生网络和教师网络的生成器生成的图片都输入教师网络的判别器中,然后比较他们的特征信息。
最后,将以上两者结合,得到学生生成网络的蒸馏损失:

Distilling Discriminator

因为在训练时认为教师网络的效果很好,所以学生网络的判别器认为教师网络生成的图片为真:

此外文章还采用triplet loss在特征层面上增强判别网络的判别能力:

最后的Loss为:

算法流程图


首先训练一个教师网络,然后训练一个学生网络,在训练的过程中以上面提到的Loss进行辅助训练学生网络的生成器和判别器。

实验

文章在cityspaces数据集上进行了测试,结果如下:

从左边开始,第一列是输入图片,第二列是真实图片,第三列是不加任何技巧的学生网络图片,第四列是以往蒸馏方法的结果图片,第五列是文章结果图片,第六列是教师网络图片。

文章还测试了斑马到马,季节的转换。


以下是量化结果实验

以及Loss的有效性证明实验:

AAAI2020-一种生成对抗网络的蒸馏方法(Distilling portable Generative Adversarial Networks for Image Translation)相关推荐

  1. 优必选悉尼 AI 研究院王超岳:基于生成对抗网络的图像编辑方法

    近些年来,生成对抗网络在许多图像生成和图像编辑任务上都获得了很大的成功,并受到越来越多的关注.对于图像编辑任务,现在面临的两个重要的挑战分别是:如何指导网络向目标图像学习(以提升图像编辑的效果)和如何 ...

  2. 生成对抗网络(GAN)的前沿进展(论文、报告、框架和Github资源)汇总

    生成模型(GenerativeModel)是一种可以通过学习训练样本来产生更多类似样本的模型.在所有生成模型当中,最具潜力的是生成对抗网络(Generative Adversarial Network ...

  3. 生成对抗网络(GAN)资料打包

    进入正文 全文 摘要 生成式对抗网络,即所谓的GAN是近些年来最火的无监督学习方法之一,模型由Goodfellow等人在2014年首次提出,将博弈论中非零和博弈思想与生成模型结合在一起,巧妙避开了传统 ...

  4. 生成对抗网络(GAN)简单梳理

    作者:xg123321123 - 时光杂货店 出处:http://blog.csdn.net/xg123321123/article/details/78034859 声明:版权所有,转载请联系作者并 ...

  5. 生成对抗网络的背景与意义_生成对抗网络的意义

    生成对抗网络的背景与意义 为什么我们需要生成对抗网络:-(Why do we need Generative Adversarial Network: -) If we show a lot and ...

  6. 基于生成对抗网络的医学数据域适应研究

    点击上方蓝字关注我们 基于生成对抗网络的医学数据域适应研究 于胡飞, 温景熙, 辛江, 唐艳 中南大学计算机学院,湖南 长沙 410083   摘要:在医疗影像辅助诊断研究中,研究者通常使用不同医院( ...

  7. 生成对抗网络项目:6~9

    原文:Generative Adversarial Networks Projects 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译后编辑( ...

  8. 新手必看:生成对抗网络的初学者入门指导

    新手必看:生成对抗网络的初学者入门指导 https://www.cnblogs.com/DicksonJYL/p/9698877.html 本文为 AI 研习社编译的技术博客,原标题 A Beginn ...

  9. 改善图像处理效果的五大生成对抗网络

    作者 | Martin Isaksson 译者 | Sambodhi 策划 | 刘燕 在图像处理方面,机器学习实践者们正在逐渐转向借助生成对抗网络的力量,本文带你了解其中五种生成对抗网络,可根据自己的 ...

  10. 云检测2020:用于高分辨率遥感图像中云检测的自注意力生成对抗网络Self-Attentive Generative Adversarial Network for Cloud Detection

    用于高分辨率遥感图像中云检测的自注意力生成对抗网络Self-Attentive Generative Adversarial Network for Cloud Detection in High R ...

最新文章

  1. linux非lvm分区在线扩容,怎么给不是LVM的根分区扩容
  2. 【翻译自mos文章】OGG replicat 进程使用的 TCP port
  3. 为什么c语言要定义变量,C语言为什么要规定对所用到的变量要“先定义,后使用”...
  4. java http头 字符串转日期_springboot~DTO字符字段与日期字段的转换问题
  5. 华科05-03年计算机考研复试机试
  6. ny225 小明求素数积
  7. 软件测试抛出异常,异常测试之异常注入初探
  8. python单/双下划线使用
  9. php 密匙加密解密,带密匙的php加密解密示例分享
  10. 引用 一个较优雅的GridView隐藏列取值解决方案
  11. 煤岩分析仪测定煤的镜质体反射率和煤显微组分
  12. UMLChina建模竞赛第3赛季第7轮:假烟假酒假朋友,假情假意假温柔
  13. 体系结构实验(4)—— Tomasulo算法
  14. 如果不想渲染,保持原样,verbatim
  15. 《鹧鸪天》——厉以宁
  16. 禁止input密码自动填充及浏览器记住密码完整解决方案
  17. Camera硬件结构组成(三)
  18. c语言record的作用,C语言基础 record 2-指针,结构体,链表,文件的输入输出
  19. 了解JavaScript语言--如何在HTML中使用JavaScript
  20. Understand教程—使用搜索功能的几种方法

热门文章

  1. 利用JS实现简单的注册界面验证小案例
  2. 华为各系列数通网络产品介绍
  3. 大众点评爬虫(Python)
  4. ER studio使用
  5. 相控阵基础之3-阵列码间串扰
  6. PCL提取点云的边界
  7. 智慧城市:大数据运营中心 IOC —— Web GIS 地图应用
  8. 基于ARMA-偏tGARCH和DCC-GARCH模型测算CoVaR——R语言实现
  9. Unity碰撞和触发
  10. excel嵌入动态二维码 含中文