Deep Learning是大神Ian GoodFellow, Yoshua Bengio 和 Aaron Courville合著的深度学习的武功秘籍,涵盖深度学习各个领域,从基础到前沿研究。因为封面上有人工智能生成的鲜花图像,人送外号“花书” 。该书系统地介绍了深度学习的基础知识和后续发展,是一本值得反复读的好书。

  这里根据书的框架做笔记如下,方便以后回顾阅读,加油!!!

1.0  引言

  什么是machine learning?在原始的AI系统中,定义不同的case使用不同的解决方法,这称为“hard code”。进一步的AI系统需要一种去获取知识的能力,也就是从原始数据中发现模(“Pattern”),这种能力就是machine learning

  但是,一般的machine learning算法严重依赖于数据的表示(representation),表示中包含的每份信息又称为feature。这又引发了一个新的问题,对于很多task,我们不知道应该提取什么样的特征(只能经验主义)。机器学习早期的时候十分依赖于已有的知识库和人为的逻辑规则,需要人们花大量的时间去制定合理的逻辑判定,可以说是有多少人工,就有多少智能。后来逐渐发展出一些简单的机器学习方法例如logistic regression、naive bayes等,机器可以通过一些特征来学习一定的模式出来,但这非常依赖于可靠的特征,比如对于logistic regression用来辅助医疗诊断,我们无法将核磁共振图像直接输入机器来作出诊断,而是医生需要先做一份报告总结一些特征,而机器通过报告中提供的表征再来进行机器学习,这就对如何提取有效表征提出了很大的要求,仍是一个需要花费很多人力的过程。

  于是又有了representation learning,即使用machine learning不光光是学习reprsentation到output的映射(mapping),还要学习data到representation的映射。使用机器学习来发掘表示本身,而不仅仅把表示映射到输出。人们发展出了表征学习(representation learning),希望机器自己能够提取出有意义的特征而无需人为干预。

  典型的表示学习算法是autoencoder。encoder函数是将输入数据映射成表示;decoder函数将表示映射回原始数据的格式。我们期望当输入数据经过编码器和解码器之后尽可能多地保留信息,同时希望新的表示有各种好的特性,这也是自编码器的训练目标。

  representation learning的难点:表示是多种多样的,一种表示学习算法很难覆盖多种层次和不同类型的表示。也就是多个因素同时影响观察到的数据,从原始数据中提取如此高层次、抽象的特征是非常困难的。

  Deep Learning:使用多层次的结构,用简单的表示来获取高层的表示。这样,解决了上面的问题(一种方法)。让计算机通过较简单概念构建复杂的概念。

  这些表征很有可能是隐含的、抽象的,比如图像识别中单个像素可能没有有效的信息,更有意义的是若干像素组成的边,由边组成的轮廓,进而由轮廓组成的物体。深度学习就是通过一层层的表征学习,每层可能逻辑很简单,但之后的层可以通过对前面简单的层的组合来构建更复杂的表征。经典的例子如多层感知机(multilayer perceptron),就是每个感知机的数理逻辑都很简单,层内可以并行执行,层间顺序执行,通过层层叠加实现更复杂的逻辑。深度学习的“深”可以理解为通过更多层来结合出更复杂的逻辑,这就完成了从输入到内在层层表征再由内在表征到输出的映射。

  

  花书总体结构

  花书可以大致分为三大部分:

  1. 机器学习基础知识:涵盖线性代数,概率论,数值计算和传统机器学习基础等知识。如果之前学过Andrew Ng的CS229的话基本可以跳过。
  2. 深度神经网络核心知识:属于本书必读部分,涵盖前馈神经网络,卷积神经网络(CNN),递归神经网络(RNN) 等。
  3. 深度学习前沿:有一些前沿研究领域的介绍,如线性因子模型,表征学习,生成模型等。

 1.1  深度学习的历史趋势

  目前为止深度学习已经经历了三次发展浪潮:

  1、20 世纪40 年代到60 年代深度学习的雏形出现在控制论(cybernetics)中,是从神经科学的角度出发的简单线性模型,但局限是无法学习非线性的异或函数。不过,这个时期为后来的深度学习打下基础,我们现在训练常用的随机梯度下降算法(stochastic gradient descent)就是源自处理这个时期的一种线性模型——自适应线性单元(Adaptive Linear Neuron)。虽然现在仍有媒体经常将深度学习与神经科学类比,但是由于我们对大脑工作机制的研究进展缓慢,所以实际上现在深度学习从业者已很少从神经科学中寻找灵感。;

  2、20 世纪80 年代到90 年代深度学习表现为联结主义(connectionism)或并行分布处理,主要是强调很多的简单的计算单位可以通过互联进行更复杂的计算。这个时期成果很多,比如现在常用的反向传播算法(back propagation)还有自然语言处理中常用的LSTM(第十章讲递归神经网络时详谈)都来自与这个时期。之后由于很多AI产品期望过高而又无法落地,研究热潮逐渐退去。

  3、直到2006 年,才真正以深度学习之名复兴。由于软硬件性能的提高,深度学习逐渐应用在各个领域,深度学习研究重整旗鼓。“深度”学习的名字成为主流,意在强调可以训练更多层次更复杂的神经网络,“深”帮助我们开发更复杂的模型,解决更复杂的问题。

  深度学习火起来的原因,主要是由于两点:1.我们有更大量的数据进行训练  2.我们有更好的软硬件可以支持更复杂的模型。

  随着模型准确度的提高,深度学习也逐渐得到更广泛的实际应用,比如图像识别,语音识别,机器翻译等领域。像DeepMind AlphaGo这种强化学习方面的应用更是掀起了全民AI热潮。与此同时,各种深度学习框架的出现如Caffe,Torch,Tensorflow等也方便更多人学习或利用深度学习模型。这些反过来又促进了深度学习行业的发展。

