神經(jīng)網(wǎng)絡的每一層都是干嘛的?這才是神經(jīng)網(wǎng)絡結(jié)構(gòu)的核心
組成一個神經(jīng)網(wǎng)絡從技術(shù)上來說主要有以下幾個部分:
- 數(shù)據(jù)集
 - 神經(jīng)網(wǎng)絡結(jié)構(gòu)
 - 損失函數(shù)
 - 優(yōu)化函數(shù)
 - 反向傳播
 
而不同神經(jīng)網(wǎng)絡模型之間最主要的區(qū)別就是神經(jīng)網(wǎng)絡結(jié)構(gòu)的異同,當然最相似的地方也是神經(jīng)網(wǎng)絡結(jié)構(gòu)。
原因就在于神經(jīng)網(wǎng)絡結(jié)構(gòu)是由多個神經(jīng)網(wǎng)絡層所組成的;而使用不同的層就實現(xiàn)了不同功能的神經(jīng)網(wǎng)絡模型。

神經(jīng)網(wǎng)絡的層
一個神經(jīng)網(wǎng)絡是由多種神經(jīng)網(wǎng)絡層所組成的,而每個神經(jīng)網(wǎng)絡層實現(xiàn)不同的功能;然后由此組成神經(jīng)網(wǎng)絡模型。
拋開具體的神經(jīng)網(wǎng)絡結(jié)構(gòu)來說,我們大概聽說過一些神經(jīng)網(wǎng)絡層;比如,輸入層,輸出層,全連接層,卷積層,激活層,池化層等等。
當然,有些網(wǎng)絡層只針對特定的神經(jīng)網(wǎng)絡結(jié)構(gòu);比如卷積層就只針對卷積神經(jīng)網(wǎng)絡;而全連接層基本上在所有神經(jīng)網(wǎng)絡結(jié)構(gòu)中都扮演著重要角色,全連接層的作用就是將上一層的所有神經(jīng)元與當前層所有神經(jīng)元進行連接,進行線性變換和非線性激活。

比如,在分類任務中,最后一層全連接層通常輸出類別的概率分布。
在眾多的網(wǎng)絡層中,輸入層與輸出層屬于比較特殊的層;因為其需要與外界環(huán)境進行交互;輸入層需要接受外界數(shù)據(jù)的輸入,而輸出層需要輸出數(shù)據(jù)到外界環(huán)境,因此會對數(shù)據(jù)格式有特定的要求。
還有一點比較特殊的就是,輸入層不會對數(shù)據(jù)做任何處理;它的主要任務就是接受數(shù)據(jù)輸入,并傳遞到下一層;而輸出層一般是網(wǎng)絡結(jié)構(gòu)中的最后一層作為輸出層。
從本質(zhì)上來說,神經(jīng)網(wǎng)絡模型就是一個復雜的數(shù)學函數(shù);因此,每個神經(jīng)網(wǎng)絡層的作用就是進行數(shù)學計算。
而以具體的神經(jīng)網(wǎng)絡結(jié)構(gòu)來說,如Transformer神經(jīng)網(wǎng)絡架構(gòu);主要由編碼器和解碼器組成,而每個編碼器和解碼器都是由多個神經(jīng)網(wǎng)絡層所組成。

比如從Transformer的經(jīng)典架構(gòu)圖中可以看到,一個編碼器器是由一個多頭注意力層,兩個殘差連接歸一化層和一個前饋神經(jīng)網(wǎng)絡組成;而解碼器比編碼器多了一個多頭注意力層。
其它神經(jīng)網(wǎng)絡層還有歸一化層(normalization layer),如Transformer中的編碼器和解碼器都有歸一化層的存在;其它還有Dropout層等,為了防止過擬合現(xiàn)象,會隨機丟棄一部分神經(jīng)元。
因此,我們在學習神經(jīng)網(wǎng)絡技術(shù)的過程中,不要一上來就去研究那些復雜的神經(jīng)網(wǎng)絡架構(gòu);而應該從最簡單的神經(jīng)網(wǎng)絡結(jié)構(gòu)開始,去弄明白每個神經(jīng)網(wǎng)絡層都具有哪些功能,以及其每個層的作用是什么;等把這些問題給弄明白了,那么自然就知道怎么去實現(xiàn)一個能解決特定問題的神經(jīng)網(wǎng)絡模型了。















 
 
 











 
 
 
 