77百科网
当前位置: 首页 生活百科

微分计算方法真的有用吗(自动微分到底是什么)

时间:2023-05-23 作者: 小编 阅读量: 3 栏目名: 生活百科

机器之心整理参与:思、Jamin一直以来,自动微分都在DL框架背后默默地运行着,本文希望探讨它到底是什么,通过JAX,自动微分又能怎么用。实战JAX自动微分Jax是谷歌开源的一个科学计算库,能对Python程序与NumPy运算执行自动微分,而且能够在GPU和TPU上运行,具有很高的性能。如下先导入JAX,然后用三行代码就能定义之前给出的反传不确定性度量。JAX这样的通用自动微分库也许能在更广泛的领域发挥作用。

机器之心整理

参与:思、Jamin

一直以来,自动微分都在 DL 框架背后默默地运行着,本文希望探讨它到底是什么,通过 JAX,自动微分又能怎么用。

自动微分现在已经是深度学习框架的标配,我们写的任何模型都需要靠自动微分机制分配模型损失信息,从而更新模型。在广阔的科学世界中,自动微分也是必不可少的。说到底,大多数算法都是由基本数学运算与基本函数组建的。

在 ICLR 2020 的一篇 Oral 论文中(满分 8/8/8),图宾根大学的研究者表示,目前深度学习框架中的自动微分模块只会计算批量数据反传梯度,但批量梯度的方差、海塞矩阵等其它量也很重要,它们可以在计算梯度的过程中快速算出来。

目前自动微分框架只计算出梯度,因此就限定了研究方向只能放在梯度下降变体之上,而不能做更广的探讨。为此,研究者构建了 BACKPACK,它建立在 PyTorch 之上,还扩展了自动微分与反向传播能获得的信息。

选自论文 BACKPACK,arXiv:1912.10985。

除此之外,Julia Computing 团队去年 7 月份也发表了一份论文,提出了可微编程系统,它能将自动微分内嵌于 Julia 语言,从而将其作为第一级的语言特性。由于广泛的科学计算和机器学习领域都需要线性代数的支持,因此这种可微编程能成为更加通用的一种模式。

从这些前沿研究可以清晰地感受到,自动微分越来越重要。

自动微分是什么

在数学与计算代数学中,自动微分也被称为微分算法或数值微分。它是一种数值计算的方式,用来计算因变量对某个自变量的导数。此外,它还是一种计算机程序,与我们手动计算微分的「分析法」不太一样。

自动微分基于一个事实,即每一个计算机程序,不论它有多么复杂,都是在执行加减乘除这一系列基本算数运算,以及指数、对数、三角函数这类初等函数运算。通过将链式求导法则应用到这些运算上,我们能以任意精度自动地计算导数,而且最多只比原始程序多一个常数级的运算。

一般而言会存在两种不同的自动微分模式,即前向累积梯度(前向模式)和反向累计梯度(反向模式)。前向累积会指定从内到外的链式法则遍历路径,即先计算 d_w1/d_x,再计算 d_w2/d_w1,最后计算 dy/dw_2。

反向梯度累积正好相反,它会先计算 dy/dw_2,然后计算 d_w2/d_w1,最后计算 d_w1/d_x。这是我们最为熟悉的反向传播模式,它非常符合「沿模型误差反向传播」这一直观思路。

如图所示,两种自动微分模式都在求 dy/dx,只不过根据链式法则展开的形式不太一样。

来一个实例:误差传播

在统计学上,由于变量含有误差,使得函数也含有误差,我们将其称之为误差传播。阐述这种关系的定律叫做误差传播定律。

先定义一个函数 q(x,y) ,我们想通过 q 传递 x 与 y 的不确定性信息,即 _x 与 _y。最直接的方式是随机采样 x 与 y,并计算 q 的值,然后查看它的分布。这就是「传播不确定性」这个概念的意义。

误差传播的积分公式可以是一个近似值, q(x,y) 的一般表达式可以写为:

如果我们定义一个特殊案例,即 q(x,y)=x±y,那么总不确定性可以写为:

