AI教程

【AI小白】机器学习算法三要素

AI小白系列教程第三讲

简介

本节我们会强调“机器学习算法 = 模型 + 策略 + 算法”这个概念,并让读者对模型、策略、算法有深入理解。

正文

在第一讲何为AI中我们了解了什么是人工智能、什么是机器学习。

复习 – 机器学习:机器学习是一门根据数据,自己学习算法的学问

在第二讲机器学习基本术语中,我们了解了机器学习的基本术语以及应用机器学习的步骤。

复习 – 机器学习步骤:收集数据并整理、数据预处理(特征工程)、训练算法、测试算法、应用算法

经过两讲的铺垫,我们可以开始学习机器学习算法了吧?

抱歉,还不可以。

在正式学习机器学习算法之前,我们要明确这样一个概念:

机器学习算法 = 模型 + 策略 + 算法

机器学习算法是万变不离其宗的,当你对 “机器学习算法 = 模型 + 策略 + 算法” 有了深入理解后,遇见问题不再是套用经典机器学习算法,而是可以自己灵活运用机器学习算法的基本思想,对于独特的问题给出独特的算法

然而让人头痛的是,在机器学习以及AI领域,常有术语乱用、混用的现象机器学习领域同一个词语在不同的文献中意义不同

因此,希望读者不要只单纯记住模型、策略、算法这三个词,而是明确大多数机器学习算法都可拆分为三个部分,且对每个部分有深入理解

1. 模型

1.1 模型定义

定义:模型是所要学习的条件概率分布或决策函数

对于初学者来说,上述定义可能会生涩难懂,本节我们会从另一个角度来理解何为模型,至于什么是条件概率分布和决策函数,我们会在以后的文章中讲到。

一个不严谨但浅显易懂的解释:模型是表达特征与标签或特征与特征之间关系的方法

在监督学习问题中,我们想了解自变量X与因变量y之间的关系。知道了自变量X(特征),用什么方法来预测y(标签)?这个方法就是模型。在非监督学习问题中,如何表示自变量X(特征)之间的关系就是模型。(何为监督学习,何为非监督学习,见机器学习基本术语

下面我们主要讨论监督学习问题。

我们来讨论预测北京房价的问题,假设已知房子的面积以及房屋离市中心的距离,求这套房子的价格。

最简单的预测方法是y = w1*x1 + w2*x2 + b这种情况。这就是一个模型,y代表房价,是因变量。x1、x2代表距离和面积是自变量,w1、w2、b是模型参数。

再具体一点,我们称这种通过特征的线性组合来进行预测的函数为线性模型。

y = -5*x1 + 6*x2 + 30是一个具体的线性模型, y = -7*x1 + 2*x2 + 10 又是一个具体的线性模型。

除了线性模型,我们也可以用判断语句(决策树模型):

if 房子离市中心的距离<5km:
    房价 = 10万*房屋面积
elif 房子离市中心距离在5-10km之间:
    房价 = 8万*房屋面积
else:
    房价 = 6万*房屋面积
决策树模型

更多的模型我们会在之后的课程中讲到

1.2 两种不同的概念(泛化与具体)

如果较真的话,机器学习领域有两个不同的概念都叫模型,不过我们在平常使用“模型”这个词的时候,两个概念是混着用,且理解上不会产生困难。

一种是泛化的,参数不确定的,比如线性模型,一般情况下就是通指

其中的参数b、w1、w2等的取值都不确定。所有可能的集合为模型的假设空间

另一种是参数取值确定的,这时参数一般就是从数据中学到的了。比如学习了北京数百个房屋数据,发现最符合真实结果的线性模型是 “房价 = 8*房屋面积 – 10*离市中心公里数 + 20 ”,这里面参数的取值都是具体的。

以后我们谈及“模型”时,其是指一类模型,比如线性模型、决策树模型,还是具体的一个公式,我们可以根据上下文语义自己推出。一般都是指具体的模型。

由此可见,在监督学习问题中,模型是指知道X预测y的方法(拓展到非监督问题上,模型是表达特征之间关系的方法)。如果细分,可以将“模型”分为两种概念,一种是泛化的,通指一大类结果,比如所有决策树的集合、所有线性模型的集合。另一种则是通过学习数据获得的具体的规则,比如参数已经确定的线性模型。

2. 策略

前面我们提到,模型的假设空间指所有参数可能取值的集合。

比如对于前面提到的房价预测问题,我们选用线性模型

y = w1*x1 + w2*x2 + b

这里参数w1,w2和b的取值有无限多种可能。

如此多的可能,我们如何评判一个模型对于预测房价这个问题的好坏?以什么为标准选择一个最好的模型?这就是我们机器学习算法的第二个部分——策略

2.1 损失函数

损失函数:度量模型预测结果好坏的函数

对于回归问题,最常见的评判一个模型好坏的标准(损失函数)是平方损失函数

即模型对样本的预测值与真实值的差的平方。

上面的公式是对一个样本,如果是对全部样本的话,则是

平方损失

除此之外还有绝对损失函数(不常用)

绝对损失

对于损失函数的一个直观的理解:以已知房屋面积来预测房价为例,我们用损失函数是在衡量图中红色线的距离。我们希望损失函数最小,即红色线最短。这样,预测的结果与真实结果最接近。

对于分类问题,常见的损失函数有对数损失等。

各种各样的损失函数我们会在以后的教程中一一见到。

2.2 策略

对于房价预测问题,假设我们采用平方损失(真实值与模型预测值差的平方),该损失越小表明对应的模型效果越好。

既然如此,我们的策略就是最小化平方损失。

至于如何最小化就是算法的问题了。

有的时候我们的损失函数越大代表模型越好,这时,我们的策略就是最大损失函数。

值得注意的是损失函数大多数情况下有如下两个特点:

  • 取值连续
  • 对于模型的参数可导

分类问题中,预测结果的准确率是评判一个模型好坏的标准,但其不是损失函数。因为其不连续、对模型的参数更不可导。(假设我们有100个样本,则准确率取值只有0%,1%……100%有限种取值,是不连续的)

绝对损失是一个损失函数,但是我们不常用,因为其对参数不可导,这就使某些问题的求解很难实现。

3. 算法

在前面的讨论中,我们确定了模型,即用什么方式表达特征与标签之间的关系(线性、逻辑判断还是其他方法),又选择了一个策略,即评判模型好坏的标准。下一步就是使用算法来确定我们的模型参数具体的取值了,即从模型的假设空间中选择一个最优的模型。

算法是指学习模型的具体计算方法。

算法分为两类,一类为可直接求解的算法,另一类为需要迭代求解的算法。

具体算法我们将会在以后的内容中讲到。

总结与延伸

  • 机器学习算法 = 模型 + 策略 + 算法
  • 模型指表达特征与标签或特征与特征之间关系的方法(所要学习的条件概率分布或决策函数)
  • 策略是评判一个模型好坏的指标。常常是连续的、对模型的参数可导。
  • 算法是学习模型的具体计算方法。

读物推荐

  • 统计学习三要素:《统计学习方法》(李航)1.3节

作者:M小白

未完待续…

发表回复