深度學(xué)習基礎概念筆記

我們都知道,函數某個(gè)位置可導,那么就可以確定這個(gè)點(diǎn)的斜率。要找到局部最小值,可以根據這個(gè)點(diǎn)的斜率移動(dòng) w。如根據此時(shí)斜率的值我們可以確定 w 應該向右移動(dòng)一段距離。

此時(shí)移動(dòng) w 的距離稱(chēng)為步長(cháng)。步長(cháng)的選取很關(guān)鍵,如果步長(cháng)過(guò)長(cháng),那么每次 w 偏移過(guò)大,永遠都找不到真正的最小值。而如果步長(cháng)選取過(guò)小,那么收斂會(huì )變得很慢,而且有可能在中間某段平滑處停下來(lái),找到的也不是真正的最小值。而步長(cháng)怎么選擇呢?其實(shí)比較坑爹,某些時(shí)候有經(jīng)驗值,大部分時(shí)候則只能自己調整去試驗。
在學(xué)習的過(guò)程中,遇到的最常見(jiàn)的一個(gè)問(wèn)題是走不動(dòng)了。比如在下圖中。從 A 點(diǎn)走到 B 點(diǎn),B 點(diǎn)由于斜率平滑,慢慢走到了 C 點(diǎn),這時(shí)候可能 C 點(diǎn)斜率是平滑了,那么 w 將無(wú)法繼續往下走,永遠停留在 C 點(diǎn)!這樣得到的神經(jīng)網(wǎng)絡(luò )的誤差 L 顯然不是最小的,權值 w 也不是最佳的。

因此,在神經(jīng)網(wǎng)絡(luò )學(xué)習過(guò)程中,常用的做法是模擬物理世界引入一個(gè)動(dòng)量球。假設每次的移動(dòng)看成 是一個(gè)動(dòng)量球的移動(dòng)。在移動(dòng)過(guò)程中,動(dòng)量球先從最高點(diǎn)往下走,雖然下載下來(lái)后斜率減少,但是由于動(dòng)量球將移動(dòng)下來(lái)的重力勢能轉變的動(dòng)能,它會(huì )繼續往下走,從而移動(dòng)過(guò)平緩區。當動(dòng)量球到達某個(gè)局部最低點(diǎn)的時(shí)候,動(dòng)量球會(huì )依靠自己的動(dòng)能繼續滾動(dòng),設法尋找到下一個(gè)局部最低點(diǎn)。當然,動(dòng)量球不是萬(wàn)能的,它也可能會(huì )遇到山坡上不去最終滑下來(lái)停留在某個(gè)局部最小值(并不是真正的最小值)。但是動(dòng)量球的引入,大大增加了學(xué)習過(guò)程的魯棒性,擴寬了局部最小值的尋找范圍。

實(shí)際上,借助理解神經(jīng)網(wǎng)絡(luò )學(xué)習的過(guò)程,我們會(huì )更加理解為什么深度越高的網(wǎng)絡(luò )不一定就越好。對于深度越高的神經(jīng)網(wǎng)絡(luò ),平滑區會(huì )越來(lái)越多,局部最小點(diǎn)也會(huì )越來(lái)越多。沒(méi)有合適的算法,很容易就陷入某個(gè)局部最小值里面去,而這個(gè)最小值可能還不如深度更淺的神經(jīng)網(wǎng)絡(luò )獲得的局部最小值小。也就是說(shuō),神經(jīng)網(wǎng)絡(luò )復雜之后,對架構和算法的要求大大加高。
卷積
如果對卷積這個(gè)數學(xué)概念還沒(méi)有了解,可以先看知乎這里通俗的解釋。
怎樣通俗易懂地解釋卷積?
如果沒(méi)有做過(guò)圖像處理,還需要先看看卷積核,感受一下它的神奇。
圖像卷積與濾波的一些知識點(diǎn)
以圖片的卷積為例,深度學(xué)習中的卷積計算就是使用卷積核遍歷一張圖片的過(guò)程。

根據對于邊緣的處理不同,卷積分為相同填充和有效填充兩種方法。相同填充中,超出邊界的部分使用補充 0 的方法,使得輸入和輸出的圖像尺寸相同。而在有效填充中,則不使用補充 0 的方法,因此輸出的尺寸會(huì )比輸入尺寸小一些。

例 1:3*3 的卷積核在 5*5 的圖像上進(jìn)行有效填充的卷積過(guò)程

例 2. 兩個(gè) 3*3*3 卷積核在 5*5 圖像上進(jìn)行相同填充卷積過(guò)程。動(dòng)圖
圖像有 r,g,b 三個(gè)通道。這里使用卷積核也分為 3 個(gè)通道分別進(jìn)行卷積運算

池化
池化是卷積神經(jīng)網(wǎng)絡(luò )中用到的一種運算。在卷積神經(jīng)網(wǎng)絡(luò )中,卷積層后面一般是池化層。先進(jìn)行卷積運算,再進(jìn)行池化運算。
池化層在神經(jīng)網(wǎng)絡(luò )中起到的是降低參數和計算量,引入不變形的作用。
池化常用的是兩種,一種是 Avy Pooling,一種是 Max Pooling。下圖是 Max Pooling 的示意圖,可以看到分別找的是 2*2 矩陣中的最大值,Avy Pooling 則是將矩陣所有值加起來(lái),求平均值。

評論