参考教程:
https://www.paddlepaddle.org.cn/tutorials/projectdetail/695184
实践平台
如果学员想了解更多关于飞桨、深度学习、机器学习或Python课程,可以通过如下三个途径获取。
AI Studio:https://aistudio.baidu.com/
飞桨官网:https://www.paddlepaddle.org.cn/
百度技术学院:http://bit.baidu.com/index
一、机器学习和深度学习综述
1、人工智能
人工智能是研发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。由于这个定义只阐述了目标,而没有限定方法,因此实现人工智能存在的诸多方法和分支,导致其变成一个“大杂烩”式的学科。
2、机器学习
区别于人工智能,机器学习、尤其是监督学习则有更加明确的指代。
机器学习是专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构,使之不断改善自身的性能。
(1)机器学习的实现
机器学习的实现可以分成训练和预测:
训练:从具体案例中抽象一般规律。从一定数量的样本(已知模型输入XXX和模型输出YYY)中,学习输出YYY与输入XXX的关系(可以想象成是某种表达式)。
预测:从一般规律推导出具体案例的结果。基于训练得到的YYY与XXX之间的关系,如出现新的输入XXX,计算出输出YYY。通常情况下,如果通过模型计算的输出和真实场景的输出一致,则说明模型是有效的。
(2)机器学习的方法论
下面从“牛顿第二定律”入手,介绍机器学习的思考过程,以及在过程中如何确定模型参数,模型三个关键部分(假设、评价、优化)该如何应用。
牛顿第二定律;物体加速度的大小跟作用力成正比,跟物体的质量成反比,与物体质量的倒数成正比。即 F = ma。
实验设计方法:倾斜滑动法和水平拉线法,如 图2 所示。
通过多次实验数据,可以统计出如 表1 所示的不同作用力下的木块加速度。
观察实验数据不难猜测,物体的加速度 a 和作用力之间的关系应该是线性关系。因此我们提出假设 a=w⋅F,w是待确定的参数。
通过大量实验数据的训练,确定参数w是物体质量的倒数(1/m),即得到完整的模型公式a=F⋅(1/m)。当已知作用到某个物体的力时,基于模型可以快速预测物体的加速度。例如:燃料对火箭的推力F=10,火箭的质量m=2,可快速得出火箭的加速度a=5。
确定模型参数
这个有趣的案例演示了机器学习的基本过程,但其中有一个关键点的实现尚不清晰,即:如何确定模型参数(w=1/m)?
确定参数的过程与科学家提出假说的方式类似,合理的假说至少可以解释所有的已知观测数据。如果未来观测到不符合理论假说的新数据,科学家会尝试提出新的假说。如天文史上,使用大圆和小圆组合的方式计算天体运行在中世纪是可以拟合观测数据的。模型有效的基本条件是能够拟合已知的样本,这给我们提供了学习有效模型的实现方案。
图3 是以 H 为模型的假设,它是一个关于参数 W 和输入 X 的函数,用 H(W,X) 表示。模型的优化目标是 H(W,X) 的输出与真实输出 Y 尽量一致,两者的相差程度即是模型效果的评价函数(相差越小越好)。那么,确定参数的过程就是在已知的样本上,不断减小该评价函数(H(W,X) 和 Y 的差距)的过程,直到学习到一个参数 W ,使得评价函数的取值最小。这个衡量模型预测值和真实值差距的评价函数也被称为损失函数(损失Loss)。
由此可见,模型假设、评价函数(损失/优化目标)和优化算法是构成模型的三个部分。
机器执行学习的框架体现了其学习的本质是“参数估计”。在此基础上,许多看起来完全不一样的问题都可以使用同样的框架进行学习,如科学定律、图像识别、机器翻译和自动问答等,它们的学习目标都是拟合一个“大公式”,如 图5 所示。
他们的学习目标都是拟合一个“大公式”,公式中有很多可学习参数,机器学习的过程就是不断更新这些可学习参数。假定 f 是最终期望的"公式"函数,g 是当前公式所拟合的函数。那么,机器学习的目的就是让假设 g 更加逼近期望目标 f 。
3、深度学习
那么相比传统的机器学习算法,深度学习做出了哪些改进呢?其实两者在理论结构上是一致的,即:模型假设、评价函数和优化算法,其根本差别在于假设的复杂度,如 图7 所示。
不是所有的任务都像牛顿第二定律那样简单直观。对计算机而言,只能接收到一个数字矩阵,对于美女这种高级的语义概念,从像素到高级语义概念中间要经历的信息变换的复杂性是难以想象的!这种变换已经无法用数学公式表达,因此研究者们借鉴了人脑神经元的结构,设计出神经网络的模型。
(1)神经网络的基本概念
人工神经网络包括多个神经网络层,如卷积层、全连接层、LSTM等,每一层又包括很多神经元,超过三层的非线性神经网络都可以被称为深度神经网络。通俗的讲,深度学习的模型可以视为是输入到输出的映射函数,如图像到高级语义(美女)的映射,足够深的神经网络理论上可以拟合任何复杂的函数。因此神经网络非常适合学习样本数据的内在规律和表示层次,对文字、图像和语音任务有很好的适用性。因为这几个领域的任务是人工智能的基础模块,所以深度学习被称为实现人工智能的基础也就不足为奇了。
神经网络结构如 图8 所示。
神经元: 神经网络中每个节点称为神经元,由两部分组成:
加权和:将所有输入加权求和。
非线性变换(激活函数):加权和的结果经过一个非线性函数变换,让神经元计算具备非线性的能力。
多层连接: 大量这样的节点按照不同的层次排布,形成多层的结构连接起来,即称为神经网络。
前向计算: 从输入计算输出的过程,顺序从网络前至后。
计算图: 以图形化的方式展现神经网络的计算逻辑又称为计算图。我们也可以将神经网络的计算图以公式的方式表达,如下:
由此可见,神经网络并没有那么神秘,它的本质是一个含有很多参数的“大公式”。如果大家感觉这些概念仍过于抽象,理解的不够透彻,先不用着急,后续我们会以实践案例的方式,再次介绍这些概念。