【吴恩达机器学习】梯度下降线性回归模型和正规方程

线性回归模型

在这里插入图片描述


hθ(x)为线性回归模型,由两个值θ0和θ1进行控制 。

J(θ01)称为代价函数,表示实际训练值和回归模型拟合值的关系。可以知道代价函数对应的值越小,则拟合效果越好。

m:训练集

例:此处使用线性回归模型来拟合房间大小对应的价格高低,且假设影响因素为θ0和θ1

            图 1                                 图 2

左图体现了了代价函数的总体趋势(凹),可以发现存在代价最低的一个点,因此如何找到此点对应的θ1和θ1成为我们的主要问题

右图通过给θ0和θ1分别赋值后的线性回归函数拟合效果,可以看出和实际数据集偏差比较大。如果找到代价函数最小值,那么拟合效果将最优。


梯度下降算法

图3
  1. “:=” 意思是将右侧表达式的值赋值给左侧表达式,Truth assertion意为数学断言中两侧是否相等。
  2. 偏导数的具体作用是帮助找到最小值:导数实际上是曲线斜率,从图1中将θ0视为常数,θ1为自变量时,此时代价函数为二次抛物线(图4)。而要找到代价函数最低点,此时图3 中初始点的 θ1 减去导数项,意味着离最低点就更近(斜率正负均一样),且曲线越接近最低值,斜率越小,收敛速度将变慢。
  3. α:学习速率,即在进行梯度下降时,每一步的大小。
  4. 梯度下降应该是同步的,即应该算出temp0、temp1后再更新θ0和θ1,如果算出temp0后立马更新θ_0,则θ_1的更新将会出现问题(不同步)。

            图4                                     图 5

图4说明:在进行梯度下降时寻找最小值点时,偏导数(斜率)的正负、大小对寻找的影响。

图5说明:α过大和过小的情况下会出现寻找不到(发散),和速度太慢(收敛速度太慢,需要迭代的次数将增加)。

            图6                                    图7

图6:解释了当找到局部最小值时(偏导数为0),根据梯度下降算法,θ将不会再进行更新。

图7:由图易知,图像初始斜率大即偏导数值大,那么更新幅度就会大,当再更新时曲线斜率(偏导数)变小,那么更新幅度就会逐步变小。当我们接近局部最小 值时,梯度下降算法会自动采用更小的学习速率α,确保不会越过最小值点。

Batch梯度下降法(梯度下降的线性回归)

求偏导数

代入梯度下降算法

梯度下降法寻找最小值的图示过程

多元线性回归假设的形式

将线性代数应用到多元线性回归模型中

此处假设影响房价的因素仅有4个,**x(i)**表示4个因素构成的向量,**x(i)j**表示向量中具体值。

θ向量表示从θ0θ1,……,θnθ为n+1维向量,X同理。X0默认为1。多元线性回归方程可表示为两个向量(θX)的乘积。

将代价函数带入到梯度下降算法后,梯度下降算法更新将应用到θ0θ1,……,θn


特征缩放和均值归一化

特征缩放(Feature Scaling)通常是在数据预处理阶段,将不同量纲或量程的数据转换到同一量纲下或某个特定区间内。这样做可以使得模型训练更快,更容易找到全局最优解。

特征范围并不用完全在-1到1内和外,只要与这个范围足够接近,但是不要过大或过小。梯度下降法都会正常工作。

均值归一化(Normalization)通常是将特征的值缩放到一个固定的范围,如 [0, 1]。常用的归一化方法是 Min-Max Scaling,其计算公式为:

在这里插入图片描述


学习率α促进梯度下降

左图描述了求得最小代价函数随着迭代次数的变化。右图描述了不同的学习率α对寻找最小代价函数的影响。

即:如果α太小,收敛过慢;α过大,可能会发散。因此选择一个合适的α是至关重要的;你可以尝试不同数量级(0.0001->0.001->0.01 etc.)


正规方程求θ

在这里插入图片描述

当正规方程为J(θ) = aθ2+bθ +c时,通过求导可以快速得出θ在某处时,J(θ)的导数为0,此时θ为所求值。

一般地通过正规方程法求θ并不会像上述例子那样简单,所以通用解法如下:

在这里插入图片描述

此处Octave是一种编程工具,你可以在其中计算θ。

例如:

正规方程法不需要特征缩放

梯度下降法和正规方程法的优劣

在训练集为m,特征量为n的情况下:

梯度下降法

  1. 需要选择一个合适的α。
  2. 需要许多次迭代才能得出结果。
  3. 适合特征数量较多的情况(大约在n=106

正规方程法

  1. 不需要选择α。
  2. 不需要迭代。
  3. 需要去计算**(XTX)-1**。
  4. 如果特征数量较多,计算将会很慢。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值