tft每日頭條

 > 圖文

 > 人工智能的神奇數學

人工智能的神奇數學

圖文 更新时间:2025-02-07 21:50:42
1,泰勒公式

  泰勒公式,也稱泰勒展開式,是用在一個函數在某點的信息,描述其附近取值的公式。如果函數足夠平滑,在已知函數在某一點的各階導數值的情況下,泰勒公式可以利用這些導數值來做系數,構建一個多項式近似函數,求得在這一點的鄰域中的值。

  泰勒公式用一句話描述:就是用多項式函數去逼近光滑複雜函數,以直代曲

  先來感受一下泰勒公式的逼近效果:

人工智能的神奇數學(人工智能必備數學基礎)1

  泰勒公式的維基百科定義:設 n 是一個正整數,如果定義在一個包含 a 的區間上的函數 f 在 a 點處 n 1 次可導,那麼對于這個區間上的任意 x 都有:

人工智能的神奇數學(人工智能必備數學基礎)2

人工智能的神奇數學(人工智能必備數學基礎)3

  其中的多項式稱為函數在 a 處的泰勒展開式,Rn(x) 是泰勒公式的餘項且是 (x-a)n 的高階無窮小

  這裡的餘項即為誤差,因為使用多項式函數在某點展開,逼近給定函數,最後肯定會有一丢丢的誤差,我們稱之為餘項。

  泰勒公式的定義看起來高端大氣。但如果 a=0 的話,就是麥克勞倫公式,即:

人工智能的神奇數學(人工智能必備數學基礎)4

  這個就是我們下面讨論的,可以認為麥克勞倫公式和泰勒公式等價。

  泰勒公式的作用就是用一個多項式函數去逼近一個給定的函數(即盡量使多項式函數圖像拟合給定的函數圖像),注意,逼近的時候一定是從函數圖像上的某個點展開。如果是一個非常複雜函數,想求其某點的值,直接求無法實現,這時候就可以使用泰勒公式取近似的求該值,這是泰勒公式的應用之一,泰勒公式在機器學習中主要應用于梯度叠代。

  不過這裡我們首先看看多項式函數圖像特點及其如何逼近給定函數。

人工智能的神奇數學(人工智能必備數學基礎)5

1.1 多項式的函數圖像特點

  初等數學已經了解到一些函數如:ex,sinx,cosx,arctanx,lgx....的一些重要性質,但是初等數學不曾回答怎樣來計算他們,下面我們慢慢學習。

  首先,我們看一下泰勒展示式:

人工智能的神奇數學(人工智能必備數學基礎)6

  其中 f(0), f ''(0)/2! 這些都是常數,我們暫時不管,先看看其中最基礎的組成部分,幂函數有什麼特點。

人工智能的神奇數學(人工智能必備數學基礎)7

人工智能的神奇數學(人工智能必備數學基礎)8

  可以看到,幂函數其實隻有兩種形态,一種是關于 Y 軸對稱,一種是關于原點對稱,并且指數越大,增長速度越大。

  那幂函數組成的多項式函數有什麼特點呢?

  我們發現:如果把9次的和2次的直接放在一起,那2次的都不用玩了

人工智能的神奇數學(人工智能必備數學基礎)9

  但是開始的時候,應該是2次的效果更好,之後才慢慢輪到9次,可是如何才能讓 x2 和 x9 的圖像特性能結合起來呢?

人工智能的神奇數學(人工智能必備數學基礎)10

  所以說,通過改變系數,多項式可以像鋼絲一樣彎成任意的函數曲線。

1.2 用多項式對 ex 進行逼近

  ex 是麥克勞倫展示形式上最簡單的函數,有 e 就是這麼任性。下面看一下 ex 的多項式展示式:

人工智能的神奇數學(人工智能必備數學基礎)11

人工智能的神奇數學(人工智能必備數學基礎)12

  增加一個 1/4!*x4 看看。

人工智能的神奇數學(人工智能必備數學基礎)13

  增加一個 1/5!*x5 看看。

人工智能的神奇數學(人工智能必備數學基礎)14

  可以看出, 1/n!*xn 不斷的彎曲着那根多項式形成的鐵絲去逼近 ex,并且 n 越大,其作用的區域距離 0 越遠。

  連起來看,如下:

人工智能的神奇數學(人工智能必備數學基礎)15

