导读:深度学习到底是什么?

今天聊三个深度学习入门问题,是在公号后台大家经常提到的。

第一个问题,学深度学习是不是需要先学机器学习?

说实话我有点意外,对于怎样学深度学习,我设想过各种问题,但没想到大家最好奇的会是上面这个问题。不过,了解深度学习,确实应该从了解人工智能、机器学习和深度学习这三者的关系开始。我看过的不少书都喜欢把三者关系画成三个套在一起的大圆圈,最外面的圈是人工智能,里面一点的圈是机器学习,最里面的圈是深度学习。这个图传得很广,三者的关系也确实可以简单理解成人工智能>机器学习>深度学习。不过,这样画图容易让人误认为人工智能的核心是机器学习,而机器学习的核心则是深度学习。这是一种误导。

人工智能听起来好像很高深,在我看来,更像是一个很大的箩筐,无论什么研究,只要能和智能沾上边的,就都敢塞进这个箩筐里面。不难想象,这个箩筐里面肯定是像装满了螃蟹一样“八仙过海,各显神通”。我们的机器学习只是其中的一种,虽然曝光率也算还行吧,不过也不好说它就是妈妈最爱的小儿子。机器学习自己呢,也将头发梳成大人模样,同样是一个箩筐,小一点,但里面同样也装满了八仙过海的各路模型算法。其中有一种模型算法是我们今天的主角,不过还不叫深度学习,在出道之前,它叫“神经网络”。这个神经网络基本可以确定不是妈妈最爱的小儿子,今天刚上热搜明天就被雪藏这种大起大落的刺激,它经历过好几次。

很多书是这么说的,神经网络是深度学习的前身。不过,这个说法总感觉有点见外,听起来神经网络和深度学习像是前浪和后浪的关系。其实吧,深度学习更像是神经网络为了庆祝再一次逆天改命,索性换了个名字。时间是在2012年,沉寂近二十年的神经网络终于又憋出了大招,这一次一举开创了一个伟大的新时代——你以为我要说的是深度学习时代,简称DL时代?不不不,这样完全没有体现这个大招的伟大,是DLCQJ时代,大力出奇迹时代,也称氪金时代。

为什么这么说?时间回到2012年的ImageNet赛场上,你也许是第一次听这到这个比赛,不过光看名字你就能知道,这是个图像识别比赛。以前ImageNet比赛的画风大概是这样:这一次你锤我两下小拳拳,然后你拿了冠军。下一次换我锤你两下小拳拳,然后我拿了冠军,非常的团结友爱。但到了2012年,友爱画风戛然而止。

前面我们说过,神经网络在这一年憋出了一个大招,既然是大招,当然配有姓名,叫AlexNet模型。这个名字可能对不是做深度图像识别的同学有点陌生,但是说CNN,深度卷积网络,想必大家就如雷贯耳了。当然,CNN作为一种框架,不止AlexNet模型,但可以认为CNN是靠AlexNet模型一夜成名。过程非常凶残,简单来说就是AlexNet吊打了所有在场的其他模型。这样说可能不太直观,那就列个数据看看。AlexNet当然拿了当年比赛的第一名,错误率(这个指标数值越低说明模型效果越好)只有15.3%,这么看好像没啥,那当年比赛的第二名错误率是多少呢?高达26.2%,多个10个百分点,差不多就是百米赛跑,第一名都冲线了,第二名才刚跑完一半的意思。所以,这次不是“多锤几下小拳拳”能解决的问题了,是干脆一下就把对手扫进了历史的垃圾堆。

很多介绍深度学习和AlexNet模型的文章,写到这里就停住了。不过,我要多说一点:AlexNet模型效果很好只是起点。前面我说,它开创了一个伟大的新时代,因为这款模型使用了一种当时还很陌生,但现在我们都很熟悉的开挂技术——GPU。AlexNet模型像是一个伟大的先知,它的成功引领机器学习走上了一条未曾设想的道路:更深的神经网络,更多的GPU,就有更好的效果——这就是深度学习。深度学习的快速崛起,和硬件技术的发展是息息相关的。不是前人太蠢,在这么长的时间里都没有想到通过加深神经网络来取得更好的效果,而是深度一旦上去了,算力就立马跪下去了——这是时代的局限性。而随着GPU的加入,算力不再是瓶颈,深度学习也就真的成了那句话所说的:“你们有幸,遇见这样的时代,但时代更有幸,遇见这样的你们”。从此,机器学习也就从烧脑的玩意,变成了烧钱的玩意。

