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

【课堂笔记】稳定性和反向传播误差

文章目录

    • 浮点数运算
    • 算法条件数
    • 例子

浮点数运算

对于两个算法,我们总是希望比较:

  • 其中一个算法比另一个快吗(fast)
  • 其中一个算法比另一个更稳健吗(robust)

通常在运算浮点数时,会产生溢出和精度不足等问题,这是影响算法性能的一个重要原因。所以我们会去统计算法进行的浮点数运算次数(flops)

算法条件数

如果将要解决的问题定义为f:X→Yf: X \to Yf:XY,而算法实现为f~:X→Y\tilde{f} : X \to Yf~:XY,如果算法f~\tilde{f}f~精确的(accuracy),如果对任意x∈Xx \in XxX
∥f~(x)−f(x)∥∥f(x)∥=O(ϵ)\frac{\|\tilde{f}(x) - f(x)\|}{\|f(x)\|} =O(\epsilon) f(x)f~(x)f(x)=O(ϵ)

δf=f(x+δx)−f(x)\delta f = f(x + \delta x) - f(x)δf=f(x+δx)f(x)绝对条件数(absolute condition number)记为:
k^=supδx≠0∥δf∥∥δx∥\hat{k} = \underset{\delta x \neq 0}{\text{sup}} \frac{\|\delta f\|}{\|\delta x\|} k^=δx=0supδxδf
相对条件数(relative condition number)记为:
k=supδx≠0∥δf∥∥f(x)∥/∥δx∥∥x∥k = \underset{\delta x \neq 0}{\text{sup}}\frac{\|\delta f\|}{\|f(x)\|} / \frac{\|\delta x\|}{\|x\|} k=δx=0supf(x)δf/xδx

假设fff是可微的,x∈Rm,y∈Rnx \in \mathbb{R}^m, y \in \mathbb{R}^nxRm,yRn, ∂x→0\partial x \to 0x0,我们可以得到雅可比矩阵:
J(x)=[∂f1∂x1∂f1∂x2⋯∂f1∂xm∂f2∂x1∂f2∂x2⋯∂f2∂xm⋮⋮⋱⋮∂fn∂x1∂fn∂x2⋯∂fn∂xm]J(x) = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_1}{\partial x_2} & \cdots & \frac{\partial f_1}{\partial x_m} \\ \frac{\partial f_2}{\partial x_1} & \frac{\partial f_2}{\partial x_2} & \cdots & \frac{\partial f_2}{\partial x_m} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f_n}{\partial x_1} & \frac{\partial f_n}{\partial x_2} & \cdots & \frac{\partial f_n}{\partial x_m} \end{bmatrix} J(x)=x1f1x1f2x1fnx2f1x2f2x2fnxmf1xmf2xmfn
于是
k^=∥J(x)∥k=∥J(x)∥/∥f(x)∥∥x∥\begin{align*} \hat{k} &= \|J(x)\| \\ k &= \|J(x)\| / \frac{\|f(x)\|}{\|x\|} \end{align*} k^k=J(x)=J(x)∥/xf(x)

一个数值算法被称为 stable,如果它在计算过程中对舍入误差不敏感,即:算法得到的结果近似于某个接近原始输入的问题的精确解。

  • 数学描述:设真实问题是f(x)f(x)f(x),算法解为f~(x)\tilde{f}(x)f~(x),存在一个微小扰动δx\delta xδx,使得f~(x)≈f(x+δx)\tilde{f}(x) \approx f(x + \delta x)f~(x)f(x+δx)

一个算法被称为 backward stable,如果它计算出的结果是某个微小扰动后输入的精确解。

  • 数学描述:算法输出f~(x)=f(x~)\tilde{f}(x) = f(\tilde{x})f~(x)=f(x~),其中x~=x+δ(x)\tilde{x} = x + \delta(x)x~=x+δ(x)
    换句话说,我没有精确解出f(x)f(x)f(x),但我精确解出了一个非常接近的问题f~(x)\tilde{f}(x)f~(x)

例子

外积是stable的,但不是backward stable的
Aij~=xy∗(1+ϵ∗)=Aij(1+ϵ∗)\tilde{A_{ij}} = xy^*(1 + \epsilon_*)=A_{ij}(1+\epsilon_*) Aij~=xy(1+ϵ)=Aij(1+ϵ)
然而,得到的A~\tilde{A}A~不是秩1的,无法表示为下面的形式(某个扰动后向量的精确外积)
A~=(x+δx)(y+δy)∗(×)\tilde{A} = (x + \delta x)(y + \delta y)^* \ \ (\times ) A~=(x+δx)(y+δy)  (×)

