你不得不了解的深度学习知识

书接上回,你不得不了解的深度学习知识(一),了解了卷积神经网络,以及循环神经网络。这节把剩下的两种常见网络给讲述完毕!

3 生成对抗网络 – Generative Adversarial Networks | GAN

生成对抗网络 – GAN 是最近2年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频。我们手机里的照片处理软件中就会使用到它。

(1)GAN的设计初衷

一句话来概括 GAN 的设计动机就是——自动化。

深度学习最特别最厉害的地方就是能够自己学习特征提取。机器的超强算力可以解决很多人工无法解决的问题。自动化后,学习能力更强,适应性也更强。

人工判断生成结果的好坏——自动判断和优化

训练集需要大量的人工标注数据,这个过程是成本很高且效率很低的。而人工判断生成结果的好坏也是如此,有成本高和效率低的问题。

而 GAN 能自动完成这个过程,且不断的优化,这是一种效率非常高,且成本很低的方式。GAN是如何实现自动化的呢?下面我们讲解一下他的原理。

(2)生成对抗网络 GAN 的基本原理

大白话版本:

假设一个城市治安混乱,很快,这个城市里就会出现无数的小偷。在这些小偷中,有的可能是盗窃高手,有的可能毫无技术可言。假如这个城市开始整饬其治安,突然开展一场打击犯罪的「运动」,警察们开始恢复城市中的巡逻,很快,一批「学艺不精」的小偷就被捉住了。之所以捉住的是那些没有技术含量的小偷,是因为警察们的技术也不行了,在捉住一批低端小偷后,城市的治安水平变得怎样倒还不好说,但很明显,城市里小偷们的平均水平已经大大提高了。

警察们开始继续训练自己的破案技术,开始抓住那些越来越狡猾的小偷。随着这些职业惯犯们的落网,警察们也练就了特别的本事,他们能很快能从一群人中发现可疑人员,于是上前盘查,并最终逮捕嫌犯;小偷们的日子也不好过了,因为警察们的水平大大提高,如果还想以前那样表现得鬼鬼祟祟,那么很快就会被警察捉住。

为了避免被捕,小偷们努力表现得不那么「可疑」,而魔高一尺、道高一丈,警察也在不断提高自己的水平,争取将小偷和无辜的普通群众区分开。随着警察和小偷之间的这种「交流」与「切磋」,小偷们都变得非常谨慎,他们有着极高的偷窃技巧,表现得跟普通群众一模一样,而警察们都练就了「火眼金睛」,一旦发现可疑人员,就能马上发现并及时控制——最终,我们同时得到了最强的小偷和最强的警察。

非大白话版本

生成对抗网络(GAN)由2个重要的部分构成:

  • 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
  • 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”

详细过程:

  • 第一阶段:固定「判别器D」,训练「生成器G」

我们使用一个还 OK 判别器,让一个「生成器G」不断生成“假数据”,然后给这个「判别器D」去判断。

一开始,「生成器G」还很弱,所以很容易被揪出来。

但是随着不断的训练,「生成器G」技能不断提升,最终骗过了「判别器D」。

到了这个时候,「判别器D」基本属于瞎猜的状态,判断是否为假数据的概率为50%。

  • 第二阶段:固定「生成器G」,训练「判别器D」

当通过了第一阶段,继续训练「生成器G」就没有意义了。这个时候我们固定「生成器G」,然后开始训练「判别器D」。

「判别器D」通过不断训练,提高了自己的鉴别能力,最终他可以准确的判断出所有的假图片。

到了这个时候,「生成器G」已经无法骗过「判别器D」。

  • 循环阶段一和阶段二

通过不断的循环,「生成器G」和「判别器D」的能力都越来越强。

最终我们得到了一个效果非常好的「生成器G」,我们就可以用它来生成我们想要的图片了。

(3)GAN的优缺点

3个优势:

  • 能更好建模数据分布(图像更锐利、清晰)

  • 理论上,GANs 能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。

  • 无需利用马尔科夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界,避开近似计算棘手的概率的难题。

