![深度学习全书:公式+推导+代码+TensorFlow全程案例](https://wfqqreader-1252317822.image.myqcloud.com/cover/894/47216894/b_47216894.jpg)
上QQ阅读APP看书,第一时间看更新
2-3-2 微分定理
上述程序中的fd()函数为一阶导数,它们是如何求得的?只要运用以下微分的定理,就可以轻易解出上述范例的一阶导数,相关定理整理如下。
(1)f( x)一阶导数的表示法为f′(x)或。
(2)f( x)为常数(C)→f′(x)=0。
(3)f( x)=Cg( x)→f′(x)=Cg′( x)。
(4)f( x)=g( x)+h( x)→f′(x)=g′( x)+h′( x)。
(5)次方的规则:f( x)=xn →f′(x)=nxn−1。
(6)乘积的规则:。
(7)商的规则:若r( x)=s( x)/t( x),则。
(8)链式法则(Chain Rule):
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P44_914924.jpg?sign=1734474074-5ws8ze6DjzxFEnHnz1VkWWk2IX9VRdZG-0-523bbe536f97219a1e3fa0fbcb3fe358)
以上一节范例(2)f(x)=−10x2 +100x+5为例,针对多项式的每一项个别微分再相加,就得到f(x)的一阶导数为
f′(x)= -20 x + 100
SymPy库直接支持微积分函数的计算,可以验证定理,接下来我们就写一些程序来练习一下。
以下程序请参考02_04_微分.ipynb。
(1)f(x)为常数。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P44_632533.jpg?sign=1734474074-zANEzSvzl4x1Y9lT9cIAKJzZXodq5fxh-0-2d70c55540b0737cd9c2a1c9b40857a7)
执行结果:0。
(2)。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P44_632548.jpg?sign=1734474074-W3O1ZnKkfURRGAc73XQpPLXRTSdNrLUg-0-1870f6bfe1deda17ed65d33389806d16)
执行结果均为10x。
(3)乘积的规则:。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P45_633002.jpg?sign=1734474074-SzeexlX8Qm03Jm4BW49TtExOfbiMxR3y-0-8e99bc0752cb2abc0b12326a328fa4fb)
执行结果:5x4。
(4)链式法则:。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P45_633019.jpg?sign=1734474074-5xy8YqRPrccIbdKbx58KYpgjHNudFPEY-0-f338e72347ffd8fd520aba726e9cc25f)
执行结果:6x5。
(5)验证f(x)=−10x2 +100x+5。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P45_633026.jpg?sign=1734474074-PvQz36IcQgH9YtgnFCgarLrSCHEbFp24-0-04ea472af1928e8d0c86438f10644832)
执行结果:100 -20x。
接着,利用一阶导数等于0,求最大值。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P46_633463.jpg?sign=1734474074-RvIor9hOZxrAFWrTgBrE302BgWCW8SAv-0-e5cd3a8d48e4f2f7d88b4d541db72696)
执行结果:x=5时,最大值为255。
(6)验证f(x)= x2+2x+7。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P46_633470.jpg?sign=1734474074-NlmsXT1bFwWuooKYCNeTKRtMCjo4r0S3-0-a16169da4811c7685df0d3416d9f6479)
执行结果:2x + 2。
接着,利用一阶导数等于0,求最小值。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P46_633477.jpg?sign=1734474074-Re6xJcnG4VgzQSdxBuRBATFeX4Hk0kxy-0-a2972ee792bafa2d5bc9c9db3eaad7b1)
执行结果:x=-1时,最小值为6。