学习DL搁置很久了,终于下定决心开始咯~~

Deep Learning(Ian Goodfellow&&Yoshua Bengio&&Aaron Courville)-原书来源:http://www.deeplearningbook.org/

从人工智能说起,谈到人工智能要解决的问题。在早期,人工智能倾向于研究那些对人类来说困难,但对机器来说相对直接而简单的问题,这些问题的共同点在于可以很容易用形式化的数学规则来描述。而人工智能面临的真正挑战在于解决那些对人来说容易,但很难形式化的问题。早期解决的这些问题不需要太多的关于世界的知识,而在人工智能中关键的挑战在于:如何将这些不规则的知识融入到计算机中。通常人们日常生活所需的大量知识都是主观的,带有启发式,很难被形式化。

于是人们开始尝试对知识用形式化的语言进行硬编码(hard-code)。这些依赖于硬编码知识的系统所面临的困难表明:人工智能系统需要能够从原始数据中自动抽取模式来获得属于自己的知识的能力。而这种能力称为 机器学习(machine learning)。简单的机器学习算法的性能严重依赖于所给定的数据表示。这种对数据表示的依赖在计算机科学中,甚至是日常生活中都是一种常见的现象。人们很容易基于阿拉伯数字进行算术运算,却发现用罗马数字作算术运算很耗时。对多数的人工智能任务来讲,只要设计足够好的特征集合,即使喂给简单机器学习算法,也可以得到足够好的性能。但是,对于很多task来说,如何抽取特征本身就是一个难题。

表示学习(Representation learning)是这样的一种解决方案。它使使用机器学习方法不但用来发现从表示到输出的映射,而且用来发现表示本身。表示学习的优势,一方面在于 学习到的表示所展现的性能要优于手工设计的表示所达到的性能,另一方面在于可以以最小的人工干预,快速适应新的task。AutoEncoder就是这样的一个例子。他是编码函数和解码函数的综合,旨在得到一个新的表示使得该表示通过输入-编码-新的表示-解码之后,能够保留输入中尽可能多的信息。当我们设计特征或者设计用来特征学习的算法时,希望能够区分差异因子,来解释观测数据。这里的差异因子指的是能够区分不同源信息的影响,不能通过乘法来连接,且不能直接被观测到的量。这些因子可以看成是概念或抽象用来解释数据的丰富多样性。许多差异因子影响到了我们所能观测到的每一块数据,也只有通过复杂的,接近人类水平的理解来识别,如人说话的口音。解决这个问题和表示学习几乎一样困难。

深度学习(Deep Learning)试图通过从更加简单的表示中学习,来解决表示学习中的核心问题。前向深度网络(Feedforward Deep Network)或者多层感知机(Multilayer Perceptron)就是这样的例子。多层感知机可以简单理解为一个从输入到输出的映射函数,该函数是由多个简单的函数构成,采用不同的函数,产生不同的新的表示。深度学习一方面提供了学习数据的正确表示的思想,另一方面,深度本身使得计算机学习到一个多步的计算机程序。每一层所获得的表示可以看作在执行完一系列并行指令后所得到的计算机的存储状态。越深的网络执行的串行指令越多。串行指令具有很强的能力原因在于后续的指令可以参考前面指令所产生的结果。从这个角度来看,并不是每层中激活的所有信息都用来编码差异因子以解释输入,还有一部分用来存储状态信息以执行整个程序。

两种度量学习模型的深度:(1)可以用计算图来表达,即计算图的深度。执行整个结构所需顺序指令的数目。(2)对于概率模型来说,指的是描述概念间相互关系的图的深度。

AI,ML,RL,以及DL三者之间的关系:AI>ML>RL>DL。(1)Machine Learning is the only viable approach to building AI systems that can operate in complicated, real-world environments. (2)Deep Learning is a particular kind of machine learning that achieves great power and flexibility by learning to represent the world as a nested hierarchy of concepts, with each concept defined in relation to simpler concepts, ad more abstract representations computed in terms of less abstract ones.

(一)面向的读者:university student and software engineers

(二)Deep Learning的历史趋势