2个缺陷:

  • 难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。

  • 模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。

(4)GAN算法

如果你对 GANs 算法感兴趣,可以在 gan动物园 里查看几乎所有的算法。

(5)GAN的实际应用

生成图像数据集

人工智能的训练是需要大量的数据集的,如果全部靠人工收集和标注,成本是很高的。GAN 可以自动的生成一些数据集,提供低成本的训练数据。

图像到图像的转换

简单说就是把一种形式的图像转换成另外一种形式的图像,就好像加滤镜一样神奇。

文字到图像的转换

在2016年标题为“ StackGAN:使用 StackGAN 的文本到逼真照片的图像合成 ”的论文中,演示了使用 GAN,特别是他们的 StackGAN,从鸟类和花卉等简单对象的文本描述中生成逼真的照片。

自动生成模特

在2017年标题为“ 姿势引导人形象生成 ”的论文中,可以自动生成人体模特,并且使用新的姿势。

照片到Emojis

GANs 可以通过人脸照片自动生成对应的表情(Emojis)。

预测不同年龄的长相

给一张人脸照片, GAN 就可以帮你预测不同年龄阶段你会长成什么样。

提高照片分辨率,让照片更清晰

给GAN一张照片,他就能生成一张分辨率更高的照片,使得这个照片更加清晰。

照片修复

假如照片中有一个区域出现了问题(例如被涂上颜色或者被抹去),GAN可以修复这个区域,还原成原始的状态。

自动生成3D模型

给出多个不同角度的2D图像,就可以生成一个3D模型。

4 强化学习-Reinforcement learning | RL

(1) 什么是强化学习

强化学习并不是某一种特定的算法,而是一类算法的统称。

强化学习算法的思路非常简单,以游戏为例,如果在游戏中采取某种策略可以取得较高的得分,那么就进一步「强化」这种策略,以期继续取得较好的结果。这种策略与日常生活中的各种「绩效奖励」非常类似。我们平时也常常用这样的策略来提高自己的游戏水平。

在 Flappy bird 这个游戏中,我们需要简单的点击操作来控制小鸟,躲过各种水管,飞的越远越好,因为飞的越远就能获得更高的积分奖励。

这就是一个典型的强化学习场景:

  • 机器有一个明确的小鸟角色——代理
  • 需要控制小鸟飞的更远——目标
  • 整个游戏过程中需要躲避各种水管——环境
  • 躲避水管的方法是让小鸟用力飞一下——行动
  • 躲避水管的方法是让小鸟用力飞一下——行动

(2) 强化学习的主流算法

免模型学习(Model-Free) vs 有模型学习(Model-Based)

强化学习算法的2大分类。这2个分类的重要差异是:智能体是否能完整了解或学习到所在环境的模型

有模型学习(Model-Based)对环境有提前的认知,可以提前考虑规划,但是缺点是如果模型跟真实世界不一致,那么在实际使用场景下会表现的不好。

免模型学习(Model-Free)放弃了模型学习,在效率上不如前者,但是这种方式更加容易实现,也容易在真实场景下调整到很好的状态。所以免模型学习方法更受欢迎,得到更加广泛的开发和测试。

免模型学习 – 策略优化(Policy Optimization)

免模型学习 – Q-Learning

有模型学习 – 纯规划

有模型学习 – Expert Iteration

