如果您最近关注了人工智能 (AI) 新闻媒体,您可能听说谷歌的顶尖人工智能人才之一 Ian Goodfellow 于 3 月份跳槽到苹果公司。Goodfellow 在 2017 年被评为 麻省理工学院《35 岁以下创新者》之一,并在 2019 年被评为 外交政策“百位全球思想家”之一。他还被称为机器学习概念 生成对抗网络 (GAN) 之父。Facebook 人工智能主管 Yann LeCun 认为,GAN 是 “近 10 年来机器学习领域最有趣的想法。”
几乎每个人都意识到现在机器学习领域有多么热门。谷歌正在做机器学习。亚马逊正在做机器学习。Facebook 正在做机器学习。地球上的每家公司都想在机器学习领域有所作为。美国商人、投资者(包括真人秀节目《创智赢家》的投资人)和达拉斯小牛队 NBA 球队老板 Mark Cuban 最近表示,每个人都应该学习机器学习。
如果机器学习是我们应该学习的东西,而 GAN 是机器学习领域最热门的想法,那么理所当然应该更多地了解 GAN。
互联网上有大量关于 GAN 的有趣文章、视频和其他学习资料。本文是 GAN 的入门指南,介绍了一些开源项目和资源,您可以在其中扩展您关于 GAN 和一般机器学习的知识。
如果您想快速入门,我强烈建议您从斯坦福大学在 YouTube 上的关于 生成模型 的讲座开始。此外,Ian Goodfellow 的原始论文《生成对抗网络》可以下载 PDF 版本。否则,请继续阅读以了解一些背景信息以及其他可以帮助您的工具和资源。
统计分类模型
在了解 GAN 之前,重要的是了解机器学习和统计学中广泛使用的统计分类模型之间的差异。在统计分类中,这是一个研究领域,旨在识别新观测结果属于一组类别中的哪个类别,其中有两个主要模型:判别式模型和生成式模型。判别式模型属于监督学习,生成式模型属于无监督学习。斯坦福大学讲座中的这张幻灯片解释了这两者的区别

判别模型
判别模型试图根据从新项目发现的特征,识别特定新项目属于哪个类别。 例如,假设我们想要创建一个非常简单的判别模型系统,该系统将给定的对话片段分配给特定的电影类别,在这种情况下,判断它是否来自电影《复仇者联盟》。这是一行示例对话
“他是复仇者联盟的一份子,这个团队将尽一切力量保护世界安全。洛基最好小心点。”
我们预定义的复仇者联盟关键词组可以包括“复仇者联盟”和“洛基”。我们的判别模型算法将尝试从给定的文本中匹配与复仇者联盟相关的关键词,并报告 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 的 深度学习 教材,或者如果您喜欢纸质版,可以通过他网站上的 亚马逊链接 购买。
您还可以观看斯坦福大学在 YouTube 上的关于 用于视觉识别的卷积神经网络 的讲座。
然而,开始学习机器学习的最佳方式可能是通过大型开放式在线课程 (MOOC) 学习免费课程,例如
- 机器学习,斯坦福大学,Coursera
- 人工智能、机器学习和深度学习 TensorFlow 导论,Deeplearning.ai,Coursera
- 机器学习,哥伦比亚大学,EdX
- Python 机器学习:从线性模型到深度学习,麻省理工学院,EdX
- 机器学习速成课程,谷歌
- 机器学习问题框架导论,谷歌
- 机器学习中的数据准备和特征工程,谷歌
由于数据科学是对机器学习的补充,请了解 Kaggle,这是最著名的在线数据科学家和机器学习者社区
您还需要熟悉最流行的机器学习工具
此外,请务必查看 Opensource.com 上关于机器学习的其他文章
开始使用 GAN
现在我们了解了一些关于机器学习和 GAN 的基础知识,您可能已经准备好开始使用 GAN 了。首先,请访问 Goodwell 在 GitHub 上的 原始 GAN 代码,该代码根据 BSD 3-Clause “New” 或 “Revised” 许可证获得许可。
GAN 也有几种变体
- Torch 实现
- 深度卷积生成对抗网络 (DCGANN)
- 循环一致性对抗网络 (CCAN)
GAN 的使用方式
GAN 的用例可能性无限,但以下是一些人们尝试使用它的方式
- 字体生成: zi2zi
- 动漫人物生成: animeGAN
- 交互式图像生成: iGAN
- 文本到图像: TAC-GAN 和 “Generative Adversarial Text to Image Synthesis”
- 3D 对象生成: pix2vox
- 图像编辑: IcGAN
- 视频生成: Adversarial Video Generation 和 “Unsupervised Learning of Visual Structure using Predictive Generative Networks”
- 音乐生成: “MidiNet: A Convolutional Generative Adversarial Network for Symbolic-domain Music Generation”
您使用过 GAN 吗?您是否有其他资源可以分享?如果有,请在评论中留言。
评论已关闭。