1.3 用多項式對 sin(x) 進行逼近

  sin(x) 是周期函數,有非常多的彎曲,難以想象可以用多項式進行逼近。

  下面看一下 sin(x) 的多項式展示式。

人工智能的神奇數學(人工智能必備數學基礎)16

人工智能的神奇數學(人工智能必備數學基礎)17

  同樣,我們再增加一個 1/7!*x7 試試。

人工智能的神奇數學(人工智能必備數學基礎)18

  可以看到 1/7!*x7 在适當的位置,改變了x - 1/3!*x3 1/5!*x5 的彎曲方向,最終讓 x - 1/3!*x3 1/5!*x5 - 1/7!*x7 更好的逼近 sin(x)。

  下面看看 sin(x)的泰勒展示:

人工智能的神奇數學(人工智能必備數學基礎)19

人工智能的神奇數學(人工智能必備數學基礎)20

  從上圖中每次不同程度的函數逼近可以看出:對于精确度要求較高且需要估計誤差的時候,必須用高次多項式來近似表達函數,同時給出誤差公式。以上就是利用多項式函數去逼近給定函數的一個過程。

1.4 泰勒公式是怎麼推導的?

  是根據“以直代曲,化整為零”的數學思想,産生了泰勒公式。

人工智能的神奇數學(人工智能必備數學基礎)21

  如上圖,把曲線等分為 n 份,分别為 a1, a2, .... an,令 a1 = a, a2 = a Δx, ... xn = a (n-1)Δx。我們可以退出 (Δ2, Δ3 可以認為是二階,三階微分,其準确的數學用于是差分,和微分相比,一個是有限量,一個是極限量):

人工智能的神奇數學(人工智能必備數學基礎)22

  也就是說, f(x) 全部可以由 a 和 Δx 決定,這個就是泰勒公式提出的基本思想。據此的思想,加上極限 Δx -> 0,就可以推出泰勒公式。

注意:為什麼泰勒公式選擇多項式函數去近似表達給定的函數

  首先,我們看如下多項式:

人工智能的神奇數學(人工智能必備數學基礎)23

  其實多項式是最簡單的一類初等函數。關于多項式,由于它本身的運算僅是有限項加減法和乘法,所以在數值計算方面,多項式是人們樂于使用的工具。因此我們經常用多項式來近似表達函數。這也是為什麼泰勒公式選擇多項式函數去近似表達給定的函數。

  下面我們推導一下其一階泰勒公式,我們首先從一階導數着手,假設 f(x) 在 x0 處有一階導數,那麼根據定義,就有:

人工智能的神奇數學(人工智能必備數學基礎)24

  現在先回顧一下關于函數極限的一個結論:

人工智能的神奇數學(人工智能必備數學基礎)25

  其中,α(x) 是該極限過程下的某個無窮小,即: α(x) -> 0(x ->x*),利用這個結論,可以将(1)改寫為:

人工智能的神奇數學(人工智能必備數學基礎)26

  其中 α1(x) -> 0(x ->x0),再進一步變形,就可以得到:

人工智能的神奇數學(人工智能必備數學基礎)27

  注意到(4)末尾那一項,很清楚,它是 (x - x0) 的高階無窮小,這是因為:

人工智能的神奇數學(人工智能必備數學基礎)28

  于是,我們可以直接将它記作:

人工智能的神奇數學(人工智能必備數學基礎)29

  這樣的話,(4)式就可以進一步改寫為:

人工智能的神奇數學(人工智能必備數學基礎)30

  這就是一階泰勒公式,老師的PPT如下:

人工智能的神奇數學(人工智能必備數學基礎)31

  那麼如何得到二階呢?

  先比較一下二階泰勒和一階泰勒形式上的差别。他們前兩項都是一樣的,隻不過二階的又多出一項。注意到,高階無窮小的記号實際上是一個“收納筐”,它裡面裝着很多隐藏着的東西。如此,我們猜測,二階泰勒多出來的這一項,一定是從一階泰勒那個高階無窮小中“分析”出來的。

  這啟發我們來考慮這樣一個極限:

