机器爱学习03——最小二乘法

在前面房价预测案例中,我们提出了如下的hypothesis function:

机器爱学习03——最小二乘法

为了确保hypothesis function足够“完美”,我们又引入了cost function:

机器爱学习03——最小二乘法

通过前面的讲解,我们知道,hypothesis function足够“完美”,需要满足如下条件:

机器爱学习03——最小二乘法

前面章节中,hypothesis function中的变量θ0、θ1,是我们手动算出来的,那么机器学习算法又是如何计算这些参数的呢?

接下来,介绍一种最基本的机器学习算法:最小二乘法(Least Squares Algorithm),并介绍最小二乘法如何得到这些参数,从而使hypothesis function足够“完美”。

介绍算法之前,我们先了解一下这个算法的历史,加深下印象。

1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。

奥地利天文学家海因里希·奥尔伯斯根据高斯计算出来的轨道重新发现了谷神星。 高斯使用的最小二乘法的方法发表于1809年他的著作《天体运动论》中。 法国科学家勒让德于1806年独立发明“最小二乘法”,但因不为世人所知而默默无闻。 勒让德曾与高斯为谁最早创立最小二乘法原理发生争执。 1829年,高斯提供了最小二乘法的优化效果强于其他方法的证明,因此被称为高斯-马尔可夫定理。(来自于wikipedia)

1801年?你没看错,前人就是这么厉害!

在这里说一些题外话,我们可以一股脑的把所有的机器学习算法都学一遍,但是如果对这些算法理解不够深入,遇到实际问题时,就会不知所措,不知道该用什么方法来解决。这显然不是我们愿意看到的,因此在学习每一种算法时,大家可以先将算法理解一遍,之后去搜索各种描述这些算法的文章,或许每个人看待算法的角度不同,又或许理解算法的深度不同,总之,多看一些文章,实际运用时,就不会不知所措。另外,大家可以用自己熟悉的语言,将算法实现一遍,加深理解。

言归正传,学过高数的同学应该知道,求一个函数f(x)的极值,可以对函数f(x)求导,令导数等于0,求出x即可。

最小二乘法(Least Square Algorithm),就是通过求导的方式,直接求出θ0、θ1。只不过自变量不是x,而是θ0、θ1。因此需要分别对θ0、θ1求偏导数。

作为小白教程,我们还是回顾下高数中求导的知识吧!

1:常数的导数为0;

2:假设y等于x的n次方;则

机器爱学习03——最小二乘法

3:函数和/差的导数为:

机器爱学习03——最小二乘法

4:函数积的导数为:

机器爱学习03——最小二乘法

5:函数商的导数为:

机器爱学习03——最小二乘法

下面分别对求θ0、θ1偏导数:

对θ0求偏导数(此时θ0作为自变量,θ1和x都作为常数处理):

机器爱学习03——最小二乘法

对θ1求偏导数(此时θ1作为自变量,θ0和x都作为常数处理):

机器爱学习03——最小二乘法

从偏导数的求解结果来看,两个偏导数函数构成一个二元一次方程组,其中自变量为θ0和θ1,x(i)和y(i)都是常数,求解二元一次方程组对计算机来说,so easy!

最小二乘法内容基本就这些,下一章我们再介绍下feature比较多时,最小二乘法的变种:正规方程。

最后,为了方便大家理解,我们还是training set中的数据,代入偏导数方程,具体求解过程就不再讲解。

这里再列一下我们的training set:

机器爱学习03——最小二乘法

机器爱学习03——最小二乘法


分享到:


相關文章: