人工智能
什么是人工智能、机器学习与深度学习(见图1-1)?这三者之间有什么关系?
 
人工智能的简洁定义如下:努力将通常由人类完成的智力任务自动化。因此,人工智能是一个
综合性的领域,不仅包括机器学习与深度学习,还包括更多不涉及学习的方法。
例如,早期的国际象棋程序仅包含程序员精心编写的硬编码规则,并不属于机器学习。在相当
长的时间内,许多专家相信,只要程序员精心编写足够多的明确规则来处理知识,就可以实现
与人类水平相当的人工智能。这一方法被称为符号主义人工智能(symbolic AI),从20 世纪50
年代到80 年代末是人工智能的主流范式。
在20 世纪80 年代的专家系统(expert system)热潮中,这一方法的热度达到了顶峰。
虽然符号主义人工智能适合用来解决定义明确的逻辑问题,比如下国际象棋,但它难以给
出明确的规则来解决更加复杂、模糊的问题,比如图像分类、语音识别和语言翻译。于是出现
了一种新的方法来替代符号主义人工智能,这就是机器学习(machine learning)。
 
 
机器学习
在经典的程序设计(即符号主义人工智能的范
式)中,人们输入的是规则(即程序)和需要根据这些规则进行处理的数据,系统输出的是答案
(见图1-2)。利用机器学习,人们输入的是数据和从这些数据中预期得到的答案,系统输出的是
规则。这些规则随后可应用于新的数据,并使计算机自主生成答案。
 
机器学习系统是训练出来的,而不是明确地用程序编写出来的。
机器学习(尤其是深度学习)呈现出相对较少的数学理论(可能太少了),并且是以工程为导向的。这是一门需要上手实践的
学科,想法更多地是靠实践来证明,而不是靠理论推导。
 
从数据中学习表示
我们需要以下三个要素来进行机器学习
  • 输入数据点。
  • 预期输出的示例
  • 衡量算法效果好坏的方法
机器学习和深度学习的核心问题在于有意义地变换数据,换句话说,在
于学习输入数据的有用表示(representation)——这种表示可以让数据更接近预期输出
 
机器学习的技术定义:在预先定义好的可能性空间中,利用反馈信号的指引来寻找
输入数据的有用表示。
 
深度学习
深度学习是机器学习的一个分支领域:它是从数据中学习表示的一种新方法,强调从连续
的层(layer)中进行学习,这些层对应于越来越有意义的表示。
 
深度学习模型不是大脑模型。没有证据表明大脑的学习机制与现代深度学习模型所使用的相同
就我们的目的而言,深度学习是从数据中学习表示的一种数学框架。
 
 
这个网络将数字图像转换成与原始图像差别越来越大的表示,而其中关于
最终结果的信息却越来越丰富。你可以将深度网络看作多级信息蒸馏操作:信息穿过连续的过
滤器,其纯度越来越高(即对任务的帮助越来越大)。
这就是深度学习的技术定义:学习数据表示的多级方法。这个想法很简单,但事实证明,
非常简单的机制如果具有足够大的规模,将会产生魔法般的效果。
 
 
三张图理解深度学习的工作原理
神经网络中每层对输入数据所做的具体操作保存在该层的权重(weight)中,其本质是一串数字。
学习的意思是为神经网络的所有层找到一组权重值,使得该网络能够将每个示例输入与其目标正确地一一对应
 
 
想要控制神经网络的输出,就需要能够衡量该输出与预期值之间的距离。这是神经网络损失函数(loss function)的任务,该函数也叫目标函数(objective function)。
损失函数的输入是网络预测值与真实目标值(即你希望网络输出的结果),然后计算一个距离值,衡量该网络在这个示例上的效果好坏
 
深度学习的基本技巧是利用这个距离值作为反馈信号来对权重值进行微调,以降低当前示
例对应的损失值(见图1-9)。这种调节由优化器(optimizer)来完成,它实现了所谓的反向
传播(backpropagation)算法,这是深度学习的核心算法。
 
 
深度学习不一定总是解决问题的正确工具:有时没有足够的数据,深度学习不适用;有
时用其他算法可以更好地解决问题。
 