人工智能的神奇數學(人工智能必備數學基礎)32

  這是 一個 0/0 的極限,要求解它可以考慮使用洛必達。但是,請注意,我們現在隻有 f(x) 在 x0 一點一階可導的條件,這還不足以讓我們使用洛必達。不過,這并沒有太大困難,隻要加強條件就行,比如:我們讓 f(x) 在 x0 處二階可導,這樣的話,就不僅保證了 f '' (xo) 存在,還同時保證了 f(x) 在 x0 某鄰域内一階可導,這就滿足了洛必達的使用條件。

  好了,下面開始洛必達!

人工智能的神奇數學(人工智能必備數學基礎)33

  現在,我們又利用(2)的結論,将這個極限改寫為:

人工智能的神奇數學(人工智能必備數學基礎)34

  基于同一理由:

人工智能的神奇數學(人工智能必備數學基礎)35

  我們将它代入(10)并連同(10)一起帶回(7),就将得到:

人工智能的神奇數學(人工智能必備數學基礎)36

  這就是二階泰勒公式!

  下面看一下以直代曲,當 |x| 很小的時候:

人工智能的神奇數學(人工智能必備數學基礎)37

人工智能的神奇數學(人工智能必備數學基礎)38

  這就相當于,在求一階導數,求 f(x) 在某一點的切線,這個從函數整體來看,隻能表示出下一個點上,函數的整體走勢是上升還是下降。

人工智能的神奇數學(人工智能必備數學基礎)39

  但是我們多畫幾個函數,就會發現隻使用一階導數看起來有點不準,它隻幫我們定位了下一個點是上升還是下降,對之後的趨勢就很難把控了。

人工智能的神奇數學(人工智能必備數學基礎)40

人工智能的神奇數學(人工智能必備數學基礎)41

  如何做的更準确一些呢? 我們如果把二階導利用上呢?

