1.上溢和下溢

计算稳定性特指模型运算性能的鲁棒性,举个栗子,如果我们让整数型的变量来存储一个浮点型变量,那么我们会损失精度。

溢出是代表内容超过了容器的极限。在机器学习中,因为我们大量的使用概率,而概率往往是在0和1之间,导致了下溢发生的可能性大大提高。

举个栗子,我们常常需要将多个概率相乘,假设每个概率 ,则P=

像这种情况下,计算机无法分辨是0和一个极小数之间的区别。在这种情况下,下溢可能导致模型直接失败。

相似的,上溢也是如此,如果我们需要将多个较大的数相乘的时候,很轻易就超过了计算机的上限,64位计算机的数值上限:

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

这里写图片描述

2.病态条件数

条件数表明函数相对于输入的微小变化而变化的快慢程度。 输入被轻微扰动而迅速改变的函数对于科学计算来说是有问题的,因为输入中的舍去误差可能会导致输出的巨大变化。

考虑到函数 ,A是nxn矩阵,具有特征值分解,其条件数为:

这是最大和最小特征值之比。当该数很大时,矩阵求逆对输入的误差特别敏感。这种敏感性是矩阵本身的固有特性,而不是矩阵求逆期间舍入误差的结果。

如果之前就存在误差的话,矩阵会放大原来的误差。。。因为条件数大,所以矩阵对输入的误差很敏感。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