概论
本文主要介绍深度学习与优化的关系,以及优化在深度学习使用中的问题和挑战。解决一个深度学习问题的基本步骤:
- 定义损失函数。
- 使用优化算法最小化损失。优化过程中,损失函数就是优化算法的目标函数。
通常我们优化的目标是最小化,当遇到最大化问题时,我们可以给目标函数加个负号。
优化的目标
虽然优化算法是深度学习中用来减少损失函数的方法,但是优化算法和深度学习的目标是不同的。
- 优化的目标是减少训练误差,最小化目标函数是基于训练集的损失函数。
- 深度学习的目标是减少泛化误差,是在有限数据集上寻找到合适的模型。
深度学习,除了训练模型时使用优化算法减少训练误差,还需要解决过拟合问题。我们进一步说明下这两个目标的区别,这里需要介绍下经验风险(empirical risk)和 真实风险(true risk)。经验风险时训练数据集的评价损失,真实风险时整个数据集的预期损失。我们定义经验风险函数 g g g和实际风险函数 f f f,在训练数据集中最低的经验风险可能与最低的真实风险(泛化误差)是不同的。
优化的挑战
优化算法的目标是减少训练误差,因此我们这里只关注最小化目标函数方面的挑战,暂时不关注泛化误差。深度学习优化存在的挑战有局部最小值、鞍点和梯度消失等。
局部最小值
对于任何目标函数 f ( x ) f(x) f(x),如果在 x x x处对应的 f ( x ) f(x) f(x)值小于在 x x