内积是backward stable的:
[x1x2]⊤[y1y2]=x1y1(1+ϵ∗(1))+x2y2(1+ϵ∗(2))=[x1(1+ϵ∗(1))(1+ϵ+(1))x2(1+ϵ∗(2))(1+ϵ+(2))]⊤[y1y2]\begin{align*} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}^\top \begin{bmatrix} y_1 \\ y_2 \end{bmatrix}&=x_1y_1(1 + \epsilon_*^{(1)}) + x_2y_2(1 + \epsilon_*^{(2)}) \\ &= \begin{bmatrix} x_1(1+\epsilon_*^{(1)})(1+\epsilon_+^{(1)}) \\ x_2(1+\epsilon_*^{(2)})(1+\epsilon_+^{(2)}) \end{bmatrix}^\top \begin{bmatrix} y_1 \\ y_2 \end{bmatrix} \end{align*} [x1x2][y1y2]=x1y1(1+ϵ(1))+x2y2(1+ϵ(2))=[x1(1+ϵ(1))(1+ϵ+(1))x2(1+ϵ(2))(1+ϵ+(2))][y1y2]

通过以下方法解方程Ax=bAx = bAx=b是backward stable的:

  • 通过Householder方法得到A=QRA = QRA=QR
  • y=Q∗by = Q^*by=Qb
  • x=R−1yx = R^{-1}yx=R1y

证明:
显然后两步是backward stable的,(Q~+δQ)y~=b(\tilde{Q} + \delta Q)\tilde{y} = b(Q~+δQ)y~=b(R~+δR)x~=y~(\tilde{R} + \delta R)\tilde{x} = \tilde{y}(R~+δR)x~=y~
于是
b=(Q~+δQ)(R~+δR)x~=(Q~R~+δQR~+Q~δR+δQδR)x~\begin{align*} b &= (\tilde{Q} + \delta Q)(\tilde{R} + \delta R)\tilde{x} \\ &= (\tilde{Q}\tilde{R} + \delta Q\tilde{R} + \tilde{Q}\delta R + \delta Q \delta R)\tilde{x} \end{align*} b=(Q~+δQ)(R~+δR)x~=(Q~R~+δQR~+Q~δR+δQδR)x~
这里A~=Q~R~\tilde{A} = \tilde{Q}\tilde{R}A~=Q~R~δA=δQR~+Q~δR+δQδR\delta A = \delta Q\tilde{R} + \tilde{Q}\delta R + \delta Q \delta RδA=δQR~+Q~δR+δQδR∥δA∥∥A∥=O(ϵmath)\frac{\|\delta A\|}{\|A\|} = O(\epsilon_{\text{math}})AδA=O(ϵmath)

http://www.dtcms.com/a/466385.html

相关文章:

  • 网站刷链接怎么做ui设计师是吃青春饭吗
  • Vue3大文件上传终极解决方案
  • 球极平面投影
  • Linux进程信号 --- 信号的产生方式、信号的保存
  • 织梦建站教程全集以net结尾的网站
  • C语言入门(九):二维数组的介绍
  • 深圳网站设计公司的seo优化的常用手法
  • 西安三桥网站建设重庆市建设考试报名网站
  • Unicode编码中的零宽空格0x200B
  • 实战指南:Stable Diffusion 图像生成模型
  • PyTorch的AI框架小白入门的学习点
  • 办公网站模板网站建设微信官网开发
  • 信誉好的合肥网站建设全网网站建设维护
  • 建设部网站 标准下载如何判断网站做的关键词
  • 诺奖相关的调节性T细胞怎么养?
  • 旺道网站优化重庆ppt制作
  • ps免抠素材网站大全免费制作h5页面平台
  • 反激电源实际设计
  • Java优雅停机指南
  • DDoS攻击演变趋势与企业应对策略
  • 新版本 python 3.14 性能到底如何?
  • 郑州网站推广平台一个外国人做的破解游戏网站
  • 合肥网站建设方案咨询wordpress本地搭建网站a
  • .net电子商务网站开发wordpress展示图片不显示
  • 射频技术领域的领航者,昂瑞微IPO即将上会审议
  • VonaJS AOP编程:全局中间件全攻略
  • 物联网技术第四节课学习笔记
  • 【MT6631】MT6631 WiFi跑流ping包延迟大问题解决方案
  • 一个网站做两种产品文创产品
  • 三坐标测量仪:汽车冲压件±0.3mm形位公差控制的解决方案