人工智能的神奇數學(人工智能必備數學基礎)42

  更形象一點:

  • 首先要求兩曲線函數在某一點(x0, y0)相交: 即 p(x) = f(x)
  • 如果要靠的更近,還要兩曲線在在該點(x0, y0)處切線相同:即函數的一階導數相同,p '(x) = f '(x)
  • 如果還要靠的更近,還要求函數的彎曲方向相同:即函數的二階導數相同,p '' (x) = f''' (x)

  以此類推:

人工智能的神奇數學(人工智能必備數學基礎)43

  我們所找的多項式應該滿足下面條件:

人工智能的神奇數學(人工智能必備數學基礎)44

  解釋一下上面的轉換時如何做的,以上面第三行的二階導數為例:

  第一個箭頭的轉換:将 Pn(x) 求二階導函數後将 x0 帶入,求得 Pn''(x0) = 2!a2

  第二個箭頭的轉換:所以 f ''(x0) = 2! a2,所以 a2 = 1/2! * f '' (x0)

  多項式函數:

人工智能的神奇數學(人工智能必備數學基礎)45

  上面多項式中的系數 a 可以全部由 f(x) 表示,則得到泰勒多項式為:

人工智能的神奇數學(人工智能必備數學基礎)46

  上式稱為 f(x) 在 x0 處關于 (x - x0) 的 n 階泰勒多項式。

  其中誤差為:

人工智能的神奇數學(人工智能必備數學基礎)47

  因為是用多項式函數去無限逼近給定的函數,所以兩者之間肯定存在一丢丢的誤差。

  麥克勞倫公式為:

人工智能的神奇數學(人工智能必備數學基礎)48

  近似可得:

人工智能的神奇數學(人工智能必備數學基礎)49

  麥克勞林多項式在做逼近的時候很有用,它可以幫我們實現一個函數,在 x 軸 [0, 1] 之間符合低次幂的圖像,在大于 1 的作用域上符合高次幂的圖像,這樣便可以更好地拟合某些函數。

1.5 階乘的含義

  這裡補充一個知識:0的階乘為1,0的階乘等于1是人為規定的

  原因如下:一個正整數的階乘是所有小于等于該數的正整數的積,并且有0的階乘為1.簡單一點是人為規定的,但是它有道理的,因為階乘是一個遞推定義, n! = n*(n-1)!,那麼必然有一個初始值需要認為規定。因為 1!=1,根據 1!=1*0!,所以 0!=1。

  那麼階乘到底什麼意思呢?

  • 1,我們發現,階數越高增長速度越快
  • 2,觀察可發現,越高次項在越偏右側影響越大
  • 3,對于一個複雜函數,對我們的感覺是在當前點,低階項能夠更好地描述當前點附近,對于之後的走勢就越來越依靠高階的了
1.7 泰勒公式的用處

  首先這裡要問了,為什麼要使用泰勒公式呢?

  • 用簡單的熟悉的多項式來近似代替複雜的函數
  • 泰勒公式容易計算函數值,導數與積分仍然是多項式
  • 多項式由他的系數完全确定,其系數又由他在一點的函數值及其導數所确定

  實際應用中,泰勒公式需要階段,隻取有限項,一個函數的有限項的泰勒級數叫做泰勒展開式。泰勒公式的餘項可以用來估算這種近似的誤差

  泰勒公式最直接的一個應用就是用于計算,計算機一般都是把 sin(x) 進行泰勒展開進行計算的。

  泰勒公式還可以把問題簡化,比如計算:

人工智能的神奇數學(人工智能必備數學基礎)50

  代入 sin(x) 的泰勒展示有:

人工智能的神奇數學(人工智能必備數學基礎)51

  其中 o(x3) 是泰勒公式裡面的餘項,是高階無窮小。

人工智能的神奇數學(人工智能必備數學基礎)52

1.8 常見的麥克勞林級數

  下面給出幾個常見函數在 x=0 處的泰勒級數,即麥克勞林級數。

人工智能的神奇數學(人工智能必備數學基礎)53

  下面是幾個常見的初等函數的帶有佩亞諾餘項的麥克勞林公式:

人工智能的神奇數學(人工智能必備數學基礎)54

  佩亞諾餘項為 (x - x0)n 的高階無窮小:Rn(x) = o[(x - x0)n]

1.9 例子:求其n階麥克勞倫展開式

人工智能的神奇數學(人工智能必備數學基礎)55

人工智能的神奇數學(人工智能必備數學基礎)56

2,拉格朗日乘子法(Lagrange Multiplier Method)

  拉格朗日乘子法是用來求條件極值的,或者說拉格朗日乘子法叫拉格朗日數乘法求解條件極值,極值問題有兩類,其一,求函數在給定區間上的極值,對自變量沒有其他要求,這種極值稱為無條件極值。其二,對自變量有一些附加的約束條件限制下的極值,稱為條件極值。

  下面我們一步一步慢慢來

2.1 如何求條件極值?

  給個函數: u = f(x, y),如何求其極值點呢?

  簡單來說直接求它的偏導不就OK了,即:

人工智能的神奇數學(人工智能必備數學基礎)57

  但是:現在問題難度加大了,如果再加上約束條件呢?限制條件為 v(x, y) = 0

  解出 y = y(x) 代入 z 中有:

人工智能的神奇數學(人工智能必備數學基礎)58

人工智能的神奇數學(人工智能必備數學基礎)59

人工智能的神奇數學(人工智能必備數學基礎)60

  這說明當 u 的梯度與條件 z = z(x, y) 的法向量共線的時候 u 取得條件極值。

人工智能的神奇數學(人工智能必備數學基礎)61

  由于一般情況下 v(x, y) 很難求出顯式子,所以我們運用銀行求導的法則:

人工智能的神奇數學(人工智能必備數學基礎)62

  于是得到:

人工智能的神奇數學(人工智能必備數學基礎)63

  顯然:

人工智能的神奇數學(人工智能必備數學基礎)64

  于是我們得到結論: u = f(x, y) 在條件 v(x, y) = 0 作用下的極值點由下述函數的極值點給出,注意到 v(x, y) = 0,極值也相同。

人工智能的神奇數學(人工智能必備數學基礎)65

2.2 如何形象的理解拉格朗日乘子法?

  老師的PPT:

人工智能的神奇數學(人工智能必備數學基礎)66

  下面來解析一下。

  想象一下,目标函數 f (x, y) 是一座山的高度,約束 g(x, y)=C 是鑲嵌在山上的一條曲線如上圖。為了找到曲線的最低點,就從最低的等高線(0那條)開始往上數。數到第三條,等高線終于和曲線有交點了,如下圖所示,因為比這條等高線低的地方都不在約束範圍内,所以這肯定是這條約束曲線的最低點了。

人工智能的神奇數學(人工智能必備數學基礎)67

  而且約束條件在這裡不可能和等高線相交,一定是相切。因為如果相交的話,如下圖所示,那麼曲線肯定會有一部分在B區域,但是B區域比等高線低,這是不可能的。

人工智能的神奇數學(人工智能必備數學基礎)68

  兩條曲線相切,意味着他們在這點的法線(法向量)平行,也就是法向量隻差一個任意的常數乘子(取為 - λ)

人工智能的神奇數學(人工智能必備數學基礎)69

  我們把這個式子的右邊移到左邊,并把常數移到微分算子,就得到:

人工智能的神奇數學(人工智能必備數學基礎)70

  把這個式子重新解釋一下:這個就是函數 f(x, y) λ g(x, y) 無約束情況下極值點的必要條件

人工智能的神奇數學(人工智能必備數學基礎)71

  (上圖解釋:兩曲線相切等價于兩曲線在切點處擁有共線的法向量,因此可得到函數 f(x, y) 與 g(x, y)在切線處的梯度(gradient)成正比,于是我們可以列出方程組求解切線的坐标(x,y),進而得到函數 f的極值)

  從代數方面再梳理一下:

  求一個多元函數 f(x, y, z,...) 在條件 g(x, y, z,....) =a 下的極值,實際上是求前者在後者定義域下的極值。

  而求函數 L(r, x, y,z...) = f(x, y, z....) r*(g(x,y,z...)-a) 的無條件極值,極值存在的條件為 L 的所有偏導數等于0。

  關鍵的一點來了,由于 r 也是 L 的變量,所以 L 對 r 的偏導數為 0 相當于要求:

人工智能的神奇數學(人工智能必備數學基礎)72

  這恰好使 L(r, x, y, z...) 的除了r外的所有變量被限制在 g(x, y, z,...) 的定義域内。

  而在這個定義域内,顯然 g-a 恒等于0,于是就有 L=f,求 f的有條件極值問題被轉化為求 L的無條件極值問題。

2.3 什麼是拉格朗日乘子法?

  在數學最優問題中,拉格朗日乘子法(Lagrange Multiplier,以數學家拉格朗日命名)是一種尋找遍曆受一個或多個條件限制的多元函數的極值的方法。

  基本的拉格朗日乘子法(又稱為拉格朗日乘數法),就是求解函數 f(x1, x2, ....)在 g(x1,x2...)=0的約束條件下的極值的方法。其主要思想是引入一個新的參數 λ (即拉格朗日乘子),将約束條件與原函數聯系到一起,使能配成與變量數量相等的等式方程,從而求出得到原函數極值的的各個變量的解

  這種方法将一個有 n 個變量與 k 個約束條件的最優化問題轉換為一個有 n k 個變量的方程組的極值問題,其變量不受任何約束。這種方法引入了一種新的标量未知數,即拉格朗日乘數:約束方法的梯度(gradient)的線性組合裡每個向量的系數。這種方法保證了在獲得最優乘子的情況下,原目标函數的解和拉格朗日函數的解是一緻的。

  需要注意的是:lagrange函數本身沒有意義的,我們隻是希望構造出一個 Lagrange函數,來使得這個函數的極值等于原函數 f(x) 在約束條件下的極值

2.4 如何使用拉格朗日乘子法?

  在機器學習的過程中,我們經常遇到在有限制的情況下,最大化表達式的問題。即求表達式的最大值,一般情況下我們都是求導,令其等于 0,但是機器學習的過程中,我們經常遇到在有限制的情況下,最大化表達式,如下例子所示:

人工智能的神奇數學(人工智能必備數學基礎)73

  此時,我們引入一個拉格朗日乘子 λ 構造出拉格朗日表達式 :

人工智能的神奇數學(人工智能必備數學基礎)74

  對于有多個限制的表達式,則有:

人工智能的神奇數學(人工智能必備數學基礎)75

  其中, λ 稱為拉格朗日乘子。

  接下來就是要對拉格朗日表達式求導,令其為0,解方程即可。

人工智能的神奇數學(人工智能必備數學基礎)76

人工智能的神奇數學(人工智能必備數學基礎)77

  最後将方程的解代入原函數中即可。

最後,小編想說:我是一名python開發工程師,整理了一套最新的python系統學習教程,想要這些資料的可以關注私信小編“01”即可(免費分享哦)希望能對你有所幫助。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved