本文始发于个人公众号:TechFlow,原创不易,求个关注
上一篇文章我们复习了函数求导的定义和一些常见函数的导数,今天这篇文章我们回顾一下复杂函数的求导方法。先强调一下,今天的文章很重要,想要看懂机器学习各种公式推导,想要能够自己推一推各种公式,函数求导是基础中的基础,在算法这个领域,它比积分要重要得多。
我们先来看第一种情况:多个函数进行四则运算的导数。
函数四则运算求导法则
我们假设 u = u ( x ) u=u(x) u=u(x)和 v = v ( x ) v=v(x) v=v(x)都在x点有导数,那么它们进行加减乘除四则运算之后的结果的导数有如下性质:
[ u ( x ) ± v ( x ) ] ′ = u ′ ( x ) ± v ′ ( x ) [ u ( x ) v ( x ) ] ′ = u ′ ( x ) v ( x ) + u ( x ) v ′ ( x ) [ u ( x ) v ( x ) ] = u ′ ( x ) v ( x ) − u ( x ) v ′ ( x ) v 2 ( x ) ( v ( x ) ≠ 0 ) \begin{aligned} \left[u(x) \pm v(x)\right]'&= u'(x) \pm v'(x) \\ \left[u(x)v(x)\right]' &= u'(x)v(x) + u(x)v'(x) \\ \left[\frac{u(x)}{v(x)}\right] &= \frac{u'(x)v(x)-u(x)v'(x)}{v^2(x)} (v(x) \neq 0) \end{aligned} [u(x)±v(x)]′[u(x)v(x)]′[v(x)u(x)]=u′(x)±v′(x)=u′(x)v(x)+u(x)v′(x)=v2(x)u′(x)v(x)−u(x)v′(x)(v(x)=0)
我们来看一下证明过程,熟悉证明过程并不是炫技,除了能加深对公式的理解之外,更重要的是防止遗忘。即使以后真的不记得公式的细节了,也可以临时推导一下,这是学算法和数学很重要的技巧。
我们先来看第一个,第一个很容易证明,我们直接套一下导数的公式即可:
[ u ( x ) ± v ( x ) ] ′ = lim Δ x → 0 [ u ( x + Δ x ) ± v ( x + Δ x ) ] − [ u ( x ) ± v ( x ) ] Δ x = lim Δ x → 0 u ( x + Δ x ) Δ x ± lim Δ x → 0 v ( x + Δ x ) Δ x = u ′ ( x ) ± v ′ ( x ) \begin{aligned} \left[u(x) \pm v(x) \right]' &= \lim_{\Delta x \to 0} \frac{\left[u(x+\Delta x) \pm v(x + \Delta x) \right] - \left[u(x) \pm v(x) \right] }{\Delta x} \\ &= \lim_{\Delta x \to 0}\frac{u(x+\Delta x)}{\Delta x} \pm \lim_{\Delta x \to 0} \frac{v(x+\Delta x)}{\Delta x} \\ &= u'(x) \pm v'(x) \end{aligned} [u(x)±v(x)]′=Δx→0limΔx[u(x+Δx)±v(x+Δx)]−[u(x)±v(x)]=Δx→0limΔxu(x+Δx)±Δx→0limΔxv(x+Δx)=u′(x)±v′(x)
第二个式子同样套用公式:
[ u ( x ) v ( x ) ] ′ = lim Δ x → 0 u ( x + Δ x ) v ( x + Δ x ) − u ( x ) v ( x ) Δ x = lim Δ x → 0 u ( x + Δ x ) v ( x + Δ x ) − u ( x ) v ( x + Δ x ) + u ( x ) v ( x + Δ x ) − u ( x ) v ( x ) Δ x = lim Δ x → 0 ( u ( x + Δ x ) − u ( x ) ) v ( x + Δ x ) + u ( x ) ( v ( x + Δ x ) − v ( x ) ) Δ x = lim Δ x → 0 v ( x + Δ x ) u ( x + Δ x ) − u ( x ) Δ x + lim Δ x → 0 u ( x ) v ( x + Δ x ) − v ( x ) Δ x = v ( x + Δ x ) u