神經(jīng)網(wǎng)絡(luò)的每一層都是干嘛的?這才是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的核心 原創(chuàng)
“ 神經(jīng)網(wǎng)絡(luò)層才是神經(jīng)網(wǎng)絡(luò)的核心,不同的神經(jīng)網(wǎng)絡(luò)的差別就在于神經(jīng)網(wǎng)絡(luò)層的不同 ”
在前面的文章中介紹過(guò),組成一個(gè)神經(jīng)網(wǎng)絡(luò)從技術(shù)上來(lái)說(shuō)主要有以下幾個(gè)部分:
- 數(shù)據(jù)集
- 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
- 損失函數(shù)
- 優(yōu)化函數(shù)
- 反向傳播
而不同神經(jīng)網(wǎng)絡(luò)模型之間最主要的區(qū)別就是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的異同,當(dāng)然最相似的地方也是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
原因就在于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是由多個(gè)神經(jīng)網(wǎng)絡(luò)層所組成的;而使用不同的層就實(shí)現(xiàn)了不同功能的神經(jīng)網(wǎng)絡(luò)模型。
神經(jīng)網(wǎng)絡(luò)的層
一個(gè)神經(jīng)網(wǎng)絡(luò)是由多種神經(jīng)網(wǎng)絡(luò)層所組成的,而每個(gè)神經(jīng)網(wǎng)絡(luò)層實(shí)現(xiàn)不同的功能;然后由此組成神經(jīng)網(wǎng)絡(luò)模型。
拋開(kāi)具體的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)說(shuō),我們大概聽(tīng)說(shuō)過(guò)一些神經(jīng)網(wǎng)絡(luò)層;比如,輸入層,輸出層,全連接層,卷積層,激活層,池化層等等。
當(dāng)然,有些網(wǎng)絡(luò)層只針對(duì)特定的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu);比如卷積層就只針對(duì)卷積神經(jīng)網(wǎng)絡(luò);而全連接層基本上在所有神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中都扮演著重要角色,全連接層的作用就是將上一層的所有神經(jīng)元與當(dāng)前層所有神經(jīng)元進(jìn)行連接,進(jìn)行線性變換和非線性激活。
比如,在分類任務(wù)中,最后一層全連接層通常輸出類別的概率分布。
在眾多的網(wǎng)絡(luò)層中,輸入層與輸出層屬于比較特殊的層;因?yàn)槠湫枰c外界環(huán)境進(jìn)行交互;輸入層需要接受外界數(shù)據(jù)的輸入,而輸出層需要輸出數(shù)據(jù)到外界環(huán)境,因此會(huì)對(duì)數(shù)據(jù)格式有特定的要求。
還有一點(diǎn)比較特殊的就是,輸入層不會(huì)對(duì)數(shù)據(jù)做任何處理;它的主要任務(wù)就是接受數(shù)據(jù)輸入,并傳遞到下一層;而輸出層一般是網(wǎng)絡(luò)結(jié)構(gòu)中的最后一層作為輸出層。
從本質(zhì)上來(lái)說(shuō),神經(jīng)網(wǎng)絡(luò)模型就是一個(gè)復(fù)雜的數(shù)學(xué)函數(shù);因此,每個(gè)神經(jīng)網(wǎng)絡(luò)層的作用就是進(jìn)行數(shù)學(xué)計(jì)算。
而以具體的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)說(shuō),如Transformer神經(jīng)網(wǎng)絡(luò)架構(gòu);主要由編碼器和解碼器組成,而每個(gè)編碼器和解碼器都是由多個(gè)神經(jīng)網(wǎng)絡(luò)層所組成。
比如從Transformer的經(jīng)典架構(gòu)圖中可以看到,一個(gè)編碼器器是由一個(gè)多頭注意力層,兩個(gè)殘差連接歸一化層和一個(gè)前饋神經(jīng)網(wǎng)絡(luò)組成;而解碼器比編碼器多了一個(gè)多頭注意力層。
其它神經(jīng)網(wǎng)絡(luò)層還有歸一化層(normalization layer),如Transformer中的編碼器和解碼器都有歸一化層的存在;其它還有Dropout層等,為了防止過(guò)擬合現(xiàn)象,會(huì)隨機(jī)丟棄一部分神經(jīng)元。
因此,我們?cè)趯W(xué)習(xí)神經(jīng)網(wǎng)絡(luò)技術(shù)的過(guò)程中,不要一上來(lái)就去研究那些復(fù)雜的神經(jīng)網(wǎng)絡(luò)架構(gòu);而應(yīng)該從最簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)開(kāi)始,去弄明白每個(gè)神經(jīng)網(wǎng)絡(luò)層都具有哪些功能,以及其每個(gè)層的作用是什么;等把這些問(wèn)題給弄明白了,那么自然就知道怎么去實(shí)現(xiàn)一個(gè)能解決特定問(wèn)題的神經(jīng)網(wǎng)絡(luò)模型了。
本文轉(zhuǎn)載自公眾號(hào)AI探索時(shí)代 作者:DFires
