從一個簡單的神經網絡模型開始 原創
“ 神經網絡是一個復雜的系統工程,要想透過表象看本質就需要從最基礎的神經網絡開始 ”
關于神經網絡的文章寫的也不少了,但一直沒弄明白神經網絡到底是怎么運作的;而現有的神經網絡模型又太復雜,如Transformer,CNN,RNN,以及各種應用場景(NLP,CV,分類任務,回歸任務等等);導致我們無法看到神經網絡最本質的東西。
所以,今天我們就來從最簡單的神經網絡開始學起。
簡單神經網絡
神經網絡的基本原理很簡單,那就是模仿由人類大腦神經元構成的神經網絡;神經元結構如下圖所示:
上圖是生物學中神經元的基本結構,神經元由樹突和軸突以及細胞核組成;而不同神經元之間通過軸突進行連接;當然這些都是中學生物學的基礎,就不多說了。
我們主要是把現在的神經網絡模型與生物學的神經網絡模型做對比;如下圖所示,其中每個圓圈就代表一個神經元;對應著生物學模型中的紫色部分,而每個神經元的計算過程就相當于生物學神經元中的細胞核部分;而突觸就是下圖中的箭頭部分。
神經網絡模型一般情況下分為多層,其中比較特殊的一點就是輸入層和輸出層;輸入層與輸出層根據不同的場景神經元數量各不相同,但基本上節點數都是固定的,且輸入層和輸出層由于需要和外界交互,因此比較特殊;而中間的隱藏層由多層神經網絡組成,且每一層的輸出都是下一層的輸入。
而神經元的結構是一個包含輸入,輸出與計算功能的模型;輸入可以類比生物神經元中的樹突,而輸出則為神經元的軸突;計算部分就是細胞核——進行信號處理和轉換。
如下圖所示,紅色框中的就是一個簡單的神經元計算模型。
而在實際應用中,不同的神經元實現不盡相同,但大都基于以下的神經元數學模型:
其實很多人都有一個錯誤的認知,那就是在神經網絡中最重要的是神經元;其實在神經網絡中最重要的是權重(W),神經網絡訓練的目的就是調整不同神經元的不同權重值,當然這里并不是說神經元不重要。
而當有多個神經元組成一個網絡層,然后再由多個網絡層組成一個復雜的神經網絡結構。
如上圖所示,每個圓圈都是一個神經元,一個神經元可能存在多個輸入,也就是上層神經元的軸突部分;然后神經元接受到輸入之后,經過細胞核(函數計算)之后產生一個結果,并輸出給下層的神經網絡中的神經元;如上圖中的Z1的輸入來自于a1,a2和a3。而a1,a2和a3的輸出又可以同時輸出給Z1和Z2兩個神經元。
而具體每個神經元有幾個輸入,以及輸出結果給到幾個神經元就有不同的神經網絡結構所決定。
雖然說目前有單個神經元或者由單層神經網絡組成的神經網絡模型并沒有太大實際應用價值;但其為學習復雜神經網絡提供了基礎的理論和數學模型。
而這也是神經網絡模型的基礎,面對復雜的各種神經網絡模型和結構,大部分人都被氣復雜的表象所蒙蔽,因此我們最好從最簡單的學起。雖然它目前并沒有什么用,但能夠讓你了解神經網絡的基本運作原理;當你再面對復雜神經網絡時,你就知道了其底層的運作原理。
本文轉載自公眾號AI探索時代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/KSm1EDSsnhfT4Ht3YAYICg??
