4.1 预测,比较和学习
在本章的引言中,我们说神经网络的学习方法其实就是一种猜谜-裁判游戏。实际上这个游戏可以分为三个步骤。
第一步:将数据和权重输入神经网络,预测结果。这一步可以归纳为"预测"。
第二步:将预测结果和实际结果进行比较,将其差异用评价值来打分。
第三步:根据打分值调整权重,使得下一次预测更接近实际值。
我希望通过这种分析的方法来让你不至于对于算法感到害怕。这是一种非常实用且顶级的三元逻辑分析法。实际上暗合我们中国古代道家的天地人的哲学思想。春秋时代的老子就已经是这种分析哲学的集大成者。
所谓“天”,就是不可改变的,与生俱来的属性或者特征,一般称为固有属性。在神经网络算法中就是指的数据集。
所谓“地”,就是可以使用的工具、设定好的规则和路径。在神经网络算法中就指的是模型。
所谓“人”,就是调和天地的力量。即:代表天的固有属性,在代表地的模型中的运动,演化,最终达到平衡,这就是“人”的力量。在神经网络算法中,它一般指对于评价函数的最优化。
在上面的天地人三元分析法中,人是最重要的因素,也是最难处理的部分,因为天和地都容易分析,但调和天地的理性机制却是隐藏的。亚里士多德称这种理性机制是系统的第一推动力量,也被称作是第一性原理。
下面我们着重分析比较和学习。
4.1.1 什么是比较?
比较实际上是为预测的“误差”提供度量。
一旦做出预测,我们需要评估预测结果有多准确。这似乎是一个简单的概念。但是你会发现,想出一个好的方法来衡量误差是深度学习中最重要和最复杂的课题之一。
在日常生活中,或许你并没有意识到,但是你可能已经尝试了许多有关衡量误差的工作。也许你会放大那些更明显的错误而忽略那些非常小的错误。在本章中,你将会学到如何使用数学方法教神经网络做到这一点。你还会发现,误差总是正的!不妨用射箭作为类比:无论射的比目标低一厘米还是高一厘米,误差都只有一厘米。在神经网络中,我们需要考虑测量误差所具有的这些性质。
请注意,在本章中,我们只介绍一种简单的误差测量的方法:均方误差。它只是评估神经网络准确性的众多方法之一。
“比较”这一步会让你知道自己的预测模型错了多少。这还不足以让它真正学会适应数据。下面我们来介绍如何真正地让神经网络来学习的原理。
4.1.2 神经网络学习的原理
“学习”的作用是告诉权重应该如何改变以降低误差。
“学习”就是关于误差的归因,或者可以说是一门能够找出每项权重在产生误差的过程中如何发挥作用的艺术。
我们来放松一下自己的大脑,想象我们现在要玩一个桌球游戏。这个游戏和普通的台球游戏有点不一样,我们预先在球桌上放一个台球和两个挡板,这两个挡板是呈“八”字形放的,而小的开口处正好对着一个球袋。那么可以论证,只要你把球打向挡板,最终经过多次的反弹后这个台球都会落袋。实际上,这两个挡板的作用就是修正台球的路径,让它最终达到正确的终点。
注意在上面的思维游戏中,每次撞击修正路径都使得路径相对于真实的最佳路径(即“八”字挡板的中心线)的偏差越来越小,最终台球几乎沿着最佳路径入袋。
在深度学习的过程中,我们也是利用类似的方法来训练计算机沿着正确的路径学习到准确的结果。这个方法有个很学院化的名字:梯度下降法。