说了这么多,我们的问题还没有回答呢。不过,我想从第二个问题讲起:深度学习难学吗?

不难学,“氪金”就好了。当然,这是玩笑话,现实自然没有“自从买了GPU,妈妈不用担心我的学习了”这么理想。深度学习正处于高速发展期,每年甚至更短的时间,都会发展出新的技术来,现在已经形成了自己的一套体量庞大、内容独特的理论体系,而且这套体系还在不断开疆拓土,发展壮大。不过,前面我们反复说,深度学习是从神经网络发展起来的,而神经网络只是机器学习众多模型算法中的一种,从这一点看,深度学习相比反而要更容易学一点,毕竟一棵树无论再怎么枝繁叶茂,也不会比一片森林要更盘根错杂。

那么,还是回答最初的问题:学深度学习,该不该先学机器学习呢?本文不是专讲机器学习的文章,这里简要分析一下机器学习到底要学什么。三样东西,问题,方法和流程。机器学习要解决的问题,主要分为有监督学习无监督学习两个大类,目前有监督学习是研究和应用的热门方向,但无监督学习也一直在“怒刷”存在感,最近搞了个混血的半监督学习,说这才是未来的发展方向。这个话题口水战太多,就先不展开了。而这两个大类下面又有子问题,比如有监督学习下面有“回归问题”和“分类问题”,都是十分贴近工业应用需要的问题。在这一点上,机器学习也好,深度学习也好,研究的问题都是相通的,深度学习并没有为了证明自己已经到了叛逆期非要另搞一套问题。正因如此,机器学习模型和深度学习模型才能同台竞技。

确定了问题之后,接下来就要研究解决问题的方法,这就到了各路大神开脑洞的环节,用中学数学老师的话说,叫一题多解,不同的解法,就形成了不同的模型算法。不同的解法,当然是有不太相同的解题思路,对于同样的分类问题,神经网络、决策树和支持向量机就给出了三种不同的解题思路,如果你只打算了解深度学习,那在方法这一步,可以选择重点了解神经网络的解题思路。

最后就是流程了。机器学习不只有各种理论和模型,要在实际工作中使用,还需要学习工作流程:包括数据收集、数据清洗、特征工程、模型选择、参数调优等等……这和软件开发有一套长长的生命周期,而不是只有敲代码是一样的。在机器学习的这套流程里面,特征工程一般公认是十分重要的一环,特征选取的好坏,能不能提取得到重要特征,可能会对模型最终的效果产生显著影响。但在这一点上,深度学习不太一样。深度学习经常有一种提法,叫端到端学习。什么意思呢?就是把原始的数据不经过特征工程处理,直接就喂给模型,然后就能吐出想要的结果。让模型自己提取特征,没有了特征工程作为中间商赚差价,叫端到端学习。这是深度学习很重要的一个卖点。

最后的问题,当然就是“深度学习该怎么学”这个问题。

前面我们一再说,深度学习好学,相比起各种流派混战厮杀的机器学习,深度学习不过就是拿了神经网络的底子,再添上两个眼睛一个鼻子。但是,弱水三千只取一瓢饮也有自己的难处,深度学习这几年发展得很迅速,应用发展甚至超过了理论建设,我读过不少封面印着《深度学习》的书,内容都是拿着机器学习的教材改出来的,区别只在于给神经网络那部分多增加一点内容,再东一块西一块塞几个新的深度学习模型完事。这样的书读起来自然感觉跳跃很大,有时候干脆前后衔接不上,读完一头雾水。如果你最近读过深度学习的书,读完以后感觉解锁了很多奇怪的姿势,但还是不太明白深度学习究竟是做什么的,大概就是这个原因。

那怎么办?最好的办法,应该是你首先建立对深度学习的基本概念,然后再重头读,感觉应该能好一点。就好比看《冰与火之歌》,剧情复杂人物又多,光那一堆头衔念出来都让人心烦。但如果你知道主角是谁主要做什么,剩下的就好办多了。不过,这也很为难,我不就是不知道深度学习是个啥才读书嘛,那怎样才能建立这个“首先”呢?

