5.4.1 步长
从上面的例子可以看出,下山或者寻找最小值取决于两个因素:
(1)每步你走哪个方向。如图5-4所示,从起点到下一个点,选择负梯度方向。
(2)每步你走多远,这叫步长(stepsize,也叫learningrate)。步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。用上面下山的例子,步长就是在当前这一步所在位置沿着最陡峭最易下山的位置走的那一步的长度,如图5-5所示。
在机器学习算法中,在最小化误差函数时,通过梯度下降法来一步步地迭代求解,最终得到最小化的误差和模型参数值。
上述的步长是一个超参数(Hyperparameter)。所谓超参数,是模型的一些细化特征。超参数与参数不同,它们本质的区别是,参数是在模型中训练出来的,而超参数是不可被训练的。绝大多数机器学习模型都有超参数,超参数是需要我们在训练之前人为指定的。
5.4.2 优化步长
在使用梯度下降时,需要进行调优。哪些地方需要调优呢?
(1)算法的步长选择。在前面的算法描述中,可以先取步长为1,但是实际上取值取决于数据样本,可以多取一些值,从大到小,分别运行算法,看看迭代效果,如果误差函数在变小,说明取值有效,否则要增大步长。步长太小,迭代速度太慢,很长时间算法都不能结束(见图5-6)。步长太大会导致迭代过快,甚至有可能错过最优解(见图5-7)。所以算法的步长需要多次运行后才能得到一个较为优的值。
(2)算法参数的初始值选择。初始值不同,获得的最小值也有可能不同,因此梯度下降求得的只是局部最小值。当然,如果误差函数是凸函数,则一定是最优解。由于有局部最优解的风险,需要多次用不同初始值运行算法,选择误差函数最小化的初值。
人工智能与大数据技术导论
152