3 梯度下降
3.1 一维梯度下降
- 对连续可微实函数f利用泰勒展开:
-
在一阶近似中, $f ( x + \epsilon ) $可用f(x)和f'(x)来近似.
-
令
,其中 是学习率,那么有:
- 用
来代替 ,可以使得函数值下降:
1 | %matplotlib inline |
epoch 10, x: 0.06046617599999997
3.1.1 学习率
- 如果学习率太小,x更新缓慢
- 如果学习率太大,$ | \eta f ' ( x ) |
O ( \eta ^ 2 f^ {'2} ( x ) )$项不能忽略不计.
1 | show_trace(gd(1.1, f_grad), f) |
epoch 10, x: 61.917364224000096
3.1.2 局部最小值
-
对于非凸函数,例如
,可能会有多个局部最小值. -
高学习率导致较差的局部最小值:
1 | c = torch.tensor(0.5 * np.pi) |
epoch 10, x: tensor(-620.5891)