调试方法
特征缩放
对于某些不具有比较性的样本特征
(比如对其他的x来说
相当大或者相当小),梯度下降的过程可能会非常漫长,并且可能来回波动才能最后收敛到全局的最小值。
在这样的情况下,可以对
进行缩放(如
或者
),使得
与其他的
具有可比性,以增加梯度下降的效率。 **通常将
缩放至⟦-1,1⟧**的区间内。(只表示一个大致的范围,这不是绝对的。)
均值归一
将
替换为
使得特征值具有为0的平均值(对
不适用)
定义
为训练集
的平均值,
, 表示
的取值范围(近似值),或者直接设置为
的标准差。
学习率(Learning rate)
梯度下降调试的方法:
- 绘制
的图像 原则:每一个batch之后 θ 的值都应该减小,这样的图像能够通过直观地表现变化率来表现梯度下降是否收敛(变化率为0)。
- 自动收敛测试 如果
在某一次迭代之后的下降值小于某个值
后,就能够判断算法已经达到了收敛。
的值比较难取,所以通常采取1.中的方法进行观测。
常见的α过大的
的图像: α过大,出现梯度爆炸,每次
变化很大,导致代价函数无法收敛
α过小,梯度消失,每次
变化很小,导致代价函数收敛速度过慢