1. Deep Learning的许多名字以及命运随之改变的神经网络

该部分主要介绍深度学习与神经网络的纠葛。深度学习的历史可以追溯到1940s,准确说应该是神经网络的历史可以追溯到1940s。1940s~1960s称为cybernetics,1980s~1990s称为连接主义(connectionism),直到2006年才开始被称为deep learning。事实上伴随着深度学习的还有一个名称是人工神经网络(Artificial Neural Network)。两者的渊源是:深度学习是受生物大脑的启发,主要有两点:(1)大脑提供例证,从概念上的直接建立智能行为的方式是对大脑背后的计算机制 进行反向工程以复制其功能;(2)理解大脑以及人类智能背后的机理本身是一个有趣的问题,将这其中的基本问题应用到机器学习模型上也是非常有用的。

现今的深度学习已经远远超出了神经科学的视角,可以视为一种更加通用的学习多层组合的原理(Principle of learning multiple levels of composition)。

现今深度学习的先驱是简单的线性模型。这些模型的典型代表如McCulloch-Pitts Neuron以及Adaptive Linear Element(ADALINE),对现代机器学习的愿景产生了巨大影响。学习这些权重的算法便是其中的一个例子。学习ADALINE的训练算法的特列是随机梯度下降(Stochastic Gradient Descent),这个算法的改进版依然是现今深度学习模型的主要训练算法。线性模型有很多局限性,其中最受诟病的就是不能学习异或函数。

神经科学只能视为深度学习学者们的一种重要的灵感来源,但不是绝对的指导准则。神经科学逐步丧失其在深度学习中的重要角色,主要原因在于我们对于大脑的认知有限,不足以成为有效的指导的准则。(1)神经科学给我们理由希望深度学习能同时解决多个任务。(2)我们可以从神经科学中借鉴一些粗糙的原理,如许多计算单元相互交互可以使得其更加聪明,这是受大脑的启发得到的。灵感的重要来源并不能作为严格的指导。即使神经科学成功启发了多个神经网络的体系结构,但是关于生物学习的过程并不能为我们的训练这些体系结构的算法提供更多的信息。

媒体过分强调深度学习与大脑的相似性,但是我们不能将深度学习视为模拟大脑的一种尝试。现今深度学习的灵感来自多个领域,尤其是应用数学基础中的线性代数,概率论,信息论,数值优化等。一些深度学习的研究者喜欢引用神经科学作为灵感来源,还有一些研究者根本不关心神经科学。值得注意的是确实存在这样的一个深度学习的分支主要研究如何从算法层面理解大脑的工作机制,称为计算神经科学(Computational Neuroscience)。

深度学习历史中的出现的一些原理至今仍在沿用。(1)大量简单的计算单元以网络的形式连接在一起可以达到实现智能行为(连接主义的核心思想)。(2)分布式表示的思想(Distributed Learning):Each input to a system should be represented by many features, and each feature should be involved in the representation of many possible input.(3)用BP算法(Back-Propagation)来训练神经网络。(4)90年代提出的用神经网络来建模序列的方法,如LSTM等。(5)2006年Hinton提出的DeepBlief network采用greedy layer-wise pretraining的方法来达到高效的训练。这个阶段的深度神经网络已经达到可以和其他基于手工设计的机器学习算法相匹敌,深度学习更关注于深度在理论上的重要程度。现今的深度学习起初关注无监督学习以及深度学习在小数据集上的泛化能力,后来更加关注有监督学习,以及深度学习对于大规模标注数据的使用。

2. 随着可用训练数据的增加,深度学习优势愈加明显

3. 随着软硬件架构的改善,深度学习模型的大小也在增加

当今神经网络的主要成就归功于有足够的计算资源能够运行大的模型。Faster Computers + Larger Memory +the availability of larger datasets共同导致了the growth of model sizes. 从隐式单元引入之时算起,神经网络的大小每隔2.4年就会翻倍。有图有真相,见原文。这种趋势还会持续数十年。预计到2050年,神经元的规模可以达到和人脑相当的水平。

