![深度学习全书:公式+推导+代码+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=1739132045-oOkYJthWIhfp9XljIPJXbjnpXz6S2xnt-0-d44e1cd563d03b64bec316b78185c250)
以上一节范例(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=1739132045-QEQMJqT6JONqeSMMiHwpv0Zn5QVHnbC2-0-388632d1ea377fff691a69904643f627)
执行结果:0。
(2)。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P44_632548.jpg?sign=1739132045-gEv32HLiPGeqzC0zGGH80M0Rlkd3wdBH-0-9dbeaf1c70f62966d189deecd62ad55e)
执行结果均为10x。
(3)乘积的规则:。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P45_633002.jpg?sign=1739132045-fGwJmcaK9ELYg52LPcKCdijuO2aBhV90-0-3ed971786a3857b560a8aa4377c290ab)
执行结果:5x4。
(4)链式法则:。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P45_633019.jpg?sign=1739132045-wnPJ7LcvY7csHbM6AnMgz6YadxwDY0hu-0-334ffcb8b35b71c285ad6c81bcbcce6c)
执行结果:6x5。
(5)验证f(x)=−10x2 +100x+5。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P45_633026.jpg?sign=1739132045-e5TRIUMpdYOKznXX1Esfu88bzU22ckhV-0-37d7a533bf4384743bc829e6622147fa)
执行结果:100 -20x。
接着,利用一阶导数等于0,求最大值。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P46_633463.jpg?sign=1739132045-0ea8zT7RIs9Htuu37mfkmTJtzESg6FF3-0-20d0b4cdda3541d293e69816f598f819)
执行结果:x=5时,最大值为255。
(6)验证f(x)= x2+2x+7。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P46_633470.jpg?sign=1739132045-RxYFpKaf7BDp3h8i8CQLfH6sH8NTDabA-0-f4beba22ce4e97ce159a9ccfa6723ace)
执行结果:2x + 2。
接着,利用一阶导数等于0,求最小值。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P46_633477.jpg?sign=1739132045-VhcoidT3VZ6D1OygcUNa4ZFTaLwJ14xy-0-672c52e3d1797e730d1252cd6c1bdde4)
执行结果:x=-1时,最小值为6。