AI算法工程师手册-一、数值稳定性

一、数值稳定性

  1. 在计算机中执行数学运算需要使用有限的比特位来表达实数,这会引入近似误差。 近似误差可以在多步数值运算中传递、积累,从而导致理论上成功的算法失败。因此数值算法设计时要考虑将累计误差最小化。
  2. 当从头开始实现一个数值算法时,需要考虑数值稳定性。当使用现有的数值计算库(如tensorflow )时,不需要考虑数值稳定性。 1.1 上溢出、下溢出
  3. 一种严重的误差是下溢出underflow:当接近零的数字四舍五入为零时,发生下溢出。 许多函数在参数为零和参数为一个非常小的正数时,行为是不同的。如:对数函数要求自变量大于零,除法中要求除数非零。
  4. 一种严重的误差是上溢出overflow:当数值非常大,超过了计算机的表示范围时,发生上溢出。
  5. 一个数值稳定性的例子是softmax函数。 设 ![一、数值稳定性 - 图1],则softmax函数定义为:

一、数值稳定性 - 图2 当所有的 ![一、数值稳定性 - 图3] 。

  • 考虑 一、数值稳定性 - 图6

  • 考虑 一、数值稳定性 - 图9

  • 为了解决softmax函数的数值稳定性问题,令 ![一、数值稳定性 - 图12] 个分量为:

一、数值稳定性 - 图1

  • 一、数值稳定性 - 图1

  • 一、数值稳定性 - 图1

  • 当 ![一、数值稳定性 - 图22] 趋向于负无穷,因此存在数值稳定性问题。

  • 通常需要设计专门的函数来计算 一、数值稳定性 - 图2

  • 一、数值稳定性 - 图2

  • softmax 名字的来源是hardmax

  • hardmax 把一个向量 一、数值稳定性 - 图3 softmax 会在这些位置填充0.0~1.0 之间的值(如:某个概率值)。 1.2 Conditioning

  • Conditioning刻画了一个函数的如下特性:当函数的输入发生了微小的变化时,函数的输出的变化有多大。 对于Conditioning较大的函数,在数值计算中可能有问题。因为函数输入的舍入误差可能导致函数输出的较大变化。

  • 对于方阵 ![一、数值稳定性 - 图35] ,其条件数condition number为:

一、数值稳定性 - 图3 其中 ![一、数值稳定性 - 图37] 的特征值。 方阵的条件数就是最大的特征值除以最小的特征值。

  • 当方阵的条件数很大时,矩阵的求逆将对误差特别敏感(即: 一、数值稳定性 - 图3 条件数是矩阵本身的特性,它会放大那些包含矩阵求逆运算过程中的误差。

文章列表

更多推荐

更多
  • Pharo敏捷人工智能-第一部分:神经网络
    Apache CN

  • Pharo敏捷人工智能-第二部分:遗传算法
    Apache CN

  • Pharo敏捷人工智能-# 第三部分:神经进化 第三部分:神经进化
    Apache CN

  • Azure数据工程指南-二十四、数据治理的权限 创建 azure 预览帐户,探索 azure 预览,探索词汇表,浏览资产,以编程方式使用预览,摘要,管理凭证和访问,创建扫描, 许多组织需要建立数据治理流程、标准和方法,并且已经能够使用内部 SQL Server 工具(如 Master
    Apache CN

  • Azure数据工程指南-二十二、Synapse 分析工作区 创建 Synapse 分析工作区,使用 Spark 探索样本数据,用 SQL 查询数据,用 SQL 创建外部表,摘要, 微软 Azure 数据平台的众多新增功能已经围绕许多类似的产品及其在现代 Azure 数据平台中的用途产生了兴奋和困
    Apache CN

  • Azure数据工程指南-二十三、数据块中的机器学习 创建 MLflow 实验,安装 MLflow 库,创建笔记本,选择性测井,自动记录,摘要, 寻求利用机器学习(ML)和人工智能能力的组织和开发人员花费大量时间构建 ML 模型,并寻求一种方法来简化他们的机器学习开发生命周期,以跟踪实验,
    Apache CN

  • Azure数据工程指南-二十一、将 Apache Spark 的 GraphFrame API 用于图形分析 安装 JAR 库,加载新数据表,将数据加载到数据块笔记本中,用顶点和边构建一个图,查询图表,寻找有图案的图案,用 PageRank 发现重要性,探索入度和出度度量,摘要,进行广度优先搜索,查找连接的组件, 图形技术使用户能够以图形的形式
    Apache CN

  • Azure数据工程指南-20 二十、部署 SQL 数据库先决条件,创建 Visual Studio SQL 数据库项目,安装 Visual Studio GitHub 扩展,导入 AdventureWorks 数据库,连接到 GitHub Repo 源代码控制,将
    Apache CN

  • Azure数据工程指南-十九、部署数据工厂更改 先决条件,创建 DevOps 持续集成构建管道,创建 DevOps 持续部署发布渠道,验证部署的数据工厂资源,摘要,Azure PowerShell 任务停止触发器,ARM 模板部署任务,Azure PowerShell 任务启动触发器
    Apache CN

  • Azure数据工程指南-十八、用于 Cosmos DB 的 Azure Synapse 链接 创建一个 Azure Cosmos DB 帐户,启用 Azure Synapse 链接,创建一个 Cosmos DB 容器和数据库,将数据导入 Azure Cosmos DB,在 Azure Synapse Analytics 中创建
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多