《百度架构师手把手带你零基础实践深度学习》笔记-2机器学习和深度学习综述

内容纲要

人工智能、机器学习、深度学习的关系

概括来说,人工智能、机器学习和深度学习覆盖的技术范畴是逐层递减的,三者的关系为:人工智能 > 机器学习 > 深度学习

人工智能(ArtificialIntelligence,AI)是最宽泛的概念,是研发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。由于这个定义只阐述了目标,而没有限定方法,因此实现人工智能存在的诸多方法和分支,导致其变成一个“大杂烩”式的学科。

机器学习(MachineLearning,ML)是当前比较有效的一种实现人工智能的方式。

深度学习(DeepLearning,DL)是机器学习算法中最热门的一个分支,近些年取得了显著的进展,并替代了大多数传统机器学习算法。

机器学习

机器学习是专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构,使之不断改善自身的性能。

机器学习的实现

机器学习的实现可以分成两步:训练预测,类似于归纳和演绎:

  • 归纳: 从具体案例中抽象一般规律,机器学习中的“训练”亦是如此。从一定数量的样本(已知模型输入X和模型输出Y)中,学习输出Y与输入X的关系(可以想象成是某种表达式)。
  • 演绎: 从一般规律推导出具体案例的结果,机器学习中的“预测”亦是如此。基于训练得到的Y与X之间的关系,如出现新的输入X,计算出输出Y。通常情况下,如果通过模型计算的输出和真实场景的输出一致,则说明模型是有效的。

机器学习的方法论

案例:机器从牛顿第二定律实验中学习知识

牛顿第二定律:物体加速度的大小跟作用力成正比,跟物体的质量成反比,与物体质量的倒数成正比。

拟合[数理科学术语]:形象的说,拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。因为这条曲线有无数种可能,从而有各种拟合方法。拟合的曲线一般可以用函数表示,根据这个函数的不同有不同的拟合名字。常用的拟合方法有如最小二乘曲线拟合法等。

拟合以及插值还有逼近是数值分析的三大基础工具,通俗意义上它们的区别在于:拟合是已知点列,从整体上靠近它们;插值是已知点列并且完全经过点列;逼近是已知曲线,或者点列,通过逼近使得构造的函数无限靠近它们。

模型有效的基本条件是能够拟合已知的样本。

损失函数(损失Loss):衡量模型预测值和真实值差距的评价函数

确定模型参数示意图:

假设机器通过尝试答对(最小化损失)大量的习题(已知样本)来学习知识(模型参数www),并期望用学习到的知识所代表的模型H(w,x)H(w, x)H(w,x),回答不知道答案的考试题(未知样本)。

  • 最小化损失是模型的优化目标
  • 实现损失最小化的方法称为优化算法,也称为寻解算法(找到使得损失函数最小的参数解)。
  • 参数W和输入X组成公式的基本结构称为假设。

构成模型的三个关键要素:

  • 模型假设
  • 评价函数(损失/优化目标)
  • 优化算法

模型结构

模型假设、评价函数和优化算法是如何支撑机器学习流程的呢?
见下图(机器学习流程):

  • 模型假设:世界上的可能关系千千万,漫无目标的试探Y\~X之间的关系显然是十分低效的。因此假设空间先圈定了一个模型能够表达的关系可能,如蓝色圆圈所示。机器还会进一步在假设圈定的圆圈内寻找最优的Y\~X关系,即确定参数w。
  • 评价函数(损失/优化目标):寻找最优之前,我们需要先定义什么是最优,即评价一个Y\~X关系的好坏的指标。通常衡量该关系是否能很好的拟合现有观测样本,将拟合的误差最小作为优化目标。
  • 优化算法:设置了评价指标后,就可以在假设圈定的范围内,将使得评价指标最优(损失函数最小/最拟合已有观测样本)的Y\~X关系找出来,这个寻找最优解的方法即为优化算法。最笨的优化算法即按照参数的可能,穷举每一个可能取值来计算损失函数,保留使得损失函数最小的参数作为最终结果。

从上述过程可以得出,机器学习的过程与牛顿第二定律的学习过程基本一致,都分为假设、评价和优化三个阶段:

  • 假设:通过观察加速度a和作用力F的观测数据,假设a和F是线性关系,即a = w ⋅ F。
  • 评价:对已知观测数据上的拟合效果好,即w ⋅ F计算的结果要和观测的a尽量接近。
  • 优化:在参数w的所有可能取值中,发现w = 1/m可使得评价最好(最拟合观测样本)。

