一文看懂深度学习(白话解释+8个优缺点+4个典型算法)_深度学习和传统机器学习相比具有哪些优势1500-程序员宅基地

技术标签: 机器学习  名词解释  深度学习  ai  人工智能  

本文首发自 easyAI - 人工智能知识库
原文地址:《一文看懂深度学习(白话解释+8个优缺点+4个典型算法)

一文看懂深度学习

深度学习有很好的表现,引领了第三次人工智能的浪潮。目前大部分表现优异的应用都用到了深度学习,大红大紫的 AlphaGo 就使用到了深度学习。

本文将详细的给大家介绍深度学习的基本概念、优缺点和主流的4个典型算法。

深度学习、神经网络、机器学习、人工智能的关系

深度学习、机器学习、人工智能

简单来说:

  1. 深度学习是机器学习的一个分支(最重要的分支)
  2. 机器学习是人工智能的一个分支

深度学习、机器学习、人工智能的关系

目前表现最好的一些应用大部分都是深度学习,正是因为深度学习的突出表现,引发了人工智能的第三次浪潮。详情可以看《人工智能的发展史——3次 AI 浪潮

深度学习、神经网络

深度学习的概念源于人工神经网络的研究,但是并不完全等于传统神经网络。

不过在叫法上,很多深度学习算法中都会包含"神经网络"这个词,比如:卷积神经网络、循环神经网络。

所以,深度学习可以说是在传统神经网络基础上的升级,约等于神经网络。

深度学习和神经网络的关系

大白话解释深度学习

看了很多版本的解释,发现李开复在《人工智能》一书中讲的是最容易理解的,所以下面直接引用他的解释:

我们以识别图片中的汉字为例。

假设深度学习要处理的信息是“水流”,而处理数据的深度学习网络是一个由管道和阀门组成的巨大水管网络。网络的入口是若干管道开口,网络的出口也是若干管道开口。这个水管网络有许多层,每一层由许多个可以控制水流流向与流量的调节阀。根据不同任务的需要,水管网络的层数、每层的调节阀数量可以有不同的变化组合。对复杂任务来说,调节阀的总数可以成千上万甚至更多。水管网络中,每一层的每个调节阀都通过水管与下一层的所有调节阀连接起来,组成一个从前到后,逐层完全连通的水流系统。

深度学习类似一个水流系统

那么,计算机该如何使用这个庞大的水管网络来学习识字呢?

比如,当计算机看到一张写有“田”字的图片,就简单将组成这张图片的所有数字(在计算机里,图片的每个颜色点都是用“0”和“1”组成的数字来表示的)全都变成信息的水流,从入口灌进水管网络。

深度学习-将图片数字化

我们预先在水管网络的每个出口都插一块字牌,对应于每一个我们想让计算机认识的汉字。这时,因为输入的是“田”这个汉字,等水流流过整个水管网络,计算机就会跑到管道出口位置去看一看,是不是标记由“田”字的管道出口流出来的水流最多。如果是这样,就说明这个管道网络符合要求。如果不是这样,就调节水管网络里的每一个流量调节阀,让“田”字出口“流出”的水最多。

这下,计算机要忙一阵了,要调节那么多阀门!好在计算机的速度快,暴力的计算加上算法的优化,总是可以很快给出一个解决方案,调好所有阀门,让出口处的流量符合要求。

深度学习-识别田字

下一步,学习“申”字时,我们就用类似的方法,把每一张写有“申”字的图片变成一大堆数字组成的水流,灌进水管网络,看一看,是不是写有“申”字的那个管道出口流水最多,如果不是,我们还得再调整所有的阀门。这一次,要既保证刚才学过的“田”字不受影响,也要保证新的“申”字可以被正确处理。

深度学习-学习申字

如此反复进行,知道所有汉字对应的水流都可以按照期望的方式流过整个水管网络。这时,我们就说,这个水管网络是一个训练好的深度学习模型了。当大量汉字被这个管道网络处理,所有阀门都调节到位后,整套水管网络就可以用来识别汉字了。这时,我们可以把调节好的所有阀门都“焊死”,静候新的水流到来。

深度学习-学习所有汉字

