第四周筆記:神經網路是什麼
細胞元之間傳遞信息的方式是興奮或者抑制,可以按照上節課的邏輯回歸演算法的0和1來看待。同一時間,突觸只能單向傳遞信號。
所以,把神經網路符號化,簡化一下就是這樣:
我們把每一次,函數接收的所有數據,叫做一個層。簡單地可以把數據接收作為層1,接受到層1的所有數據並處理的叫做層2,接收層2數據並處理後傳遞給下一次用的數據叫做層3……依此類推。那麼這樣的話,多出來的那個+1是怎麼回事呢?任何一個參數的0次方就是1……表示一個常數也稱之為偏置項。
按照我們之前筆記里的,把記作1,把記作1,那麼,上面那個網路就變成了下面這樣了。
我們把從外接接受數據的層,稱之為輸入曾(input layer),產生最終結果的層,稱之為輸出層(Output layer),中間的所有層我們一般不直接看到,所以稱之為隱藏層(hiden layer)。
我們把隱藏層j里的第i個數據表示為,處理上一層的所有數據,得到這個數據的函數的參數表示為(向量),(向量)里的第k個數據為,處理它們的函數為
例如,如果j等於2,也就是第2層,這個層里有3個數據,分別是,,,其中,也就是:。同理,
,也就是:
,也就是:
而如果j大於2,那麼裡面的X就是也就是x變成了a,也就是
同理,最後一個要得出的輸出曾,也是(假設有3層。)
神經網路演算法,就是模仿細胞的傳遞方式,每個「層」相當於包含很多細胞(函數),來處理上一層細胞傳遞過來的數據。每一層的數據依賴於上一層的數據,以及每一層的。常說的「我不知道是怎麼實現的」說的就是隱藏層。
然後是理解神經網路為什麼能分類……
還是拿邏輯回歸當作裡面的小函數舉例:就是那個
那個函數圖不是長這樣嗎?
那神經網路,就是興奮和抑制,我們把興奮當作1,抑制當作0。由於是以邏輯回歸舉例,所以特徵量1或者0對吧。邏輯回歸嘛。邏輯無非是,是,非,與,或,異或。其他的都是建立在這個之上的。
先說"是":中,大於10,那麼就無限趨近於1了對吧。所以系統學習時擬合個數字出來大於10的出來就可以了。例如就可以表示邏輯是。這時候如果x為0,那就是否。(而如果你選擇的話,當x為0,就是0.5……成薛定諤的貓了。)
然後"非":同理,中,小於10,就非常近似於0了。所以系統學習時擬合個數字出來出來,讓小於10即可。例如就可以表示邏輯非。
然後是與:同理,中,x1和x2同為1時大於10,就非常近似於1了。也很簡單,比如:就滿足條件。
然後是或:中,x1和x2有一個為1,大於10即可。也很簡單,比如:就滿足條件。
然後是異或,異或其實就是一個x1先是一下,另一個x1非一下的與組合……比如x1是,x2非時才成立,中就可以了。
所以你看,也就是說(在我們假設的結果和特徵量都只有0和1的情況下),每一層有和就可以得到下一層了。神經網路就是把很多層拉到一起,看起來複雜了些。
而多元分類問題里的話,就是把裡面的參數變成向量(和矩陣)而已(和之前筆記里一樣)。實際演算法都差不多。
第四周筆記結束(這樣看神經網路就好入門多了……先理解是什麼,為什麼有效,下周再理解怎麼用。一上來就來讓你算,搞不懂反向傳播演算法,是好多人神經網路演算法學蒙了的重要原因……)。
推薦閱讀:
※卷積神經網路(CNN)的參數優化方法
※[Matlab]BP神經網路預測[1]
※淺談神經網路與數學之間的關係
※神經網路中利用矩陣進行反向傳播運算的實質