書-深度學習的數學
○什麼是神經網路?
●實例-手寫辨識
○實例-手寫辨識-輸入層
●實例-手寫辨識-輸出層
○實例-手寫辨識-隱藏層
●用惡魔來講解神經網路的結構
○惡魔組織-偏置
●惡魔組織-總結
什麼是神經網路?
就是把神經元互相連接之後形成網狀,稱為神經網路,而神經網路的接法有很多,這本書會以基本的階層型神經網路和卷積神經網路來做使用和說明。
下面這張圖就是階層神經網路,就是由上面的神經元所組成的,神經網路以層(layer)來劃分它的功能,把資料輸入後經過隱藏層的運算後再輸出。
z = (w1x1+ w2x2+ w3x3 + b)
y = a(z) //要輸出前會經過一個激活函數,決定輸出值。
實例-手寫辨識
建立一個神經網路,用來識別4x3像素的手寫數字0、1,學習64張圖片,圖像只有黑白兩個顏色。
每個神經元都有連到下一個神經元,這樣的構造稱為全連接層(full connect layer)。
實例-手寫辨識-輸入層
總共有12個神經元,因為圖像的大小是4x3。
輸出層輸出會經過激活函數來決定輸出的值,那為了一致,所以輸入層也會經過一個激活函數叫做'恆等函數',這個恆等函數沒有什麼功能,你輸入什麼就輸出什麼。
實例-手寫辨識-輸出層
輸出就兩個神經元分別為0、1,經過sigmoid函數來看哪個輸出最高。
實例-手寫辨識-隱藏層
具有提取特徵的作用,要如何提取特徵?這是一個不簡單的事情,隱藏層的配置也是經驗的累積,只有兩個輸出,神經網路不用過於的複雜,也比較處理。
用惡魔來講解神經網路的結構
來解講隱藏層的特徵提取(feature extraction)。
前面提到手寫辨識,如果每個人的字跡都是一樣的,就不太需要這個,人或許分辨得出來,但是讓電腦判斷就有難度了。
假設有一個惡魔組織,隱藏層住著3個隱藏惡魔A、B、C,輸出層住著2個輸出惡魔0、1。輸入層有12個小惡魔服務者隱藏惡魔A、B、C。
輸入層的小惡魔如果很興奮就會告訴上層的隱藏惡魔,反之如果興奮不起來就繼續睡覺。
輸入層的小惡魔如果很興奮(1)就會告訴上層的隱藏惡魔,反之如果興奮不起來(0)就繼續睡覺。
隱藏惡魔有自己的喜好,偏愛某一些圖案,如果剛好是負責此區塊的小惡魔興奮告訴隱藏惡魔,那隱藏惡魔的興奮程度會加大的提升。
上層的輸出惡魔會根據隱藏惡魔的興奮程度進行整合,如果興奮度大於某個值,輸出惡魔就會興奮,而這個興奮的輸出惡魔代表者整個惡魔組織癖好。
看完上述的惡魔組織,可以知道幾點。
1.小惡魔如果跟隱藏惡魔有一腿,傳遞興奮的管道會變粗。
2.如過輸出惡魔跟隱藏惡魔也有一腿,管道也會變粗。
接下來來輸入手寫0來看看。
4、7、6、9小惡魔變得興奮。
4、7、6、9剛好也符合隱藏惡魔A、C的圖像,所以隱藏惡魔A、C變得興奮。
輸出惡魔0與A、C隱藏惡魔有一腿,所以當A、C惡魔興奮了,輸出惡魔0也就開始興奮了。
但由於跟輸出惡魔1有一腿的隱藏惡魔B很冷靜所以輸出惡魔0代表了整個惡魔組織輸出了0。
惡魔組織-偏置
惡魔組織中,興奮的傳遞也會因為其他惡魔的耳語所以受到感擾,因此要設置一個減少耳語的功能,稱為耳語的偏置,加強惡魔與有一腿的惡魔之間的信任感,不要因為其他惡魔而影響到之間的情感。
惡魔組織-總結
看過惡魔組織之後,應該對整個流程有一個認識了吧,當然興奮的傳遞都是經過了一連串的運算後所得到,下面放一個輸入1來結束這個惡魔組織。