吴恩达机器学习笔记22-多元梯度下降之学习率的选择

2020-08-14 10:35:39 浏览数 (1)

本文是吴恩达《机器学习》视频笔记第22篇,对应第2周第4个视频。

“Linear Regression with multiple variables——Gradient descent in practice II: Learning rate”

01

笔记

本视频介绍多元梯度下降运算中的另一个实用技巧,学习率 的选择。

简单来说,梯度下降无非就是想方设法的一步一步、尽量快速地到达代价函数的最低点。

如下图:

而这个一步步变化的步长大小就是由这个学习率 决定的。本次视频的重点来了,如何选择学习率。

1.1 如何判断代价函数是否收敛

第一种办法,画曲线。

在工程实践中,经常会绘制梯度下降搜索的步数和代价函数的值之间的关系曲线。如下图:图中的横轴是梯度下降法的迭代次数、横轴是代价函数的值,一般迭代次数增加代价函数会变小,慢慢地,代价函数趋向于最小值。

需要注意的是,上面的图中并没有体现模型的参数 . 还有一个值得注意的是,当我们迭代次数到达100、200的时候代价函数的大小,这个时候也可以把对应的模型的参数输出来。

再次审视上面的那个图,当迭代次数从0到100的时候,代价函数下降非常明显,从100-200、200-300的时候下降比较明显,而从300-400的之间,代价函数下降就微乎其微了。到400以后代价函数曲线变得非常平缓,意味着下降算法已经收敛。

当然了,对于具体问题,收敛所需要的迭代次数肯定会有区别。

第二种,写强制收敛的测试函数。

比如我们可以简单粗暴地认为,当代价函数的值小于某个比较小的数的时候,就认为它已经收敛了。

当然,第一种画曲线的方法适用面更广一些。

1.2 有没有梯度下降法不灵的时候呢?

如果你画代价函数曲线的时候画成了下面这个样子。很明显,迭代次数增加反而让代价函数更大了,那这个时候咋办呢?

一种比较可行的办法就是减小学习率,就可以避免下面图中这种情况的发生。

较小的学习率

还可以避免下图的情况:

已经有数学家证明,只要你的学习率足够小,你总能到达代价函数的局部最小点。当然较小的学习率,会使得代价函数收敛非常非常非常缓慢。

1.3 总结

首先,绘制代价函数值和训练步数的关系曲线是很好的;

其次,学习率不能太大、也不能太小,为了找到那个最靓的学习率,不妨多试几个。

0 人点赞