上溢和下溢 & 病态条件数
1.上溢和下溢计算稳定性特指模型运算性能的鲁棒性,举个栗子,如果我们让整数型的变量来存储一个浮点型变量,那么我们会损失精度。溢出是代表内容超过了容器的极限。在机器学习中,因为我们大量的使用概率,而概率往往是在0和1之间,导致了下溢发生的可能性大大提高。举个栗子,我们常常需要将多个概率相乘,假设每个概率 ,则P=像这种情况下,计算机无法分辨是0和一个极小数之间的区别。在这种情况下,下溢可能导致模型直
1.上溢和下溢
计算稳定性特指模型运算性能的鲁棒性,举个栗子,如果我们让整数型的变量来存储一个浮点型变量,那么我们会损失精度。
溢出是代表内容超过了容器的极限。在机器学习中,因为我们大量的使用概率,而概率往往是在0和1之间,导致了下溢发生的可能性大大提高。
举个栗子,我们常常需要将多个概率相乘,假设每个概率 ,则P=
像这种情况下,计算机无法分辨是0和一个极小数之间的区别。在这种情况下,下溢可能导致模型直接失败。
相似的,上溢也是如此,如果我们需要将多个较大的数相乘的时候,很轻易就超过了计算机的上限,64位计算机的数值上限:
因此在实际模型中,我们会避免将多个概率相乘,而转为求其对数(Log),举例:
2.病态条件数
条件数表明函数相对于输入的微小变化而变化的快慢程度。 输入被轻微扰动而迅速改变的函数对于科学计算来说是有问题的,因为输入中的舍去误差可能会导致输出的巨大变化。
考虑到函数 ,A是nxn矩阵,具有特征值分解,其条件数为:
这是最大和最小特征值之比。当该数很大时,矩阵求逆对输入的误差特别敏感。这种敏感性是矩阵本身的固有特性,而不是矩阵求逆期间舍入误差的结果。
如果之前就存在误差的话,矩阵会放大原来的误差。。。因为条件数大,所以矩阵对输入的误差很敏感。
更多推荐
所有评论(0)