梯度下降算法的应用和技巧(Gradient decent)


(该部分为梯度下降算法微进阶, 入门请点击)

多元线性回归(Multiple features regression)

多元线性回归是多个变量(Multiple features)的线性回归。以下图为例:
在这里插入图片描述
其中,我们通过变量x1~x4对房子的价格price进行预测,“多元”指的便是多个特征值

与一元线性回归所不同的,多元线性回归的特征值(features)有所增加,如下所示:
在这里插入图片描述
为了便于向量表示,我们不妨假设存在一个x0=1,将其与θ0相乘,那么上式也可表示为:
在这里插入图片描述
其中,θ,x表示的都是一个n+1维向量。

多特征梯度下降算法(algorithm)

如上我们得到了多特征的假设函数hθ(x),根据假设函数及实际训练集可以得到成本函数J(θ)(cost function),再利用**梯度下降算法(Gradient decent)**即可找到成本函数的局部最小值,即得到最优假设函数。如下所示:
在这里插入图片描述
将梯度下降算法化简:
在这里插入图片描述
可以发现,上述方程都有相同的形式,因此可以表示为:
在这里插入图片描述

特征缩放(Feature scaling)

什么是特征缩放?
1)由来
在这里插入图片描述
如上图所示,在左图中,当特征量x1,x2相差过大时,在进行梯度下降时,很难找到使其收敛的值,需要消耗较长时间。这是因为θ在小范围内下降很快,在大范围范围内缓慢下降,因此当变量非常不均匀时,会低效率地振荡到最优。(当变量范围相差不大时无需特征缩放)
2)作用:加快梯度下降的速度,使梯度下降所需的次数更少
3)方法均值归一化(mean normalization),即将输入变量范围归一化:
在这里插入图片描述
如上所示,其中μi时输入特征量的平均值,si表示输入特征量的(max-min)。

学习速率的选择(learning rate——α)

我们知道,在梯度下降算法中,学习速率α关乎梯度下降的速度,过高或者过低都不合适。
问题:
若α太小:收敛缓慢。
若α太大:不会在每次迭代中都减小,可能不会收敛。
解决:
画出代价函数(cost function)随迭代次数变化的曲线,观察其变化情况,若发现随着迭代次数增加,代价函数J(θ)上升,则说明需要减小学习速率α。
(这里如何理解呢?我们知道,梯度下降算法是不断执行θ的赋值直到收敛,在这里插入图片描述
在这里插入图片描述

于代价函数J(θ)而言,对于其中特定的一点,如果它的导数值为正,根据上式θ会减小,也就意味着J(θ)下降。但是,如果此时J(θ)反而上升,无疑,必然是由于学习速率α过大,导致θ下降过多,已经到了最低点的另一侧,如果不明白可以参见梯度下降算法基础入门篇:入口点击

在实际项目中,我们一般这样选择:
首先以10倍为基准,测试:
…0.0001,0.001,0.01,0.1,1…
根据上述测试作“J(θ)~迭代次数”的图像,接着从选定的范围再取一次,例如:选定速率α在0.001到0.01之间,可以测试0.003。理想学习速率α:比最大的α值小一点(保证收敛的前提下,减少梯度下降所需的时间)

特征合成和多项式回归

特征合成

我们可以使用不同的方式改变特征和假设函数的形式
例如:已知房子的长度x1和宽度x2,如果要去衡量房价,我们不妨设定一个变量x3,x3=x1*x2,用新的特征量去衡量房价。

多项式回归

在实际问题处理时,我们所拟合的曲线大多不是线性的,这时,我们可以通过使假设函数变成二次、三次或平方根函数(或任何其他形式)来改变假设函数的行为或曲线。例如:
在这里插入图片描述
在这里,我们可以假设x2=x1²,得到一个与两个特征量x1,x2有关的假设函数,这里由于x1,x2相差过大,需要对其特征缩放(feature scaling)。

(图片素材来自吴恩达机器学习)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值