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

三者之间的关系

1.1.1 人工智能

人工智能的简洁定义如下:努力将通常由人类完成的智力任务自动化。因此,人工智能是一个综合性的领域,不仅包括机器学习与深度学习,还包括更多不涉及学习的方法。

1.1.2 机器学习

在经典的程序设计(即符号主义人工智能的范式)中,人们输入的是规则(即程序)和需要根据这些规则进行处理的数据,系统输出的是答案(见图 1-2)。利用机器学习,人们输入的是数据和从这些数据中预期得到的答案,系统输出的是规则。这些规则随后可应用于新的数据,并使计算机自主生成答案。

机器学习系统是训练出来的,而不是明确地用程序编写出来的 

1.1.3 从数据中学习表示

给定包含预期结果的示例,机器学习将会发现执行一项 数据处理任务的规则。

我们需要以下三个要素来进行机器学习

  • 输入数据点。
  • 预期输出的示例。
  • 衡量算法效果好坏的方法。

机器学习和深度学习的核心问题在于有意义地变换数据,换句话说,在于学习输入数据的有用表示(representation)——这种表示可以让数据更接近预期输出。

机器学习模型 都是为输入数据寻找合适的表示——对数据进行变换,使其更适合 手头的任务(比如分类任务)。

可以看到,图中有一些白点和一些黑点。假设我们想要开发一 个算法,输入一个点的坐标 (x, y),就能够判断这个点是黑色还是白 色。在这个例子中:

输入是点的坐标;

预期输出是点的颜色;

衡量算法效果好坏的一种方法是,正确分类的点所占的百分比。

机器学习中的学习指的是,寻找更好数据表示的自动搜索过程。

所有机器学习算法都包括自动寻找这样一种变换:这种变换可以根据任务将数据转化为更加有用的表示。

机器学习的技术定义:在预先定义好的可能性空间中,利用反馈信号的指引来寻找 输入数据的有用表示。 

1.1.4 深度学习

数据模型中 包含多少层,这被称为模型的深度(depth)。这一领域的其他名称包括分层表示学习(layered representations learning)和层级表示学习(hierarchical representations learning)。

在深度学习中,这些分层表示几乎总是通过叫作神经网络(neural network)的模型来学习 得到的。

以将深度网络看作多级信息蒸馏操作:信息穿过连续的过 滤器,其纯度越来越高(即对任务的帮助越来越大)。 

1.1.5 理解深度学习的工作原理

  • 机器学习是将输入(比如图像)映射到目标(比如标签“猫”),这一过 程是通过观察许多输入和目标的示例来完成的
  • 深度神经网络通过一系列简单的数 据变换(层)来实现这种输入到目标的映射,而这些数据变换都是通过观察示例学习到的。

 神经网络中每层对输入数据所做的具体操作保存在该层的权重(weight)中,其本质是一 串数字。用术语来说,每层实现的变换由其权重来参数化(parameterize,见图 1-7)。权重有时 也被称为该层的参数(parameter)

想要控制神经网络的输出,就需要能够衡量该 输出与预期值之间的距离。这是神经网络损失函数(loss function)的任务,该函数也叫目标 函数(objective function)。

损失函数的输入是网络预测值与真实目标值(即你希望网络输出的 结果),然后输出是一个距离值,衡量该网络在这个示例上的效果好坏(见图 1-8)

深度学习的基本技巧是利用这个距离值作为反馈信号来对权重值进行微调,以降低当前示例对应的损失值(见图 1-9)。这种调节由优化器(optimizer)来完成,它实现了所谓的反向传播(backpropagation)算法 。

随着网络处理的示例越来越多,权重值也在向正确的方向逐步微调,损失值也逐渐降低。这就是训练循环(training loop),将这种循环重 复足够多的次数(通常对数千个示例进行数十次迭代),得到的权重值可以使损失函数最小。

1.2 机器学习简史

1.2.1 概率建模

概率建模(probabilistic modeling)是统计学原理在数据分析中的应用。它是最早的机器学习形式之一,至今仍在广泛使用。其中最有名的算法之一就是朴素贝叶斯算法

  • 朴素贝叶斯是一类基于应用贝叶斯定理的机器学习分类器,它假设输入数据的特征都是独立的。

    对于给定的训练数据,朴素贝叶斯先基于特征条件独立假设学习输入和输出的联合概率分布,然后基于此分布对于新的实例,利用贝叶斯定理计算出最大的后验概率。朴素贝叶斯不会直接学习输入输出的联合概率分布,而是通过学习类的先验概率 和类条件概率 来完成。

  • 另一个密切相关的模型是 logistic 回归(logistic regression,简称 logreg),它有时被认为是 现代机器学习的“hello world”。不要被它的名称所误导——logreg 是一种分类算法,而不是回 归算法。

1.2.2 早期神经网络

