2.2.3 判定梯度下降是否收敛 + α学习率的选择
2.1、 判定梯度下降是否收敛
有两种方法,如下图:
- 方法一:
- 如图,随着迭代次数的增加,J(W,b)损失函数不断下降
- 当 iterations = 300 之后,下降的就不太明显了 / 基本是一条直线了。 这时我们就说,==> “梯度下降已经收敛了”
- 方法二:
- 设置一个阈值 ε,这里我们让ε = 0.001 (自己设置的,但有的时候也掌握不好这个值是多少)。当J(w,b)下降值 < ε 时,我们就认为他已经收敛了
- 最后:还是推荐方法一
2.2 如何设置学习率 α
1、常见的情况:
- 情况一:说明 代码出现bug / α学习率选择太大了
- 情况二:学习率α太大了
- 情况三:这是一个正常的情况,但是当 迭代次数过多 也可能说明α学习率选择较小
- 情况四:学习率太大了/代码的问题,你把每次更新w 写成w = w +… 应该是减法
2、选择 α 学习率的方法:
- 首先选择从 0.0001 0.01 0.1 1 10 依次去尝试,当发现学习率α的值过大时(J(W,b)损失函数发生上弹)。
- 再进行从最后一次正常的α值(出现损失函数J(w,b)上弹之前的值),依次迭代乘3去尝试
- 最后选择一个比较好的值
**第一步:**首先选择从 0.0001 0.01 0.1 1 10 依次去尝试,当发现学习率α的值过大时(J(W,b)损失函数发生上弹)。
第二步:再进行从最后一次正常的α值(出现损失函数J(w,b)上弹之前的值),依次迭代乘3去尝试。 然后可以以此类推。最后收敛后,选择最合适的α值。