与训练时做的事情类似,未知的图片会被计算机转变成数据的水流,灌入训练好的水管网络。这时,计算机只要观察一下,哪个出水口流出来的水流最多,这张图片写的就是哪个字。

深度学习大致就是这么一个用人类的数学知识与计算机算法构建起来的整体架构,再结合尽可能多的训练数据以及计算机的大规模运算能力去调节内部参数,尽可能逼近问题目标的半理论、半经验的建模方式。

传统机器学习 VS 深度学习

传统机器学习和深度学习的相似点

传统机器学习和深度学习的相似点

在数据准备和预处理方面,两者是很相似的。

他们都可能对数据进行一些操作:

  • 数据清洗
  • 数据标签
  • 归一化
  • 去噪
  • 降维

对于数据预处理感兴趣的可以看看《AI 数据集最常见的6大问题(附解决方案)

传统机器学习和深度学习的核心区别

传统机器学习和深度学习的核心区别

传统机器学习的特征提取主要依赖人工,针对特定简单任务的时候人工提取特征会简单有效,但是并不能通用。

深度学习的特征提取并不依靠人工,而是机器自动提取的。这也是为什么大家都说深度学习的可解释性很差,因为有时候深度学习虽然能有好的表现,但是我们并不知道他的原理是什么。

深度学习的优缺点

深度学习的优缺点

优点1:学习能力强

从结果来看,深度学习的表现非常好,他的学习能力非常强。

优点2:覆盖范围广,适应性好

深度学习的神经网络层数很多,宽度很广,理论上可以映射到任意函数,所以能解决很复杂的问题。

优点3:数据驱动,上限高

深度学习高度依赖数据,数据量越大,他的表现就越好。在图像识别、面部识别、NLP 等部分任务甚至已经超过了人类的表现。同时还可以通过调参进一步提高他的上限。

优点4:可移植性好

由于深度学习的优异表现,有很多框架可以使用,例如 TensorFlowPytorch。这些框架可以兼容很多平台。

缺点1:计算量大,便携性差

深度学习需要大量的数据很大量的算力,所以成本很高。并且现在很多应用还不适合在移动设备上使用。目前已经有很多公司和团队在研发针对便携设备的芯片。这个问题未来会得到解决。

缺点2:硬件需求高

深度学习对算力要求很高,普通的 CPU 已经无法满足深度学习的要求。主流的算力都是使用 GPU 和 TPU,所以对于硬件的要求很高,成本也很高。

缺点3:模型设计复杂

深度学习的模型设计非常复杂,需要投入大量的人力物力和时间来开发新的算法和模型。大部分人只能使用现成的模型。

缺点4:没有"人性",容易存在偏见

由于深度学习依赖数据,并且可解释性不高。在训练数据不平衡的情况下会出现性别歧视、种族歧视等问题。

4种典型的深度学习算法

4种典型的深度学习算法

卷积神经网络 - CNN

CNN 的价值:

  1. 能够将大数据量的图片有效的降维成小数据量(并不影响结果)
  2. 能够保留图片的特征,类似人类的视觉原理

CNN 的基本原理:

  1. 卷积层 – 主要作用是保留图片的特征
  2. 池化层 – 主要作用是把数据降维,可以有效的避免过拟合
  3. 全连接层 – 根据不同任务输出我们想要的结果

CNN 的实际应用:

  1. 图片分类、检索
  2. 目标定位检测
  3. 目标分割
  4. 人脸识别
  5. 骨骼识别

了解更多《一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)

循环神经网络 - RNN

RNN 是一种能有效的处理序列数据的算法。比如:文章内容、语音音频、股票价格走势…

之所以他能处理序列数据,是因为在序列中前面的输入也会影响到后面的输出,相当于有了“记忆功能”。但是 RNN 存在严重的短期记忆问题,长期的数据影响很小(哪怕他是重要的信息)。

于是基于 RNN 出现了 LSTM 和 GRU 等变种算法。这些变种算法主要有几个特点:

  1. 长期信息可以有效的保留
  2. 挑选重要信息保留,不重要的信息会选择“遗忘”

RNN 几个典型的应用如下:

  1. 文本生成
  2. 语音识别
  3. 机器翻译
  4. 生成图像描述
  5. 视频标记

了解更多《一文看懂循环神经网络-RNN(独特价值+优化算法+实际应用)

