![深度学习全书:公式+推导+代码+TensorFlow全程案例](https://wfqqreader-1252317822.image.myqcloud.com/cover/894/47216894/b_47216894.jpg)
2-3-1 微分
微分用于描述函数的变化率(Rate of Change),如y=2x+5,表示x每增加一单位,y会增加2。因此,变化率就等于2,也称为斜率;5为截距(Intercept),或称偏差(Bias),如图2.9所示。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P39_630200.jpg?sign=1739393992-r5VvmkuCn3yujip6mA5dEwScFivxIdUo-0-39588ed0f0f3ffc18da60f7002f513e9)
图2.9 斜率与截距
我们先不管截距,只看斜率,算法为:取非常相近的两个点(距离h趋近于0),y坐标值之差(Δy)除以x坐标值之差(Δx),有
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P39_914890.jpg?sign=1739393992-HDn0BNJkf52IVULRcV6Qpc3kYSrFrli1-0-919be16d5335dd795430c3ce8aec200c)
这就是微分的定义,但上述极限值(limit)不一定存在,其存在的要素如下:
(1)h为正值时的极限值等于h为负值时的极限值,亦即函数在该点时是连续的。
(2)上述极限值不等于无穷大(∞)或负无穷大(-∞)。
如图2.10所示的函数在x=5的地方是连续的,由上方(5.25)逼近,或由下方(4.75)逼近是相等的,相关彩色图形可参考02_04_微分.ipynb。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P39_630222.jpg?sign=1739393992-hF3l6eJiGBzomtEkw5yqZrf8Zf2t5VGa-0-b43767f43e3aa9928092365cb274c648)
图2.10 连续函数
相反地,图2.11所示函数在x=0时是不连续的,逼近x=0时有两个解。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P39_630226.jpg?sign=1739393992-XG6n5GhJv1Oa65GtnglkWtvFCQKx5YNs-0-517ea59cb0c3c5badc15d0be755a40f6)
图2.11 不连续函数
接着来看看几个应用实例。
以下程序请参考02_04_微分.ipynb。
(1)试绘制一次方函数f(x)=2x+5。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P40_630660.jpg?sign=1739393992-kIcfYSWG1daSTMDqRNd4oooCCnFvcPGP-0-6a642655fef613810d717e088af07a74)
执行结果:如图2.12所示。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P40_630667.jpg?sign=1739393992-YzTfe1q6Zc8avX4L6fIkrsfqgYkiYd1M-0-3bd83a9478f4aab20b7ed43021d43985)
图2.12 一次方函数执行结果
由执行结果可以看出,一次方函数每一点的斜率均相同。
(2)试绘制二次方曲线f(x)=−10x2 +100x+5,求最大值。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P41_631105.jpg?sign=1739393992-pF6kVZ7vq7uHNxX3tg6s32jR6Y0dBdz9-0-bcb81d5937c99a776cb5627a03057a6a)
执行结果:如图2.13所示。由执行结果可以得到以下结论。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P41_631112.jpg?sign=1739393992-TCfGPGf6NmgY5ry1PpJR9g0q1r7NgavH-0-60562640c164a964e9c2d90e9bfe28f1)
图2.13 二次方曲线执行结果
①一次方函数整条在线的每一个点的斜率都相同,但是二次方曲线上的每一个点的斜率就都不一样了,如图2.13所示,相关彩色图形可参考02_04_微分.ipynb。
● 绿线(细拋物线):二次曲线,是一条对称的拋物线。
● 紫线(斜线):拋物线的一阶导数。
● 红线(拋物线的切线):三个点(2, 5, 8)的斜率。
②每一个点的斜率即该点与二次曲线的切线(红线),均不相同,斜率值可通过微分求得一阶导数(图中的斜线),随着x变大,斜率越来越小,二次曲线的最大值就发生在斜率等于0的地方,当x=5时,f(x)=255。
(3)试绘制二次方曲线f(x)=x2+2x+7,求最小值。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P42_631545.jpg?sign=1739393992-CKlQoMjIYQ7Aj2o3nEhNbE4flSXeFrqv-0-0f6abba6674f40b19bcd974379729689)
执行结果:如图2.14所示。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P42_631552.jpg?sign=1739393992-7LnOYbsdp8Al3MjYA24gMHSn2gx1t1Nr-0-62c341f7e9cb2e81b735ff8691e12bdb)
图2.14 二次方曲线执行结果
由执行结果可得:斜率值可通过微分求得一阶导数(图中的斜线),随着x变大,斜率越来越大,二次曲线的最小值就发生在斜率等于0的地方,当x=-1时,f(x)=6。
综合范例(2)(3),可以得知微分两次的二阶导数(f"(x))为常数,且为正值时,函数有最小值,反之,为负值时,函数有最大值。但若f(x)为三次方(以上)的函数,一阶导数等于0的点,可能只是区域的最佳解(Local Minimum/Maximum),而不是全局最佳解(Global Minimum/Maximum)。
(4)试绘制三次方曲线f(x)= x3−2x+100,求最小值。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P43_631990.jpg?sign=1739393992-OCadiUNaQ9PSOpTVcLbGKbwElJzg8p84-0-0860175654376d987f122d8ca2d9c85e)
执行结果:如图2.15所示。由执行结果可以得到以下结论。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P43_631997.jpg?sign=1739393992-fgumdNSmf05ZCVPGlamnMxokjO2tXip6-0-8f58f61641891bab23cad91453eb63e0)
图2.15 三次方曲线执行结果
①三次方曲线f(x)= x3−2x+100在斜率等于0的点只是区域的最佳解。
②三次方曲线一般为凸函数时才有全局最佳解。