机器学习--基础--微分

本文探讨了机器学习特别是深度学习中微分的重要性。介绍了手动微分、数值微分、符号微分和自动微分的基本概念,指出自动微分在计算机领域的优势。通过有向图解释了自动微分的forward和backward方法,并强调了它们在优化算法和机器学习,尤其是深度学习和机器视觉中的广泛应用。
摘要由CSDN通过智能技术生成

机器学习中用到的微分

背景

机器学习中尤其是深度学习用到的数学基础首推微分。机器学习中优化问题的解决大多数情况下同微分有关,比如牛顿法,梯度下降法;深度学习中就更不用说了,整个深度学习框架(tensorflow,pytoch等等)的基石,或者说首要处理的问题就是自动微分,pytorch的前身Chainer名字的来源更是微分中的链式罚则。可见理解机器学习中的微分有多重要。这篇博客主要来自于链接内容。

现有常见微分方式梳理

常见的求解微分的方式有以下几种,各有各的特点:

  • 手动微分:是指在较为简单的函数表达下通过手动推导出微分的形式,然后将具体点代入,比如 y = x y=x y=x它的微分我们通过微分定理推得出就是1

  • 数值微分:数值微分是利用微分定义 d y = f ( d x ) dy = f(dx) dy=f(dx)的形式进行极限推导,注意这里的推导不是上述的手动推导形式,而是利用微分的定义
    [ f ( x ) − f ( x + σ ) ] / ( σ ) [f(x)-f(x+\sigma)]/(\sigma) [f(x)f(x+σ)]/(σ)
    其中 σ \sigma σ趋近于0

  • 符号微分:利用微分的链式法则进行微分求导
    h ( x ) = g ( x ) f ( x ) h(x)=g(x)f(x) h(x)=g(x)f(x)
    d h ( x ) d x = d f ( x ) d x g ( x ) + d g ( x ) d x f ( x ) \frac{dh(x)}{dx}=\frac{df(x)}{dx}g(x)+\frac{dg(x)}{dx}f(x) dxdh(x)=dxdf(x)g(x)+dxdg(x)f(x)

  • 自动微分法:现有的广泛运用于机器学习中的微分方法

这里罗列了几种微分方法,各有优缺点。
很明显第一种方法对操作者的数学能力以及函数的形式有一定的要求,仅仅是较为简单的函数可以用这样的方式进行处理,如果函数非解析或者函数形式过于复杂,采用这种方法就无从计算。第二种方法存在巨大的隐患,真正在计算机领域我们知道会存在截断误差与累积误差,并且一般情况下如下图所示:
图片
假设采用的是中心求微分的方式(center difference)
∂ f ( x ) ∂ x i = f ( x + h ϵ ) − f ( x − h ϵ ) 2 h + O ( h 2 ) \frac{\partial f(x)}{\partial x_i} = \frac{f(x+h\epsilon)-f(x-h\epsilon)}{2h}+O(h^2) xif(x)=2hf(x+hϵ)f(xhϵ)+O(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值