不同神經網絡之間的區別,僅僅只是網絡結構的不同,明白了這個你才能知道應該怎么學習神經網絡 原創
“ 神經網絡模型的主要難點就在于模型本身,而至于模型的效果還與其訓練數據和過程有關。”
在學習神經網絡技術的過程中,會有多種不同的神經網絡架構;如常見的RNN,CNN等;因此,我們很多人都會被這些亂七八糟的神經網絡架構給迷惑住,即想學習神經網絡又不知道應該怎么入手;面對各種各樣的網絡模型,也不知道應該去學習哪種。
但是,我們從問題的最本質出發,不同的神經網絡唯一的區別就是網絡結構的不同;之所以有多種神經網絡模型的原因就在于不同的網絡架構能夠完成不同的任務。
比如,RNN適合文本處理,機器翻譯;CNN適合圖像處理等。
神經網絡架構
在上一篇文章中——???怎么實現一個神經網絡?神經網絡的組成結構???中,實現一個神經網絡基本上需要經過統一的幾個步驟;數據集,模型設計,模型訓練等。
數據集根據不同的任務類型,需要整理和設計不同的數據;而模型設計就涉及到不同的模型架構,如圖片處理就可以使用CNN架構;文字處理就可以使用RNN或Transformer架構等;或者用戶根據自己的需求自定義神經網絡架構。
所以,從這個角度來看,一個可以使用的神經網絡模型,從流程上來看幾乎都是相同的;區別只是神經網絡架構的異同,但具體的架構是由具體的任務類型所決定的;而不是由神經網絡模型本身所決定的。
甚至在很多情況下,會把多種神經網絡架構結合起來使用。
因此,對我們這些學習神經網絡技術的人來說;我們首先需要的并不是去學習哪些復雜的神經網絡模型,而是應該從最簡單的模型結構開始;比如說神經網絡技術中的Hello World——MINST手寫數字識別。
為什么很多神經網絡的課程中都會把MINST手寫數字識別作為第一個神經網絡教程?以及MINST神經網絡模型能成為一個經典模型?
原因就在于MINST神經網絡模型——麻雀雖小,但五臟俱全。
在文章的開始,就介紹說不同神經網絡模型的主要區別就在于模型結構的不同;而MINST神經網絡模型的結構特別簡單;加上輸入輸出層也僅僅只是一個三層模型。
MINST手寫數字識別模型,由一個輸入層,以及兩個全鏈接層組成(第二個全鏈接層也就是輸出層);因此其模型結構特別簡單,模型結構代碼如下,由P yTorch實現:
# 定義神經網絡
class MINSTNetwork(nn.Module):
def __init__(self):
super(Network, self).__init__()
# 線性層1 輸入層和隱藏層之間的線性層
self.layer1 = nn.Linear(784, 256)
self.layer2 = nn.Linear(256, 10)
# 前向傳播 forward 函數中 輸入圖像為x
def forward(self, x):
x = x.view(-1, 28 * 28) # 使用view函數 將x展平作為輸入層
x = self.layer1(x) # 將x輸入至layer1
x = torch.relu(x) # 使用relu激活
return self.layer2(x) # 輸入至layer2計算結果
以上代碼即為MINST神經網絡模型的模型結構;layer1和layer2即為兩個全鏈接層;784是手寫數字識別的圖片——1*28*28,也就是784個神經元作為輸入層;而中間的256就屬于用戶自定義神經元的個數。
MINST手寫數字識別神經網絡模型結構圖如下所示,只不過代碼中的中間層神經網絡個數為256。
我想很多對神經網絡感興趣或者在學習神經網絡的技術人員,都看過和實現過以上圖片和代碼;但網絡上很多教程都只是介紹,這樣就可以實現一個手寫數字識別的神經網絡模型;但從來卻沒有講過這到底是為什么。
而由此這里也帶來了一個問題,即為什么一個神經網絡經過兩個全鏈接層,以及在兩個全鏈接層經過一次激活函數之后,就可以實現手寫數字的分類?
下圖是詢問DeepSeek得到的回答:
訓練過程
輸入數據:28x28 的圖像展平為 784 維向量。
第一次全連接層:將 784 維向量映射到 128 維隱藏層。
激活函數:使用 ReLU 引入非線性。
第二次全連接層:將 128 維隱藏層映射到 10 維輸出層。
輸出:通過 Softmax 函數得到 10 個類別的概率分布。
從DP的回答來看,它也沒完全說明白為什么兩次全鏈接就可以完成手寫數字識別;雖然它說了兩個全鏈接層就可以學習到輸入數據的非線性特征;但具體原因是什么?
而這也是目前學習神經網絡模型最疑惑的地方?
為什么經過神經網絡的變換之后,神經網絡就可以學習到數據的特征;并以此生成新的內容;當然也可能是作者的數學功底不好,沒有真正去深入研究過神經網絡模型的底層數學原理。
目前來看,在學習神經網絡模型的過程中,從零開始大模型開發與微調算是一本比較專業,也比較好的書;作者在剛開始學習的過程中,發現看不太懂這本書,但現在有了一定的基礎之后,再看這本書發現寫的是真有水平。從簡到難,從理論到實踐都包含在內。而現在這本書也是作者經常看的一本書,雖然有些東西還是看不懂,但過段時間再看發現就能看懂了。
本文轉載自公眾號AI探索時代 作者:DFires