这里,我分享一个诀窍:深度学习也是有一个主角的,方方面面的内容看着很多,但都是围绕着主角为它服务。这个主角是谁呢?是权重(weight)。整个深度学习的知识体系,都是围绕着权重从方方面面做文章。譬如说BP,神经网络和深度学习有一个灵魂级的重要知识点,叫后向传播机制,简称BP。BP是干什么的呢,就是更新权重。怎么更新呢?梯度下降。收敛太慢了怎办呢?随机梯度下降。梯度弥散了怎办呢?更换激活函数,或者残差连接。过拟合了呢?要么L1-norm要么L2-norm,要么干脆dropout,一了百了。总之,玩法很多,但对象只有一个,那就是权重。抓紧权重这条主线,就可以把深度学习的众多知识点拉出一条清晰的脉络。这部分内容很多,大家如果感兴趣我们找机会再说。

看到这里,是不是已经跃跃欲试,想知道应该找哪本深度学习的教材上手呢?不过,前面说深度学习现在还在全力飙车,这就会给深度学习的教材带来一些坑。譬如说花书。花书很经典,全明星阵容,可惜是2016年出的,在2017年掀起风潮的各种GAN、在2018年掀起风潮的Self-Attention,在2019年掀起风潮的GNN,花书都不可能找得到相关内容。更让我遗憾的是,花书有一位作者叫Goodfellow,我老在心里译成“好家伙”,他是大名鼎鼎的GAN之父,我差不多是冲着他的名声去掏钱的。可是,花书出得实在太早,就算是GAN之父亲自写的书,GAN在书里面也只有很小的篇幅,很多在GAN的发展历程上起了里程碑作用的模块也没来得及收录,哪怕你只是想全面地了解GAN,花书也有心无力。

深度学习的教材确实不容易挑选,新的太偏,全的太老,那现在看哪一本入门好呢?我推荐复旦大学邱锡鹏老师新出的《神经网络与深度学习》,这本书在出实体书之前,我一直在Github上追着看,拿到实体书后,趁着五一又翻了一遍,真是一本好书,称之为国产版的花书并不过誉。

《神经网络与深度学习》是新鲜出炉的,所以新就不必说了,里面连GNN都有,其他还有两个感觉,一个是够深,Attention甚至专门设了一章来讲。一个是够全,从神经网络的最早版本感知机写起,一直写到深度学习经过几年发展出来的庞大体系,而且有面到点,连W-GAN、深度Q网络这些细分领域里的模型都囊括进去了,读起来不会有跳跃感。对于深度学习的整个发展脉络,以及当前发展出来的庞大体系,读完这本书应该就能心中有底。“蒲公英书”值得反复研读,每次翻都有新的心得,如果大家愿意看,我再专写一篇读书攻略。

豆瓣评分9.5!复旦大学邱锡鹏教授力作,周志华、李航联袂推荐,深受好评的深度学习讲义“蒲公英书”正式版!

系统整理深度学习的知识体系,由浅入深地阐述深度学习的原理、模型以及方法。更适合中文读者自学与入门的深度学习图书!使你掌握神经网络与深度学习技术的基本原理,知其然也知其所以然。上市不到一周即荣登京东和当当新书榜榜首!


关于作者:

莫凡,娱乐向机器学习解说选手,《机器学习算法的数学解析与Python实现》作者,前沿技术发展观潮者,擅长高冷技术的“白菜化”解说,微信公众号“睡前机器学习”,个人知乎号“木羊”。

扫码关注作者

更多精彩回顾

书讯 | 6月书讯 (上)| 初夏已至,书香有约,六月宜静心读书

书讯 | 6月书讯 (下)| 初夏已至,书香有约,六月宜静心读书

上新 | 周志华领衔撰写,历时4年,宝箱书问世!
书单 | 创建字节跳动之前,张一鸣读过哪些硬核技术书?

干货 | G1垃圾回收算法概述

收藏 | TIOBE 5月榜单:时隔五年,C语言重返第一

阅读全文 ,发现更多AI好书

