3.数值计算

一、数值稳定性

1、计算机使用有限位比特存储数据,在执行数学运算时就会引入近似误差。近似误差在多步数值运算传递积累,从而导致算法失败。因此数值算法设计时要考虑累计误差最小化。

2、从头开始实现数值算法时,需要考虑数值稳定性,而当使用现有的数值计算库时,则不许考虑。(如tensorflow)

1.1 上溢出、下溢出

1、下溢出(underflow):当接近零的数字四舍五入为零时,发生下溢出。

2、上溢出(overflow):数值非常大,超过计算机表示范围时,发生上溢出。

3、一个数值为稳定性的例子是 softmax 函数。

    设\vec{x} =(x_{1},x_{2},...,x_{n})^{T},则softmax函数定义为:


softmax(\vec{x})=(\frac{exp(x_1)}{\sum_{j=1}^{n}exp(x_j)},\frac{exp(x_2)}{\sum_{j=1}^{n}exp(x_j)},...,\frac{exp(x_n)}{\sum_{j=1}^{n}exp(x_j)})^T

当所有的 x_i 都等于常数 c 时,softmax函数的每个分量的理论值都为 \frac{1}{n} 。

1.2 Conditioning

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

2、对于方阵 A \in \mathbb{R}^{n\times n},其条件数 condition number 为:

condition \ number = \underset{1\leq i,j\leq n,i\neq j}{max}\left | \frac{\lambda _i}{\lambda _j} \right |

  • 方阵的条件数就是最大的特征值除以最小的特征值。
  • 当方阵的条件数很大时,矩阵的求逆将对误差特别敏感(即:A 的一个很小的扰动,将导致其逆矩阵一个非常明显的变化)。
  • 条件数是矩阵本身的特性,它会放大那些包含矩阵求逆运算过程中的误差。
  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃山竹的开心小迟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值