梯度下降的优化方法

特征缩放(归一化)

对于一个线性回归式子
y = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n y=\theta_0+\theta_1x_1+\theta_2x_2+\cdots+\theta_nx_n y=θ0+θ1x1+θ2x2++θnxn
若某两个特征值 x i , x j x_i,x_j xi,xj之间取值范围相差悬殊,比如 x i ∈ [ 0 , 2000 ] x_i\in[0,2000] xi[0,2000] x j ∈ [ − 0.5 , 0.5 ] x_j\in[-0.5,0.5] xj[0.5,0.5],那么相应的 θ i \theta_i θi的范围就会远小于 θ j \theta_j θj,在轮廓图中呈现出两个维度比例失衡的情况。

在这种情况下,运行梯度下降算法时会让我们的求解过程十分漫长,求解点会在范围较大的那个维度向着最低点艰难跋涉,伴随着范围较小的维度的不断震荡,使得求解效率低下。

为了优化这个问题,我们就对特征值进行预处理,设特征值 x i x_i xi的平均值为 μ \mu μ,范围为 [ a , b ] [a,b] [a,b],则定义一个新的特征值 x i ′ = x i − μ b − a x_i'=\frac{x_i-\mu}{b-a} xi=baxiμ,使得新特征值的取值范围基本落在 [ − 1 , 1 ] [-1,1] [1,1]范围内,这样各维度的比例就会更加均匀,提升求解效率。

图片来自吴恩达机器学习
在这里插入图片描述

学习率调整

很显然,学习率太小,收敛速度会很慢,而学习率太大有可能根本收敛不了。

在实际运行梯度下降算法时,我们主要观察迭代次数-代价函数曲线,通过代价函数值随迭代次数的变化来判断我们选择的学习率是否合理。也可以设定一个阈值 ε \varepsilon ε,当一次迭代后代价函数值的变化小于 ε \varepsilon ε时认为已经收敛,但在实际运用中 ε \varepsilon ε很难确定。

当不确定到底该选多少学习率时,可以先 1 , 0.1 , 0.01 , ⋯ 1,0.1,0.01,\cdots 1,0.1,0.01,这样试验,再根据经验做出调整。

非直线拟合

很多时候,数据点往往并不像一条直线,这时候我们会希望用一个多项式或者其他函数去拟合数据,为了能套用线性回归的方法,需要对特征值做一些处理。

比如果想拟合的是
y = θ 0 + θ 1 x + θ 2 x 2 + ⋯ + θ n x n y=\theta_0+\theta_1x+\theta_2x^2+\cdots+\theta_nx^n y=θ0+θ1x+θ2x2++θnxn
我们可以令 x 1 = x , x 2 = x 2 , ⋯   , x n = x n x_1=x,x_2=x^2,\cdots,x_n=x^n x1=x,x2=x2,,xn=xn,这样就又可以套用线性回归的梯度下降方法。

需要注意的是,这样操作过后各特征值的取值范围差距通常会变得很大,所以一般要搭配特征缩放使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值