![深度学习全书:公式+推导+代码+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=1739131760-6RwE4cxASP38mVgUcPEbxosBm0bXyf6z-0-b86718273b2935962fc924bd3ede2b65)
图2.9 斜率与截距
我们先不管截距,只看斜率,算法为:取非常相近的两个点(距离h趋近于0),y坐标值之差(Δy)除以x坐标值之差(Δx),有
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P39_914890.jpg?sign=1739131760-ng3Uh9vsspWCOngqYxZsygRD92yHEpb5-0-0bd0b29abf837e9b46dde090a0d5f6e0)
这就是微分的定义,但上述极限值(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=1739131760-D6z3SfkibVIHQ3WUOuCv0jPfj8Q5BXKT-0-e53c44e6788757aee490dd8ccf6f53df)
图2.10 连续函数
相反地,图2.11所示函数在x=0时是不连续的,逼近x=0时有两个解。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P39_630226.jpg?sign=1739131760-aXsvXlk41R9sVFfSn3Pxpg0Qw5nsoVtW-0-b9a5ae7db4adb3035e7ccadbe2cd5c34)
图2.11 不连续函数
接着来看看几个应用实例。
以下程序请参考02_04_微分.ipynb。
(1)试绘制一次方函数f(x)=2x+5。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P40_630660.jpg?sign=1739131760-i3Mqik7rqy4AO7QeEDvtM1rV3wZu4CbD-0-7960502279e0897d1954a78b72a2577a)
执行结果:如图2.12所示。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P40_630667.jpg?sign=1739131760-LzTvRDsIiPvA0OuKTeEZJCiSd08QF9zh-0-406e66dbcef3092630b7e8c5317b54d9)
图2.12 一次方函数执行结果
由执行结果可以看出,一次方函数每一点的斜率均相同。
(2)试绘制二次方曲线f(x)=−10x2 +100x+5,求最大值。程序代码如下:
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P41_631105.jpg?sign=1739131760-upgFoTPkDcQJ0BDYoS63UBXDIneJrPPM-0-b452b404320430aec8afa4d05b298ba4)
执行结果:如图2.13所示。由执行结果可以得到以下结论。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P41_631112.jpg?sign=1739131760-PFIHuKk6HZEr5tbgFCp2REjjlRT4gVG2-0-1f0c18128c0303c74fb59ceb464ef3d3)
图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=1739131760-4pCYGSJdpV8CHhNKqbxwVkvHvQkAsW0X-0-efbeab4db0a78358734bf0e934f81dce)
执行结果:如图2.14所示。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P42_631552.jpg?sign=1739131760-oggH2kw0kkL5clfNbXh3TqEkqAmZyCjP-0-336cc3edb7ba0e98019813ee7beff262)
图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=1739131760-EuPQusMnxvTRHZExXXTSDA6Hu6o9qDr3-0-d40fc4093a4f7314c7389e769f36fdc3)
执行结果:如图2.15所示。由执行结果可以得到以下结论。
![](https://epubservercos.yuewen.com/E1A109/26581885501428906/epubprivate/OEBPS/Images/Figure-P43_631997.jpg?sign=1739131760-eIORTn22q11c66lEePIurkgNPDbdnI3H-0-5e2929adda02601d1d9246c121b99e54)
图2.15 三次方曲线执行结果
①三次方曲线f(x)= x3−2x+100在斜率等于0的点只是区域的最佳解。
②三次方曲线一般为凸函数时才有全局最佳解。