你不得不了解的深度学习知识(二)相关推荐

  1. 语义分割:基于openCV和深度学习(二)

    语义分割:基于openCV和深度学习(二) Semantic segmentation in images with OpenCV 开始吧-打开segment.py归档并插入以下代码: Semanti ...

  2. 复旦大学邱锡鹏教授:一张图带你梳理深度学习知识脉络

    Datawhale 作者:邱锡鹏,复旦大学教授 寄语:本文梳理了深度学习知识体系,分为机器学习.神经网络和概率图模型,同时对机器学习算法类型.深度学习原理框架等进行了梳理,帮助大家更好地学习和入手深度 ...

  3. 花书+吴恩达深度学习(二六)近似推断(EM, 变分推断)

    文章目录 0. 前言 1. 将推断视为优化问题 1.1 期望最大化 EM 1.2 最大后验推断 MAP 1.3 稀疏编码 2. 变分推断 2.1 离散型潜变量 2.2 连续性潜变量 如果这篇文章对你有 ...

  4. 花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)

    文章目录 0. 前言 1. 对数似然梯度 1.1 朴素 MCMC 算法 1.2 对比散度算法 CD 1.3 随机最大似然 SML 2. 伪似然 3. 得分匹配 SM 4. 比率匹配 RM 5. 去噪得 ...

  5. 深度学习(二)向量化 Logistic 回归及其梯度输出

    概述 本篇属于理论篇,你将了解什么是向量化.向量化对神经网络训练优化的重要性,以及如何向量化 Logistic 回归及其梯度输出. 转自猴开发博客:深度学习(二)向量化 Logistic 回归及其梯度 ...

  6. MATLAB与深度学习(二)— 训练神经网络(图像分类识别)

    MATLAB与深度学习(二)- 训练神经网络(图像分类识别) 上一篇,我们介绍了与深度学习相关的MATLAB工具包.这一篇,我们将介绍如何训练神经网络和相关的基础知识.本文借鉴和引用了网上许多前辈的经 ...

  7. 用MXnet实战深度学习之二:Neural art

    用MXnet实战深度学习之二:Neural art - 推酷 题注:本来这是第三集的内容,但是 Eric Xie 勤劳又机智的修复了mxnet和cuDNN的协作问题,我就把这篇当作一个卷积网络Conv ...

  8. 花书+吴恩达深度学习(二九)生成随机网络 GSN

    文章目录 0. 前言 1. 生成随机网络 GSN 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深度学习(二七)深度生成模型之玻尔兹曼机及其变体(RBM, DB ...

  9. 花书+吴恩达深度学习(二四)蒙特卡罗方法(重要采样,MCMC)

    文章目录 0. 前言 1. 重要采样 2. 马尔可夫链蒙特卡罗 MCMC 3. 不同峰值之间的混合挑战 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深度学习( ...

最新文章

  1. 分布式事务 GTS 的价值和原理浅析
  2. Android TableLayout 常用的属性介绍及演示
  3. Qt学习(四):qt读写文件
  4. Linux系统下如何查看及修改文件读写权限
  5. EditText 空指针问题
  6. java线程知识体系
  7. Android 系统(268)---native保活5.0以下方案推演过程以及代码详述
  8. centos7-修改主机名
  9. web安全day34:一步一步学习Linux防火墙
  10. SQL Server 审计操作概念
  11. 用matlab代码分析不同尺寸的卷积核对图像的影响
  12. PCWorld:火狐浏览器已宣告死亡
  13. java读取局域网种大华摄像机信息
  14. 远离国产!电脑垃圾清理工具:ccleaner和CleanMyMac
  15. Android 10.0第三方app根据包名设置为横屏显示
  16. Prometheus 告警配置以及抑制规则inhibit_rules 说明
  17. 直播报名|美团技术沙龙56期:美团计算机视觉与多媒体技术实践--ACM MM2020专场...
  18. 塞北村镇旅游网站设计(论文+PPT+源码)
  19. android手机红外代码HAL,手机红外遥控器发送红外信号到STM32【HAL库】
  20. 【CANopen】CANopen总线讲解

热门文章

  1. 我自己写的英雄无敌3小工具
  2. 成佩涛——iPviking:在线黑客攻击可视化地图
  3. 模拟售票大厅实例——多线程时访问共享变量时的安全(CMutex或CCriticalSection的应用)
  4. PV VG LV命令简版
  5. 跟着官方文档学DGL框架第一天——DGL概览
  6. iOS Xcode13.3 创建framework,没有Products目录
  7. 用WinHex查看还原精灵密码
  8. linux muduo 编译安装,muduo记录
  9. Allegro artwork pastemask顶层和pastemask底层需要出那些信息
  10. java卡片布局 切换卡片释放_Java卡片布局管理器解释及实例