对于特例 q(x,y)=xy 与 q(x,y)=x/y ,不确定性分别为 (σ_q/q)^2 = (σ_x/x)^2 (σ_y/y)^2 与 σ_q=(x/y)* sqrt((σ_x/x)^2 (σ_y/y)^2)。

我们可以尝试这些方法,并对比根据这些近似公式算出来的反传误差,以及实际发生的反传误差。

实战 JAX 自动微分

Jax 是谷歌开源的一个科学计算库,能对 Python 程序与 NumPy 运算执行自动微分,而且能够在 GPU 和 TPU 上运行,具有很高的性能。

如下先导入 JAX,然后用三行代码就能定义之前给出的反传不确定性度量。

from jax *import* grad, jacfwd

import jax.numpy *as* np

def error_prop_jax_gen(q,x,dx):

jac = jacfwd(q)

return np.sqrt(np.sum(np.power(jac(x)*dx,2)))

这里计算的反传梯度是根据 jax 完成的,后面的反传误差会直接通过公式计算,并对比两者。

1. 配置两个具有不确定性的观察值

我们需要使用 x 与 y 作为符号推理,但可以把它们都储存在数组 x 中,x[0]=x、x[1]=y。

x_ = np.array([2.,3.])

dx_ = np.array([.1,.1])

2. 加减法

在 (,)=± 这一特例情况下,误差传播公式可以简化为

上图所示,通过误差传播公式计算出来的值与 JAX 计算出来的是一致地。

3. 乘除法

在 (,)= 与 (,)=/ 这两种特例中,误差传播公式可以写为:

4. 幂

对于特例 (,)=^*^,传播公式可以表示为:

我们可以写成

JAX 的使用非常多样,甚至能直接使用它搭建神经网络。例如 JAXnet 框架,它是一个基于 JAX 的深度学习库,它的 API 提供了便利的模型搭建体验。比如说,以下代码就能建个神经网络:

from jaxnet import *

net = Sequential(Dense(1024), relu, Dense(1024), relu, Dense(4), logsoftmax)

