上QQ阅读APP看书,第一时间看更新
2.3 普通训练方法的局限
当我们把神经网络当作一个流行的机器学习模型,神经网络只是一个包含着众多参数的非线性函数,回顾我们统计学习中的贝叶斯观点,我们对包含参数的模型使用极大似然估计就可以得到损失函数。以回归问题为例,假设目标值t对于输入变量x的条件分布是一个高斯分布:
其中,分布的均值为ωTxi,通过最大化对数似然(见《统计学习必学的十个问题》第3章),我们就会得到均方误差函数:
但在神经网络中,情况稍有不同,我们仍然可以假设条件分布为高斯分布,但其均值并非是ωTxi。因为在线性模型中,我们可以将每一个权重分配给每一个输入变量,而在神经网络中,只有输入层的权重直接作用于输入变量,其余层的权重系数是作用于上一层的输入,所以神经网络的权重和输入的关系是复合嵌套的,令f表示激活函数,输出y可以被表示为:
虽然均值的改变并不会影响极大似然估计的使用,但是却会让损失函数变为非凸(见第3章)。在这里,我们先暂时忽略掉这种非凸的可能后果,只把损失函数看作是一个衡量输出和输入差异的平方损失:
对其使用梯度下降法,我们会得到损失函数对于各个参数的偏导:
其中,我们利用了偏导的链式法则,这一法则会在神经网络中广泛使用,这是链式法则存在于复合函数中,如式(2.10),如果我们想计算浅层的参数ωi的偏导,那么根据链式法则,偏导的计算为:
也就是说在估计浅层的参数偏导需要依赖于深层的结果,这种依赖关系使得普通的训练方法计算复杂度大大增加,因为普通的训练将每个参数的偏导进行单独的估计,很多计算都会重复。而我们如果想训练神经网络,无论是一阶方法还是二阶方法都需要计算损失函数的梯度,而且神经网络的参数数目庞大,我们需要找到更高效的办法。