深度学习 第4章 数值计算和 Deepseek 的实践
第4章 数值计算和 Deepseek 的实践
章节概述
本章主要探讨了数值计算中的关键问题,这些问题在深度学习和机器学习中尤为重要。数值计算的核心挑战在于如何在有限的计算资源和精度限制下,高效且稳定地处理连续数学问题。本章首先讨论了溢出和下溢问题,这些问题会导致数值计算中的误差和不稳定。接着,我们介绍了条件数的概念,它衡量了函数对输入误差的敏感性,尤其是在矩阵求逆和优化问题中。此外,本章详细介绍了基于梯度的优化方法,包括梯度下降及其在多维空间中的应用。我们还探讨了雅可比矩阵和海森矩阵,这些工具帮助我们更好地理解和优化复杂的多变量函数。最后,通过分析 Softmax 函数的数值稳定性问题,我们展示了如何通过数学技巧避免数值计算中的常见错误。这些内容共同构成了深度学习中数值计算的基础,帮助我们设计更高效、更稳定的算法。

4.1 溢出和下溢
-
定义:在数字计算机上执行连续数学运算时,需要使用有限的比特模式表示无限多的实数,这导致几乎所有实数在计算机中都会产生近似误差。
-
下溢:当接近零的数值被四舍五入为零时发生。许多函数在输入为零时的行为与输入为小正数时截然不同,例如避免除以零或计算零的对数(通常被视为 -∞)。
-
上溢:当数值的绝对值过大时,会被近似为 ∞ 或 -∞。这会导致后续运算中出现“非数字”(NaN)值。
-
解决方案:以 Softmax 函数为例,通过减去输入向量的最大值来稳定计算:

这种方法可以避免上溢和下溢,因为指数函数的最大输入为零,且分母中至少有一个值为1,从而避免了分母为零的情况。
4.2 条件数
-
定义:条件数衡量函数在输入发生微小变化时输出的变化速度。条件数越大,函数对输入误差越敏感。
-
矩阵条件数:对于矩阵

,其条件数定义为最大特征值与最小特征值的比值:

当条件数较大时,矩阵求逆对输入误差特别敏感,这种敏感性是矩阵本身的固有属性,而非由求逆过程中的舍入误差引起。
4.3 基于梯度的优化
-
优化任务:优化是指通过改变输入 ( x ) 来最小化或最大化某个函数 ( f(x) )。通常以最小化 ( f(x) ) 来表述优化问题。
-
梯度下降:利用函数的导数来寻找最小值。对于函数 ( f(x) ),其导数 ( f’(x) ) 表示 ( f(x) ) 在点 ( x ) 处的斜率。通过沿着负梯度方向移动 ( x ),可以逐步减小 ( f(x) ):

其中 ϵ 是学习率,控制步长大小。
-
局部极值和鞍点:
- 局部最小值:在该点 ( f(x) ) 比所有邻近点都小,无法通过微小步长进一步减小 ( f(x) )。
- 局部最大值:在该点 ( f(x) ) 比所有邻近点都大,无法通过微小步长进一步增大 ( f(x) )。
- 鞍点:在该点 ( f(x) ) 的某些邻近点更高,某些邻近点更低。
-
全局最小值:函数 ( f(x) ) 的绝对最小值点。在深度学习中,优化的目标函数可能有多个局部最小值和鞍点,优化算法通常只能找到一个局部最小值,而不是全局最小值。
4.3.1 超越梯度:雅可比矩阵和海森矩阵
-
雅可比矩阵:当函数的输入和输出都是向量时,雅可比矩阵包含所有偏导数。对于函数

