目录
- 线性回归
- 单变量线性回归
- 梯度下降
- 正规方程
线性回归
线性回归是一种有监督的学习,解决的是自变量和因变量之间的关系。
线性回归模型预测:
单变量线性回归
因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。
选择不同的参数值,就会得到不同的直线。对于假设函数所预测出来的值和实际值之间的差距就是建模误差,也就是存在着一个代价函数cost function。
我们的目标就是减少假设函数预测数来的值和实际值之间的差距,也就是让代价函数最小。而让代价函数最小,就需要我们选择合适的参数值。(1)简化对公式的理解
当我们认为θo=0时,我们对θ1取值,得到的J(x)的图像如下图所示(受不同训练集的影响)
(2)当对θo和θ1取值时,我们可以得到这样一个三维立体图像,如下图所示:
将三维立体图像用等高线表示,将如下图所示:
梯度下降
梯度下降法可以将代价函数最小化。梯度下降是很常用的算法,它不仅被用在线性回归上,还被广泛应用于机器学习的众多领域。
用梯度下降,从不同的点出发,可能得到一个完全不同的局部最优解
首先我们选择一个初始值θo、θ1,然后逐渐改变其值
我们可以看到J的函数图形如下(蓝色为最小值):
背后的数学原理:
关于梯度下降算法,是同时更新θ_0和θ_1的
注意:
(1)“:=”表示赋值运算符,例如a:=b => a=b a:=a+1 => a+=1; 但是a=b 在这里表示是断言Truth assertion
(2)α 为学习率learning rate , 当α 越大时梯度下降得越快。如果α过小,趋近最小值就会很慢。如果α过大,就有可能超过最小值,可能越过山谷直接到达山的另一边。
(3)J为一个凸函数,只有全局最小值,没有局部最小值
对J函数分别求偏导数
还有一个有意思的问题,当我们选取的 一开始就让我们的代价函数在全局最小值,那么情况会怎么样呢?
根据梯度下降算法的公式可以知道,当在全局最小值处时,偏导数就为0,那么就意味着无论梯度下降算法如何迭代, 还是原来的值,就没有发生变化,也就是梯度下降算法不再迭代了。
正规方程
我们先来举一个简单的例子
例:J(θ)=αθ^2+bθ+c 应该要如何求得最小值呢?其实容易想到对J求导,并设J(θ)'=0,得到θ值
那么对于J(θo,θ1,θ2,···,θm) 应如果求得最小值呢?如果如示例一样,逐一对θi求偏导,并设置偏导值f’(θi)=0,然后得到θo,θ1,θ2,···,θm。这显然很麻烦。以下由此引出正规方程。
举出一个示例,方便理解。
有些人也许会问,如果(XTX)不可逆该怎么办呢?
其实也是不用担心的,在Octava中有[pinv,inv]两个函数,使用pinv函数时,即时矩阵不可逆也可以计算出θ的值。
那么什么情况下会导致矩阵不可逆呢?
①太多的特征数量(m<=n),也就是样本过少的时候
②包含了多余的特征函数
正规函数VS梯度下降
梯度下降
①需要选择学习率α的大小;
②需要多次迭代;
③当n很大时性能良好。
正则函数
①不需要选择学习率α;
②不需要迭代;
③需要计算(XTX)的逆;
④如果当n太大时,算法的复杂度过高,可达到O(n^3),课程建议的是 n > 10,000时就不太合适了。