有关 GAN 的入门学习:Make Your First GAN With PyTorch 的学习与笔记

开个坑,每周更新 1 - 2 篇学习生成对抗网络的笔记。
文章以学习(翻译) Make Your First GAN With PyTorch 为主,插入个人批注、笔记。


本文目录

  • 1. 关于 Make Your First GAN With PyTorch
  • 2. 本系列文章特点
  • 3.(原书)引言要点
    • 3.1 创造型 AI
    • 3.2 GAN 是全新概念
    • 3.3 本书主要目的
    • 3.4 有关工具和教程
  • 4. 各章链接(持续更新)


1. 关于 Make Your First GAN With PyTorch

Make Your First GAN With PyTorch (个人译为:《使用 PyTorch 制作自己的第一个 GAN 网络》)是由 Tariq Rashid 编写的生成对抗网络 GAN 的入门书籍,可以在 Amazon 上购买英文电子版。

有关 GAN 的入门学习:Make Your First GAN With PyTorch 的学习与笔记_第1张图片
本书作者 Tariq Rashid 拥有机器学习和数据挖掘硕士学位,目前活跃在伦敦技术领域,领导了一个有 3000 名成员的伦敦 Python 小组。

作者先后撰写了一系列有关机器学习的书籍,比如 Make Your Own Neural NetworkMake Your Own Algorithmic ArtCreative Coding For Kids: CodeGuppy Edition 等。

个人感觉,作者撰写的书籍,非常适用于初学者或者非计算机/数学专业学生入门,比如 Make Your First GAN With PyTorch (《使用 PyTorch 制作自己的第一个 GAN 网络》) 中基本没有故作高深的数学公式,而是使用许多有趣的图表来解释简单的概念和方法。

我作为一个非计算机/数学专业背景的人,看完书后觉得基本掌握了生成对抗网络的基础入门知识。

2. 本系列文章特点

我去年下半年通读了 Make Your First GAN With PyTorch,并做了一些笔记。这个系列的文章,以介绍该书内容要点为主,加上个人的一些观点和认识,期待能帮助大家入门 生成对抗网络(GAN)

本篇文章介绍原文引言,后附各文章的地址。

3.(原书)引言要点

过去几年里,机器学习和人工智能获得了突破性发展,基本每过几个月会报道出惊人的成就。

作为有 3000 多年历史的围棋,看起来规则很简单,但是需要非常非常复杂的策略,近几年 AlphaGo 才首次赢得世界冠军。

除了赢得冠军,AlphaGo 甚至发现了人类 3000 年来都没有发现的一些新策略。作者认为,相比于学会执行任务,发现新策略是机器学习领域更加深远的成功。

3.1 创造型 AI

201810月,佳士得拍卖行以 43.25 万美元的高价卖出一幅由神经网络生成的肖像画,成为艺术史上的里程碑。

上述神经网络由对抗式训练Adversarial Training)开展训练,对应的网络架构叫做生成对抗网络Generative Adversarial Network, GAN)。

由于 GAN 可以创造看起来很合理的图像,所以吸引了很多,特别是创造性技术领域的注意力。GAN 生成的图像并不是训练数据的简单复制和粘贴,也不是训练数据的简单平均,而是通过学习来创造图像,这比简单地复制或者对训练数据求平均更高一个层级。

作为世界顶级的神经网络领域研究者, Yann LeCunGAN“过去20年中深度学习最酷的 idea”

我第一次接触生成对抗网络,应该是之前照片风格化(比如将照片变为漫画风格)的 APP。印象中,这种技术还引起了不大不小的 “出圈” 现象,很多人都分享类似的照片到朋友圈或其他平台上。
另外,相当长的时间,我都是把 “生成对抗网络” 叫错成 “对抗生成网络”…后来干脆,直接用汉语拼音拼写出 “GAN” 来称呼它…

3.2 GAN 是全新概念

不同于传统神经网络已经有了几十年来的研究和改进,GAN2014Ian Good­fellow 的开创性论文才开始凸显。

但是,学界其实还没有完全理解如何像传统的网络一样有效地来训练 GAN; 当 GAN 工作时,它们可能效果好的惊人,但也很容易失败,当前关于 GAN 网络如何工作、为什么会失败的研究也很活跃。

3.3 本书主要目的

本书为想迈出理解 GAN 是什么、如何工作第一步的人提供指导,也为学习使用标准工具来实际构造 GAN 的人提供参考。

本书试图使用很友好的、简单的语言和很多图片来可视化的解释一些想法,尽量使用最少的数学公式,避免不必需的术语,让来自尽可能多的不同背景的读者来理解 GAN,并且能创建属于他们自己的 GAN

本书不会试图详尽的覆盖每个话题,也不会试图成为 GAN 的百科全书,而是力图覆盖范围更小、基础性更强。

3.4 有关工具和教程

Python 是最受欢迎和便于学习的编程语言之一,也已经成为了机器学习和 AI 的标准。

GAN 是由神经网络构成的,虽然具有一些基础,但是作者之前的书 ‌Make Your Own Neural Network 专注提供神经网络及其如何工作的最基础介绍。该书也提供了 Python 基础、微积分和梯度下降的介绍,这些内容对 GAN 也很有用,可以参考下面链接:

  • https://www.amazon.com/Make-Your-Own-Neural-Network/dp/1530826608

谷歌现在提供免费的基于网络的 Python 环境 Google Colab,这意味着不需要安装 Python 或其他任何软件,可以完全在谷歌的基础结构中开发和运行强大的神经网络。

PyTorchPython 的一个扩展,使得构建、运行机器学习模型变得简单,也是本书主要使用的框架。

关于 Google Colab:这是本系列文章中最令人蛋疼的一点,因为本书为了降低入门难度,所有的代码都在 Google Colab 中编写运行。
而由于众所周知的原因,国内的同学基本用不了这个平台,而亲测腾讯、百度、阿里等深度学习在线平台的难度和操作性都要复杂很多…
所以,没办法,本系列文章一方面仍保持原作中以 Google Colab 为基础的环境配置,也将适当时候增加国内配置单机平台的文章。同时,同学们也可以尝试腾讯、百度、阿里等在线平台。

4. 各章链接(持续更新)

  • 0. 引言
  • 1. PyTorch 基础
  • 2. 第一个 PyTorch 网络(上)
  • 2. 第一个 PyTorch 网络(下)
  • 3. 针对手写数字识别网络改进的讨论
  • 4. CUDA 基础
  • 5. 初步认识生成对抗网络思想
  • 6. 生成简单 1010 模式
  • 7. 用 GAN 生成 MNIST 形式数字模式
  • 8. 生成人脸的案例(审核中,可移步某乎我的专栏)
  • 9. 卷积生成对抗网络
  • 10. 有条件的 GAN
  • 11. 总结
  • 附录A: 理想损失值
  • 附录B: GAN 学习的到底是什么?
  • 附录C: 卷积案例
  • 附录D: 不稳定学习

你可能感兴趣的:(Make,First,GAN,With,PyTorch,Pytorch,神经网络,python,pytorch,深度学习,机器学习)