生成对抗网络 - GANs

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

警察们开始继续训练自己的破案技术,开始抓住那些越来越狡猾的小偷。随着这些职业惯犯们的落网,警察们也练就了特别的本事,他们能很快能从一群人中发现可疑人员,于是上前盘查,并最终逮捕嫌犯;小偷们的日子也不好过了,因为警察们的水平大大提高,如果还想以前那样表现得鬼鬼祟祟,那么很快就会被警察捉住。为了避免被捕,小偷们努力表现得不那么「可疑」,而魔高一尺、道高一丈,警察也在不断提高自己的水平,争取将小偷和无辜的普通群众区分开。随着警察和小偷之间的这种「交流」与「切磋」,小偷们都变得非常谨慎,他们有着极高的偷窃技巧,表现得跟普通群众一模一样,而警察们都练就了「火眼金睛」,一旦发现可疑人员,就能马上发现并及时控制——最终,我们同时得到了最强的小偷和最强的警察。

同时得到了最强的小偷和最强的警察

了解更多《什么是生成对抗网络 - GAN?(基本概念+工作原理)

深度强化学习 - RL

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

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

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

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

游戏是典型的强化学习场景

你会发现,强化学习和监督学习、无监督学习 最大的不同就是不需要大量的“数据喂养”。而是通过自己不停的尝试来学会某些技能。

了解更多:《一文看懂什么是强化学习?(基本概念+应用场景+主流算法)

总结

深度学习属于机器学习的范畴,深度学习可以说是在传统神经网络基础上的升级,约等于神经网络。

深度学习和传统机器学习在数据预处理上都是类似的。核心差别在特征提取环节,深度学习由机器自己完成特征提取,不需要人工提取。

深度学习的优点:

  1. 学习能力强
  2. 覆盖范围广,适应性好
  3. 数据驱动,上限高
  4. 可移植性好

深度学习的缺点:

  1. 计算量大,便携性差
  2. 硬件需求高
  3. 模型设计复杂
  4. 没有"人性",容易存在偏见

深度学习的4种典型算法:

  1. 卷积神经网络 - CNN
  2. 循环神经网络 - RNN
  3. 生成对抗网络 - GANs
  4. 深度强化学习 - RL
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43612023/article/details/97235212

智能推荐

cisco 配置文件和基本命令_思科配置文件 renamed-程序员宅基地

文章浏览阅读4k次。四、常用命令1. 帮助在IOS操作中,无论任何状态和位置,都可以键入“?”得到系统的帮助。2. 改变命令状态 任务命令进入特权命令状态enable退出特权命令状态disable进入设置对话状态se_思科配置文件 renamed

Jupyter小技巧——cell同时输出多行_jupyter怎么在一个cell里多行-程序员宅基地

文章浏览阅读1.3w次,点赞4次,收藏16次。如果对带有一个变量或是未赋值语句的cell执行操作,Jupyter 将会自动打印该变量而无需一个输出语句。这非常有用,尤其是使用 Pandas DataFrames 进行处理时,因为输出将会被整齐地格式化为一个表格。接下来介绍两种可以让一个cell同时有多个输出的方法:1.通过添加如下代码在代码最上方cell添加:from IPython.core.interactiveshell imp..._jupyter怎么在一个cell里多行

解决Windows自带NTFS加密(EFS)后打开文件乱码的问题-程序员宅基地

文章浏览阅读623次。之前我在一篇博文中说过,WINDOWS自带的NTFS加密(EFS)是最适合程序员的代码文件加密保护的方法。但我有个同事对我说,NTFS加密非常不可靠,加密后的内容经常是乱码,他已经试过几次,已经是怕了不敢再用了。然后他当着我的面在他的电脑上搞了个大文件夹,右键文件夹属性高级加密并应用到所有子文件,过了一会,他再打开几个加密文件,果然,有一些能正常打开,另外一些就是乱码了(只是乱码,文件可以打开,不..._硬盘加密后文件读取乱码

蜗牛●DC的博客 方便自己今后查看-程序员宅基地

文章浏览阅读515次。版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]CocoapodsCocoaPods 是 iOS 最常用最有名的类库管理工具作为 iOS 程序员,掌握 CocoaPods 的使用是必不可少的基本技能安装# 删除源(这个系统自带的不好用)$ sudo gem sources -r https://rubygems.org/