概率建模
概率建模(probabilistic modeling)是统计学原理在数据分析中的应用。它是最早的机器学
习形式之一,至今仍在广泛使用。其中最有名的算法之一就是朴素贝叶斯算法。
朴素贝叶斯是一类基于应用贝叶斯定理的机器学习分类器,它假设输入数据的特征都是独
立的。
 
另一个密切相关的模型是logistic 回归(logistic regression,简称logreg),它有时被认为是
现代机器学习的“hello world”。不要被它的名称所误导——logreg 是一种分类算法,而不是回
归算法
 
 
早期神经网络
贝尔实验室于1989 年第一次成功实现了神经网络的实践应用,当时Yann LeCun 将卷积
神经网络的早期思想与反向传播算法相结合,并将其应用于手写数字分类问题,由此得到名为
LeNet 的网络,在20 世纪90 年代被美国邮政署采用,用于自动读取信封上的邮政编码。
 
核方法
核方法是一组分类算法,其中最有名的就是支持向量机(SVM,
support vector machine)
SVM 的目标是通过在属于两个不同类别的两组数据点之间找到良好决策边界(decision
boundary,见图1-10)来解决分类问题。决策边界可以看作一条直线或一个平面,将训练数据
划分为两块空间,分别对应于两个类别。对于新数据点的分类,你只需判断它位于决策边界的
哪一侧。
 
 
 
SVM 通过两步来寻找决策边界。
(1) 将数据映射到一个新的高维表示,这时决策边界可以用一个超平面来表示(如果数据像
图1-10 那样是二维的,那么超平面就是一条直线)。
 
(2) 尽量让超平面与每个类别最近的数据点之间的距离最大化,从而计算出良好决策边界(分
割超平面),这一步叫作间隔最大化(maximizing the margin)。这样决策边界可以很好
地推广到训练数据集之外的新样本。
 
核技巧
其基本思想是:要想在新的表示空间中找到良好的决策超平面,你不需要在新空间中直接计算
点的坐标,只需要在新空间中计算点对之间的距离,而利用核函数(kernel function)可以高效
地完成这种计算。核函数是一个在计算上能够实现的操作,将原始空间中的任意两点映射为这
两点在目标表示空间中的距离,完全避免了对新表示进行直接计算。核函数通常是人为选择的,
而不是从数据中学到的——对于SVM 来说,只有分割超平面是通过学习得到的。
 
SVM 刚刚出现时,在简单的分类问题上表现出了最好的性能
但是,SVM 很难扩展到大型数据集,并且在图像分类等感知问题上的效果也不好。SVM
是一种比较浅层的方法,因此要想将其应用于感知问题,首先需要手动提取出有用的表示(这
叫作特征工程),这一步骤很难,而且不稳定。
 
决策树
决策树(decision tree)是类似于流程图的结构,可以对输入数据点进行分类或根据给定输
入来预测输出值(见图1-11)。
 
 
 
随机森林(random forest)算法
它引入了一种健壮且实用的决策树学习方法,即
首先构建许多决策树,然后将它们的输出集成在一起。
 
 
梯度提升机
梯度提升机(gradient boosting machine)也是将弱预测模型(通常是决策树)集成的机器学习技术。它使用了梯度提升方法,通过迭代地训练新模型来专门解决
之前模型的弱点,从而改进任何机器学习模型的效果。将梯度提升技术应用于决策树时,得到
的模型与随机森林具有相似的性质,但在绝大多数情况下效果都比随机森林要好。它可能是目
前处理非感知数据最好的算法之一
 
深度学习有何不同
两个基本特征:
第一,通过渐进的、逐层的方式形成越来越复杂的表示;
第二,对中间这些渐进的表示共同进行学习,每一层的变化都需要同时考虑上下两层的需要。
总之,这两个特征使得深度学习比先前的机器学习方法更加成功。
 
 
深度学习重要的性质
1. 简单。深度学习不需要特征工程,它将复杂的、不稳定的、工程量很大的流程替换为简
单的、端到端的可训练模型,这些模型通常只用到五六种不同的张量运算。
2. 可扩展。深度学习非常适合在GPU或TPU上并行计算,因此可以充分利用摩尔定律。此外,
深度学习模型通过对小批量数据进行迭代来训练,因此可以在任意大小的数据集上进行
训练
3. 多功能与可复用。与之前的许多机器学习方法不同,深度学习模型无须从头开始就可以
在附加数据上进行训练,因此可用于连续在线学习,这对于大型生产模型而言是非常重
要的特性。此外,训练好的深度学习模型可用于其他用途,因此是可以重复使用的
 
 
 
 
 
 
 

