想必大家在初学机器学习时,总是在各大论坛寻找入门资料。刚开始只有一个问题,看完后又多了几个问题,最后问题数量可能增加到了许多个。“我是谁?我在哪里?我在做什么?”
这些问题你是否也曾想过?今天,我将通过线性回归来解答这些问题,让你真正了解机器学习的本质及其运作原理。(文章中会涉及到一些简单的数学知识,敬请留意)
首先,让我们回顾一下线性回归的基本概念。假设在一个二维平面上,有一些随机分布的样本点,这些点之间存在着一定的关系和规律。线性回归的任务就是用一条直线来概括这些关系和规律。如下图所示:
左侧的图展示了现有的样本点,这些点代表房屋价格的数据,横坐标是房屋面积,纵坐标是房价。右侧的图则展示了一条由线性回归产生的直线,这条直线大致描绘了所有样本点之间的关系和规律,这就是线性回归的核心意义。
这条直线看似简单,却是一个非常基础且典型的机器学习任务。这条直线被称为“机器学习模型”,而得出这个模型的过程就是机器学习。
接下来,我们探讨一下这条直线是如何确定的。为什么这条直线能够准确描述样本点之间的关系,而不是其他稍微偏离的直线?这就需要从机器学习的过程说起。
我们的目标是建立一个模型,通过房屋面积预测房价。为此,我们需要根据已有数据“总结经验”,得到这个模型。这个“总结经验”的过程主要分为两个步骤:定义损失函数和最小化损失函数。
如何判断一条直线最适合这些样本点之间的关系?我们可以通过计算所有样本点到直线的距离之和来确定。距离之和最短的直线被认为是最适合这些样本点的直线。直线可以用函数表示为 y = wx + b。对于一元函数来说,直线方程通常表示为:
[ h_theta(x) = theta x ]
有了直线方程,我们如何找到这条最短距离的直线?我们可以通过定义损失函数来实现。损失函数表示预测值与实际值之间的距离之和。最小化损失函数即得到最短距离的直线。
我们将所有样本点依次代入上述公式,最终可以得到一个关于θ的二次方程。例如,如果有三个样本点 (1,2), (2,3), (3,4),将第一个样本点代入公式,x 的值代入公式 1 得到 ( h_theta(x) = theta ),y 的值代入公式 2 得到 ( (theta - 2)^2 )。同理,将第二个样本点代入得到 ( (2theta - 3)^2 )。将它们相加,最终得到一个关于θ的二次函数。通过对θ求导,令导数等于0,可以求出θ的值。将θ的确切值代入公式 1 中,就得到了最终的机器学习模型。具体的优化求解方法如下:
[ theta = argmintheta sum{i=1}^{m}(h_theta(x^{(i)}) - y^{(i)})^2 ]
通过以上线性回归的讲解,我们可以总结出以下几点:
机器学习模型:通过已有样本点,利用特定的机器学习算法来学习样本中的“经验”,从而得到一个可以归纳样本关系的模型。运用该模型可以实现通过x值预测y值的效果,即线性回归中的那条直线。
机器学习算法与优化算法的区别:机器学习算法涵盖了整个机器学习过程,例如线性回归中的公式 1、2、3 都属于机器学习算法的一部分。而优化算法仅指在最小化损失函数的过程中使用的算法,例如线性回归中我们使用的是令导数等于零(最小二乘法)。实践中常用的优化算法还包括梯度下降法和牛顿法等。
损失函数:它是构建机器学习求解过程的函数,最小化损失函数是构建机器学习模型的基础。在线性回归中,我们选择的那条直线是因为它使所有样本点到直线的距离之和最小。通过数学抽象化,我们得出了公式 2 这个损失函数,并将其优化到最小,从而得出机器学习模型。