AI算法的數學原理(AI算法的數學原理)
2023-09-19 06:54:52 3
#頭條創作挑戰賽#
深度學習的出現,讓視覺識別得到了普遍的應用,這裡簡單說說它的數學原理。
黑白圖像是一個二維的矩陣:寬度、高度,就可以確定像素值的位置。
彩色圖像是一個三維的矩陣:寬度、高度、顏色,就可以確定像素值的位置。
原始圖像裡,大量的信息都是線性相關的:佔的字節數很多,而且不能疊加。
圖像處理,就是把原始圖像通過一組基展開,讓它的每一維之間是線性無關的。
說白了,就是把曲線坐標系儘量變成直角坐標系,讓表達弧長的係數矩陣儘量簡化。
看過我前幾篇廣義相對論的文章的,應該知道:
直角坐標系裡,弧長的平方是 ds^2 = dx^2 dy^2.
曲線坐標系裡,弧長的平方是 ds^2 = Adx^2 Bdy^2 Cdxdy,它的坐標實際上不是線性無關的,因為它有交叉的二次項dxdy。
所以,直角坐標系裡弧長的矩陣只有2個值不為0,但曲線坐標系裡不為0的值更多。
如下圖:
人眼周圍的像素,肯定都是相關的!
整個人臉的像素都是相關的,因為人臉也是一個特別複雜的曲面:
它也有個曲面方程:f(x, y, z, c) = 0.
x, y, z表示三維坐標,c表示顏色。
雖然沒法簡單地給出人臉的解析式,但可以用神經網絡去近似它:
1,人臉是連續的。
就算臉上受傷了那也是連續的,否則麻煩就大了[捂臉]
既然是連續的,那麼極值點最多只有可數個,為什麼?
極值的定義是:在x0的某個鄰域 N(x0, r) 內,有 f(x0) >= f(x) 或 f(x0) N的時候,解是存在的、唯一的。
所以,模型越複雜,需要的樣本就越多。
但是不知道g(X)的解析式(而且這個矩陣很大),沒法直接求解(只能迭代)。
BP算法要想隨著迭代而收斂,迭代算子T就必須滿足壓縮映射條件:
|| Tx - Tx' || < || x - x'||.
同類樣本之間的「神經距離」,應該隨著迭代,比樣本之間的歐幾裡德距離要小。
這樣,「神經距離」才會類似於迭代次數的等比數列,比值q 1 還是 0時,y = x;x < 0時,y = 0.
後來,為了避免relu在x 0時,y = x;x < 0時,y = 0.2x.
讓函數在非激活區也有一個 = 0;
0.2x | x < 0} 也是非線性,因為它對正負數的斜率不一樣。
非線性的作用,就是在WX b落到極值點之外的時候,要有一個非激活區。
有1個非激活區就行,因為可以用兩層網絡的串聯形成2個非激活區。
(就跟模擬電路的高通濾波 低通濾波 = 帶通濾波一樣)
所以,relu做激活函數時,網絡的層數比sigmond的要多。
6,讓神經網絡使用「最少的坐標」,
如果選擇的基是最合適的,那麼把原始圖像展開所需的不為0的係數就會最少。
在深度學習的訓練中,怎麼做到這點?
實際是先讓網絡的權值隨著層數的增加越來越少,然後用BP算法去訓練它[呲牙]
因為每個樣本都有類型的標註,同類之間的誤差要儘量小,不同類之間的誤差要儘量大:
當權值越來越少時,BP算法一樣會儘量增大不同樣本之間的距離;
然後,係數和基就都訓練出來了
這個過程跟寫代碼一樣:程式設計師為了減少代碼行數,然後不斷地把重複代碼寫成函數。
然後,函數越來越多,代碼越來越少。
函數就是「基」,實參就是「係數」,每個版本就是一次「BP算法」。
,