来源:Google Research Blog
编译:Bing
训练一个神经网络通常要利用损失函数了解网络生成的结果与目标结果有多远。例如,在图像分类网络中,损失函数通常会对错误的分类进行惩罚;如果网络将狗误认为猫,那就会造成很大的损失。然而,并不是所有问题都能很轻易地用损失函数来定义,尤其是涉及人类感知方面的决定,例如图像压缩或文本到语音系统的应用。生成对抗网络(GANs)作为一种机器学习工具,使许多领域的应用都得到了改善,包括用文本生成图像、超分辨率图像的生成、教机器人学习抓握以及提供解决方案。然而,这些新的理论和软件工程上的挑战却难以跟上GANs研究的步伐。
生成网络不断改进的过程。刚开始会生成随机的噪音,最终网络学会生成MNIST数字集
为了让生成对抗网络更易于实验,谷歌开发者开源了一个轻量级的库——TFGAN,它可以让GAN的训练和评估过程更容易。同时,TFGAN提供了经过良好测试的损失函数和评估指标,并提供了易于使用的例子,突出了TFGAN强大的表现力和灵活性。同时,谷歌还发布了一个教程,包括一个高级API,可以快速得到在你的数据上训练的模型。(教程地址:https://github.com/tensorflow/models/blob/master/research/gan/tutorial.ipynb)
该图表明了对抗性损失在图像压缩上的影响。最上层是ImageNet中的图像补丁。中间一行是在传统损失上训练的神经网络压缩和解压缩图像的结果。最下面一行展示了在传统损失和对抗损失上训练的两种不同结果。由此可见,生成对抗网络损失的图像更清晰、更细致,但与原图还是有一定差距
除此之外,TFGAN提供简单的函数能覆盖大多数GANs的案例,所以只需几行代码就能让模型在你的数据上运行。但是它是以模块化的方式构建的,为的是支持更多GANs设计。开发者可以用任何模块进行损失、评估、训练函数。
大多数文本到语音(TTS)神经网络系统会产生过于平滑的图谱。当把生成对抗网络应用到Tacotron TTS系统中后,可以有效消除其中的人工痕迹
TFGAN的轻量级设计可以允许其与其他框架一起使用,或与本机TensorFlow代码一起使用。利用TFGAN写成的GAN模型在未来可以轻易的进行改进,用户可以从大量已经实现的损失和功能中选择,无需重新编写模型。
最后,TFGAN的代码已经经过了充分的测试,用户不必担心经常出现的数字或统计错误。
原文地址:https://research.googleblog.com/2017/12/tfgan-lightweight-library-for.html
GitHub地址:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/gan
领取专属 10元无门槛券
私享最新 技术干货