机器执行学习任务的框架体现了其学习的本质是“参数估计”(Learning is parameter estimation)。

上述方法论使用更规范化的表示如下图所示:

未知目标函数f,以训练样本D=(x1,y1), ... ,(xn,yn)为依据。从假设集合H中,通过学习算法A找到一个函数g。如果g能够最大程度的拟合训练样本D,那么可以认为函数g就接近于目标函数f。

在此基础上,许多看起来完全不一样的问题都可以使用同样的框架进行学习,如科学定律、图像识别、机器翻译自动问答等,它们的学习目标都是拟合一个“大公式f”。

深度学习

今天,多数机器学习任务都可以使用深度学习模型解决,尤其在语音、计算机视觉和自然语言处理等领域,深度学习模型的效果比传统机器学习算法有显著提升。

相比传统的机器学习算法,深度学习做出了哪些改进呢?

两者在理论结构上是一致的,即:模型假设、评价函数和优化算法,其根本差别在于假设的复杂度

如下(图像识别)所示,对于美女照片,人脑可以接收到五颜六色的光学信号,能快速反应出这张图片是一位美女,而且是程序员喜欢的类型。但对计算机而言,只能接收到一个数字矩阵,对于美女这种高级的语义概念,从像素到高级语义概念中间要经历的信息变换的复杂性是难以想象的。
深度学习的模型复杂度难以想象

这种变换已经无法用数学公式表达,因此研究者们借鉴了人脑神经元的结构,设计出神经网络的模型,如下图所示。
模拟人脑结构,针对各种任务设计不同的深度学习模型

  • (a)展示了神经网络基本单元-感知机的设计方案,其处理信息的方式与人脑中的单一神经元有很强的相似性;
  • (b)展示了几种经典的神经网络结构(后续的章节中会详细阐述),类似于人脑中多种基于大量神经元连接而形成的不同职能的器官。

神经网络的基本概念

人工神经网络包括多个神经网络层,如:卷积层、全连接层、LSTM等,每一层又包括很多神经元,超过三层的非线性神经网络都可以被称为深度神经网络。

通俗的讲,深度学习的模型可以视为是输入到输出的映射函数,如图像到高级语义(美女)的映射,足够深的神经网络理论上可以拟合任何复杂的函数。因此神经网络非常适合学习样本数据的内在规律和表示层次,对文字、图像和语音任务有很好的适用性。这几个领域的任务是人工智能的基础模块,因此深度学习被称为实现人工智能的基础也就不足为奇了。

下图是神经网络基本结构
神经网络基本结构

  • 神经元: 神经网络中每个节点称为神经元,由两部分组成:
    • 加权和:将所有输入加权求和。
    • 非线性变换(激活函数):加权和的结果经过一个非线性函数变换,让神经元计算具备非线性的能力。
  • 多层连接: 大量这样的节点按照不同的层次排布,形成多层的结构连接起来,即称为神经网络。
  • 前向计算: 从输入计算输出的过程,顺序从网络前至后。
  • 计算图: 以图形化的方式展现神经网络的计算逻辑又称为计算图,也可以将神经网络的计算图以公式的方式表达

    由此可见,神经网络并没有那么神秘,它的本质是一个含有很多参数的“大公式”

深度学习的发展历程

神经网络思想的提出已经是70多年前的事情了,现今的神经网络和深度学习的设计理论是一步步趋于完善的。在这漫长的发展岁月中,一些取得关键突破的闪光时刻,值得深度学习爱好者们铭记。

深度学习发展历程
深度学习发展历程

  • 1940年代:首次提出神经元的结构,但权重是不可学的。
  • 50-60年代:提出权重学习理论,神经元结构趋于完善,开启了神经网络的第一个黄金时代。
  • 1969年:提出异或问题(人们惊讶的发现神经网络模型连简单的异或问题也无法解决,对其的期望从云端跌落到谷底),神经网络模型进入了被束之高阁的黑暗时代。
  • 1986年:新提出的多层神经网络解决了异或问题,但随着90年代后理论更完备并且实践效果更好的SVM等机器学习模型的兴起,神经网络并未得到重视。
  • 2010年左右:深度学习进入真正兴起时期。随着神经网络模型改进的技术在语音和计算机视觉任务上大放异彩,也逐渐被证明在更多的任务,如自然语言处理以及海量数据的任务上更加有效。至此,神经网络模型重新焕发生机,并有了一个更加响亮的名字:深度学习。

