利用计算机实现数值计算,指的通常是利用迭代过程更新解来解决数学问题,而不是通过解析过程推到数学公式求解。常见得数值计算主要包括优化问题求解和解线性方程组。

上溢和下溢

通常实数在计算机内不能精确保存,利用计算机保存实数时,几乎总会引入一些近似误差。在许多情况下,这仅仅是舍入误差,舍入误差会导致一些问题。特别是在一些复合操作下, 理论上可行的算法,如果在实际中没有考虑到舍入误差的累积,在实际算法运用过程中也会导致算法的失效。

其中一种情况就是下溢。即有些逼近零的数,如零除或者对零取对数时,得到-,如果对负无穷进一步运算,则会得到非数字;

还有一种情况就是上溢。即大量级的数被近似为正负无穷时,发生上溢。发生上溢后,这些数值也会变为非数值。

解决数值上溢和下溢方法的一个实例是使用softmax函数。

定义为:

考虑一下,当所有xi都等于一个常数C。则softmax函数的值为1/n。

如果C很大,exp(c)的上溢会导致整个表达式未定义;

如果C是一个很小的负数,exp(c)会下溢;

解决方法,计算softmax(z)

如此,上溢的问题可以得到解决。下溢的情况也由于分母不为零解决。

But,有个小问题,当计算Log(softmax(z))时,softmax(z)可能为0,从而导致不可解。

解决方法,使用相同的技巧来解log(softmax(z))。

不过在多数情况下,可以简单地依赖保证数值稳定地底层库。当需要自己实现算法的时候,则需要考虑数值稳定性的问题。

转载于:https://www.cnblogs.com/xmd-home/p/9592140.html

数值计算中的上溢和下溢相关推荐

  1. 计算机组成原理中的“上溢”和“下溢”分别的定义是什么?

    上溢应该是想要表示的数超过了所能表示的最大值吧,下溢则应该是超过了最小值.这两个应该是带符号数的表示中的吧. 25   6 评论  分享  举报 转存失败重新上传取消 crystal9285  来自科 ...

  2. 数值计算基础(上溢下溢、梯度优化、牛顿法、KKT方法)

    目录 上溢和下溢 病态条件 基于梯度的优化方法 KKT 方法 如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~ 上溢和下溢 上溢:当大量级的数字被近似为  时发生上溢,进一步计算会导致 ...

  3. 上溢、下溢,this指针

    1.上溢.下溢: 对整数,溢出指代数值:小于最小值为下溢,大于最大值为上溢 对浮点数,溢出指绝对值:绝对值小于浮点数所能表示的最小值,为下溢,当作 0:绝对值大于浮点数所能表示的最大范围,为上溢,当作 ...

  4. C语言:浮点数上溢、下溢学习记录

    浮点数上溢.下溢 什么是上溢? 数据大于当前定义类型的范围,导致出现异常数据的现象. (当计算导致数字过大,超过当前类型能表达的范围时,就会发生上溢.) 例子1 在我电脑中float类型的长度是4个字 ...

  5. 【双符号位判决法】定点数上溢,下溢的判别

    上溢.下溢: 上溢:两个数进行运算,得到的结果的绝对值超过最大表示范围.定点整数之间只会发生上溢 下溢:两个浮点数运算,得到的结果的绝对值超过最小的表示范围.只有浮点数的运算会发生下溢 看图: 双符号 ...

  6. 机器学习中的数学——上溢和下溢

    分类目录:<机器学习中的数学>总目录 连续数学在数字计算机上的根本困难是,我们需要通过有限数量的位模式来表示无限多的实数.这意味着我们在计算机中表示实数时,几乎总会引入一些近似误差.在许多 ...

  7. 整数上溢和下溢与浮点上溢和下溢

    整数的上溢 #include<stdio.h> #include<math.h> int main() { int zhengshu1,zhengshu2;//int 类型在3 ...

  8. 视频编解码,bbv 缓冲区的上溢和下溢

    使用硬件相似的数据处理.一般都是数据进来,处理后立即发出去的形式.所以一般有一个数据进,一个数据出,2个接口. 硬件处理基本都要求实时.数据进来,处理之后马上发处理,这个时间要求非常短,一般要求控制在 ...

  9. C++ 上溢和下溢(overflow underflow)

    存储在内存中的数值都有一个允许的数值范围.当计算结果超出了数值范围,就BOOM~~ #include <iostream>using namespace std;int main() {f ...

最新文章

  1. 英特尔北京2022年冬奥会体验中心落成
  2. 把「光」存储1小时,中科大新研究破世界纪录,保真度高达96.4% | Nature子刊
  3. 在ubuntu下使用Eclipse搭建Hadoop开发环境
  4. Linux RPM 初步学习
  5. 20款响应式的 HTML5 网页模板【免费下载】
  6. 【javascript 变量和作用域】
  7. ARC079F - Namori Grundy(构造,基环树)
  8. VScode安装(ubuntu)
  9. python编写会计凭证金蝶_如何编制记账凭证?
  10. shell的执行顺序问题
  11. beautifulsoup网页爬虫解析_Python爬虫3步曲:5分钟学习用Python解析网页
  12. 1046. 划拳(15)-PAT乙级真题
  13. 二阶系统阶跃响应实验_二阶系统的阶跃响应实验报告
  14. Cloudera Manager 5升级(官方翻译整理,企业级实战验证)
  15. USB(十)2022-03-03
  16. 最全的TCP/UDP 协议知识点整理
  17. C语言 N个人围圈报数,数到3退出
  18. 360旗下APP再遭苹果下架 巨头频遭“一刀切”
  19. 敏捷开发项目人力工时评估法则
  20. HashMap和有序LinkedHashMap实现对比

热门文章

  1. “玻璃纤维强化聚酰胺66制超轻踏板托架”荣获2018年度“Altair Enlighten Award”
  2. 干货!适合编程小白的经典Python书籍推荐
  3. CSS-form表单及input表单控件
  4. 启明云端分享:高性价比ESP32-S3驱屏应用于洗衣机的方案
  5. opencv光流(密集光流+稀疏光流) cv.calcOpticalFlowPyrLK cv2.calcOpticalFlowFarneback python与c++实现
  6. scrollTop、offsetTop、clientTop
  7. go中race数据竞态用法
  8. 移动硬盘无法重命名问题的解决之道(win7)
  9. 双系统windows8 安装 遇到0x80070570
  10. libcurl简单介绍和使用