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

人工智能

  • 人工智能诞生于20世纪50年代,当时计算机科学领域提出问题:计算机能否 “ 思考” ?人工智能的简介定义为:努力将通常由人类完成的智力任务自动化。从50年代到80年代人工智能的主流范式为:符号主义人工智能。即,只要程序员精心编写足够多的明确规则来处理知识,就可以实现与人类水平相当的人工智能。特别是在80年代的专家系统,这一方法达到顶峰。
  • 虽然符号主义人工智能适合用来解决定义明确的逻辑问题,但是面对图像分类、语音识别和语言翻译等问题,却难以给出明确的规则来解决此类复杂和模糊的问题。于是出现了一种新方法:机器学习!

机器学习

  • 查尔斯*巴贝奇发明了分析机,第一台通用的机械式计算机。
  • 阿兰*图灵,1950年发表论文:“ 计算机器和智能 ”【TURING A M. Computing machinery and intelligence[J].Mind,1950。文中介绍了图灵测试,还思考了一个问题:通用计算机是否能够学习创新?他得出的结论是“ 能 ”。
  • 机器学习的概念就来自于图灵的这个问题,图灵的这个问题引出了一种新的编程范式。
    在这里插入图片描述
  • 机器学习在20世纪90年代才开始蓬勃发展,机器学习与数理统计密切相关,但二者在几个重要方面有所不同。不同于统计学,机器学习经常用于处理复杂的大型数据集,用经典的统计分析(比如贝叶斯分析)来处理这种数据集是不切实际的。因此,机器学习(尤其是深度学习)呈现出相对较少的数学理论,并且是以工程为导向的。这是一门需要上手实践的学科,想法更多地是靠实践来证明,而不是靠理论推导!

从数据中学习表示

  • 进行机器学习的三个要素:(1)输入数据点;(2)预期输出的示例;(3)衡量算法效果好坏的方法。
  • 机器学习和深度学习的核心问题在于有意义的变换数据,机器学习中的学习是指:寻找更好数据表示的自动搜索过程
  • 机器学习的技术定义:在预先定义好的可能性空间中,利用反馈信号的指引来寻找输入数据的有用表示。

深度学习之深度

  • 深度学习:是机器学习的一个分支领域,它从数据中学习表示的一种新方法,强调从连续的层(layer)中进行学习,这些层对应于越来越有意义的表示。
  • 深度学习中的 “深” 是指:一系列连续的表示层。数据模型中包含多少层,这被称为模型的深度(depth)。
  • 深度学习中,这些分层表示几乎总是通过叫做神经网络的模型来学习得到的。神经网路的结构是逐层堆叠的。最好忘掉读过的深度学习与生物学之间的假想联系,就我们的目的而言,深度学习是从数据中学习表示的一种数学框架
  • 看一个多层网络如何对数字图像进行变换,以便识别图像中的数字:
    在这里插入图片描述
  • 由上图的过程,你可以将深度网络看作多级信息蒸馏操作:信息穿过连续的过滤器,其纯度越来越高。
  • 这就是深度学习的技术定义:学习数据表示的多级方法。这个想法很简单,但事实证明,非常简单的机制如果具有足够大的规模,将会产生魔法般的效果。

用三张图理解深度学习的工作原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 权重(weight):每层实现的变换由其权重来参数化(parameterize),也称为该层的参数。
  • 学习:为神经网络的所有层找到一组权重值,使得该网络能够将每个示例输入与其目标正确的一一对应。
  • 神经网络损失函数( loss function),也叫目标函数(objective function):衡量预测值和真实目标值之间的距离,衡量该网络在这个示例上的效果好坏。
  • 优化器:利用这个距离值作为反馈信号来对权重进行微调,以降低当前示例对应的损失值,这种调节由优化器完成,它实现了所谓的反向传播算法,这是深度学习的核心算法。
  • 训练循环(training loop):最开始随机赋值权重,损失很高,随着处理的示例越来越多,权重也向着正确的方向逐步微调,损失值也降低!将这种循环重复足够多的次数(通常对数千个示例进行数十次迭代),得到的权重值可以使损失函数最小。具有最小损失函数的网络,就是训练好的网络。

人工智能的未来

  • 在不远的未来,人工智能将会成为你的助手,甚至成为你的朋友。
  • 它会回答你的问题,帮助你教育孩子,并关注你的健康。它还会降生活用品送到你家门口,并开车将你从A送到B地。等等。不要相信短期的炒作,但一定要相信长期的愿景。人工智能终将到来!

2 机器学习简史

概率建模

  • 概率建模(probabilistic modeling):统计学原理在数据分析中的应用。
  • 朴素贝叶斯是一类基于应用贝叶斯定理的机器学习分类器,它假设输入数据的特征都是独立的。
  • Logistic 回归(logistic regression, 简称logreg):这是一种分类算法,不是回归算法。

早期神经网络

  • 尽管在20世纪50年代,人们就用简单的方式研究了神经网络的核心思想,但在很长一段时间里,一直没有训练大型神经网络的有效方法。
  • 在20世纪80年代中期,很多人都独立地重新发现了反向传播算法------一种利用梯度下降优化来训练一系列参数化运算链的方法。
  • 贝尔实验室于1989年第一次成功实现了神经网络的实践应用,当时 Yann LeCun 将卷积神经网络的早期思想与反向传播结合,将其应用于手写数字分类问题,由此得到名为 LeNet 的网络。
  • 20世纪90年代被美国邮政署采用,用于读取信封上的邮政编码。

核方法

  • 20世纪90年代,一种新的机器学习方法声名鹊起,那就是核方法(kernel method)。
  • 核方法是一组分类算法,其中最有名的就是支持向量机(SVM)。
  • SVM通过两步来寻找决策边界(decision boundary),划分为两块空间,分别对应于两个类别。(1)将数据映射到高维表示;(2)间隔最大化。
  • 核技巧:需要在新的表示空间中找到良好的决策超平面,你不需要在新空间中直接计算点的坐标,只需要在新空间中计算点对之间的距离。
  • 核函数:利用核函数可以高效的完成这种计算。通常是认为选择核函数。
  • 但是,SVM很难扩展到大型数据集,并且在图像分类问题上效果也不好。它是一种比较浅层的方法,因此想要将其应用于感知问题,首先需要手动提取出有用的表示(这叫做特征工程),但这一步很难,而且不稳定。

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

  • 决策树:是一种机器学习的方法。决策树的生成算法有ID3, C4.5和C5.0等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。
  • 随机森林: 随机森林是解决决策树经常对训练数据过拟合的一种方法,是许多决策树的集合,每棵树和其他树略有不同,对这些树的结果取平均值。
  • 梯度提升:是合并许多简单的模型(弱学习器:深度较小的树),添加的树越来越多,可以不断迭代提高性能。可能是目前处理非感知数据最好的算法之一。

回到神经网络

  • 但是仍有一些人在继续研究神经网络,2010年,神经网络开始取得重大突破;
  • 2011年,IDSIA 的 Dan Ciresan 开始利用GPU训练深度神经网络赢得学术性的图像分类竞赛;(这是现代深度学习第一次在实践中成功)
  • 2012年,由 Alex Krizhevsky 带领并由Geoffrey Hinton提供建议的小组,实现了83.6%的top-5精度,ImageNet 比赛;(这是一个转折、一个重大突破)
  • 此后,这项竞赛每年都由深度卷积神经网络所主导,2015年精度达到96.4%,此后ImageNet被认为是一个解决了的问题!
  • 更一般的说,深度卷积神经网络(convnet)在感知任务上都有效。

深度学习有何不同

  • 深度学习让解决问题变得更加简单,因为它将特征工程完全自动化。
    -注意,在实践中如果连续应用浅层学习方法,其收益会随着层数增加而迅速降低,因为三层模型中最优的第一表示层并不是单层或双层模型中最优的第一表示层。
  • 深度学习的变革在于:模型可以同时学习所有表示层,而不是依次连续学习(贪婪学习)。通过共同的特征学习,一旦模型修改某个内部特征,所有依赖于该特征的其他特征都会相应地自动调节适应,无须人为干预。

机器学习现状

  • Kaggle 竞赛,了解机器学习算法和工具的现状!
  • 在2016年和2017年,Kaggle上主要有两大方法:梯度提升机和深度学习。具体说,梯度提升机用于处理结构化数据的问题,而深度学习则用于图像分类等感知问题。前者几乎都使用 XGBoost库,后者大多使用Keras库。
  • 要想在如今的应用机器学习中取得成功,你应该熟悉这两种技术梯度提升机,用于浅层学习问题;深度学习,用于感知问题。

深度学习、现在

  • 推动机器学习进步的三种技术力量:(1)硬件;(2)数据集和基准;(3)算法上的改进。
  • 深度学习的大众化:Theano 和 tensorflow是两个符号式的张量运算的python框架,都支持自动求微分。Keras等用户友好型库则使深度学习变得像操作乐高积木一样简单。

参考内容

Deep Learning with python

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