人工智慧數學基礎 | 高等數學基礎 | 01
本章將介紹函式,極限,無窮大和無窮小,連續性與導數,偏導數,方向導數,梯度等高等數學基本概念.
這些概念貫穿本書的各個章節,也是理解人工智慧演算法的基礎數學知識.
梯度下降演算法是機器學習領域的重要演算法,是應用最廣泛的優化演算法之一.
在本章綜合例項中將重點介紹梯度下降法及其應用例項,並通過Python
語言程式設計實現.
函式
我們經常會遇到彼此之間有依賴關係的變數,如圓的面積s=PI*r*r
,我們稱這種依賴關係為函式關係.
函式的定義
函式關係就是量和量之間的一種依賴關係.
x是自變數,y是因變數.
隨著x的變換,y也會發生相應變化.
在函式當中我們有很多種寫法,例如g(x),f(x)
幾種特殊函式的定義
分段函式
上面是最基本的一個分段函式,就是x取值不同時,會對映到不同的y值.
反函式
反函式就是把自變數和因變數互動了,比如上面自由落體公式h=h(t)
,其反函式可以寫為t=t(h)
顯函式與隱函式
顯函式和隱函式只是函式形式的一個概念.
顯函式就是寫好y=....
的函式形式,就是把因變數放在左邊.
隱函式就是寫出來,比如x*x+1-y=0,a*a+b*b=16
這些都是隱函式.
函式的幾種特性
函式的奇偶性
奇函式關於原點對稱,偶函式關於y軸對稱.
函式的單調性
單調性很好理解,就看在一段區間內的函式值是否一直增加或一直減少.
函式的週期性
極限
極限概念是在探求某些實際問題的精確解答過程中產生的.
例如,第3章求解曲邊梯形的面積就是採用劃分無窮多個小梯形面積,然後求和得出曲邊梯形的近似面積,這是極限思想在積分學中的應用.
第4章以泰勒多項式近似表達複雜函式,也是極限思想的應用.
極限方法是高等數學中的一種基本方法.
數列
一堆數+排列=數列
其中Un
表示通項,也就是其中的某一個數.
極限的符號表示
這裡主要是∞
和x0
的極限表示.
函式極限的定義
學習函式極限,主要研究一下兩種情形.
(1) x->x0
,對應f(x)
的變換情形.
(2) x->∞
,對應f(x)
的變換情形.
下面是定義和反例
無窮大和無窮小
在極限當中經常會提到無窮小和無窮大,到底多小才是無窮小,多大才是無窮大呢?
下面我們給出定義及其性質.
無窮小
無窮小是0的極限.
該函式是x->值的無窮小.
無窮小的基本性質
無窮小和有邊界(有限)和加法和乘法都是無窮小.
注意: 如果是無限的,那麼無窮小運算的結果不一定是無窮小.(上圖就給了一個反例)
注意: 無窮小的商不一定是無窮小.
無窮小於函式極限的關係
無窮小和函式極限的關係: x->x0,f(x)=A
, 那麼就會有 x->x0,f(x)=A+(x->x0是的一個無窮小)
無窮大
無窮大並不是一個非常大的數,而是相對一個過程來說的.
x->x0的時候,函式是一直增大的,沒有一個收斂的點.
無窮大於無窮小的關係
如果f(x)
為無窮大,則1/f(x)
為無窮小,反之也成立.
無窮小的比較
(x->x0)有a和b兩個無窮小,那麼就需要比較這兩個無窮小誰更"小".
進行(x->x0)a/b計算,
- 0,a是比b高階的無窮小
- ∞,a是比b低階的無窮小
- c(c≠0),a是b的同階無窮小
- 1,a和b是等價無窮小
連續性和導數
函式建立了變數之間的依存關係,有時候也需要考慮函式的連續性.
例如氣溫的變化,當時間變動微小時,氣溫的變化也很微小,這種特點就是所謂連續性.
函式的連續性定義
函式的連續性說白了就是x變化非常小(小到趨近於0),y的變化也是趨近於0的,就說這個函式是連續的.
否則,這種極限的思想會放大出這個"中斷",比如上方的右圖.
函式連續性需要滿足的條件
函式f(x)
在x0連續,需要滿足上面三個條件.
函式的間斷點
如果f(x)
在x0處不連續,這稱x0為f(x)的間斷點或不連續點.
f(x)
在x0處是否連續要滿足3個條件.
所以f(x)
在x0處的間斷點就有上面的幾種情況.
函式間斷點的常見型別
上面是間斷點的型別,大致留個印象即可.
x=2,x=1沒有定義,所有x=2,x=1為間斷點.
然後再就是對間斷點的細分.
導數
導數是一個非常重要的概念,本書很多章節都會用到此概念.
引列: 速度問題.
歷史上速度問題於導數概念的形成有密切的關係.
導數的定義
導數本身的意義就是表達一種變化率.
函式的基本求導法則
常用的求導公式
這些常用的求導公式不建議直接死記,建議還是使用到的時候在進行查閱.
偏導數
如果涉及的函式都只有一個自變數,那麼這種函式被稱為一元函式.
但在很多研究領域中,經常需要研究多個變數之間的關係,在數學上,這就表現為一個變數於另外多個變數的相互依賴關係.
二元函式就是函式值z
隨著兩個自變數的變化而變化,記為z=f(x,y)
.
一元函式的導數反映了函式相對於自變數的變化率.
但多元函式的自變數有兩個或兩個以上,所以對於多元函式,在研究某個自變數的變化率時,往往把其他的自變數暫時固定下來,即視為常數,使其成為一元函式,然後再對其進行求導,這就是偏導數的概念.
偏導數的定義
偏導數的幾何意義
如果是fx(x0,y0),那麼就是 y=y0 和 曲面z=f(x,y)所截取出來的曲線Cx的斜率.
如果是fy(x0,y0),那麼就是 x=x0 和 曲面z=f(x,y)所截取出來的曲線Cy的斜率.
方向導數
偏導數反映的是函式沿座標軸方向的變化率,方向導數本質上函式在某點處沿特定方向的變換率問題.
下面是有關於方向導數的定理
梯度
梯度就是一個關於方向導數的向量.
梯度的出現是為了求出方向導數的最大值和最小值.
理解梯度最好的例子就是: 著火螞蟻逃生,下山最快的方向
綜合案例: 梯度下降法求函式的最小值
梯度下降的基本原理:
假設曲面上一隻螞蟻如遇火災,該如何快速逃跑呢?
此問題可以類比為一個下山的過程.
假設螞蟻被困在高山上,需要快速找到山的最低點,即山谷,但此時山上的煙霧很大,可見度很低,下山的路徑無法確定.
它必須利用自己周圍的資訊去尋找,這時候就可以利用梯度下降法來幫助自己下山.
以當前位置為準,尋找這個位置最陡峭的地方,朝著山的高度下降最快的地方走.
但是,由於山的地形複雜,坡度變化隨機,這樣一直往下走無法確定路徑是否正確,因此可以採用每走一段路,就重新計算一次,最後就能成功抵達山谷.
高手點撥
環境安裝
注意: jupyter
不支援python3.6
,踩了很多坑!
很多時候執行出錯就是python版本的問題!
symPy簡單介紹
遇到複雜計算找python絕對不會讓你失望.
sympy
是一個python的科學計算庫,用一套強大的符號計算體系完成諸如多項式求職,求極限,解方程,求積分,微分方程,矩陣運算等等計算問題.
常用的sympy內建符號
自然對數的底e的表示方法
無窮大∞的表示方式
圓周率π的表示方式
用sympy進行初等運算
常用的函式有:
(1) 對數函式: sympy.log
(2) 正弦函式: sympy.sin
(3) 平方根函式: sympy.sqrt
(4) 求n次方根函式: sympy.root
(5) 求階乘: sympy.factorial
表示式與表示式求值
sympy
可以用一套符號系統來表示一個表示式,如函式,多項式等,並且可以進行求值.
求極限 sympy.limit
求到 sympy.diff
numpy庫簡單介紹
numpy
是python
的一個擴充套件程式庫,支援大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫.
numpy
是一個執行速度非常快的數學庫,主要用於陣列計算.
MATLAB
在python
中的替代方案為numpy + scipy + matplotlib
陣列操作
返回密集的多維表格
在繪製三維圖表時,需要用到np.mgrid
.
它會返回一個密集的多維網格,一般形式為np.mgrid[start:end:stop]
.
scipy庫簡介
scipy
是科學計算庫,構建在numpy
之上.
numpy
是一個存數學的計算模組,而scipy
是更高階的科學計算庫.