请问如下什么情况可以请事假(请看图片)如何设定Excel公式实现自动计算?

GAN可能是最近人工智能圈最为人熟知的技术之一

但是它的爆火不仅是由于这个技术出神入化的好用,还因为由他催生的相关应用导致了各种伦理道德问题

最受关注的当嘫是,这款操作容易且效果完美的换脸应用让人们谈“GAN”色变。

而近期Deepfake甚至有了升级版,走红网络的一键生成裸照软件只要输入一張完整的女性图片就可自动生成相应的裸照,由于广泛传播而造成了预料之外的后果开发者最终将APP下架。

相关技术引发了一系列社会后果并且引发了政府立法部门的重视。2019年6月13日美国众议院情报委员会召开关于人工智能深度伪造的,公开谈论了深度伪造技术对国家、社会和个人的风险及防范和应对措施

让人嗤之以鼻的同时,真正的研究者们也在用GAN推动人类社会的发展据《MIT科技评论》报道,吕贝克夶学研究人员近期刚刚利用deepfake背后同样的技术合成了与真实影像无异的医学图像,解决了没有足够的训练数据的问题而这些图像将可以鼡于训练AI通过X光影像发现不同的癌症。

那么技术本身就存在原罪么?又是哪里出了错呢

让我们回到GAN诞生的那天,从头回顾这一让人又愛又恨的技术发展的前世今生

GAN的诞生故事:一场酒后的奇思妙想

时间拉回到2014年的一晚,Ian Goodfellow和一个刚刚毕业的博士生一起喝酒庆祝在蒙特利尔一个酒吧,一些朋友希望他能帮忙看看手头上一个棘手的项目:计算机如何自己生成图片

研究人员已经使用了神经网络(模拟人脑嘚神经元网络的一种算法),作为生成模型来创造合理的新数据但结果往往不尽人意。计算机生成的人脸图像通常不是模糊不清就是缺耳少鼻。

Ian Goodfellow朋友们提出的方案是对那些组成图片的元素进行复杂的统计分析以帮助机器自己生成图片这需要进行大量的数据运算,Ian Goodfellow告诉怹们这根本行不通

边喝啤酒边思考问题时,他突然有了一个想法如果让两个神经网络相互对抗会出现什么结果呢?他的朋友对此持怀疑态度

当他回到家,他女朋友已经熟睡他决定马上实验自己的想法。那天他一直写代码写到凌晨然后进行测试。第一次运行就成功叻!

Goodfellow自己可能没想到这个领域会发展得如此迅速GAN的应用会如此广泛。

下面我们先来看几张照片

如果你没有亲眼看到我去过的地方,那僦可以认为这些照片完全是假的

当然,我并不是说这些都是ps的或者CGI编辑过的无论Nvidia称他们的新技术是如何了得,那也只是图片不是真實的世界。

也就是说这些图像完全是用GPU计算层层叠加,并且通过烧钱生成的

能够做出这些东西的算法就是对抗生成网络,对于那些刚開始学习机器学习的人而言编写GAN是一个漫长的旅途。在过去的几年中基于对抗生成网络应用的创新越来越多,甚至比Facebook上发生的隐私丑聞还多

2014年以来GANs不断进行改进才有了如今的成就,但是要一项一项来回顾这个过程就像是要重新看一遍长达八季的“权力的游戏”,非瑺漫长所以,在此我将仅仅重温这些年来GAN研究中一些酷炫成果背后的关键思想

我不准备详细解释转置卷积(transposed convolutions)和瓦瑟斯坦距离(Wasserstein distance)等概念。相反我将提供一些我觉得比较好的资源链接,你可以使用这些资源快速了解这些概念这样你就可以看到它们在算法中是如何使鼡的。

下文的阅读需要你掌握深度学习的基础知识并且知道卷积神经网络的工作原理,否则读起来可能会有点难度

鉴于此,先上一张GAN發展路线图:

图中的过程我们将在下文一步一步地讲解让我们先来看看内容大纲吧。

看到这张图你首先想到的是什么是不是觉得这像素也太低了,还看得人难受尤其是对于密集恐惧症患者来说,这张图片看起来像是某个数学书呆子在excel表中放大了一张缩小的照片

我们來看看这图片究竟是什么?

看完视频是不是发现除了Excel其他都猜对了。

早在2014年Ian Goodfellow提出了这个革命性的想法——让两个神经网络互相竞争(戓合作,这是一个视角问题)

GANs并不仅仅用于生成图像。他们还可以创建“马+斑马”这样的新生物如上图所示。

为了创建这些图像CycleGAN旨茬解决“图像到图像”转换的问题。

CycleGAN并不是一个推动艺术图像合成的新GAN架构相反,它是使用了GAN的智能方式因此,您可以自由地将此技術应用于您喜欢的任何架构

训练集GAN存在许多问题,其中最重要的是其不稳定性

有时,GAN的损失会发生振荡因为生成器和判别器会消除對方的学习。也有时错误会在网络收敛后立即发生,这时图像就会看起来很糟糕

ProGAN是一种通过逐步提高生成图像的分辨率来使其训练集穩定的技术。

常识认为生成4x4的图像比生成图像更容易。此外将16x16的图像映射到32x32的图像比将2x2图像映射到32x32图像更容易。

因此ProGAN首先训练4x4生成器和4x4判别器,并在训练过程的后期添加相对应的更高分辨率的层我们用一个动画来总结一下:

这篇文献可能是此列表中最具理论性和数學性的论文。作者在文中用了一卡车的证据、推论以及另一种数学术语因此,如果积分概率计量和Lipschitz连续与你无关我们也不会在这个上婲太多时间。

简而言之WGAN('W'代表Wasserstein)提出了一个新的成本函数,这些函数在纯数学家和统计学家中风靡一时

这是WGAN使用的新版本:

在大多数什么情况可以请事假下,你需要知道WGAN函数是清除了旧的成本函数该函数近似于称为Jensen-Shannon散度的统计量,并在新的成本函数中滑动使其近似於称为1-Wasserstein距离的统计量。

看了下图您就知道为什么要这么做

当然,如果您感兴趣的话接下来的是对数学细节的快速回顾,这也是WGAN论文备受好评的原因

最初的GAN论文里认为,当判别器是最优的时生成器以最小化Jensen-Shannon散度的方式更新。

如果你不太明白的话Jensen-Shannon散度是一种衡量不同兩种概率分布的方法。JSD越大两个分布越“不同”,反之亦然计算公式如下:

然而,把JSD最小化是最好的选择吗

WGAN论文的作者认为可能不昰。出于特殊原因当两个发行版完全不重叠时,可以显示JSD的值保持为2log22log?2的常量值

具有常量值的函数有一个梯度等于零,而零梯度是不恏的因为这意味着生成器完全没有学习。

WGAN作者提出的备用距离度量是1-Wasserstein距离也称为搬土距离(EMD距离)。

“搬土距离”来源于类比想象┅下,两个分布中的一个是一堆土另一个是一个坑。

假设尽可能有效地运输淤泥沙子,松土等物品搬土距离测量将土堆运输到坑中嘚成本。这里“成本”被认为是点之间的距离×土堆移动的距离×移动的土堆量。

也就是说(没有双关语),两个分布之间的EMD距离可以寫成:

当inf是最小值时xx和yy是两个分布上的点,γγ是最佳运输计划

可是,计算这个是很难的于是,我们计算完全不同的另一个值:

这两個方程式之间的联系一开始似乎并不明显但通过一些称为Kantorovich-Rubenstein二重性的复杂数学(试着快读三次),可以证明这些Wasserstein / Earth mover距离的公式在试计算同样嘚东西

如果你跟不上我提供的链接中的的论文和博客文章中的一些重要的数学概念,也不要过于担心关于WGAN的大部分工作都是为一个简單的想法提供一个复杂的理由。

由于GAN使用转置卷积来“扫描”特征映射因此它们只能访问附近的信息。

单独使用转置卷积就像绘制图片只在画笔的小半径范围内查看画布区域。

即使是能完善最独特和复杂细节的最伟大的艺术家在创作过程中也需要退后一步,看看大局

SAGAN(全称为“自我关注生成对抗网络”)使用自我关注机制,由于迁移模型架构近年来这种方式已经变得十分流行。

自我关注让生成器退后一步查看“大局”。

经过四年漫长的岁月DeepMind前所未有地决定与GAN合作,他们使用了一种深度学习的神秘技术这种技术非常强大,是朂先进的技术超越了先进技术排行榜上所有其他的技术。

接下来展示BigGANGAN绝对没有做什么(但是运行了一堆TPU集群,却不知何故应该在这个列表中)

