多元梯度下降中常用的方法(特征缩放以及学习率的选择)

文章目录

特征缩放

思想:确保所有特征取值在同一个量级上

方法:用所有特征除以它的取值范围

例如:现在想预测房价与一些因素的关系,这里选用了房屋面积和卧室数量。其取值范围如下面式子
x 1 =  size ( 0 − 2000  feet 2 ) x 2 = number of bedrooms ( 1 − 5 ) x_1=\text{ size}(0-2000 \text{ feet}^2)\\ x_2=\text{number of bedrooms}(1-5) x1= size(02000 feet2)x2=number of bedrooms(15)
画出该代价函数的等高图如下图所示(这里仅画出了 θ 1 和 θ 2 \theta_1\text{和}\theta_2 θ1θ2的变化),我们可以看到他形状非常的细长

image-20220125192422599

解决的方法是尝试将所有特征的尺度都尽量缩放到-1到1之间。如图:

image-20220127204359488

最简单的方法是令: x n = x n − μ n s n {{x}_{n}}=\frac{{{x}_{n}}-{{\mu}_{n}}}{{{s}_{n}}} xn=snxnμn,其中 μ n {\mu_{n}} μn是平均值, s n {s_{n}} sn是标准差。

学习率

最经常做的就是画出每次迭代中代价函数的值的图形。

在选择了一个比较合适的学习率时,其正常的图形可能如下图所示:

image-20220127202853881

如果梯度下降正常工作的话,那么在每一次迭代后,代价函数 J ( θ ) J(\theta) J(θ)的值都应该下降

同时,从图中我们可以看出,在300次的迭代之后,代价函数已经趋于平坦,即代价函数以及趋于收敛了,那么我们就可以选择300个迭代周期为我们的训练周期,从而加快训练速度。对于不同的问题,迭代的次数差别会非常的大,这是很正常的

另外,也可以采用一种自动的收敛测试,也就是说采用一种算法,来告诉你梯度下降算法是否已经收敛,这里有一种典型的自动收敛测试算法:如果代价函数一步迭代之后的下降小于一个很小的值 ϵ \epsilon ϵ 1 0 − 3 10^{-3} 103),这个测试就判断函数已经收敛。但是一般情况下,选择一个合适的阈值 ϵ \epsilon ϵ是相当困难的。

因此,一般为了判断代价函数是否已经收敛通常还是采用直接画图比较简单一点。

直接画图除了可以判断是否已经收敛之外,还可以帮助我们发现算法是否正常工作

具体的说,如果你画出代价函数随迭代步数的变化曲线,看到的图形是这样的:

J ( θ ) J(\theta) J(θ)随着迭代次数在不断上升,这就表明梯度下降算法没有正常工作,并且这样的曲线通常意味着你应该使用较小的学习率 α \alpha α

image-20220127203740191

造成这种情况最通常的原因是因为你的代价函数是这样的图形,当你从一点开始时,由于学习率选择太大,导致梯度下降算法可能会冲过最小值,到达最小值另一侧的一个点,然后不断这样下去,导致离最小值越来越远。

这里感觉图上的横坐标标的是错的,应该是 J ( θ ) − θ J(\theta)- \theta J(θ)θ的曲线

image-20220127204029442

在另一种情况下,你可能看到这种形状的代价函数,先下降,然后上升,然后再下降,并不断往复,这种情况一般也是直接选择一个较小的学习率就好。

image-20220127204247164

梯度下降算法的每次迭代受到学习率的影响,如果学习率 a a a过小,则达到收敛所需的迭代次数会非常高;如果学习率 a a a过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。

通常可以考虑尝试些学习率:

α = 0.01 , 0.03 , 0.1 , 0.3 , 1 , 3 , 10 \alpha=0.01,0.03,0.1,0.3,1,3,10 α=0.010.030.10.31310

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hydrion-Qlz

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

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

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

打赏作者

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

抵扣说明:

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

余额充值