生成对抗网络和对抗神经网络
如果您最近一直在关注人工智能(AI)新闻媒体,则可能听说过Google的*AI人物之一Ian Goodfellow于三月份移居了Apple 。 Goodfellow在2017年被麻省理工学院评为35岁以下创新者之一,在2019年被外交政策杂志评为100位全球思想家之一。他还被称为机器学习概念之父,称为生成对抗网络(GAN) 。 Facebook AI主管Yann LeCun表示,GAN是“过去10年机器学习中最有趣的想法”。
几乎每个人都知道机器学习领域现在有多热。 Google正在做机器学习。 亚马逊正在进行机器学习。 Facebook正在进行机器学习。 星球上的每个公司都想对机器学习有所作为。 美国商人,投资者(包括在《 鲨鱼坦克》真人秀中)和达拉斯小牛NBA球队的老板马克·库班(Mark Cuban)最近表示, 每个人都应该学习机器学习 。
如果机器学习是我们应该学习的东西,而GAN是机器学习中最热门的想法,那么可以肯定的是,更多地了解GAN是个好主意。
互联网上有很多有趣的文章,视频和其他学习材料可以解释GAN。 本文是GAN和一些开源项目和资源的非常入门的指南,您可以在其中扩展您对GAN和机器学习的知识。
如果您想快速入门,我强烈建议您从斯坦福大学在YouTube上有关生成模型的讲座开始。 同样,Ian Goodfellow的原始论文“ Generative Adversarial Networks ”也可以PDF格式下载。 否则,请继续阅读一些背景信息以及其他对您有帮助的工具和资源。
统计分类模型
在学习GAN之前,重要的是要了解广泛用于机器学习和统计的统计分类模型之间的差异。 在统计分类中,这是一个研究领域,旨在确定一组类别中新观察结果的位置,其中有两个主要模型: 判别模型和生成模型。 判别模型属于监督学习 ,生成模型属于非监督学习。 斯坦福大学演讲的这张幻灯片解释了两者的区别:
判别模型
区分模型尝试根据从新项目中发现的特征来识别特定新项目在类别中的位置。 例如,假设我们要创建一个非常简单的区分模型系统,该系统将给定的对话分配给特定的电影类别,在这种情况下,是否来自电影《复仇者联盟》。 这是一行示例对话:
“他是复仇者联盟的一员,该组织将尽一切力量确保世界安全。Loki最好提防。”
我们预先定义的“复仇者联盟”关键字组可以包括“复仇者联盟”和“ Loki”。 我们的判别模型算法将尝试匹配给定文本中与“复仇者联盟”相关的关键字,并报告在0.0到1.0之间的概率,其中接近1的数字表示最有可能来自“复仇者联盟”的对话, 而接近0的数字表明事实并非如此。
这是判别模型的一个非常简单的示例,但是您可能会明白。 您可以看到,区分模型在很大程度上取决于预定义类别的质量,但是仅作了一些假设。
生成模型
生成模型不是通过标记数据而是通过尝试从特定数据集中获取一些见识来工作。 如果您还记得高中时可能学过的高斯分布,则可能马上就想到了。
例如,假设这是一班100名学生的期末考试成绩列表。
- 10名学生达到80%或以上
- 80名学生获得70%至80%
- 10名学生的分数达到或低于70%
根据这些数据,我们可以推断出大多数学生在70年代得分。 此洞察力基于特定数据集的统计分布。 如果我们看到其他模式,也可以收集该数据并进行其他推断。
您可能听说过的生成模型包括高斯混合模型,贝叶斯模型,隐马尔可夫模型和变异编码器模型。 GAN也属于生成模型,但有所不同。
GAN的模型
GAN试图通过生成模型随机生成数据,然后使判别模型对数据进行评估并使用结果来改善下一个输出,从而将区分模型和生成模型进行组合 。
这是GAN的简化视图:
GAN的实际实现要比这复杂得多,但这是一个总的想法。
理解GAN的最简单方法是考虑一个场景,其中侦探和伪造者正在玩重复性的猜谜游戏,其中伪造者试图制造100美元的钞票的伪造品,而侦探则判断每个物品是真品还是假品。 这是这种情况的假设对话:
造假者: “这100美元看起来像真钱吗?”
侦探: “不!那看上去根本不是一张真正的100美元钞票。”
伪造者 (持有一种新设计):“这张100美元的钞票看起来像真钱吗?”
侦探: “那更好,但仍不如真实。”
伪造者 (持有设计的变体):“现在呢?”
侦探: “那很接近,但仍然不像真实。”
伪造者 (持有另一个变种):“这应该像真实的,对吧?”
侦探: “是的!那非常接近!”
好。 因此,侦探实际上是犯罪分子。 在这个例子中,伪造者是产生者,而侦探是鉴别者。 随着游戏的反复进行,伪造货币与真实货币相似的可能性可能会越来越高。
假冒伪劣侦探示例与GAN之间的主要区别在于GAN的主要目的不是创建一个只有一个答案的100%实际输出。 相反,您可以将GAN视为某种超级创意引擎 ,它可以生成许多意外的输出,这些输出既可以使您感到惊讶,又可以满足您的好奇心和期望。
机器学习
在开始使用GAN之前,您需要一些有关机器学习及其背后的数学知识的背景知识。
如果您不熟悉机器学习,则可以免费使用Goodfellow的Deep Learning教科书 ,也可以根据需要通过其网站上的Amazon链接购买印刷版。
您还可以在YouTube上观看斯坦福大学有关用于视觉识别的卷积神经网络的讲座。
但是,开始进行机器学习的最佳方法可能是通过大规模开放式在线课程(MOOC)上免费课程,例如:
- 斯坦福大学在Coursera上的机器学习
- 通过Coursera上的 来介绍TensorFlow用于人工智能,机器学习和深度学习
- 哥伦比亚大学在EdX上进行的机器学习
- 使用Python进行机器学习:从线性模型到 MIT在EdX上的深度学习
- Google的机器学习速成课程
- Google 机器学习问题框架简介
- Google的ML数据准备和功能工程
既然数据科学对机器学习有所帮助,请了解Kaggle ,这是最著名的数据科学家和机器学习者在线社区
您还将希望熟悉最受欢迎的机器学习工具:
- 张量流
- 火炬
另外,请务必查看有关机器学习的其他文章:
- 当今机器学习入门
- 使用机器学习为卡通着色
- 使用机器学习为颜色命名
- 适用于Python的3大机器学习库
- 使用Python进行机器学习:基本的技巧和窍门
GAN入门
现在,我们了解了有关机器学习和GAN的一些基础知识,您可能已经准备好开始使用GAN。 首先,根据BSD 3-条款“ New”或“ Revised”许可在GitHub上访问Goodwell的原始GAN代码 。
GAN也有几种变体:
- 火炬实施
- 深度卷积生成对抗网络 (DCGANN)
- 周期一致的对抗网络 (CCAN)
您可以使用GAN的方式
GAN有无限可能的用例,但以下是人们尝试过的一些方法:
- 字体生成: zi2zi
- 动漫角色生成: animeGAN
- 交互式图像生成: iGAN
- 文本到图像: TAC-GAN和“ 生成对抗性文本到图像合成 ”
- 3D对象生成: pix2vox
- 图像编辑: IcGAN
- 视频生成: 对抗性视频生成和“ 使用预测性生成网络的无监督视觉结构学习 ”
- 音乐生成:“ MidiNet :用于符号域音乐生成的卷积生成对抗网络”
您使用过GAN吗? 您还有其他资源要分享吗? 如果是这样,请在评论中留下注释。
翻译自: /article/19/4/introduction-generative-adversarial-networks
生成对抗网络和对抗神经网络