目錄
- 深度學習核心網絡模型梳理
- 簡述
- 1)基礎網絡模型
- 2)模型核心設置(組件選擇)
- 一、單個神經元
- 1)結構
- 2)意義
- 二、基礎網絡模型
- 1. 多層感知機(MLP)
- 2. 卷積神經網絡(CNN)
- 3. 循環神經網絡(RNN)
- 4. Transformer
- 三、擴展網絡模型
- 1. 跨模態與融合模型
- 2. 圖神經網絡(GNN)
- 3. 強化學習相關網絡
- 神經網絡核心組件
- 一、網絡層(基礎構建模塊)
- 二、激活函數(引入非線性能力)
- 三、優化器(參數更新策略)
- 四、損失函數(衡量預測與真實值差異)
- 五、正則化(防止過擬合)
- 六、數據處理(輸入預處理)
- 訓練模型流程
- 1. 內容準備:
- 2. 模型構建:打造一個“學習機器”
- 3. 訓練過程:學生開始學習
- 4. 驗證過程:定期進行模擬考試
- 5. 記錄最優權重:保存學生的“巔峯狀態”
- 6. 調參:根據考試結果調整學習方法
深度學習核心網絡模型梳理
簡述
1)基礎網絡模型
- 多層感知機(MLP):全連接層堆疊,無空間結構保留
- 卷積神經網絡(CNN):含卷積層+池化層,主打圖像/空間數據
- 經典子型:LeNet、AlexNet、VGG、GoogLeNet、ResNet
- 循環神經網絡(RNN):含循環層,主打序列數據
- 經典子型:LSTM、GRU
- Transformer:基於自注意力機制,適配序列/圖像/多模態數據
- 經典子型:BERT、GPT、Vision Transformer(ViT)
2)模型核心設置(組件選擇)
- 網絡層:卷積層、全連接層、循環層、注意力層、池化層
- 激活函數:ReLU、Sigmoid、Tanh、GELU
- 優化器:SGD、Adam、RMSProp、AdamW
- 損失函數:交叉熵損失、MSE、MAE、Triplet Loss
- 正則化:Dropout、L1/L2正則、BatchNorm、LayerNorm
- 數據處理:歸一化、增強、填充、截斷、分詞(NLP)、tokenize(多模態)
一、單個神經元
1)結構
- 輸入:接收外部信號,用向量 ( x = [x_1, x_2, …, x_n] ) 表示,每個輸入對應一個權重。
- 權重與偏置:
- 權重
:衡量各輸入的重要性(正數增強信號,負數抑制信號);
- 偏置
:調整神經元的激活閾值,控制神經元響應靈敏度。
- 激活函數:對加權和
做非線性轉換,輸出最終信號 ( a = f(z) )(如ReLU、Sigmoid)。
2)意義
- 基礎計算單元:通過“加權求和+非線性轉換”,學習輸入數據的便捷特徵(如邊緣、關鍵詞)。
- 網絡基石:單個神經元的能力有限(僅能擬合容易非線性關係),但當大量神經元按層堆疊(形成多層網絡)後,可組合低階特徵形成高階抽象特徵(如“圖像類別”“文本語義”),為神經網絡處理複雜任務提供基礎。
下圖轉載自深度學習(3)之經典神經網絡模型整理:神經網絡、CNN、RNN、LSTM,對相關含義展示的比較清晰,供參考。
二、基礎網絡模型
1. 多層感知機(MLP)
- 核心特徵:全連接層堆疊,輸入為扁平化向量,不保留空間或序列結構。
- 經典子型:
- 自編碼器(Autoencoder):編碼器-解碼器結構,用於無監督特徵學習(降維、去噪)。
- 變分自編碼器(VAE):引入概率分佈假設的生成模型,可生成新樣本。
- GAN基礎結構:生成器與判別器均為MLP架構,通過對抗訓練實現生成式任務。
2. 卷積神經網絡(CNN)
- 核心特徵:含卷積層(提取局部特徵)和池化層(降維),專為圖像/空間數據設計。
- 經典子型:
|
模型
|
核心創新點
|
應用場景
|
|
LeNet
|
首次確立“卷積+池化+全連接”框架
|
手寫數字識別
|
|
AlexNet
|
引入ReLU、Dropout,承受GPU並行
|
大規模圖像分類
|
|
VGG
|
3×3卷積核堆疊,通過深度提升性能
|
圖像特徵提取
|
|
GoogLeNet
|
Inception模塊,多尺度特徵並行提取
|
高效特徵學習
|
|
ResNet
|
殘差連接解決深層網絡梯度消失問題
|
超深網絡訓練(如152層)
|
|
DenseNet
|
密集連接強化特徵複用,減少參數
|
輕量化場景
|
|
MobileNet
|
深度可分離卷積,適合移動端
|
移動端圖像任務
|
3. 循環神經網絡(RNN)
- 核心特徵:含循環層,可處理序列素材(如文本、語音),保留時序依賴。
- 經典子型:
- LSTM/GRU:應對長序列梯度消失問題,適合長文本、語音建模。
- 雙向RNN(Bi-RNN):同時利用前向和後向序列信息,提升語義理解。
- Seq2Seq:編碼器-解碼器架構,用於機器翻譯、文本摘要等序列轉換任務。
4. Transformer
- 核心特徵:基於自注意力機制,並行處理序列,突破RNN的時序依賴限制。
- 經典子型:
|
模型
|
核心創新點
|
應用場景
|
|
BERT
|
雙向Transformer預訓練,適配NLP任務
|
文本分類、問答
|
|
GPT
|
自迴歸生成式Transformer,擅長續寫
|
文本生成
|
|
ViT
|
將圖像分割為“patch”,用Transformer處理
|
圖像分類
|
|
Swin Transformer
|
滑動窗口注意力,適配高分辨率圖像
|
目標檢測、語義分割
|
|
T5
|
統一NLP任務為“文本到文本”格式
|
通用NLP任務
|
三、擴展網絡模型
1. 跨模態與融合模型
- 核心邏輯:處理文本、圖像、語音等多類型數據的交互與融合。
- 代表模型:
- CLIP:聯合訓練文本和圖像編碼器,實現跨模態檢索。
- ViLBERT:雙流Transformer分別處理圖像和文本,利用跨模態注意力融合。
- Whisper:基於Transformer的多語言語音識別模型。
2. 圖神經網絡(GNN)
- 核心邏輯:處理圖結構內容(如社交網絡、分子結構),通過節點與鄰接關係學習特徵。
- 代表模型:
- GCN:將卷積推廣到圖結構,通過鄰接矩陣聚合節點特徵。
- GAT:用注意力機制動態調整鄰接節點權重,提升靈活性。
- 圖Transformer:結合自注意力機制,突破GCN的固定鄰接依賴。
3. 強化學習相關網絡
- 核心邏輯:用於決策任務,藉助與環境交互學習最優策略。
- 代表模型:
- DQN:結合CNN與Q-learning,用於離散動作空間(如遊戲AI)。
- Policy Gradient:直接優化策略函數,適合連續動作空間(如機器人控制)。
- Actor-Critic:結合策略網絡(Actor)和價值網絡(Critic),平衡探索與利用。
神經網絡核心組件
一、網絡層(基礎構建模塊)
- 核心層
- 卷積層:通過滑動卷積核提取局部特徵(如CNN中的
Conv2d/Conv3d,適用於圖像/視頻)。 - 全連接層:輸入輸出全維度連接(
Linear),用於特徵映射到輸出空間(如分類結果)。 - 循環層:處理序列數據(
RNN/LSTM/GRU),保留時序依賴。 - 注意力層:動態分配權重到輸入序列(如自注意力、交叉注意力),適配Transformer。
- 池化層:降低特徵維度(
MaxPooling/AvgPooling),增強魯棒性。
- 擴展層
- 歸一化層:穩定訓練(
BatchNorm/LayerNorm/InstanceNorm,分場景適配批量/層/單樣本歸一化)。 - dropout層:隨機失活神經元(
Dropout/DropPath,防止過擬合)。 - 嵌入層:將離散值映射為低維向量(
Embedding,適用於NLP的詞向量、推薦系統的ID映射)。 - 圖卷積層:處理圖結構數據(
GCNConv/GATConv,聚合節點與鄰接特徵)。 - 轉置卷積層:上採樣特徵(
ConvTranspose2d,用於圖像生成、語義分割的分辨率恢復)。
二、激活函數(引入非線性能力)
- 核心函數
- ReLU:
,消除梯度消失,計算高效(應用最廣)。
- Sigmoid:
,輸出映射到(0,1),適用於二分類概率輸出。
- Tanh:
,輸出映射到(-1,1),比Sigmoid對稱。
- GELU:
(高斯誤差線性單元),平滑非線性,適配Transformer。
- 擴展函數
- LeakyReLU:
,解決ReLU的“死亡神經元”挑戰。
- Swish:
,自門控機制,在深層網絡表現優異。
- Softmax:
,將輸出歸一化為概率分佈,適用於多分類。
三、優化器(參數更新策略)
- 核心優化器
- SGD:隨機梯度下降,基礎優化器,可加動量(
momentum)加速收斂。 - Adam:結合動量和自適應學習率(
beta1/beta2控制動量和二階矩),適用於多數場景。 - RMSProp:自適應調整學習率(衰減平方梯度),緩解Adam的震盪難題。
- AdamW:Adam+權重衰減,更穩定的正則化效果。
- 擴展優化器
- Adagrad:為稀疏特徵分配更大學習率,適用於文本等稀疏數據。
- Nadam:Adam+Nesterov動量,收斂更快。
- LAMB:適配大batch訓練,支撐自適應學習率縮放。
四、損失函數(衡量預測與真實值差異)
- 核心損失
- 交叉熵損失:適用於分類任務(
CrossEntropyLoss,含Softmax+負對數似然)。 - MSE(均方誤差):
,適用於迴歸任務。
- MAE(平均絕對誤差):
,抗 outliers 能力強於MSE。
- Triplet Loss:通過“錨點-正例-負例”三元組優化,拉近同類、拉遠異類(適用於人臉識別、embedding學習)。
- 擴展損失
- Huber Loss:MSE與MAE結合(小誤差用MSE,大誤差用MAE),平衡魯棒性和梯度穩定性。
- Dice Loss:基於交併比(IoU),適用於樣本不平衡任務(如醫學圖像分割)。
- KL散度:衡量兩個概率分佈的差異(適用於生成模型,如VAE的正則項)。
- CTC Loss:處理不定長序列對齊(如語音識別、OCR的輸入輸出長度不匹配問題)。
五、正則化(防止過擬合)
- 核心方法
- Dropout:訓練時隨機失活部分神經元,降低網絡依賴。
- L1/L2正則:損失中加入權重絕對值(L1)或平方(L2)懲罰,限制權重大小。
- BatchNorm/LayerNorm:通過歸一化穩定訓練分佈,間接增強泛化能力。
- 擴展方法
- 早停(Early Stopping):監控驗證集性能,提前終止訓練,避免過擬合。
- 數據增強:通過旋轉、裁剪等生成多樣樣本(本質是擴大數據集,減少過擬合)。
- 權重衰減(Weight Decay):訓練中按比例衰減權重(比L2正則更直接)。
- 知識蒸餾(Knowledge Distillation):用大模型指導小模型訓練,提升泛化能力。
六、數據處理(輸入預處理)
- 核心處理
- 歸一化/標準化:將數據映射到固定範圍(如[0,1]或均值0、方差1),加速收斂。
- 增強:圖像(旋轉、裁剪、加噪)、文本(同義詞替換、回譯)等,增加數據多樣性。
- 填充/截斷:統一序列長度(如文本padding到固定長度)。
- 分詞/Tokenize:文本拆分為詞/子詞(如NLP的
word2vec、BPE;多模態的圖像patch劃分)。
- 擴展處理
- 特徵選擇:保留重要特徵(如去除冗餘維度,降低噪聲)。
- 降維:用PCA、t-SNE等減少特徵維度(適用於高維數據預處理)。
- 去噪:圖像(高斯濾波)、語音(譜減法)等,提升輸入數據質量。
- 格式轉換:將原始數據轉為模型可接收格式(如圖像轉Tensor、文本轉ID序列)。
訓練模型流程
1. 數據準備:
- 訓練集 (Training Set):
- 類比:學生的教材和課後作業。
- 作用:模型(學生)主要通過學習這部分數據來掌握知識(比如識別圖像中的特徵)。這是模型學習的主要依據。
- 驗證集 (Validation Set):
- 類比:模擬考試試卷。題目是學生沒做過的,但題型和難度與教材(訓練集)類似。
- 作用:在訓練過程中,定期用它來測試模型的學習效果。它的關鍵作用是防止學生“死記硬背”教材(即防止模型“過擬合”)。如果學生考試分數高,但模擬考分數低,説明他可能只是背了答案,而沒有真正理解。
- 測試集 (Test Set):
- 類比:最終的高考完全保密的,學生和老師都沒見過。就是。這
- 作用:當模型訓練完成後,用它來進行最終的、公正的評估,衡量模型在真實世界中的泛化能力。注意:測試集只能在最後用一次,不能用來指導訓練或調參。
2. 模型構建:打造一個“學習機器”
- 類比:根據學生的情況(問題類型),制定一個學習方法或解題思路。
- 作用你要訓練的核心。對於圖像識別,我們通常用CNN(卷積神經網絡);對於自然語言處理,可能用RNN或Transformer。就是:這
- 怎麼做:你不應該從零開始發明,可以使用PyTorch或TensorFlow等框架提供的“積木”(如卷積層、全連接層)來搭建一個適合你任務的模型結構。
3. 訓練過程:學生開始學習
通常被稱為訓練循環 (Training Loop)。
- 喂數據:從訓練集中拿出一批數據(比如128張圖片),輸入給模型。
- 模型預測:模型根據當前學到的“知識”(權重),對這128張圖片進行預測。
- 計算誤差:通過損失函數 (Loss Function)計算模型預測結果與真實標籤(比如圖片實際是數字“5”)之間的差距。該差距就是損失值 (Loss)。
- 反向傳播與更新模型“學習”的關鍵一步。計算機會自動找出模型中哪些“權重”導致了錯誤,並根據就是:這優化器 (Optimizer)的規則(比如梯度下降),微微調整這些權重,以期望下一次預測得更準。
- 重複:不斷重複步驟1-4,直到把訓練集中的所有數據都學完一遍(這叫一個Epoch)。然後再從頭開始,進行第二個、第三個… Epoch,直到模型收斂。
4. 驗證過程:定期進行模擬考試
- 什麼時候做:通常在每個Epoch結束後,或者每訓練一定步數後進行。
- 怎麼做:把驗證集的所有材料輸入給模型,計算模型在驗證集上的損失值和準確率 (Accuracy) 等指標。
- 為什麼重要:
- 防止過擬合:假如模型在訓練集上的準確率越來越高,但在驗證集上的準確率反而開始下降,這説明模型開始“死記硬背”訓練信息了(過擬合),對新數據的處理能力變差。
- 判斷訓練效果:驗證集的指標是判斷模型是否“學到位”的重要依據。
5. 記錄最優權重:保存學生的“巔峯狀態”
- 什麼時候記錄:在每次驗證後,假設發現模型在驗證集上的某個關鍵指標(如準確率)達到了訓練以來的最好成績,就應該立刻保存此時模型的所有“權重”。
- 為什麼要記錄:訓練過程是波動的,模型的狀態並非一直變好。記錄最優權重,可以確保在訓練結束後,你手上有一個“巔峯狀態”的模型,而不是最終一個可能已經開始過擬合或效果下降的模型。這就像在學生備考期間,我們拍下他狀態最好的那一刻,作為最終參考。
6. 調參:根據考試結果調整學習方法
這是一個迭代優化的過程,也是區分新手和高手的關鍵。
- 什麼時候調:當你發現訓練和驗證的效果不理想時。
- 調常見參數:
- 學習率 (Learning Rate)最重要的參數。就是:這
- 類比:學生學習的步長。
- 調參策略:如果學習率太高,模型可能在最優解附近來回震盪,無法穩定;倘若太低,模型學習速度會特別慢,需要訓練極長的時間才能收斂。通常需要從小範圍(如0.001)開始嘗試。
- 模型結構:
- 類比:調整學習方法,比如從死記硬背改成理解記憶。
- 調參策略:如果模型太簡單(比如層數太少),可能無法學到足夠的知識(欠擬合),導致訓練集和驗證集準確率都很低。這時許可嘗試增加網絡層數或每層的神經元數量。反之,倘若模型太複雜,就容易過擬合。
- 批大小 (Batch Size):
- 類比:學生每次學習的題量。
- 調參策略:批大小越大,訓練越穩定,但對計算機內存/顯存的要求越高。批大小越小,訓練速度可能越快,但過程會有波動。
- 優化器 (Optimizer):
- 類比:不同的學習策略,如SGD(隨機梯度下降)、Adam等。
- 調參策略:Adam通常是新手的首選,因為它收斂快且魯棒性好。