
维克托儿
2022/12/09阅读:34主题:自定义主题1
5分钟足矣——拟合的意义
上回说到,机器学习要做的事,就是找到一个函数(模型),给它输入数据(样本),通过运算,输出结果(标签)。
括号中的是机器学习的几个术语,代表的意思一目了然。
那么,具体如何训练模型呢?
人是如何训练的
还是类比人类学习的例子,看看人是如何学习的。
人们平时学习的过程中,会做大量的题,遇到做错或者不会做的,看看答案就学会了。到考试的时候,同样做一堆题,根据做题的准确率,评价一个人学的好不好。
机器学习也一样,也分学习和考试两部分,只是在机器学习领域,称为训练和测试。
本文先讲讲训练。
几个概念
解释一下上面提到的样本和标签的含义。
机器学习是通过数据来学习的,数据量越大,学得越好,就好比人是靠做题学习的,做题越多,学得越好。
人做题的时候需要对答案,做错了能改。
机器也一样,用来训练模型的数据称为样本,样本中有输入和答案,其中,输入称为特征,答案称为标签。当然,也不是所有的样本都有答案,有标签的称为有监督的机器学习,没有标签的称为无监督的机器学习,这个问题以后再议。
我们会把所有的样本一分为二,一部分用于训练,一部分用于考试,分配比例随意,9:1也行,8:2也可,根据数据量大小随意定。
其中,用于训练的样本称为训练集,用于考试的样本称为测试集,多简单!
这时,拟合粉墨登场了!
拟合的意义
先抛出拟合在百科中的解释:
❝形象的说,拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。因为这条曲线有无数种可能,从而有各种拟合方法。拟合的曲线一般可以用函数表示,根据这个函数的不同有不同的拟合名字。
我们通过一个例子把今天所有的概念串起来。
比如,根据人的身高、体重判断体型(瘦、正常、胖)这么一个简单到极致的问题。
假设我们有10000条样本数据,每条数据包括3个字段:身高、体重、体型。那么,身高、体重就是特征,体型就是标签。
为啥叫这么抽象的名字,简单一句话就明白了:根据特征给样本打标签。
我们会把10000条数据分为两部分,9000条作为训练集,1000作为测试集。通过9000条样本训练模型,通过1000条样本测试这个模型好不好。
怎么训练模型呢?
其实就是找到一个函数映射,输入身高、体重,输出体型。
我们都知道,人的身高体重是成比例的,如果比例在正常范围内,就是正常体型,如果身高很高但体重偏轻,就是瘦,反之就是胖。
这三者的关系大概是个线性关系,所谓线性,就是随着x的变化,y线性变化,而不是指数或者对数,是直线不是曲线。
所以我们可以大胆的预测这个函数关系是:
其中y是体型,x1是身高,x2是体重,a、b、c是函数参数。
这里有人会问,这个函数值y是连续的,但真正的标签是离散的(只有瘦、正常、胖3个值),这怎么办呢?其实很简单,机器学习会通过一种叫做激活函数的方法,对y值进行转换,本着5分钟原则,本文不做深入阐述,以后再议。现在只需要知道,有很多办法,可以把一个线性的y转化成3个值中的1个,就可以了。
请注意,上面的函数中,参数a、b、c是未知的。
训练的过程,就是通过把训练集中的数据带入上面的函数x1和x2,通过不断变化a、b、c,使得函数计算出来的 y 跟样本中的标签 尽可能相同,直到找到最优的a、b、c,让“尽可能”多的样本满足 ,训练结束。
换句话说,就是通过9000条样本的x1、x2、y组成方程组,求“尽可能”最合适的a、b、c的,在这里,a、b、c是方程组的未知数。
这个训练的过程,就是拟合。
有聪明人又问了,数学不是应该追求极致的严谨和准确么,这里为啥"尽可能"就满足了?因为多数情况下无法做到让9000条数据都准确(有可能某些数据是极端的甚至错误的),所以,这里追求的不是100%的 ,而只能是"尽可能",用拟合一词恰到好处!

把这个过程放在坐标系上,就大致明白百科中的表述的含义了,思考一下。
总结
这次介绍了几个术语,其实机器学习的思想很简单,只是很多术语造成了一点点阻碍。
就好比数学,可能一个很简单的概念,用数学语言表达,就显得深奥无比了,比如连续性,极限等。
而这些数学语言在数学家眼中,却美的无与伦比!
这种用简单的语言就能说明白的道理,为了严谨性,必须转化为数学语言的做法,何尝不是另一种拟合!
最后问个问题:是不是在训练集上拟合的越好,这个模型越好呢?
未必。
具体怎么回事,5分钟到了,下回再说!
注:
-
大道至简,坚信复杂的理论背后,都有一个简单的道理。 -
5分钟原则,知识碎片化,一篇小文能讲清一个事儿就满足了。
作者介绍