此外,不久之前,DeepMind 也发布了两个新库:在 Jax 上进行面向对象开发 的 Haiku 和 Jax 上的强化学习库 RLax。JAX 这样的通用自动微分库也许能在更广泛的领域发挥作用。

    推荐阅读
  • 2月14日情人节怎么来的(2月14日情人节表情包)

    情人节别晒巧克力鲜花礼物了,把男朋友发出来晒一晒,看说不定有同款,也许还有爆款别问我有没有男朋友,我们神仙跟烦人谈恋爱是触犯天条的当你发微信消息给我,我没有回你的时候,为什么不试试发个红包听说情人节要来了,可是我呢,没人要我,没人要我...莫要晒甜蜜,莫要秀幸福因为物理学常识告诉我们,晒容易流失水分而冷藏是保鲜的最佳方式如果十年后你未娶,我未嫁,那我们太惨了,真的太惨了我终于明白了一个道理,人丑就

  • 铁皮石斛可以怎么吃(铁皮石斛的吃法介绍)

    铁皮石斛是一种中药,它的吃法大致有两种:,我来为大家科普一下关于铁皮石斛可以怎么吃?下面希望有你要的答案,我们一起来看看吧!铁皮石斛在人体中有很多的益处,特别是可以强壮人体的中气,使阴阳平衡达到一定的程度,外邪就不容易入侵,而且铁皮石斛对于女性提高免疫力也有一定的好处。

  • pvc热熔焊接方法(pvc热熔焊接方法是什么)

    首先用锯管机把pvc管切割成所需的尺寸,把它们固定好;,下面我们就来说一说关于pvc热熔焊接方法?我们一起去了解并探讨一下这个问题吧!pvc热熔焊接方法首先用锯管机把pvc管切割成所需的尺寸,把它们固定好;其次把pvc管的接口磨平,使用焊接机在一定的时间中对它慢慢施加压力,并进行加热;再次等接口处出现均匀的焊珠后再吸热;最后松开pvc管,拿掉加热板,合拢管端,让焊接部位自然冷却即可。

  • s10全球总决赛斗鱼(S7全球总决赛抽签仪式落幕)

    9月12日晚8点,英雄联盟2017全球总决赛抽签仪式在美国Riot演播室正式拉开帷幕,斗鱼作为官方合作平台全程直播此次抽签仪式。由于本次S7全球总决赛将首度在中国举办,两名来自LPL的人气选手AJ和Rookie受邀到现场,担任本次抽签仪式的嘉宾。而作为游戏直播领域最具人气的斗鱼平台,仅仅是抽签仪式就吸引了将近600万玩家的观看,足以说明玩家们对S7的超高期待。9月23日,英雄联盟S7全球总决赛即将在武汉体育中心拉开序幕!

  • 奔驰紧凑型mpv(德系又一豪华MPV发布)

    哈喽,大家好,豪华车报告,我是你们的月月!而黑金系列和黑钻奥洛夫系列,这些商务车市场里的顶流,都发布了它们旗下的四座定制方案。外观方面,继续传承圣山旗舰系列的家族设计,新款迈巴赫奢华套件,专属立标,还有五星锻造轮毂一上,气场直接霸气全开。我们继续来看车顶,经典的山峰造型顶灯也是圣山系列的专属设计,同时前方还保留了天窗功能,好评。我是你们的月月,我们下期再见~

  • 长江中下游等地三九时节暖如春 广西贵州阴雨将贯穿本周

    降水方面,内蒙古、东北地区今明天将出现短暂的降雪天气,广西、贵州等地阴雨贯穿本周。不过短暂降温后随着冷空气远离又会快速升温,气温总体将以偏高为主。贵州中南部、云南东部、广西、湖南西南部、海南岛中部等地部分地区有小雨。气象专家提醒,未来一段时间,广西、云南、贵州等地阴雨天气持续在线,公众外出时需关注道路湿滑和低能见度对交通出行的影响。

  • 红梅多肉如何分化(红梅花开傲雪凌霜)

    出状态的红梅红梅生长速度快,养护时间稍长就会从茎秆底部萌生出很多侧芽来,然后变成多头群生状态。而红梅在新叶片长出来的同时,其茎秆下部的老叶片就会不断地消耗,在此过程中它的茎秆也会逐渐地木质化,最后变成非常漂亮且很有味道的群生老桩。很简单,我们按照以下几种方式操作,保证可以轻轻松松地培育出漂亮的红梅悬崖桩来。茎秆直立生长的红梅更好看二.将花盆放倒。小盆控养的红梅三.适当地牵引。

  • 常用的普通干粉灭火剂(干粉灭火器的使用方法)

    第一天气炎热干燥,这些天长春一直处于高温30多度左右,无雨,干燥,易燃第二消防设施的不健全,以及消防知识的培训不到位,第三我们个人对待消防观念的无视试问又有多少人知道消防通道是干什么用的吗?常用的普通干粉灭火剂最近几天我们这里发生了两起火灾,有十几人失去了生命,多人受伤,为什么会发生火灾呢?第一天气炎热干燥,这些天长春一直处于高温30多度左右,无雨,干燥,易燃。

  • 本田英诗派保养灯归零怎么消(看这里)

    我们一起去了解并探讨一下这个问题吧!本田英诗派保养灯归零怎么消先把本田英诗派车辆启动才能进行保养灯复位,启动车辆只需要摁一下启动按钮即可。这个时候本田英诗派的车辆仪表盘上就会有保养提示。再摁一下本田英诗派车方向盘上的取消键。

  • 大g是v8发动机吗? 大g是v8发动机吗

    g是v8的发动机。奔驰G级内饰:新款G保留了新款G500的整体设计。除了配色上的区别,新车还配备了全新的平底AMG运动方向盘,两侧采用打孔真皮包裹,下部的镀铬装饰造型也与新款G500有明显区别,看起来很有战斗性。此外,全液晶仪表盘和中控大屏的双12.3英寸屏幕设计在新车中也不缺席,营造出强烈的科技感。