为何神经网络到2010年后才焕发生机呢?这与深度学习成功所依赖的先决条件:大数据涌现、硬件发展和算法优化有关。

  • 大数据是神经网络发展的有效前提。神经网络和深度学习是非常强大的模型,需要足够量级的训练数据。时至今日,之所以很多传统机器学习算法和人工特征依然是足够有效的方案,原因在于很多场景下没有足够的标记数据来支撑深度学习。深度学习的能力特别像科学家阿基米德的豪言壮语:“给我一根足够长的杠杆,我能撬动地球!”。深度学习也可以发出类似的豪言:“给我足够多的数据,我能够学习任何复杂的关系”。但在现实中,足够长的杠杆与足够多的数据一样,往往只能是一种美好的愿景。直到近些年,各行业IT化程度提高,累积的数据量爆发式地增长,才使得应用深度学习模型成为可能。

  • 依靠硬件的发展和算法的优化。现阶段,依靠更强大的计算机、GPU、autoencoder预训练和并行计算等技术,深度学习在模型训练上的困难已经被逐渐克服。其中,数据量和硬件是更主要的原因。没有前两者,科学家们想优化算法都无从进行。

深度学习的研究和应用蓬勃发展

早在1998年,一些科学家就已经使用神经网络模型识别手写数字图像了。
但深度学习在计算机视觉应用上的兴起,还是在2012年ImageNet比赛上,使用AlexNet做图像分类。
基于深度学习的顶级会议ICLR(International Conference on Learning Representations)统计,深度学习相关的论文数量呈逐年递增的状态,如下图所示。
深度学习相关论文数量逐年攀升

同时,不仅仅是深度学习会议,与数据和模型技术相关的会议ICML和KDD,专注视觉的CVPR和专注自然语言处理的EMNLP等国际会议的大量论文均涉及着深度学习技术。

另一方面,以深度学习为基础的人工智能技术,在升级改造众多的传统行业领域,存在极其广阔的应用场景。

如下图,选自艾瑞咨询的研究报告,人工智能技术不仅可在众多行业中落地应用(广度),同时,在部分行业(如安防、遥感、互联网、金融、工业等)已经实现了市场化变现和高速增长(深度),为社会贡献了巨大的经济价值。
以深度学习为基础的AI技术在各行业广泛应用

以计算机视觉的行业应用分布为例,根据IDC的数据统计和预测,随着人工智能向各个行业的渗透,当前较多运用人工智能的互联网行业的产值占比反而会逐渐变小。

深度学习改变了AI应用的研发模式

实现了端到端的学习

深度学习改变了很多领域算法的实现模式。在深度学习兴起之前,很多领域建模的思路是投入大量精力做特征工程,将专家对某个领域的“人工理解”沉淀成特征表达,然后使用简单模型完成任务(如分类或回归)。

在数据充足的情况下,深度学习模型可以实现端到端的学习,即不需要专门做特征工程,将原始的特征输入模型中,模型可同时完成特征提取和分类任务,如 下图所示。
深度学习实现了端到端的学习

以计算机视觉任务为例,特征工程是诸多图像科学家基于人类对视觉理论的理解,设计出来的一系列提取特征的计算步骤,典型如SIFT特征。在2010年之前的计算机视觉领域,人们普遍使用SIFT一类特征+SVM一类的简单浅层模型完成建模任务。

说明:
SIFT特征由David Lowe在1999年提出,在2004年加以完善。SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。

实现了深度学习框架标准化

除了应用广泛的特点外,深度学习还推动人工智能进入工业大生产阶段,算法的通用性导致标准化、自动化和模块化的框架产生,如下图:
深度学习模型具有通用性特点

在此之前,不同流派的机器学习算法理论和实现均不同,导致每个算法均要独立实现,如随机森林和支撑向量机(SVM)。但在深度学习框架下,不同模型的算法结构有较大的通用性,如常用于计算机视觉的卷积神经网络模型(CNN)和常用于自然语言处理的长期短期记忆模型(LSTM),都可以分为组网模块、梯度下降的优化模块和预测模块等。这使得抽象出统一的框架成为了可能,并大大降低了编写建模代码的成本。一些相对通用的模块,如网络基础算子的实现、各种优化算法等都可以由框架实现。建模者只需要关注数据处理,配置组网的方式,以及用少量代码串起训练和预测的流程即可。

