一、什么是机器学习
机器学习(Machine Learning,ML)就是让机器具备找一个函数的能力。
随着要找的函数不同,机器学习有不同的类别:
1.回归:假设要找的函数的输出是一个数值,一个标量(scalar),这种机器学习的任务称为回归。
2.分类:分类任务要让机器做选择题。人类先准备好一些选项,这些选项称为类别(class),现在要找的函数的输出就是从设定好的选项里面选择一个当作输出,该任务称为分类。
3.结构化学习:机器不只是要做选择题或输出一个数字,而是产生一个有结构的物体,比如让机器画一张图,写一篇文章。这种叫机器产生有结构的东西的问题称为结构化学习。
二、机器学习求解函数的过程
1.第一个步骤:
写出一个带有未知参数的函数 f,其能预测所需值。
比如将函数写成
其中,y 是所需预测值。 参考值,即已有参考数值。y 和 都是数值,b 跟 w 是未知的参数,它是准备要通过数据去找出来的。
w 跟 b 是未知的,只是隐约地猜测。猜测往往来自于对这个问题本质上的了解,即领域知识(domain knowledge)。在猜测中,将参考值乘上一个数值,得到大致数据,最后再加上一个 b 做修正,即为预测值。
带有未知的参数(parameter)的函数称为模型(model)。模型在机器学习里面,就是一个带有未知的参数的函数,特征(feature)是这个函数里面已知的,它是来自于后台的信息,而 w 跟 b 是未知的参数。w 称为权重(weight),b 称为偏置(bias)。
2.第二个步骤:
定义损失(loss),损失是函数 L(b, w),其输入是模型参数 b 跟 w。损失函数输出的值代表在当前参数 b 和 w 选取的值下,函数 f 预测结果的好坏。
真实的值 y 称为标签(label),计算出的预测值 yˆ 。计算两者的差距 e 来判断好坏。比如取绝对值:e = |y − yˆ|
代入 n 组数据,计算出每组的差距并求平均,得到损失
其中,N 代表训验数据的组数,L 是每一笔训练数据的误差 e 相加以后求平均的结果。L 越大,代表现在这一组参数越不好,L 越小,代表现在这一组参数越好。
我们可以计算不同的 w 和 b 的组合对应的损失,并由此画出图1 所示的等高线图,称为误差表面(error surface)。在这个等高线图上面,越偏红色系,代表计算出来的损失越大,就代表这一组 w 跟 b 越差。如果越偏蓝色系,就代表损失越小,就代表这一组 w 跟 b 越好,拿这一组 w 跟 b,放到函数里面,预测会越精准。
图1 误差表面
3.第三个步骤:
解一个最优化的问题,即找出一组最优的 w 跟 b,使得数值代进去可以让损失 L 的值最小。
以梯度优化方法举例,如图2所示。
图2 梯度优化过程
综上,机器学习的简洁步骤为:创建模型——检验损失——优化最佳。