- 机器学习的产业实践之路
- 毕然等编著
- 3992字
- 2023-11-02 20:10:50
1.2.1 机器学习的框架:假设+目标+寻解
近代科学的奠基人牛顿,用力学三定律阐明了经典物理的基本理论。接下来,让我们回到几百年前的牛顿时代,看看是否能让机器和牛顿先生一样,从数据中学习到力学第二定律,复现该科学研究。
牛顿第二定律:物体加速度的大小跟作用力成正比,跟物体的质量成反比,且与物体质量的倒数成正比,加速度的方向跟作用力的方向相同。
牛顿第二定律的实验在初中物理课中已有阐述,如图1-5所示,有两种实验方法:倾斜滑动法和水平拉线法。原理是将物体放置在没有摩擦力的光滑平面上,给物体施加不同的作用力,观察物体所产生的加速度。因为实验中的平面是极其光滑的,所以可以忽略其摩擦力,物体的加速度只取决于施加的固定外力。
图1-5 牛顿第二定律的实验
按照这种方式,对于某个确定的物体M(质量为m),施加不同的外力得到不同的加速度数据,实验共得到5组数据,见表1-1。
表1-1 实验得到的数据
观察这份数据,直觉上认为物体产生的加速度应该和作用在物体上的力F有某种关系!掌握这个关系有什么用处呢?举例来说,火箭需要一定的速度才能脱离地球引力飞到宇宙中,有了这个规律,我们可以计算出火箭需要多大的作用力,才能加速到脱离速度,进一步计算出所需燃料。因此,我们期望学习这种函数关系。
先抛开机器,如果让人类学习这个知识,我们会怎样思考呢?
思考步骤1:对加速度a和作用力F的关系制图,观察图形,可得到一种假设猜测,a和F之间应该是一种线性关系,可以用线性方程a=wF+b来表示(w和b是参数,w表示该直线的斜率,b表示该直线的截距),如图1-6所示。因为如果不给物体施加作用力,它是静止的,所以最终猜测的假设是a=wF,其中的参数w尚不可知。
思考步骤2:对图1-5做动态想象,随参数w的变动,a与F的直线关系会绕着原点转动。最优秀的关系是最拟合(经过)所有已知观测数据的一条直线,这应该也是最贴近真实关系的。为了获得参数w的最优取值,首先需要设定一个优化目标,它能够评估一个函数关系拟合数据的程度(又称为Loss函数,拟合得越好,该值就越小),如图1-7所示。这样,使得优化目标达到最小值时,该直线的斜率就是最优参数。在本案例中,我们发现无论怎样调整该直线关系,均无法完全拟合所有的点,因此优化目标可设计成所有数据点的拟合误差的平方之和,使这个优化目标达到最小值的直线就是所求的函数关系。
图1-6 猜测a与F的函数关系
图1-7 优化目标Loss函数是一个关于参数w的函数
思考步骤3:不难发现,参数w变化后,所有数据点的拟合误差的累加和也会随之变化。因此,优化目标Loss是一个随着参数w变化的函数f(w)。需要一种在优化目标f(w)达到最小值时,求出参数w的方案。在本案例中,假设期望参数的精度为小数点后一位,可以用暴力尝试的方法。首先观察图形,确定参数的范围应该为0.09~0.11(因为若是其他取值,根本无法拟合任何一个已知数据点)。之后,依次尝试0.09~0.11的所有取值(每次增加0.001),计算Loss。通过比较发现,当参数w为0.1时,Loss达到最小值。基于此,可确定参数w的最优值是0.1,这个寻找最优解的过程又称为优化问题。
人类通过上述3个思考步骤,学习到了知识a=(1/10)F。而在本次实验中,该物体的质量是10kg,这是不是巧合呢?通过使用不同质量的物体继续实验,发现参数的最优解均与物体质量的倒数相同。最终,确定物体的作用力和加速度的确是线性关系,体现这一关系的参数就是物体质量的倒数,这就是牛顿第二定律。牛顿演算推导出力学三定律的文献已无从考证,不过可以猜测,牛顿在这个过程中也是按照西方科学精典“假设—验证—修正”思维来操作的,也就是目前机器学习的基本模式。
接下来,让我们思考一下,上述人类学习的过程能否用机器自动实现。在开始探讨之前,先介绍几个机器学习领域的专业术语。
1)特征:输入的已知信息,比如上述实验中的作用力可称为“特征”,用X表示。
2)预测值:期望输出的预测结果,比如上述实验中的加速度可称为“预测值”,用Y表示。
3)模型:代表Y~X的某种函数关系,比如牛顿第二定律a=F/m。
4)样本:收集到的记录数据称为“样本”(或训练样本),比如上述实验中的5个观察数据,机器要从这些已知X与Y的样本数据中学习出抽象规律来构建模型。有监督学习和无监督学习的本质区别就是,有没有监督机器进行学习的“样本”。
上述人类学习牛顿第二定律的过程,完全可以让机器模仿着实现。
机器的学习方案
1)步骤1,确定规律关系的假设:Y与X是线性关系且截距为0,可以用Y=wX表示。
2)步骤2,设定优化目标Loss:预测越准确,设计的Loss越小。最直接的设计思路是,加和每个训练样本的实际值与预测值之间的误差,将其作为Loss,表示为Σ|实际值-预测值|2。
3)步骤3,寻找参数w的最优解:依次尝试0.09~0.11的不同取值(以0.001为更新步长),以5个已知样本做测试数据,计算哪个取值会使步骤2的Loss最小,其就是最优参数。
这难道不是一个很有趣的方案吗?机器通过一个“机械化”的模仿过程,实现了像人类一样从数据中学到知识的目标!这个神奇的过程中隐藏着什么?下面让我们来逐步拆解分析。
第一步,机器需确定预测的基本假设,即加速度a(即Y)和作用力F(即X)之间是线性关系。预测值Y与特征X之间关系的基本假设称为“假设空间”,它圈定了预测模型能够表示的关系范围。比如,如果实际关系是非线性的(如圆的面积与半径之间的关系S=πR2),却让机器使用线性假设去学习,那么最优结果只能是找到一条与该非线性曲线最贴近的直线,而不能突破直线关系的表达范畴。在实践中,通常情况下,机器在学习之前,人们已经对业务问题有了较深刻的认知和理解,并不需要机器漫无边际地实验Y与X之间的关系,而是根据业务理解圈定一个更可能的关系范围,从而降低机器学习的难度,提高其学习效率。这个事先假定的关系范围就是假设空间。具体到上述场景:通过对实验数据的观测,假设加速度a与作用力F之间是线性关系。至于是怎样的线性关系,仍需要机器通过第二步、第三步去确定。
第二步,设立假设空间后,机器仍需要一个可计算的评估标准,以告诉它如何判断预测值的好和坏。一般情况下,预测值与实际值完全一样是最好的,相差不大是次好的,相差很大是不好的。因此设置最直接的评估指标“Loss”——在已知的样本集合上计算每个样本的预测值与实际值的误差,再加和全部误差得到的指标,记为Σ|实际值-预测值|。使用该方法的效果如图1-8所示。如果输入只有一个特征X(一维特征),学习到Y~X的关系为图1-8a中的直线。对于每个样本,误差为该样本的|实际值-预测值|,也就是图中点到直线的线段(平行于Y轴)。评估指标是所有线段的长度的加和。
图1-8 不同特征数量,Loss计算值的形象说明
可以想象,随着拟合直线的上下移动或左右转动,Loss的大小(所有线段的长度之和)会发生变化。如果输入有两个特征X1、X2(二维特征),预测值Y与输入的关系则是一个平面,每一个点的预测误差为点到平面的线段(平行于Y轴),评估指标依然是所有线段的长度的加和,如图1-8b所示。同样,随着预测的Y~X关系的变化(移动图1-8a中的直线或移动图1-8b中的平面),评估指标的大小也会变化。这个评估模型预测效果的指标称为“优化目标”,它代表了模型学习优化的方向。设定了优化目标后,最后的问题是:如何在假设空间中明确下一种关系(确定Y=wX中的参数w),使优化目标达到最小。
第三步,在假设空间中寻找使得优化目标最小的参数取值,这称为“寻解算法”或“优化过程”。什么样的“寻解方法”最简单呢?从实验中可见,最容易想到的是,在所有可能的预测值中逐一尝试。在参数的取值范围0.09~0.11内尝试(超出这个范围显然是不合理的猜测),共尝试20次(每次增加0.001),则可比较得出最优参数解。这种方法虽然容易被想到,但也比较笨拙。如果假设空间很大,要全部尝试一遍是不切实际的。因此,在实际项目中几乎没人使用这种方法,但用来演示机器学习的基本过程是足够可行的。
机器学习(监督模型)遵照“假设空间+优化目标+寻解算法”的流程,从数据中学习知识并预测未来。
明确了机器学习的过程后,还需要一种对学到的知识进行记录或表示的方法。如果是线性关系,可以将此关系写成线性方程,如a=F/m可以写成
加速度a=作用力F(特征)×1/m(参数)
其中,输入变量“作用力F”为特征,而表达a~F关系的其他变量称为参数,如1/m。将特征和参数组合在一起写成方程,可以表达机器学习到的知识。
输出Y为一个实数取值的预测问题,学术上称为回归模型。由于本案例中Y~X的关系是线性的,因此这是一个线性回归模型。
在实际中,一件事情往往会有更多的前提条件和影响因素。对于仅一个特征输入的情况,用方程式表达线性关系是可行的。如果再多一个特征,该如何表达呢?例如,在现实世界中往往需要考虑到物体的摩擦力,所以物体的加速度不仅仅和作用力有关,还与该物体与平面之间的摩擦力[1]有关。这时,预测方程可以写成
加速度a=作用力F(特征)×1/m(参数)-压力F(特征)×摩擦系数μ(参数)
从该模型可拓展到生活和工作中的大量场景。如投资机构预测企业的信用情况、互联网公司预测广告的点击率、电信企业定位高流失风险的客户等。这些场景相较上述案例不过是具有更多的特征、更强大的假设空间、更符合应用场景的优化目标以及更高效的寻解算法而已,机器学习的过程依然是一样的!期望通过“牛顿第二定律”案例,能让大家对机器学习框架设计有一个循序渐进的了解,并学会在实际工作中举一反三。
简而言之,机器学习(监督学习,包括回归、分类)就是设定一个更大的函数空间,再从该空间中找到能最好拟合已知数据的函数。
上述的机器学习框架中依然有一个逻辑漏洞——我们设计的优化目标是在训练样本上进行计算的,即所选择的参数以及形成的Y~X关系在已经掌握的训练数据上会十分有效。但在现实中,我们期望模型对没有见过的未来样本做出正确预测,那么在已知训练样本上表现得有效的函数规律,在未知的样本上会依然有效吗?
在下一节中,将结合1.1.3节介绍的大数定律对这一问题做出解答。