深度学习入门-数值计算

机器学习算法通常需要大量的数值计算。这通常是指通过迭代过程更新解的估计值来解决数学问题的算法,而不是通过解析过程推导出公式来提供正确解的方法。常见的操作包括优化(找到最小化或最大化函数值的参数)和线性方程组的求解。对数字计算机来说实数无法在有限内存下精确表示,因此仅仅是计算涉及实数的函数也是困难的。

上溢和下溢

当大量级的数被近似为$\infty$或$-\infty$,进一步的计算将会导致这些异常值变成非数字,这称为上溢

当接近0的数被四舍五入成0时,就会产生下溢

因此在实际模型中,我们会避免将多个概率相乘,而转为求其对数(Log)。

病态条件

数值分析中,一个问题的条件数是该数量在数值计算中的容易程度的衡量,也就是该问题的适定性。一个低条件数的问题称为良置的,而高条件数的问题称为病态(或者说非良置)的。条件数表征函数相对于输入的微小变化而变化的快慢程度。输入被轻微扰动而迅速改变的函数对于科学计算来说可能是有问题的,因为输入中的舍入误差可能导致输出的巨大变化。【这个暂未理解,仅做摘录】

基于梯度的优化方法

大多数深度学习算法都涉及某种形式的优化。优化指的是改变 x 以最小化或最大化某个函数 f(x) 的任务。我们通常以最小化 f(x) 指代大多数最优化问题。最大化可经由最小化算法最小化 −f(x) 来实现。我们把要最小化或最大化的函数称为 目标函数(objective function)或 准则(criterion)。当我们对其进行最小化时,我们也把它称为 代价函数(cost function)、损失函数(loss function)或 误差函数(error function)。

约束优化

END