海森矩阵对称且实数,可以通过特征分解来分析。海森矩阵的特征值决定了函数的曲率,从而影响梯度下降的性能。例如,当海森矩阵的条件数较差时,梯度下降的性能会显著下降,因为不同方向的导数变化速度差异较大。
章节总结
本章深入探讨了数值计算中的关键问题,这些问题在深度学习和机器学习中尤为重要。我们首先讨论了溢出和下溢问题,这些问题会导致数值计算中的误差和不稳定。接着,我们介绍了条件数的概念,它衡量了函数对输入误差的敏感性,尤其是在矩阵求逆和优化问题中。此外,本章详细介绍了基于梯度的优化方法,包括梯度下降及其在多维空间中的应用。我们还探讨了雅可比矩阵和海森矩阵,这些工具帮助我们更好地理解和优化复杂的多变量函数。最后,通过分析 Softmax 函数的数值稳定性问题,我们展示了如何通过数学技巧避免数值计算中的常见错误。这些内容共同构成了深度学习中数值计算的基础,帮助我们设计更高效、更稳定的算法。
DeepSeek在数值计算中的应用
DeepSeek在数值计算领域展现出了强大的能力和创新性。例如,DeepSeekMath模型通过引入符号计算模块,能够处理复杂的数学问题,包括代数方程求解、微积分运算和概率统计分析等。在处理数值积分问题时,DeepSeek能够灵活运用不同的数值方法,如高斯求积法则,并通过自适应步长控制算法确保计算结果的准确性。此外,DeepSeek在数值计算精度方面也做了大量优化,采用了高精度浮点数表示法,确保了在处理极限值和奇异点等问题时的稳定性和可靠性。
1. 数值稳定性与Deepseek的工程优化
Deepseek在开发大规模模型时,针对Softmax、交叉熵等易出现数值问题的模块,采用分步计算(如Log-Softmax分离)和数值截断技术,确保训练稳定性。例如,其自研框架内置自动梯度裁剪和混合精度训练,有效平衡计算效率与数值精度。
2. 病态条件问题的实战应对
在自然语言处理任务中,Deepseek通过预条件(Preconditioning)技术改进优化过程,例如对嵌入矩阵进行奇异值分解(SVD)降维,降低条件数,提升模型对输入噪声的鲁棒性。
3. 优化算法的创新应用
自适应学习率:Deepseek在训练视觉大模型时,采用改进的AdamW优化器,结合动态学习率预热与衰减策略,加速收敛并避免局部震荡。
二阶方法简化:针对海森矩阵计算成本高的问题,Deepseek提出基于对角近似海森矩阵的AdaHessian算法,在部分场景下实现收敛速度与计算开销的平衡。
4. 高维优化与分布式训练
面对高维参数空间中的鞍点问题,Deepseek设计基于动量加速和随机重启的优化策略,结合分布式训练框架中的梯度同步机制,有效逃离鞍点并提升训练效率。其开源工具包DeepSpeed(注:此处假设Deepseek类似微软DeepSpeed)支持大规模并行训练,内置显存优化和通信压缩技术。
精彩语录
1.在数字计算机上执行连续数学运算时,我们需要用有限的比特模式表示无限多的实数,这不可避免地会导致近似误差。
英文原文:The fundamental difficulty in performing continuous math on a digital computer is that we need to represent infinitely many real numbers with a finite number of bit patterns.
解释:这句话揭示了数值计算的核心挑战,即如何在有限的计算资源下处理连续数学问题。
2.当数值的绝对值过大时,会被近似为 ∞ 或 -∞,这会导致后续运算中出现“非数字”(NaN)值。
英文原文:Overflow occurs when numbers with large magnitude are approximated as ∞ or -∞.
解释:这句话描述了上溢问题,这是数值计算中常见的错误来源之一。
3.条件数衡量函数在输入发生微小变化时输出的变化速度。条件数越大,函数对输入误差越敏感。
英文原文:Conditioning refers to how rapidly a function changes with respect to small changes in its inputs.
解释:这句话解释了条件数的概念,它在矩阵求逆和优化问题中尤为重要。
4.优化是指通过改变输入 x 来最小化或最大化某个函数 f(x)。
英文原文:Optimization refers to the task of either minimizing or maximizing some function f(x) by altering x.
解释:这句话定义了优化任务,这是深度学习和机器学习中的核心问题。
5.海森矩阵的特征值决定了函数的曲率,从而影响梯度下降的性能。
英文原文:The eigenvalues of the Hessian matrix determine the curvature of the function, which affects the performance of gradient descent.
解释:这句话揭示了海森矩阵在优化问题中的重要性,它帮助我们理解函数的曲率并优化梯度下降算法。
相关文章:
深度学习 第4章 数值计算和 Deepseek 的实践
第4章 数值计算和 Deepseek 的实践 章节概述 本章主要探讨了数值计算中的关键问题,这些问题在深度学习和机器学习中尤为重要。数值计算的核心挑战在于如何在有限的计算资源和精度限制下,高效且稳定地处理连续数学问题。本章首先讨论了溢出和下溢问题&a…...
【数据分享】2000—2024年我国省市县三级逐年归一化植被指数(NDVI)数据(年最大值/Shp/Excel格式)
之前我们分享过2000-2024年我国逐年的归一化植被指数(NDVI)栅格数据,该逐年数据是取的当年月归一化植被指数(NDVI)的年最大值。(可查看之前的文章获悉详情)!该数据来源于NASA定期发布…...
HW华为流程管理体系精髓提炼华为流程运营体系(124页PPT)(文末有下载方式)
资料解读:HW华为流程管理体系精髓提炼华为流程运营体系(124页PPT) 详细资料请看本解读文章的最后内容。 华为作为全球领先的科技公司,其流程管理体系的构建与运营是其成功的关键之一。本文将从华为流程管理体系的核心理念、构建…...
Linux中管理多版本Python总结
1. pyenv 管理多个 Python 版本 pyenv 是一个流行的工具,用于管理多个 Python 版本。它可以轻松安装、切换和管理不同版本的 Python。 1.1.安装 pyenv 1.1.1安装依赖 sudo apt-get update sudo apt-get install -y make build-essential libssl-dev zlib1g-dev…...
【系统架构设计师】操作系统 - 特殊操作系统 ③ ( 微内核操作系统 | 单体内核 操作系统 | 内核态 | 用户态 | 单体内核 与 微内核 对比 )
文章目录 一、微内核操作系统1、单体内核 操作系统2、微内核操作系统 引入3、微内核操作系统 概念4、微内核操作系统 案例 二、单体内核 与 微内核 对比1、功能对比2、单体内核 优缺点3、微内核 优缺点 一、微内核操作系统 1、单体内核 操作系统 单体内核 操作系统 工作状态 : …...
OpenBMC:BmcWeb添加路由4 设置method
设置method的方式与设置权限的方式类似: //http\routing\ruleparametertraits.hpp struct RuleParameterTraits {...self_t& methods(boost::beast::http::verb method){self_t* self = static_cast<self_t*>(this);std::optional<HttpVerb> verb = httpVerb…...
【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?
RabbitMQ基于AMQP协议实现,由多个核心组件组成,确保消息的可靠传递。 Rabbit的架构图: 1.RabbitMQ的基本架构: 1.核心组件: 1.Producer(生产者): 发送消息到RabbitMQ。 2.Exchange(交换机):接…...
(C语言)将整数转化为二进制(转化二进制教学)
#include <stdio.h> #include <stdlib.h>void intToBinary(int num, char *binary) {int index 0;for (int i 31; i > 0; i--) { // 假设 int 是 32 位int bit (num >> i) & 1; // 获取第 i 位binary[index] bit 0; // 将 bit 转换为字符 0 或…...
Octave3D 关卡设计插件
课程参考链接 这位大佬有在视频合集中有详细的讲解,个人体验过,感觉功能很强大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab资源管理 第一步 在场景中创建一个空物体…...
【视频】文本挖掘专题:Python、R用LSTM情感语义分析实例合集|上市银行年报、微博评论、红楼梦、汽车口碑数据采集词云可视化
原文链接:https://tecdat.cn/?p41149 分析师:Zhenzhen Liu,Shuai Fung 作为数据科学家,我们始终关注如何从非结构化数据中提取高价值信息。本专题合集聚焦企业年报的文本分析技术,通过Python与R语言实战案例ÿ…...
反编译内容
“反编译” 是指将可执行的程序(如二进制代码、字节码等)转换回人类可读的高级语言源代码或某种中间表示形式的过程。 在软件领域,比如对于用 Java 编写的程序,编译后是字节码文件(.class),反…...
机器学习扫盲系列(1) - 序
文章目录 序为什么要写这一系列?AI 概念科普原理性思维转行立flag 这一系列的计划神经网络训练框架 序 为什么要写这一系列? AI 概念科普 在各种AI概念铺天盖地向我们袭来的今天,我们作为其他方向的工作者,如果想转行做深度学习…...
英伟达“AI 超级碗”开幕
Nvidia的AI和机器人技术进展 2025年03月19日 | AI日报  欢迎各位人工智能爱好者。 Nvidia的CEO Jensen Huang刚刚拉开了他的“AI超级碗”,并发表了关于该公司最新芯片、…...
DeepSeek扫盲篇: V3 vs R1全面对比架构差异与蒸馏模型演进史
I. 引言:DeepSeek系列的技术革命 在全球大模型军备竞赛白热化的2023年,DeepSeek系列通过V3与R1两款里程碑产品,构建了中文大模型领域的"双塔奇观"。这两个看似矛盾的版本——前者以1280亿参数的MoE架构突破算力边界,后…...
UE5材质法线强度控制节点FlattenNormal
连法 FlattenNormal内部是这样的 FlattenNormal的作用是用来调整法线强度 连上FlattenNormal后 拉高数值...
【一起来学kubernetes】19、Pod使用详解
Kubernetes 中的 Pod 是最小的可调度和可管理单元,也是容器化应用的载体。Pod 封装了一个或多个紧密关联的容器,共享网络、存储和生命周期。 一、Pod 的核心概念 定义 Pod是Kubernetes中最小的部署单元,可以包含一个或多个容器。这些容器紧…...
第2章:容器核心原理:深入理解Namespace、Cgroup与联合文件系统
第2章:容器核心原理:深入理解Namespace、Cgroup与联合文件系统 作者:DogDog_Shuai 阅读时间:约20分钟 难度:中级 目录 1. 引言2. Linux容器核心技术3. Namespace详解4. Cgroup详解5. 联合文件系统6. 容器运行时原理...
计算机网络基础:认识网络硬件与传输介质
计算机网络基础:认识网络硬件与传输介质 一、前言二、网络硬件设备2.1 路由器2.1.1 路由器的基本概念与功能2.1.2 路由器的工作原理2.1.3 路由器的类型与应用场景 2.2 交换机2.2.1 交换机的基本概念与功能2.2.2 交换机的工作原理2.2.3 交换机的类型与应用场景 2.3 服…...
Android audio(8)-native音频服务的启动与协作(audiopolicyservice和audioflinger)
音频策略的构建 1、概述 2、AudiopolicyService 2.1 任务 2.2 启动流程 2.2.1 加载audio_policy.conf(xml)配置文件 2.2.2 初始化各种音频流对应的音量调节点 2.2.3 加载audio policy硬件抽象库 2.2.4设置输出设备 ps:audiopatch流程简介 2.2.5打开输出设…...
法兰克仿真软件FANUC CNC Guide v25.0 安装教程及中文设置
前言 下载地址在文末。 我们公司用新到一批FANUC 系统的设备,为方便使用就装了一个 FANUC 数控系统仿真软件FANUC CNC Guide v25.0 ,还是最新版不是市面上流传的老版本。模拟学习一下。 安装操作 安装环境:Windows 11 专业版 24H2 安装程…...
事务隔离级别是?
事务隔离级别是数据库管理系统用来控制多个事务并发执行时对数据的可见性和一致性的机制。MySQL支持四种标准的事务隔离级别,它们定义了事务如何与其他并发事务交互。 四种事务隔离级别: READ UNCOMMITTED(读未提交) READ COMMIT…...
[JavaScript]如何利用作用域块避免闭包内存泄漏?
出自《你不知道的JavaScript》上卷 以下是本书给出的反例: function process (data) {...} var bigdata{...} process(bigdata); var btn document.getElementById(x); btn.addEventListener(click, function click{...});click会被回调在其他位置, 在addEventListener函数内…...
基于Selenium Grid的分布式测试架构设计与深度实践
一、引言:分布式测试的必然性与挑战 在数字化转型浪潮中,软件交付速度已成为企业竞争力的核心指标。敏捷开发、DevOps和持续交付(CI/CD)的普及,使得传统测试方法面临前所未有的挑战。单机测试模式在应对以下场景时显得…...
JavaScript 金额运算精度丢失问题及解决方案
JavaScript 金额运算精度丢失问题及解决方案 1. 前言2. 为什么 JavaScript 计算金额会精度丢失?2.1 JavaScript 使用 IEEE 754 双精度浮点数2.2 浮点运算错误示例**错误示例 1:0.1 0.2 ≠ 0.3****错误示例 2:浮点乘法精度问题** 3. 解决方案…...
【Python】使用ImageEnhance提升图片画质
使用ImageEnhance提升图片画质 from PIL import Image, ImageEnhance import ioimage_path "PhoneImg_20250319_160023607949_01.png"def enhance_image_quality(image_path):"""使用双三次插值算法提升画质"""with Image.open(imag…...
vector容器以及deque
vector 一.vector容器简介二.vector的默认构造1. 语法和功能2.vector带参数的构造3.vector的赋值4.vector的大小5.vector数值操作 deque简介: 一.vector容器简介 • vector是将元素置于一个动态数组中加以管理的容器。 std::vector 是 C 标准模板库(STL…...
jmeter中,上传文件的MIME类型
text/plain:用于纯文本文件,如.txt文件。 text/html:用于HTML文档,即.html文件。 application/msword:Microsoft Word文档,即.doc和.docx文件。 image/jpeg:JPEG图像&#x…...
《心理学与生活》2025最新网课答案
《心理学与生活》2025最新网课答案 文章目录 《心理学与生活》2025最新网课答案发展与教育单元测试情绪与情感单元测验人格与动机单元测试感知与记忆单元测试文化与社会单元测试 发展与教育单元测试 题数 20 棉花糖实验中哪些小孩长大后的表现更好()。 …...
Java SE 面经
1、Java 语言有哪些特点 Java 语言的特点有: ①、面向对象。主要是:封装,继承,多态。 ②、平台无关性。一次编写,到处运行,因此采用 Java 语言编写的程序具有很好的可移植性。 ③、支持多线程。C 语言没…...
关于redis中的分布式锁
目录 分布式锁的基础实现 引入过期时间 引入校验id 引入lua脚本 引入看门狗 redlock算法 分布式锁的基础实现 多个线程并发执行的时候,执行的先后顺序是不确定的,需要保证程序在任意执行顺序下,执行逻辑都是ok的。 在分布式系统中&am…...