想入门深度学习?你需要先搞懂这三个问题相关推荐

  1. 心得丨老生常谈:普通程序员到底如何入门深度学习?

    作为一名软件工程师,我们应该活到老学到老,时刻与不断发展的框架.标准和范式保持同步.同时,还要能活学活用,在工作中使用最合适的工具,以提高工作效率.随着机器学习在越来越多的应用程序中寻得了一席之地,越 ...

  2. 深度学习实战_五天入门深度学习,这里有一份PyTorch实战课程

    这是一门五天入门深度学习的实战课程. 想入门深度学习的小伙伴有福了!dataflowr 最近推出了一门五天初步掌握深度学习的实战教程(实战使用 PyTorch 框架),有知识点有实例有代码,值得一看. ...

  3. 普通程序员如何入门深度学习?

    摘要: 作为一名软件工程师,我们应该活到老学到老,时刻与不断发展的框架.标准和范式保持同步.同时,还要能活学活用,在工作中使用最合适的工具,以提高工作效率.随着机器学习在越来越多的应用程序中寻得了一席 ...

  4. 「修炼开始」一文带你入门深度学习

    来源 | Jack Cui 责编 | Carol 封图 | CSDN下载自视觉中国 前言 图解 AI 算法系列教程,不仅仅是涉及深度学习基础知识,还会有强化学习.迁移学习等,再往小了讲就比如拆解目标检 ...

  5. 入门深度学习的必备数学知识

    作者:徐洲更 中科院在读遗传学博士.出于对计算机科学的兴趣,蜻蜓点水式自学了大量编程相关知识,现在对深度学习很感兴趣,正在恶补相关知识.此外,还负责帮忙管理生信媛,一个热衷于分享生物信息学知识的公众号 ...

  6. 零基础入门深度学习(5) - 循环神经网络

    往期回顾 在前面的文章系列文章中,我们介绍了全连接神经网络和卷积神经网络,以及它们的训练和使用.他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的.但是,某些任务需要能够更好的 ...

  7. 零基础如何快速入门深度学习?

    人工智能可谓是目前最热门的行业,无论走在前沿的科技公司,还是努力创新的传统行业,几乎都想把握这个新"风口",相关人才也成为各大公司竞相争抢的对象: 百度推出"少帅计划&q ...

  8. 人工智能门槛太高?用这个框架轻松入门深度学习!

    想学学深度学习,真的就那么难,门槛那么高吗? 先放一张关于深度学习的图. 门外汉觉得我在造终结者,其他程序员觉得我是土豪,我自己也觉得自己要上天.可是实际上,我只是在 import keras 然后 ...

  9. 新手如何入门深度学习

    如何快速入门深度学习 深度学习入门必备基础 避开常见误区 学习路线图 干货分享 深度学习必备基础 深度学习发展至今已然有几个年头了,上个世纪九十年代的美国银行率先使用深度学习技术做为手写字体识别,但深 ...

  10. 新手如何快速入门深度学习

    如何快速入门深度学习 本篇学习笔记对应深度学习入门视频课程 博客地址:http://blog.csdn.net/tangyudi 欢迎转载 深度学习入门必备基础 避开常见误区 学习路线图 干货分享 深 ...

最新文章

  1. Embarcadero Dev C++ 中文输出乱码
  2. vue移动端优秀框架收集
  3. Win64 驱动内核编程-6.内核里操作注册表
  4. 【机器学习基础】数学推导+纯Python实现机器学习算法8-9:线性可分支持向量机和线性支持向量机...
  5. 正则表达式提取字符串内所有的img标签下的src路径
  6. 科研实习 | 香港科技大学统计机器学习实验室张潼教授招收暑期科研实习生
  7. 重磅!Python又第一了!网友:为什么找不到好工作?真相让人脸红…
  8. 理解K8S的编排和网络
  9. 索然无味的正则表达式
  10. zbb20180613 Spring MVC实现大文件下载功能
  11. hfs文件服务器打开显示空白,解决Adobe Creative Cloud打开界面一直显示空白的方法...
  12. ubuntu11.04下安装TCL及TK
  13. 现代软件工程 第一章 【概论】第6题——原旭莹
  14. 桌面下雪软件测试工程师,Win7系统如何设置桌面下雪屏保?
  15. 后端系统开发之技术方案写作
  16. Data Matrix二维码编码原理及其识别技术
  17. 通过GPS测试跑步速度可行性验证
  18. [Azure - SLA] 在微软云中的服务级别协议SLA
  19. 四分位距IQR interquartile range
  20. React Native 每日一学(Learn a little every day)

热门文章

  1. SQL Server 如何添加删除外键、主键,以及更新自增属性
  2. scare机器人如何手眼标定_Epson机器人的一些实操经验记录
  3. 计算机网络(数据链路层CSMA/CD协议)
  4. Matlab之新建文件夹函数mkdir
  5. 一个员工在多个部门下的表结构设计 ,分层分级【巨坑】!!
  6. linux自动加载合适驱动程序,Linux自动加载驱动模块
  7. “复购才是王道”——独立咖啡店如果提升店内复购?
  8. Docke + Jenkins 实现自动化部署
  9. Django 学生就业管理系统 计算机毕设源码24237
  10. Windows下gnu gmp编译