4. 深度学习在更加复杂的应用上展现更好地精度

Deep Learning(1)-Introduction学习总结的更多相关文章

  1. Deep Learning(深度学习)学习笔记整理

    申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...

  2. 【转载】Deep Learning(深度学习)学习笔记整理

    http://blog.csdn.net/zouxy09/article/details/8775360 一.概述 Artificial Intelligence,也就是人工智能,就像长生不老和星际漫 ...

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

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

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

    十.总结与展望 1)Deep learning总结 深度学习是关于自动学习要建模的数据的潜在(隐含)分布的多层(复杂)表达的算法.换句话来说,深度学习算法自动的提取分类需要的低层次或者高层次特征. 高 ...

  5. Deep Learning(深度学习)学习系列

    目录: 一.概述 二.背景 三.人脑视觉机理 四.关于特征        4.1.特征表示的粒度        4.2.初级(浅层)特征表示        4.3.结构性特征表示        4.4 ...

  6. Deep Learning(深度学习)整理,RNN,CNN,BP

     申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎 ...

  7. Deep Learning 19_深度学习UFLDL教程:Convolutional Neural Network_Exercise(斯坦福大学深度学习教程)

    理论知识:Optimization: Stochastic Gradient Descent和Convolutional Neural Network CNN卷积神经网络推导和实现.Deep lear ...

  8. Deep Learning 13_深度学习UFLDL教程:Independent Component Analysis_Exercise(斯坦福大学深度学习教程)

    前言 理论知识:UFLDL教程.Deep learning:三十三(ICA模型).Deep learning:三十九(ICA模型练习) 实验环境:win7, matlab2015b,16G内存,2T机 ...

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

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

随机推荐

  1. python 模块openpyxl读excel文件

    使用openpyxl模块来读取excel.要注意openpyxl读不再支持旧的xls格式. 先看一下操作前的excel是什么样子吧.对了,现在只支持xlsx格式的excel读取 我现在想在第三行插入3 ...

  2. powerdsigner Association Multiplicity

    这一篇來告诉一个不容易分辨的关系图式:Association(结合)的各种類型,除了了解它的涵义 外,也让各位可以看图說故事,知道它背后所要表达的意义. Association结合 Associati ...

  3. windows ftp 连接serv_U 管理员

    连接工具名称:8uftp 小技巧:活动模式连接

  4. linux -小记(1) 问题:"linux ifconfig查看网卡名称与配置文件不否" 或 启动网卡提示“ eth0 似乎不存在, 初始化操作将被延迟”。

    "linux ifconfig查看网卡名称与配置文件不否" 或 启动网卡提示" eth0 似乎不存在, 初始化操作将被延迟" . 问题 1. service n ...

  5. 操作系统中前台进程与后台进程(适用于Linux)

    两种进程的主要区别: 1.前台进程用户可以操作,后台进程用户不能操作(除了把它关闭). 2.前台进程不全是由计算机自动控制,后台进程全都是由计算机自动控制. 3.后台进程一般用作系统服务,可以用cro ...

  6. PLSQL 逻辑多线程

    PROCEDURE get_sheetid(i_topic IN VARCHAR2, o_newsheetid OUT VARCHAR2) IS    PRAGMA AUTONOMOUS_TRANSA ...

  7. python(26)查看文件的大小

    有时候,在写文件的时候需要判断文件的大小,或者删除空的文件 import os from os.path import join, getsize def getdirsize(dir): size ...

  8. 教你如何在word中像LaTex那样打出漂亮的数学公式

    转载自: http://blog.csdn.net/ibingow/article/details/8613556 记得很久以前在word里打数学公式很痛苦,要用鼠标点啊点,效率奇低,包括像MathT ...

  9. protoc 和 protoc-gen-go 产生的 proto 文件代码对比

    protoc 命令来自 https://github.com/google/protobuf, 由于这里没有 go 的产生代码, go的产生代码在 protoc-gen-go  (https://gi ...

  10. javaSwing文本框组件

    public class JTextFieldTest extends JFrame{    private static final long serialVersionUID = 1L;    p ...