贝尔实验室于 1989 年第一次成功实现了神经网络的实践应用,当时 Yann LeCun 将卷积神经网络的早期思想与反向传播算法相结合,并将其应用于手写数字分类问题,由此得到名为 LeNet 的网络,在 20 世纪 90 年代被美国邮政署采用,用于自动读取信封上的邮政编码。

1.2.3 核方法

核方法(kernel method)是一组分类算法,其中最有名的就是支持向量机(SVM, support vector machine)。

SVM 的目标是通过在属于两个不同类别的两组数据点之间找到良好决策边界(decision boundary,见图 1-10)来解决分类问题。决策边界可以看作一条直线或一个平面,将训练数据 划分为两块空间,分别对应于两个类别。对于新数据点的分类,你只需判断它位于决策边界的 哪一侧。

SVM 通过两步来寻找决策边界。

(1) 将数据映射到一个新的高维表示,这时决策边界可以用一个超平面来表示(如果数据像 图 1-10 那样是二维的,那么超平面就是一条直线)

(2) 尽量让超平面与每个类别最近的数据点之间的距离最大化,从而计算出良好决策边界(分 割超平面),这一步叫作间隔最大化(maximizing the margin)。这样决策边界可以很好 地推广到训练数据集之外的新样本。

将数据映射到高维表示从而使分类问题简化,就需要用到核技巧,其基本思想是:要想在新的表示空间中找到良好的决策超平面,你不需要在新空间中直接计算点的坐标,只需要在新空间中计算点对之间的距离,而利用核函数(kernel function)可以高效 地完成这种计算。核函数是一个在计算上能够实现的操作,将原始空间中的任意两点映射为这 两点在目标表示空间中的距离,完全避免了对新表示进行直接计算。核函数通常是人为选择的, 而不是从数据中学到的——对于 SVM 来说,只有分割超平面是通过学习得到的。

但是,SVM 很难扩展到大型数据集,并且在图像分类等感知问题上的效果也不好。SVM 是一种浅层方法,因此要想将其应用于感知问题,首先需要手动提取出有用的表示(这 叫作特征工程),这一步骤很难,而且不稳定。

1.2.4 决策树、随机森林与梯度提升机

决策树(decision tree)是类似于流程图的结构,可以对输入数据点进行分类或根据给定输 入来预测输出值(见图 1-11)。

随机森林(random forest)算法,它引入了一种健壮且实用的决策树学习方法,即首先构建许多决策树,然后将它们的输出集成在一起。随机森林适用于各种各样的问题—— 对于任何浅层的机器学习任务来说,它几乎总是第二好的算法。

梯度提升机(gradient boosting machine)也是将弱预测模型(通常是决策树)集成的机器学习技术。它使用了梯度提升方法,通过迭代地训练新模型来专门解决之前模型的弱点,从而改进任何机器学习模型的效果。将梯度提升技术应用于决策树时,得到 的模型与随机森林具有相似的性质,但在绝大多数情况下效果都比随机森林要好。它可能是目 前处理非感知数据最好的算法之一

1.2.5 回到神经网

自 2012 年以来,深度卷积神经网络CNN(convnet)已成为所有计算机视觉任务的首选算法。更一般地说,它适用于所有感知任务。

1.2.6 深度学习有何不同

在实践中,如果连续应用浅层学习方法,其收益会随着层数增加迅 速降低,因为三层模型中最优的第一表示层并不是单层或双层模型中最优的第一表示层

深度 学习的变革性在于,模型可以在同一时间共同学习所有表示层,而不是依次连续学习(这被称 为贪婪学习)。通过共同的特征学习,一旦模型修改某个内部特征,所有依赖于该特征的其他特 征都会相应地自动调节适应,无须人为干预。一切都由单一反馈信号来监督:模型中的每一处 变化都是为了最终目标服务。这种方法比贪婪地叠加浅层模型更加强大,因为它可以通过将复杂、 抽象的表示拆解为很多个中间空间(层)来学习这些表示,每个中间空间仅仅是前一个空间的 简单变换。

深度学习从数据中进行学习时有两个基本特征:第一,通过渐进的、逐层的方式形成越来 越复杂的表示;第二,对中间这些渐进的表示共同进行学习,每一层的变化都需要同时考虑上 下两层的需要。总之,这两个特征使得深度学习比先前的机器学习方法更加成功

1.3 为什么是深度学习,为什么是现在

深度学习用于计算机视觉的两个关键思想,即卷积神经网络和反向传播。

长短期记忆(LSTM,long short-term memory)算法是深度学习处理时间序列的基础。

三种技术力量在推动着机器学习的进步

  • 硬件
  • 数据集和基准
  • 算法上的改进

