梯度下降线性回归模型和正规方程
线性回归模型
hθ(x)为线性回归模型,由两个值θ0和θ1进行控制 。
J(θ0,θ1)称为代价函数,表示实际训练值和回归模型拟合值的关系。可以知道代价函数对应的值越小,则拟合效果越好。
m:训练集
例:此处使用线性回归模型来拟合房间大小对应的价格高低,且假设影响因素为θ0和θ1。
![](https://img-blog.csdnimg.cn/e7dea216cecd48ae9507706274580621.png)
![](https://img-blog.csdnimg.cn/4dc0afb3cbf34f65ad8ef0a0790d9cd9.png)
图 1 图 2
左图体现了了代价函数的总体趋势(凹),可以发现存在代价最低的一个点,因此如何找到此点对应的θ1和θ1成为我们的主要问题。
右图通过给θ0和θ1分别赋值后的线性回归函数拟合效果,可以看出和实际数据集偏差比较大。如果找到代价函数最小值,那么拟合效果将最优。
梯度下降算法
- “:=” 意思是将右侧表达式的值赋值给左侧表达式,Truth assertion意为数学断言中两侧是否相等。
- 偏导数的具体作用是帮助找到最小值:导数实际上是曲线斜率,从图1中将θ0视为常数,θ1为自变量时,此时代价函数为二次抛物线(图4)。而要找到代价函数最低点,此时图3 中初始点的 θ1 减去导数项,意味着离最低点就更近(斜率正负均一样),且曲线越接近最低值,斜率越小,收敛速度将变慢。
- α:学习速率,即在进行梯度下降时,每一步的大小。
- 梯度下降应该是同步的,即应该算出temp0、temp1后再更新θ0和θ1,如果算出temp0后立马更新θ_0,则θ_1的更新将会出现问题(不同步)。
![](https://img-blog.csdnimg.cn/b813c64b98ae4000b4a4a03c07f07875.png)
![](https://img-blog.csdnimg.cn/911cb910a2f645a6afaad458bc1df5b6.png)
图4说明:在进行梯度下降时寻找最小值点时,偏导数(斜率)的正负、大小对寻找的影响。
图5说明:α过大和过小的情况下会出现寻找不到(发散),和速度太慢(收敛速度太慢,需要迭代的次数将增加)。
![](https://img-blog.csdnimg.cn/7403398a61ef484daa57f0f9421410d2.png)
![](https://img-blog.csdnimg.cn/1c09ca812f2c49278a73cd79b4db0408.png)
图6 图7
图6:解释了当找到局部最小值时(偏导数为0),根据梯度下降算法,θ将不会再进行更新。
图7:由图易知,图像初始斜率大即偏导数值大,那么更新幅度就会大,当再更新时曲线斜率(偏导数)变小,那么更新幅度就会逐步变小。当我们接近局部最小 值时,梯度下降算法会自动采用更小的学习速率α,确保不会越过最小值点。
Batch梯度下降法(梯度下降的线性回归)
![](https://img-blog.csdnimg.cn/4557ab4cd3e843e2956a96758ee303d0.png)
求偏导数
![](https://img-blog.csdnimg.cn/5c556dd7279244a6ba0201f4916a95d8.png)
代入梯度下降算法
![](https://img-blog.csdnimg.cn/7be23b538e33450eafa01b56c72d5fd1.png)
梯度下降法寻找最小值的图示过程
![](https://img-blog.csdnimg.cn/04e7a1d78655405094316e448be7fabf.png)
多元线性回归假设的形式
将线性代数应用到多元线性回归模型中
![](https://img-blog.csdnimg.cn/68d0a5349b234b92bc8b5c13ef93fc08.png)
此处假设影响房价的因素仅有4个,**x(i)**表示4个因素构成的向量,**x(i)j**表示向量中具体值。
![](https://img-blog.csdnimg.cn/01384135b3324601adc4752fa4091985.png)
![](https://img-blog.csdnimg.cn/5c4673a329614bd5b1bd17b584fd37f0.png)
用θ向量表示从θ0,θ1,……,θn且θ为n+1维向量,X同理。X0默认为1。多元线性回归方程可表示为两个向量(θ和X)的乘积。
![](https://img-blog.csdnimg.cn/c5a3f411048a4722aeb977366db63a83.png)
将代价函数带入到梯度下降算法后,梯度下降算法更新将应用到θ0,θ1,……,θn。
特征缩放和均值归一化
特征缩放(Feature Scaling)通常是在数据预处理阶段,将不同量纲或量程的数据转换到同一量纲下或某个特定区间内。这样做可以使得模型训练更快,更容易找到全局最优解。
![](https://img-blog.csdnimg.cn/cf4928437713413a94bf5f64614a7efc.png)
![](https://img-blog.csdnimg.cn/619b619df2a34ea3b5cb9849e23702a1.png)
特征范围并不用完全在-1到1内和外,只要与这个范围足够接近,但是不要过大或过小。梯度下降法都会正常工作。
均值归一化(Normalization)通常是将特征的值缩放到一个固定的范围,如 [0, 1]。常用的归一化方法是 Min-Max Scaling,其计算公式为:
学习率α促进梯度下降
![](https://img-blog.csdnimg.cn/9d00e152689240aa8dc05ee2387271c0.png)
![](https://img-blog.csdnimg.cn/60d24c4b52624c01b000b76f1d72f44a.png)
左图描述了求得最小代价函数随着迭代次数的变化。右图描述了不同的学习率α对寻找最小代价函数的影响。
即:如果α太小,收敛过慢;α过大,可能会发散。因此选择一个合适的α是至关重要的;你可以尝试不同数量级(0.0001->0.001->0.01 etc.)
正规方程求θ
当正规方程为J(θ) = aθ2+bθ +c时,通过求导可以快速得出θ在某处时,J(θ)的导数为0,此时θ为所求值。
一般地通过正规方程法求θ并不会像上述例子那样简单,所以通用解法如下:
此处Octave是一种编程工具,你可以在其中计算θ。
例如:
![](https://img-blog.csdnimg.cn/640f90c3d5124538bed869d5839a2b8c.png)
![](https://img-blog.csdnimg.cn/eaa9e60150704d6486753fa5193d0d1d.png)
正规方程法不需要特征缩放
梯度下降法和正规方程法的优劣
在训练集为m,特征量为n的情况下:
梯度下降法:
- 需要选择一个合适的α。
- 需要许多次迭代才能得出结果。
- 适合特征数量较多的情况(大约在n=106)
正规方程法:
- 不需要选择α。
- 不需要迭代。
- 需要去计算**(XTX)-1**。
- 如果特征数量较多,计算将会很慢。