在深度学习框架出现之前,机器学习工程师处于“手工作坊”生产的时代。为了完成建模,工程师需要储备大量数学知识,并为特征工程工作积累大量行业知识。每个模型是极其个性化的,建模者如同手工业者一样,将自己的积累形成模型的“个性化签名”。而今,“深度学习工程师”进入了工业化大生产时代,只要掌握深度学习必要但少量的理论知识,掌握Python编程,即可在深度学习框架上实现非常有效的模型,甚至与该领域最领先的模型不相上下。建模领域的技术壁垒面临着颠覆,也是新入行者的机遇。

深度学习框架大大减低了AI建模难度

人工智能的职业发展空间广阔

哲学家们告诉我们,做我们所喜欢的,然后成功就会随之而来。
—— 沃伦 · 巴菲特 (全球著名的投资家)

坦率的说,如巴菲特所言,选择一个自己喜欢的职业是真正的好职业。但对于多数普通人,经济回报也是职业选择的重要考虑因素。一个有高经济回报的职业一定是市场需求远远大于市场供给的职业,且市场需求要保持长期的增长,而市场供给难以中短期得到补充。

  • 人工智能岗位的市场需求旺盛
    根据各大咨询公司的行业研究报告,人工智能相关产业在未来十年预计有30%~40%的年增长率。一方面,人工智能的应用会从互联网行业逐渐扩展到金融、工业、农业、能源、城市、交通、医疗、教育等更广泛的行业,应用空间和潜力巨大;另一方面,受限于工智能技术本身的成熟度以及人工智能落地要结合场景的数据处理、系统改造和业务流程优化等条件的制约,人工智能应用的价值释放过程会相对缓慢。这使得市场对人工智能的岗位需求形成了一条稳步又长期增长的曲线,与互联网行业相比,对多数的求职者更加友好,如下图所示(人工智能岗位的市场供给对比)。
    人工智能岗位的市场供给对比

互联网行业由于技术成熟周期短,应用落地的推进速度快,反而形成一条增长率更高(年增长率超过100%)但增长周期更短的曲线(电脑互联网时代10年,移动互联网时代10年)。当行业增长达到顶峰,对岗位的需求也会相应回落,如同2021年底的互联网行业的现状。

  • 复合型人才成为市场刚需
    在人工智能落地到千行万业的过程中,企业需求量最大、也最为迫切的是既懂行业知识和场景,又懂人工智能理论,还具备实践能力和经验的“复合型人才”。成为“复合型人才”不仅需要学习书本知识,还要大量进行产业实践,使得这种人才有成长深度,供给增长缓慢。从上述分析可见,当人工智能产业在未来几十年保持稳定的增长,而产业需要的“复合型人才”又难以大量供给的情况下,人工智能应用研发岗位会维持一个很好的经济回报。

  • 人生天地之间,若白驹过隙,忽然而已,每个人都希望留下自己的足迹。为何要学习深度学习技术,以及如何来学习呢?一方面,深度学习的应用前景广阔,是极好的发展方向和职业选择。另一方面,本文会使用国产的深度学习框架飞桨(PaddlePaddle)来编写实践案例,基于框架的编程让深度学习变得易学易用。

作业1-1

类比牛顿第二定律的案例,在你的工作和生活中还有哪些问题可以用监督学习的框架来解决?

一切可重复、可找寻出规律的重复化工作、推演、计算等行为逻辑。

模型假设和参数是什么?

世界上的可能关系千千万,漫无目标的试探Y\~X之间的关系显然是十分低效的。因此假设空间先圈定了一个模型能够表达的关系可能,如蓝色圆圈所示。机器还会进一步在假设圈定的圆圈内寻找最优的Y\~X关系,即确定参数w。

评价函数(损失)是什么?

衡量模型预测值和真实值差距的评价函数

为什么说深度学习工程师有发展前景?怎样从经济学(市场供需)的角度做出解读?

人工智能岗位的市场需求旺盛、复合型人才成为市场刚需、深度学习的应用前景广阔、用飞桨学习学习更容易。

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward