當前位置:
首頁 > 知識 > 神经网络中的造物者-GANs

神经网络中的造物者-GANs

当一个小孩画一只猫的时候,你会更加了解这个孩子,而不是了解画出来的猫。同理,我们使用神经网络生成图像能帮助我们理解神经网络是如何对输入的信息进行处理的。通常,人们很难以直观的方式解释神经网络的功能,但是生成算法提供了一种使神经网络解释自己的方法。

神经网络常被用作实现一个图像分类器,能够用它来区分图像中是猫还是狗,或者识别消防标志等。不过,在过去的三年中,研究人员从本质上对这些神经网络进行逆转,并且取得了惊人的进展。只需要使用简单的生成算法,就可以通过大量的图像数据进行训练,然后生成类似于训练图像的全新图像。具有创造力的AI已经证明:表面上看,它们在模仿人类的创造力方面已经做的非常出色。

目前的生成AI研究浪潮建立在生成对抗网络(GAN)的基础上,GAN是一种由Ian Goodfellow和他的同事在2014年提出的一种神经网络结构。随着Ian Goodfellow论文的发表,一系列的发明应用随之而来。研究人员使用GAN网络可以生成从人脸到卧室的一切图像。通过一项基于GAN叫做pix2pix的技术,可以直接通过卫星图像生成地图,可以为黑白照片自动填色,可以将手绘的草图渲染成逼真的实景。增强低分辨率而且模糊的监控图像只是一个非常模糊的幻想,不过现在已经通过使用GANs成为现实,现在GANs已经可以对低分辨率照片中可能的结构做出复杂的设想了。

神经网络中的造物者-GANs

图1 由神经网络生成的杂志封面

一个生成对抗网络由两个神经网络组成:一个学习产生某种数据(如图像)的生成器,一个学习判断生成器产生的数据与现实世界数据相比是真还是假的判决器。生成器和判决器具有相反的训练目标:判决器的目标为区分“真实”数据和假数据,而生成器的目标是生成判决器无法判定为假数据的假数据。是不是感觉非常有意思?

Jon Bruner 和 Adit Deshpande 基于TensorFlow演示了一个非常简单的生成对抗网络,这个网络创造出了逼真的手写数字图像。图2为该网络的学习过程,从随机噪声开始,出现了一种原始智慧:首先神经网络反复产生相同的通用伪数字,然后领会不同数字之前的差异,最终可以创造每一个数字。

神经网络中的造物者-GANs

图2 生成器经过训练后生成手写数字的过程动画演示

神经网络善于通过丰富的数据进行简单的推断,神经网络通过多层神经元能够自我组织并在多层次检测从纹理片段到基本结构的模式,并且它能够挖掘到人们可能会错过的模式。这就是神经网络的优势,不过也是解释它比较困难的根源。神经网络虽然能够注意到人们无法注意到的模式,但是如果的网络结构过于简单或者训练数据不足以表示真实世界的变化,他们也会像人一样进行不合理的探索。

像多元线性回归这种简单的统计模型,是很容易解释它的原理的,这种函数足够直观,大家可以一目了然的掌握它的原理。但是对于具有多层神经网络就没有这么直观了,多层神经网络通过训练集进行自由的自我组织,并且不同层次神经元之间相互关联,这种连接方式导致每一层神经元的功能变得模糊,我们就不得而知每层神经元究竟对应什么功能。

这个简单的生成对抗网络确实像人类一样进行推理。当你看一张猫的照片时,你能明确地识别出你认为这是一只猫的每一个证据吗?你通过快速的观察得到各种特征:猫的耳朵,猫的胡须,猫的毛发样式等,总的来说,通过这些特征你最终得到这是一只猫的结论,神经网络亦是如此。

正是因为GAN中的生成器具有多层次处理信息的能力,所以该网络重构信息后输出的结果比较真实。图3是通过GAN生成的卧室图片,不得不说效果相当棒。不仅床单,地毯和窗户看着很真实,而且他们的位置也是正确的,床单放在床上,地毯铺在地上,窗户开在墙上。

神经网络中的造物者-GANs

图3 GAN生成的卧室图像

如果你接触过图像识别,你可能会对卷积神经元比较熟悉,卷积神经元可以跨图像扫描并过滤像素进行模式检测。卷积层通常将图像缩小,但是在GAN的生成器中,卷积层的功能被逆转,以便按比例扩大数据。

生成器不是用来检测模式和匹配图像中的特征的,而是使用反卷积的方式生成基本图像构建块,并且再将这些基本构建块组装融合成“真实的图像”。比如,这个简单的GAN生成了一个非常“真实的”数字9,如图4所示。

神经网络中的造物者-GANs

图4 GAN生成非常“真实”的手写数字9

通过观察反卷积滤波器和其对应的输出,可以发现这些由最后一层反卷积层生成的构建块来自图4中的手写数字9。

神经网络中的造物者-GANs

图5 第2、3层反卷积滤波器及其输出(生成数字9时)

GANs才三岁而已,显而易见,GANs在不久的将来会被用作生成各种内容,甚至可能在每个用户访问网站的过程中为其定制图片或者视频。当GANs作为一种创造性力量出现时,去细细体会它的推理方式吧。

还在等什么?快快动手去尝试建立你自己的GANs吧!

作者介绍:Jon Bruner, 程序员,记者。曾任福布斯杂志数据编辑,专注于研究软件世界与物理世界之间的共同点。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 云栖社区 的精彩文章:

专访阿里云专家:异构计算,GPU、FPGA、ASIC芯片将三分天下
史无前例开放!阿里内部集群管理系统Sigma混布数据
准确率98%的深度学习交通标志识别是如何做到的?
如何为LSTM重新构建输入数据(Keras)
阿里云视频技术专家柿蒂:视频AI in传媒九大业务场景解析

TAG:云栖社区 |