Python深度学习-第一章、什么是深度学习相关推荐

  1. 路飞学城python电子书_路飞学城-Python开发集训-第一章

    路飞学城-Python开发集训-第一章 1.本章学习心得.体会 我: 间接性勤奋. 我: 学习方法论:输入--输出---纠正 我: 对对对 走出舒适区, 换圈子, 转思路,投资自我加筹码. 我: 圈子 ...

  2. Python精确指南-第一章环境

    1       Python开发环境搭建 1.1     Python版本介绍 Python目前官方运营维护的版本分为2.x版本和3.x版本. 2.x版本相对来说,稳定性更高,兼容的主流第三方扩展库更 ...

  3. QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面

    QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面 效果截图: 创建上文件夹Designers,使用Designer设计三个UI界面: First.ui Second.ui T ...

  4. 逻辑学学习:第一章:导论

    逻辑学学习:第一章:导论 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 开始学习逻辑学,教材为<<普通逻辑学>>,作者杨树森, ...

  5. 计算机第一章学什么,第一章计算机基础知识学习课件.ppt

    第一章计算机基础知识学习课件.ppt 3.2.6 表单标记(FORM) 作用:定义一个表单,供后续设计向其中加入表单对象. 格式: 属性:1. action:设定处理程序的文件名. 2. method ...

  6. 【Python CLI】第一章 CLI 应用程序介绍

    系列文章目录 [Python CLI]第一章 CLI 应用程序介绍 [Python CLI]第二章 命令解析 [Python CLI]第三章 格式化输出 [Python CLI]第四章 程序控制台 文 ...

  7. Deep learning with python notebooks 笔记 第一章 深度学习基础

    第一章 深度学习基础 好的图表比文字传达的信息量多 图1-1帮助理清了人工智能.机器学习和深度学习之间的关系. 图1-2 清晰的阐述了经典程序设计范式和机器学习一种新的编程范式的不同.两种范式引出了两 ...

  8. python爬虫学习第一章

    <!DOCTYPE html> python爬虫第一章 python网络爬虫的学习 什么是网络爬虫 按照特定需求,从互联网中搜索有用信息网页进行过滤,就叫网络爬虫. 网络爬虫算法 当浏览信 ...

  9. 心向天蓝,Python学习第一章之列表一

    心向天蓝,Python学习第一程之列表一 下面这篇是关于列表的详细操作和介绍: 列表:是由一系列按特定顺序排列的元素组成. 在列表里,你可以加入任何你想加入的元素,可以是字母表里的任何元素,也可以是数 ...

  10. 01_01 python机器学习_第一章学习内容整理_加载样本数据绘制散点图

    第一章学习内容整理_加载样本数据&绘制散点图 01 常用包说明 python可以解决很多问题,相应解决方案使用的包也很多,不太好记忆. 为了便于记忆,用大白话简单描述一下各个包的功能. # 科 ...

最新文章

  1. java 中断线程 wait_Java 线程中断(interrupt)与阻塞 (park)的区别
  2. 第28月第10天 iOS动态库
  3. FZU Problem 2238 Daxia Wzc's problem
  4. 图解丨在嵌入式设备上实现HTTP服务器
  5. 找一个程序员当男朋友是什么样的体验?
  6. 管道符和作业控制 shell变量 环境变量配置文件
  7. pku2750 Potted Flower
  8. 麒麟芯片或“绝版”,华为多系列手机涨价​;一加回应“刘作虎回归OPPO”;DBeaver 7.2 发布| 极客头条
  9. matlab计算macd_[原创]基于MATLAB的一个简单的交易策略(基于MACD)的Matlab代码
  10. [转载] python 中 setattr() 函数 和 getarrr() 函数
  11. go兼容java_兼容dubbo的微服务框架dubbogo;dubbo的完整go语言实现
  12. 8.4文件系统的管理与挂载2
  13. java list t 类_Java ListT 、List?、ListObject、ListE、ListU的区别
  14. 廖碧儿现身亲吻爱犬 徐濠萦惋惜惠妮休斯顿离世
  15. IUV“经世杯”option3X
  16. 国内网站用香港服务器会被封吗?
  17. STC单片机基于Keil平台在线调试仿真
  18. 基于JAVA铝塑门窗的研制和生产管理计算机毕业设计源码+数据库+lw文档+系统+部署
  19. iOS后台模式以及后台持续运行
  20. 微信小程序web-view的{errMsg: “invokeMiniProgramAPI:ok“}报错解决方案

热门文章

  1. 我喜欢用计算机300,我喜欢的人_作文300字_小学四年级作文_第一范文网
  2. 正确插入目录并且自由更新
  3. 清除Marco1!$A$1提示软件日志.
  4. Shiro介绍(四):定义自己的安全域Realm
  5. myeclipse误删文件恢复
  6. 在 360 度绩效评估中应该问的 20 个问题
  7. 超详细傻瓜iPhone自定义来电铃声教程
  8. shuipfcms二次开发之图片上传
  9. 线性代数及矩阵论(八)
  10. 数据库-mysql MHA集群方案测试