参考文献:

https://zhuanlan.zhihu.com/p/38431213

http://www.deeplearningbook.org/

https://applenob.github.io/deep_learning_1.html

Deep Learning(Ian Goodfellow) — Chapter1 Introduction的更多相关文章

  1. Deep Learning(Ian Goodfellow) — Chapter2 Linear Algebra

    线性代数是机器学习的数学基础之一,这里总结一下深度学习花书线性代数一章中机器学习主要用到的知识,并不囊括所有线性代数知识. 2.1 基础概念 Scalars: 一个数: Vctors: 一列数: Ma ...

  2. Deep Learning(深度学习)相关网站

    Deep Learning(深度学习) ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习): ...

  3. Deep Learning(深度学习)网络资源

    Deep Learning(深度学习) ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习): ...

  4. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  5. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  6. Deep Learning(深度学习)学习笔记整理系列之(七)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  7. Deep Learning(深度学习)学习笔记整理系列之(六)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  8. Deep Learning(深度学习)学习笔记整理系列之(四)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(三)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. AGS Server10.1中地图文档更新如何使服务更新

    一.需求背景 发布服务的mxd文档发生了更改,如何对该mxd文档映射的地图服务进行更新. 二.分析 由于在10.1中地图服务的发布采用的是msd的形式,也就是虽然在ArcMap中准备的地图文档是mxd ...

  2. [转载]H5项目常见问题汇总及解决方案

    本文转载自:http://www.open-open.com/lib/view/open1449325854077.html Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 / ...

  3. MySQL事务隔离级别,锁(转)

    add by zhj: 本文针对的是MySQL的InnoDB存储引擎,不适用于MySQL的其它存储引擎和其它数据库 原文:MySQL数据库事务隔离级别(Transaction Isolation Le ...

  4. 使用远程管理工具Xshell

    介绍 目前常用的远程管理工具 Xshell -- 免费版/收费版 SecureCRT Putty 安装Xshell 选择免费版即可 连接服务器 连接成功 Xshell连接不上排查流程 还有可能是Lin ...

  5. PAT 1072. 开学寄语(20) JAVA

    下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其QQ,封其电脑,夺其手机,收其ipad,断其wifi,使其百无聊赖,然后,净面.理发.整衣,然后思过.读书.锻炼.明智.开悟.精进 ...

  6. centos7安装nodejs 和 yarn

    如何从EPEL库安装Node.js 另一个有效且简单的方法来安装Node.js就是从官方库.这同样确保您可以访问到EPEL库,你可以通过运行以下命令. sudo yum install epel-re ...

  7. 爬虫基础库之Selenium

    1.简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作, ...

  8. 对象数组空指针异常说明——C#中使用对象数组必须分别为其开辟空间

    l  场景 定义一个学生类,包含字段(学号,姓名,语文成绩,数学成绩,英语成绩).属性(总成绩).三个方法分别为(求平均分.数学平均分.语文平均分). 要求:在main()方法中,定义一个学生类型的数 ...

  9. 20145210姚思羽《网络对抗》MSF基础应用实验

    20145210姚思羽<网络对抗>MSF基础应用实验 实验后回答问题 1.用自己的话解释什么是exploit,payload,encode. exploit就是进行攻击的那一步 paylo ...

  10. 20145239《网络对抗》- 逆向及Bof基础实践

    1 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串.该程序同 ...