第8章 深度模型中的优化
8.1 学习和纯优化有什么不同
纯优化最小化目标J本身,机器学习通常是间接作用的。训练深度模型的优化算法通常也会包括一些针对机器学习目标函数的特定结构进行的特化。
8.1.1 经验风险最小化
机器学习算法的目标是降低式(8.2) 所示的期望泛化误差。这个数据量被称为风险(risk)。将机器学习问题转化回一个优化问题的最简单方法是最小化训练集上的期望损失。这意味着用训练集上的经验分布^p(x; y) 替代真实分布p(x; y)。现在,我们将最小化经验风险(empirical risk):
其中m 表示训练样本的数目。
基于最小化这种平均训练误差的训练过程被称为经验风险最小化(empirical risk minimization)
8.1.2 代理损失函数和提前终止
有时,我们真正关心的损失函数(比如分类误差)并不能被高效地优化。例如,即使对于线性分类器而言,精确地最小化0-1 损失通常是不可解的(复杂度是输入维数的指数级别)(Marcotte and Savard, 1992)。在这种情况下,我们通常会优化代理损失函数(surrogate loss function)。代理损失函数作为原目标的代理,还具备一些优点。例如,正确类别的负对数似然通常用作0-1 损失的替代。负对数似然允许模型估计给定样本的类别的条件概率,如果该模型效果好,那么它能够输出期望最小分类误差所对应的类别。
8.1.3 批量算法和小批量算法
回想一下,n 个样本均值的标准差(式(5.46) )是,其中 是样本值真实的标准差。分母 表明使用更多样本来估计梯度的方法的回报是低于线性的。比较两个假想的梯度计算,一个基于100 个样本,另一个基于10; 000 个样本。后者需要的计算量是前者的100 倍,但却只降低了10 倍的均值标准差。如果能够快速地计算出梯度估计值,而不是缓慢地计算准确值,那么大多数优化算法会收敛地更快(就总的计算量而言,而不是指更新次数)。
另一个促使我们从小数目样本中获得梯度的统计估计的动机是训练集的冗余。在最坏的情况下,训练集中所有的m 个样本都是彼此相同的拷贝。基于采样的梯度估计可以使用单个样本计算出正确的梯度,而比原来的做法少花了m 倍时间。实践中,我们不太可能真的遇到这种最坏情况,但我们可能会发现大量样本都对梯度做出了非常相似的贡献。
使用整个训练集的优化算法被称为批量(batch)或确定性(deterministic)梯度算法,因为它们会在一个大批量中同时处理所有样本。
每次只使用单个样本的优化算法有时被称为随机(stochastic)或者在线(on-line)算法