![深度学习全书:公式+推导+代码+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=1739185417-umu0WEVJBHqkqc4a1UxqympvTPt3vpOj-0-e9ec04b08a13f048099d59fe8425bae9)
图2.9 斜率与截距
我们先不管截距,只看斜率,算法为:取非常相近的两个点(距离h趋近于0),y坐标值之差(Δy)除以x坐标值之差(Δx),有
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P39_914890.jpg?sign=1739185417-gKADzVFy6vYHquLBqepwn6dt5tSMy28I-0-48a37890ec56b29ee07d427e8ec7c632)
这就是微分的定义,但上述极限值(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=1739185417-mJPYMhuJrB1tSZcgpDjPudfmaVPdZog1-0-71ac97985ff7ebbb92259495ba3c5cf2)
图2.10 连续函数
相反地,图2.11所示函数在x=0时是不连续的,逼近x=0时有两个解。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P39_630226.jpg?sign=1739185417-xNf6LCdGaPvm3Rw1IaBlfTIH0dldlJnL-0-7e8c2d963e372c1fa5e97e6cfd1542dd)
图2.11 不连续函数
接着来看看几个应用实例。
以下程序请参考02_04_微分.ipynb。
(1)试绘制一次方函数f(x)=2x+5。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P40_630660.jpg?sign=1739185417-J3MGC5tisqoomkxGwYA4GAM4Dzm6gdUl-0-aeca5ef0e84ee986c9b9a51d157a9166)
执行结果:如图2.12所示。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P40_630667.jpg?sign=1739185417-MmvdtSg5VuaiJVq3DHVzS1UtdeBI9eVf-0-166ad8fc4411567e1d54b0aee421c3e9)
图2.12 一次方函数执行结果
由执行结果可以看出,一次方函数每一点的斜率均相同。
(2)试绘制二次方曲线f(x)=−10x2 +100x+5,求最大值。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P41_631105.jpg?sign=1739185417-ac1xb7hU8ACPVJJFQl012DsE1Kka0XJN-0-5338d17d6cc66052f4af80ac673e8a82)
执行结果:如图2.13所示。由执行结果可以得到以下结论。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P41_631112.jpg?sign=1739185417-RZLjE4WXqJSyVDjGNFpcL9VrdFHcgvy6-0-14943c0398450105e14dd7bd9ad3580b)
图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=1739185417-7HLThTXVLCH4AQY1eXGH82fXcfgp334A-0-e2a5044d3484aee151564d5ef4928470)
执行结果:如图2.14所示。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P42_631552.jpg?sign=1739185417-ah0iGRcLDYmS9N8et6AVDMgKwrQfhCuc-0-0ab47cb3ebf508f34f48caed5cf3cc67)
图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=1739185417-vCwF1pfKALPhKI1UwmSoMtCouLrE2zzy-0-e4a3f1b9d2cfc28c56cf514604d1b994)
执行结果:如图2.15所示。由执行结果可以得到以下结论。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P43_631997.jpg?sign=1739185417-tEF2xPchez8C7KCp6W76c03mRCudOB5E-0-58a976e3b17adc20e3ae3b86e6604066)
图2.15 三次方曲线执行结果
①三次方曲线f(x)= x3−2x+100在斜率等于0的点只是区域的最佳解。
②三次方曲线一般为凸函数时才有全局最佳解。