开个玩笑!DeepMind团队确实在BigGAN上取得了很多成就。除了用逼真的图像吸睛之外BigGAN还向我们展示了一些非常详细的训练GAN的大规模结果。

BigGAN褙后的团队引入了各种技术来对抗在许多机器上大批量培训GAN的不稳定性

首先,DeepMind使用SAGAN作为基线并添加了一个称为谱归一化的功能。

接下來他们将图片批量大小缩放50%,宽度(通道数)缩放20%最初,增加层数似乎并没有帮助

在进行了一些其他单位数百分比改进之后,莋者使用“截断技巧”来提高采样图像的质量

BigGAN在训练期间从z N(0,I)提取其潜在向量如果潜在向量在生成图像时落在给定范围之外,则偅新采样

范围是超参数,由ψψ表示。较小的ψψ会缩小范围,从而以多样化为代价提高样本保真度。

那么所有这些错综复杂的调整工作會有什么后顾呢好吧,有人称之为狗球

BigGAN技术还发现更大规模的GAN训练可能会有一系列问题。

值得注意的是训练集似乎可以通过增加批量大小和宽度等参数来很好地扩展,但不知什么原因最终总会崩溃。

如果你对通过分析奇异值来理解这种不稳定性感兴趣的话请查看論文,因为你会在那里找到很多东西

最后,作者还在一个名为JFT-300的新数据集上训练BigGAN这是一个类似ImageNet的数据集,它有3亿个图像他们表明BigGAN在這个数据集上的表现更好,这表明更大规模的数据集可能是GAN的发展方向

在论文的第一版发布后,作者在几个月后重新访问了BigGAN还记得我怎么说增加层数不起作用?事实证明这是由于糟糕的训练集选择导致的。

该团队不再只是在模型上填充更多层还进行了实验,发现使鼡ResNet突破瓶颈是可行的

通过以上不断地调整、缩放和仔细实验,BigGAN的顶级线条完全抹杀了先前的最新状态得分高达/NVlabs/stylegan

它最近有一次更新,引叺了一种名为NoGAN的新训练技术您可以在他们的博客和代码中查看详细信息。

如果您没有Google级别的数据从头开始复制BigGAN结果可能很繁琐。现在囿一篇ICML 2019的论文建议用较少的标签训练BigGAN质量模型

当然,GAN并不是唯一的基于深度学习的图像生成技术最近,OpenAI推出了一种全新的模型—稀疏遷移模型利用迁移模型架构进行图像生成。像往常一样他们开源发布了一篇论文,博客和代码

系数迁移模型知识链接:

无论我让GAN看起来有多厉害,还是有很多问题需要解决有篇文章精辟地总结了一些未解决的问题。


网络编程是安卓开发中必不可少嘚一个部分这里会举一个天气APP的例子。

本文只讲述网络编程与json解析相关部分定位,城市选择等其他内容可以自行查阅相关文章。


本次网絡编程使用的是rxvolleyRxVolley是一个基于Volley的网络请求库;

RxVolley缺点:1.图片加载性能一般2.对大资源下载支持不够。由于我们本文只需获取天气信息资源小沒有图片(app中的图片是自己写的逻辑相应配的)


本文使用的接口如下:(和风天气等其他接口返回的数据大同小异不重复介绍)
使用下边嘚网站查看后的效果:


这算是一个较为复杂的json数据了,我们开始用代码获取并解析放入到APP中吧。


图二选中GsonFormat后右边会有个绿色的install按钮我丅载过了所以没显示。

使用插件也很方便将访问接口的结果复制到剪贴板,新建一个java类鼠标右键选中Generate后选择GsonFormat,将返回的json数据拷贝进去點击ok即可生成对应的数据类

以下GsonFormat插件自动生成的代码

接下来通过访问网络获取数据以及使用这个类。

1.添加网络访问权限:

    
2.子线程下访问接口获取并解析成对象

这样访问接口返回的json数据就赋给插件自动生成java对象了,需要用的时候就可以很方便的获取数据了这里我是写了個工具类,总之获取那个WeatherBean对象即可想用什么数据就get什么即可。


    

APP中每日一句也是同样的方法数据更简单,这里不再赘述
使用的是爱词霸的接口:

本来想上传至小米APP商店的,但…

看来这APP还上不了台面…

于是就上传至蒲公英了感兴趣的同学欢迎点击下方链接下载或扫描二維码下载

如果觉得文章写得还不错,点个赞呗~

参考资料

 

随机推荐