1. 概述
机器学习一共有两大主要任务,一类是讲实例数据划分到合适的分类中,也就是分类问题;另一类是用于预测数值型数据,也就是回归问题。
我们应该都建构回归的例子——数据拟合曲线:通过给定数据拟合出最优的曲线。
拟合曲线也就是使得所有数据点的结果(真实的y) 和 曲线拟合出的结果(拟合出的y)差距 的总和最小,在回归中最经典的方法就是最小二乘法,本文以拟合线性回归数据为例, 利用最小二乘法来推导这一回归过程。
2. 回归推导
2.1 单变量线性回归简单示例
现在有数据如下:一共m个数据, 我们的目的是拟合一条曲线,使得所有数据到这条曲线的距离和最小;
假设我们的拟合曲线为 , (1)
那么 此时的代价函数(cost function,也就是拟合出的y 和 真实的y 的总差距)为
即
(2)
这里解释一下这个代价函数的原理
因为就是拟合值和实际值的差值,要计算总和,所以全部相加,但是因为
有正有负,所以需要加绝对值,结果如下
,但是涉及到绝对值的计算都相当的复杂,所以把差值
加上平方可以极大的减少计算量并且不影响最终结果。这就是上面公式的原理。
因此代价函数表示的是拟合值f(x)与实际值y之间的差值的平方。它对应了欧几里得距离即“欧氏距离”。
基于均方误差最小化来求解模型的方法我们叫做“最小二乘法”。在线性回归中,最小二乘法实质上就是找到一条直线,使所有样本数据到该直线的欧式距离之和最小,即误差最小。
求解代价函数的最小值,直接分别对其求和
的偏导,使其等于0,求解方程,解出
和
的值,对应的曲线也就出来了。
分别对和
求偏导可得:
对
求偏导 (3)
对
求偏导 (4)
令(3)和(4)分别等于零,求得出和
的值如下:
(5)
(6)
令(3)和(4)分别等于零,解出式(5)和(6),中间过程涉及到统计学知识,本文暂不赘述。
这样和
的辨得出结果了,相应的曲线也求出来了。
2.2 推广到一般情况
假设数据集有m个样本,每个样本有n个特征,用矩阵表示样本和特征,
是一个 mxn 的矩阵:
用矩阵表示标签,是一个m×1的矩阵:
假设参数为矩阵,是一个n×1的矩阵:
(在实际计算中我们会加一个偏差(bias)也就是, 也就是相当于单变量中的 b ,但是这里为了推导方便所以没加,但是不管加还是不加,推导的结果都是一样的)。
此时的线性模型如下:
(7)
表示假设,即hypothesis。通过矩阵乘法,
结果是一个m×1的矩阵。
跟前面推导的单变量的线性回归模型是一样的,列出代价函数如下:
(8)
式(8)中1/2并实际意义,只是为了求导时能将参数正好消掉而加上的,不加上也不会影响最终结果。
代价函数代表了误差,我们希望它尽可能地小,所以同样对它求偏导并令偏导数为0,求解方程,解出,即可得拟合曲线。
首先对代价函数做一些处理,特别注意,因为(8)中我们的实际上是要
中每一个元素的平方的总和;同时
计算后是一个mx1的矩阵,因此
可以化为
, 最终得到
中每一个元素的平方的总和值。因此式(8)可化为:
(9)
现在对求导,在求导之前先给出矩阵求导的公式
矩阵求导原理我会在另一篇博文中写出,有兴趣的可以点击看一看;
对代价函数(9)求关于的偏导,并令其等于0;
(10)
令式(10)等于0,得出:
由此便可得出拟合曲线;
到此整个推导过程就算是完成了。
3. 小结
文章主要就回归问题得原理进行了推导,相信看完后对回归问题有进一步了了解,同时这也是解释在机器学习中,多数回归问题采用梯度下降方法而不是直接求导的重要前提,有了这一推导过程才能够很好的去解释这一问题。
最后本博文大部分内容来源于一位前辈,感谢!