深度學(xué)習(xí)基礎(chǔ)概念筆記
我們都知道,函數(shù)某個(gè)位置可導(dǎo),那么就可以確定這個(gè)點(diǎn)的斜率。要找到局部最小值,可以根據(jù)這個(gè)點(diǎn)的斜率移動(dòng) w。如根據(jù)此時(shí)斜率的值我們可以確定 w 應(yīng)該向右移動(dòng)一段距離。
此時(shí)移動(dòng) w 的距離稱為步長。步長的選取很關(guān)鍵,如果步長過長,那么每次 w 偏移過大,永遠(yuǎn)都找不到真正的最小值。而如果步長選取過小,那么收斂會(huì)變得很慢,而且有可能在中間某段平滑處停下來,找到的也不是真正的最小值。而步長怎么選擇呢?其實(shí)比較坑爹,某些時(shí)候有經(jīng)驗(yàn)值,大部分時(shí)候則只能自己調(diào)整去試驗(yàn)。
在學(xué)習(xí)的過程中,遇到的最常見的一個(gè)問題是走不動(dòng)了。比如在下圖中。從 A 點(diǎn)走到 B 點(diǎn),B 點(diǎn)由于斜率平滑,慢慢走到了 C 點(diǎn),這時(shí)候可能 C 點(diǎn)斜率是平滑了,那么 w 將無法繼續(xù)往下走,永遠(yuǎn)停留在 C 點(diǎn)!這樣得到的神經(jīng)網(wǎng)絡(luò)的誤差 L 顯然不是最小的,權(quán)值 w 也不是最佳的。
因此,在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程中,常用的做法是模擬物理世界引入一個(gè)動(dòng)量球。假設(shè)每次的移動(dòng)看成 是一個(gè)動(dòng)量球的移動(dòng)。在移動(dòng)過程中,動(dòng)量球先從最高點(diǎn)往下走,雖然下載下來后斜率減少,但是由于動(dòng)量球?qū)⒁苿?dòng)下來的重力勢(shì)能轉(zhuǎn)變的動(dòng)能,它會(huì)繼續(xù)往下走,從而移動(dòng)過平緩區(qū)。當(dāng)動(dòng)量球到達(dá)某個(gè)局部最低點(diǎn)的時(shí)候,動(dòng)量球會(huì)依靠自己的動(dòng)能繼續(xù)滾動(dòng),設(shè)法尋找到下一個(gè)局部最低點(diǎn)。當(dāng)然,動(dòng)量球不是萬能的,它也可能會(huì)遇到山坡上不去最終滑下來停留在某個(gè)局部最小值(并不是真正的最小值)。但是動(dòng)量球的引入,大大增加了學(xué)習(xí)過程的魯棒性,擴(kuò)寬了局部最小值的尋找范圍。
實(shí)際上,借助理解神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的過程,我們會(huì)更加理解為什么深度越高的網(wǎng)絡(luò)不一定就越好。對(duì)于深度越高的神經(jīng)網(wǎng)絡(luò),平滑區(qū)會(huì)越來越多,局部最小點(diǎn)也會(huì)越來越多。沒有合適的算法,很容易就陷入某個(gè)局部最小值里面去,而這個(gè)最小值可能還不如深度更淺的神經(jīng)網(wǎng)絡(luò)獲得的局部最小值小。也就是說,神經(jīng)網(wǎng)絡(luò)復(fù)雜之后,對(duì)架構(gòu)和算法的要求大大加高。
卷積
如果對(duì)卷積這個(gè)數(shù)學(xué)概念還沒有了解,可以先看知乎這里通俗的解釋。
怎樣通俗易懂地解釋卷積?
如果沒有做過圖像處理,還需要先看看卷積核,感受一下它的神奇。
圖像卷積與濾波的一些知識(shí)點(diǎn)
以圖片的卷積為例,深度學(xué)習(xí)中的卷積計(jì)算就是使用卷積核遍歷一張圖片的過程。
根據(jù)對(duì)于邊緣的處理不同,卷積分為相同填充和有效填充兩種方法。相同填充中,超出邊界的部分使用補(bǔ)充 0 的方法,使得輸入和輸出的圖像尺寸相同。而在有效填充中,則不使用補(bǔ)充 0 的方法,因此輸出的尺寸會(huì)比輸入尺寸小一些。
例 1:3*3 的卷積核在 5*5 的圖像上進(jìn)行有效填充的卷積過程
例 2. 兩個(gè) 3*3*3 卷積核在 5*5 圖像上進(jìn)行相同填充卷積過程。動(dòng)圖
圖像有 r,g,b 三個(gè)通道。這里使用卷積核也分為 3 個(gè)通道分別進(jìn)行卷積運(yùn)算
池化
池化是卷積神經(jīng)網(wǎng)絡(luò)中用到的一種運(yùn)算。在卷積神經(jīng)網(wǎng)絡(luò)中,卷積層后面一般是池化層。先進(jìn)行卷積運(yùn)算,再進(jìn)行池化運(yùn)算。
池化層在神經(jīng)網(wǎng)絡(luò)中起到的是降低參數(shù)和計(jì)算量,引入不變形的作用。
池化常用的是兩種,一種是 Avy Pooling,一種是 Max Pooling。下圖是 Max Pooling 的示意圖,可以看到分別找的是 2*2 矩陣中的最大值,Avy Pooling 則是將矩陣所有值加起來,求平均值。
評(píng)論