1、存储过程(PLSQL块)异常介绍_plsql 报错信息存放在哪个文件-程序员宅基地

文章浏览阅读1.1k次。存储过程(PLSQL块)异常介绍_plsql 报错信息存放在哪个文件

计算机病毒通常隐藏在 中 2分,计算机考试题-程序员宅基地

文章浏览阅读1k次。一、单项选择题(30 道小题,共 60 分) 1、IP 地址能惟一地确定 Internet 上每台计算机与每个用户的( )。(2 分) A、距离 C、位置 2、计算机病毒通常隐藏在( )中。(2 分) A、内存 C、传输介质 B、外存 D、网络 B、费用 D、时间3、在 Word 中,如果要使文档内容横向打印,在“页面设置”中应选择的标签是( )(2 分) A、文档网络 C、板式 B、纸张 D、页...

随便推点

java pta 10简单_输入包括多个测试用例,每个测试用例如下: 第一行包含两个数字 w, l(0<w, l<=1000)-程序员宅基地

文章浏览阅读589次。每个测试用例包含一个整数N,然后在同一行中跟随N个整数。以0开始的测试用例终止输入,并且这个测试用例不被处理。7-10 sdut-入门-4 A+B for Input-Output Practice (IV)对于每一组输入整数,您应该在一行中输出它们的和,输入的每一行都有一行输出。你的任务是计算一些整数的和。在这里给出相应的输出。在这里给出一组输入。输入包含多个测试用例。_输入包括多个测试用例,每个测试用例如下: 第一行包含两个数字 w, l(0<=1000)

错误/警告类型总结——comparison between signed and unsigned integer expressions-程序员宅基地

文章浏览阅读2.9k次,点赞5次,收藏5次。错误类型: vector<int> histogram = Histogram(img); int total = 0; for (int i = 0; i != histogram.size(); ++i) { total += histogram[i]; }分析:警告的意思是一个无符号数整型与有符号整型最好不要比较。i是有符号整型,histogram.size()是无符号整型,所以会产生这个警告。解决方法:1、for (unsigned int i = 0; _comparison between signed and unsigned integer expressions

Windows+Apache环境下配置django框架 超详细_django apache-程序员宅基地

文章浏览阅读2.8k次。目录服务器Windows+Apache环境下配置python的django框架1. 配置python1. 安装python(服务器)2.安装与程序相关的第三库(本地 —— 服务器)2.1 pip配置3.克隆静态资源(本地)2. django配置1.debug修改2. 跨域配置3. 配置数据库(MySQL)3.1 下载安装MySQL3.2 安装MySQL管理工具SQLyog4. 安装mod_wsgi4.1 下载mod_wsgi4.2 安装mod_wsgi5.安装配置Apache5.1 下载Apache5.2 _django apache

AWS的S3服务如何获取Access key ID和Secret access key_what is access key id in s3-程序员宅基地

文章浏览阅读2.3w次。In this post, we will explain how to retrieve Amazon Access Key ID and Secret Access Key. These keys allow you to control your AWS account.We'll focus on the following topics:How to Retrieve Root Acce..._what is access key id in s3

plt.imshow()和plt.show()的意义?_plt.show()什么意思-程序员宅基地

文章浏览阅读2.6w次,点赞11次,收藏14次。在jupyter notebook上,单是plt.imshow()就可显示图片同时也显示其格式。而加上plt.show()后,结果仅显示图片,不显示格式。具体为什么,有待研究。_plt.show()什么意思

IDEA初次运行web项目遇到的问题,Error:Abnormal build process termination:_error:abnormal build process termination: "c:\prog-程序员宅基地

文章浏览阅读1.9k次。IDEA初次运行web项目遇到的问题,Error:Abnormal build process termination:2019-12-23今天刚接手一个web项目,在初次运行的时候,遇到一个问题,记录一下:问题如下:Error:Abnormal build process termination:“C:\Program Files (x86)\Java\jdk1.8.0_191\bin..._error:abnormal build process termination: "c:\program files (x86)\java\jdk1.

推荐文章

热门文章

相关标签