雾里下山:训练机器模型
幸运的是数学上200年前就有了“自动”调节旋钮的办法。这个办法叫作“最陡梯度法”,或者通俗地叫作“雾里下山法”。当我们训练一个机器学习模型时,我们事先知道每一张图片是什么物体(汽车、猫等已经标注的图片),我们输入汽车图片时,要求只有对应“汽车”的那个灯泡最亮。在我们调节旋钮之前,灯泡的亮和灭都是混乱的,和我们的要求有很大误差。这些误差是由旋钮的值决定的。如果把这些误差画成一幅图像,就像图3.6一样有很多山峰,误差就是山峰的高度,图像的横轴和纵轴就是旋钮的值。
图片来源:维基百科。
当我们输入第一张图片时,我们可能站在一个随机的位置,例如某一座山峰的山顶或半山腰,我们的任务就是走到最低的一个谷底(误差最小)。我们此时相当于在大雾中被困在山里只能看见眼前的山坡,一个最笨的办法就是“最陡下降法”:站在原地转一圈,找到一个最陡的下山方向往这个方向走一步。在这个新的位置上,再转一圈找到最陡的下山方向再走一步,如此循环,一直走到山脚为止。
在“最陡下降法”中每次转圈找最陡下山方向相当于用误差函数的偏微分方程求梯度。简单地讲,旋钮的每一步的调节值是可以算出来的。这样我们根据输出的误差一步一步地算出旋钮的调节值,直到满意为止。这种根据误差回头调节旋钮的方法也叫“反向传播算法”,意思是用输出误差一层一层地从输出端向输入端把各层的权重系数算出来。
本书评论