机器学习基础 3:自动求导——现代机器学习框架的基础

什么是自动求导

  自动求导 (AUTOMATIC DIFFERENTIATION 简称 AD) 或许是目前你从未听过且最有用的计算技术之一。如果你的工作涉及到实数计算,那么理解 AD 或许将会对你的工作有所帮助。
  其定义如下:

自动求导,也被称为算法求导(algorithmic differentiation)计算求导(computational differentiation),是一组使用数值方法对某个函数,通过编程的方式进行求导的技术。可以求任意阶的导数,求导过程是自动的,并且能够保证足够的精度,以及较小的时间复杂度。

自动求导不是……

  所有人听到这个概念时,总是会下意识地认为 AD 指的是 数值求导(numerical differentiation)符号求导(symbolic differentiation),然而 AD 比这些算法更为优秀。

不是数值求导

  从微分公式中,我们可以得到数值求导的基本思路:

d f ( x ) d x = lim ⁡ h → 0 f ( x + h ) − f ( x ) h \frac{df(x)}{dx} = \lim_{h \to 0} \frac{f(x + h) - f(x)}{h} dxdf(x)=h0limhf(x+h)f(x)
通过计算右边的公式,令其值逼近左边(实际导数值),并且保证 h h h 非零

  这个思路很容易转换为实际的代码,然而对于 n n n 维函数进行求导时,其时间复杂度逼近 O ( n ) O(n) O(n)。并且我们不得不考虑过程中的截断误差与舍入误差,虽然已经有弥补这些缺点的技术,不过引入这些技术会令编码难度大幅提高。

不是符号求导

  符号求导的基本思路是应用求导公式与链式法则,通过解析函数公式的方法来进行求导,例如:

A:  d ( u ( x ) + v ( x ) ) d x = d u ( x ) d x + d v ( x ) d x B:  d ( u ( x ) v ( x ) ) d x = u ( x ) d v ( x ) d x + d u ( x ) d x v ( x ) ⋯ \textrm{A:}\ \frac{d(u(x) + v(x))}{dx} = \frac{du(x)}{dx} + \frac{dv(x)}{dx} \\ \textrm{B:}\ \frac{d(u(x) v(x))}{dx} = u(x) \frac{dv(x)}{dx} + \frac{du(x)}{dx} v(x) \\ \cdots A: dxd(u(x)+v(x))=dxdu(x)+dxdv(x)B: dxd(u(x)v(x))=u(x)dxdv(x)+

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值