Python深度学习读书笔记-1.什么是深度学习的更多相关文章

  1. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

  2. 强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)

    强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods) 学习笔记: Reinforcement Learning: An Introduction, Richa ...

  3. 强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces)

    强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces) 学习笔记: Reinforcement Learning: An Introduction, Richard S. S ...

  4. 强化学习读书笔记 - 11 - off-policy的近似方法

    强化学习读书笔记 - 11 - off-policy的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton and ...

  5. 强化学习读书笔记 - 10 - on-policy控制的近似方法

    强化学习读书笔记 - 10 - on-policy控制的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton an ...

  6. 强化学习读书笔记 - 09 - on-policy预测的近似方法

    强化学习读书笔记 - 09 - on-policy预测的近似方法 参照 Reinforcement Learning: An Introduction, Richard S. Sutton and A ...

  7. 深度学习读书笔记之RBM(限制波尔兹曼机)

    深度学习读书笔记之RBM 声明: 1)看到其他博客如@zouxy09都有个声明,老衲也抄袭一下这个东西 2)该博文是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的 ...

  8. C语言深度解剖读书笔记

    开始本节学习笔记之前,先说几句题外话.其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客.正巧还刚刚看完了国嵌唐老师的C语言视频,觉得两者是异曲同工,所以就把两者一起记录下 ...

  9. C语言深度解剖读书笔记(6.函数的核心)

    对于本节的函数内容其实就没什么难点了,但是对于函数这节又涉及到了顺序点的问题,我觉得可以还是忽略吧. 本节知识点: 1.函数中的顺序点:f(k,k++);  这样的问题大多跟编译器有关,不要去刻意追求 ...

随机推荐

  1. Python类函数调用:missing 1 required positional argument

    在Python中,应该先对类进行实例化,然后在应用类.注意,实例化的过程是应该加括号的.

  2. php小程序生成二维码

    <?php getwxacode(); //生成二维码 function getwxacode(){ $url = "https://api.weixin.qq.com/wxa/get ...

  3. mybatis一对多关联关系映射

    mybatis一对多关联关系映射 一对多关联关系只需要在多的一方引入少的一方的主键作为外键即可.在实体类中就是反过来,在少的一方添加多的一方,声明一个List 属性名 作为少的一方的属性. 用户和订单 ...

  4. 定义一个外部类Father,有成员变量name并赋一个初值。

    1.内部类的使用:(1)定义一个外部类Father,有成员变量name并赋一个初值.(2)定义一个内部类Child,并定义一个getValue()方法,在方法中调用外部类Father的name变量.( ...

  5. 表格强制换行 table-layout:fixed

    如果想要一个table固定大小,里面的文字强制换行(尤其是在一长串英文文本,并且中间无空格分隔的情况下),以达到使过长的文字不撑破表格的目的,一般是使用样式:table-layout:fixed.

  6. 7.利用canvas和js画一个渐变的

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 错误 “SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, ie浏览器兼容问题

    参考:https://www.telerik.com/blogs/help!-running-fiddler-fixes-my-app- https://www.cnblogs.com/OpenCod ...

  8. Python操作Redis,你要的都在这了!

    Redis是一个基于内存的高效的键值型非关系型数据库,存取效率极高,而且支持多种存储数据结构,使用也非常简单.本节中,我们就来介绍一下Python的Redis操作,主要介绍RedisPy这个库的用法. ...

  9. Wine-Staging 4.9 发布,增添一些新补丁

    Wine-Staging的工作还在继续,到4.9版为止,在上游Wine代码库上有超过830个补丁. 在上周五的Wine 4.9发布之后,Wine-Staging 4.9已经发布了,之前的一些暂存工作现 ...

  10. 一、模型验证CoreWebApi 管道方式(非过滤器处理)2(IApplicationBuilder扩展方法的另一种写法)

    一. 自定义中间件类的方式用一个单独类文件进行验证处理 Configure下添加配置 //app.AddAuthorize(); AddAuthorize因为参数(this IApplicationB ...