当前位置: 首页 > news >正文

8-机器学习与大模型开发数学教程-第0章 预备知识-0-8 编程与数值计算基础(浮点数精度、溢出、数值稳定性)

「ml-llm-math.zip」链接https://pan.quark.cn/s/35fc37047e5e前几节我们复习了集合、逻辑、数列、复数这些是数学语言。但当我们真正写代码跑模型时还需要掌握数值计算的“底层规则”。这一节我们来聊三个非常关键但常被忽视的点浮点数精度溢出数值稳定性它们看似是编程细节其实直接影响到模型训练的效果甚至可能导致“损失函数 NaN”的惨剧。0-4 编程与数值计算基础1. 浮点数精度在计算机里数字并不是连续的而是有限的二进制表示。这就带来一个问题很多小数没法被精确表示。例子print(0.10.2)# 输出结果不是 0.3而是0.30000000000000004为什么因为二进制小数不能精确表示 0.1 和 0.2它们只能存储为近似值。生活类比就像你用“分米”为单位来丈量房间有些长度比如 2.75 米就量不准只能近似到 2.8 米。在机器学习中的影响参数更新当学习率非常小如1 e − 9 1e^{-9}1e−9更新值可能因为精度问题被“吞掉”参数不变。比较大小判断两个浮点数是否相等时要小心推荐用math.isclose()或设置一个容差。2. 溢出Overflow / Underflow溢出overflow数太大超过计算机能表示的范围。例如math.exp(1000)→ 会得到inf无穷大。下溢underflow数太小被当作 0。例如math.exp(-1000)→ 会得到0.0。importmathprint(math.exp(1000))# infprint(math.exp(-1000))# 0.0生活类比溢出像是往一个 500ml 杯子里倒 1000ml 水 → 溢出来了。下溢像是往杯子里倒一滴水 → 看起来就像没水。在机器学习中的影响softmax 函数softmax ( x i ) e x i ∑ j e x j \text{softmax}(x_i) \frac{e^{x_i}}{\sum_j e^{x_j}}softmax(xi​)∑j​exj​exi​​如果x i x_ixi​特别大e x i e^{x_i}exi​会溢出成inf导致结果变成NaN。常见解决方案在 softmax 前减去最大值xx-np.max(x)exp_xnp.exp(x)softmaxexp_x/np.sum(exp_x)这样避免指数爆炸。3. 数值稳定性数值稳定性Numerical Stability指的是计算过程中是否会因为精度误差或溢出而导致结果不可靠。典型问题大数相减灾难性消除例如( 10 6 0.001 ) − 10 6 0.001 (10^6 0.001) - 10^6 0.001(1060.001)−1060.001但在计算机里由于10 6 10^6106太大0.001 可能被“忽略”导致结果变成 0。累加误差例如对一个大数组求和先加小数再加大数 vs 先加大数再加小数结果可能不同。这就是浮点数的加法不满足严格结合律( a b ) c ≠ a ( b c ) (ab)c \neq a(bc)(ab)ca(bc)。浮点精度溢出/下溢累积误差输入数据数值计算近似结果inf / 0不稳定结果图示说明数值计算中可能产生多种不稳定情况最终影响结果。在机器学习中的解决方法对数技巧log-trick在计算概率时经常用 log 形式log ⁡ ( a ⋅ b ) log ⁡ a log ⁡ b \log(a \cdot b) \log a \log blog(a⋅b)logalogb避免了直接相乘导致的 underflow。正规化在 softmax、batch normalization 中通过缩放数据避免极端值。高精度计算有些框架支持float64或混合精度训练mixed precision在效率和稳定性之间取平衡。小结浮点数精度计算机只能存近似小数可能导致0.1 0.2 ≠ 0.3 0.10.2 \neq 0.30.10.20.3。溢出/下溢数太大变成无穷大数太小变成 0。数值稳定性累积误差、灾难性消除会让计算结果不可靠。联系 AI 的意义在深度学习中训练失败的常见原因就是“数值不稳定”比如梯度爆炸、loss 变 NaN。掌握这些基础能帮助我们写出更健壮的训练代码。
http://www.rkmt.cn/news/1384221.html

相关文章:

  • SPT-AKI Profile Editor技术架构深度解析:基于MVVM的SPT存档管理系统设计
  • 基于LSTM与集成学习的风机预警预测:从时序数据到主动维护
  • 大模型推理的PD分离:CANN用MC2算子做了什么
  • 从信号处理到游戏开发:sin/cos函数图像背后的实战应用与性能调优指南
  • 基于STM32N6与MoveNet的体感切水果游戏:边缘AI交互实战
  • 技术方案:如何通过WebCatalog将网站应用化解决桌面环境碎片化问题
  • 防城港梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • Unity游戏去马赛克终极指南:5款免费插件完整配置教程
  • 别再只调sklearn的SVC了!手把手教你用Python从零实现SVM分类器(附鸢尾花数据集实战)
  • Voyager AI玩Minecraft翻车实录:我遇到的5个坑及修复方案(Win10环境)
  • Filecoin节点运维日记:一次完整的32GiB扇区基准测试与性能调优全记录
  • 告别macOS下载烦恼:res-downloader视频资源下载终极指南
  • 5分钟搭建智能抢票系统:告别手慢无票的烦恼
  • 3分钟完成微信防撤回设置:WeChatIntercept完整使用指南
  • 如何5分钟内将位图转换为无限放大的矢量图:vectorizer深度解析
  • AI Agent Harness Engineering 的版权问题:生成内容的归属权与侵权风险防范
  • Control User Cursor:10个创意交互效果的JavaScript光标控制教程
  • 3步掌握网络资源抓取技巧:从微信视频号到多平台内容下载实战指南
  • 如何用Electron打造终极番茄工作法应用:Pomolectron完整指南 [特殊字符]
  • 2026年AI就业风向标:这6大方向薪资翻倍,选对赢在起跑线!
  • 如何通过3个实战场景解决iOS应用中的Markdown渲染难题
  • 番茄小说下载器:一图看懂三大核心能力与零门槛使用指南
  • java基础-多线程(1)
  • FIFA 23生涯模式修改器终极指南:免费开源工具打造梦幻球队
  • CFD模拟中FP32与FP64精度选择的性能与精度对比
  • 跨平台漫画阅读终极指南:Tachidesk-Sorayomi 完整安装与使用教程
  • JMeter-Rabbit-AMQP插件:消息队列性能测试的完整指南
  • 索尼相机隐藏功能完全解锁:PMCA-RE逆向工程工具终极指南
  • SBTI 人格测试
  • 3d打印资料笔记