(面试让我手推最小二乘求解过程。。。面完赶紧回来亡羊补牢。。。)
转载自:机器学习笔记——最小二乘法 - Excaliburer - 博客园
三. 对于多元线性模型
如果我们推广到更一般的情况,假如有更多的模型变量x1,x2,⋯,xn,可以用线性函数表示如下:
对于m个样本来说,可以用如下线性方程组表示:
如果将样本矩阵xij记为矩阵A,将参数矩阵记为向量β,真实值记为向量Y,上述线性方程组可以表示为:
对于最小二乘来说,最终的矩阵表达形式可以表示为:
其中m≥n,由于考虑到了常数项,故属性值个数由n变为n+1。
关于这个方程的解法,具体如下:
其中倒数第二行中的中间两项为标量,所以二者相等。然后利用该式对向量β求导:
(1)
由矩阵的求导法则:
可知(1)式的结果为:
令上式结果等于0可得:
(2)
上式就是最小二乘法的解析解,它是一个全局最优解。
最小二乘法 VS 梯度下降法
通过上面推导可知,最小二乘法可以矩阵运算求解,这种方法十分方便快捷,但这种方法不是万能的,因为线性最小二乘的解是closed-form即 ,而非线性最小二乘没有closed-form(即
没有可逆矩阵),这时候矩阵运算求解就行不通,这时候就可以通过迭代法(梯度下降法)求最优解。
所以如果把最小二乘看做是优化问题的话,那么梯度下降是求解方法的一种,是求解线性最小二乘的一种,高斯-牛顿法和Levenberg-Marquardt则能用于求解非线性最小二乘。