梯度下降算法-两个小技巧

特征缩放(Feature scaling)

对于一个多变量线性回归模型,如果特征值之间的差异过大,将会导致梯度下降算法执行速度变慢,收敛速度下降。这时我们就可以使用特征缩放使特征处于大致相同的尺度。

以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值域为 0-2000,房间数量的值域则是0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。

                                                                                 (来自吴恩达课程)

这时我们通过特征缩放方法将每个特征量的值域缩放到【-1,1】的范围内即可。结合均值归一化(Mean normalization)方法,我们最终使用公式:x_i = \frac{x_i-mean}{std},其中mean表示均值,std表示标准差。使用特征缩放后,图像大致变为:

                                                                                 (来自吴恩达课程)

这样梯度下降算法将很快得到收敛。这里我们还需要注意一点,使用了特征缩放意味着你的特征量值会被映射到这个区间上来,那么等我们预测值的时候,也必须进行特征缩放。

学习速率(Learning rate)

如何选择合适的学习速率是梯度下降算法成功与否的关键所在。在我们使用梯度下降算法时,我们应该记录每一次迭代后得到的代价函数的值,迭代完成后作出以迭代次数为x轴,以代价函数值为y轴的函数图像,如果学习速率较为合适的话,它应该是单调递减的,而且随着迭代次数的增加,向0逼近。

而如果此函数图像不减反增,这极有可能是因为学习速率设置过大,这个问题我在单变量线性回归模型博客中有提到,不理解的话可翻看。如果此函数图像减小的十分缓慢,这说明学习速率设置过小,应尝试增大。

通常当我们选择学习速率时,可在0.001,0.003,0.01,0.03,0.1,0.3...中尝试,然后通过查看函数图像确定学习速率。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值