過擬合、欠擬合及其解決方案
1).在訓練和建立模型的時候,從相對簡單的模型開始,不要一開始就把特徵做的非常多,模型參數跳的非常複雜。
2).增加樣本,要覆蓋全部的數據類型。數據經過清洗之後再進行模型訓練,防止噪聲數據干擾模型。
3).正則化。在模型算法中添加懲罰函數來防止過擬合。常見的有L1,L2正則化。
4).集成學習方法bagging(如隨機森林)能有效防止過擬合
5).減少特徵個數(不是太推薦)注意:降維不能解決過擬合。降維只是減小了特徵的維度,並沒有減小特徵所有的信息。
1.2 過擬合的解決方法
1. 早停(early stop)
2. L1和L2正則化
3. dropout
4. SVM的鬆弛變量
5. 決策樹減枝
6. 特徵篩選
7. 增加數據集
8. 集成學習’
梯度消失、梯度爆炸
2.1梯度消失梯度爆炸怎麼解決
1)、使用 ReLU、LReLU、ELU、maxout 等激活函數
sigmoid函數的梯度隨著x的增大或減小和消失,而ReLU不會。
2)、使用批規範化
通過規範化操作將輸出信號x規範化到均值為0,方差為1保證網絡的穩定性。從上述分析分可以看到,反向傳播式子中有w的存在,所以w的大小影響了梯度的消失和爆炸,Batch Normalization 就是通過對每一層的輸出規範為均值和方差一致的方法,消除了w帶來的放大縮小的影響,進而解決梯度消失和爆炸的問題。
2.2RNN梯度消失問題,為什麼LSTM和GRU可以解決此問題
RNN由於網絡較深,後面層的輸出誤差很難影響到前面層的計算,RNN的某一單元主要受它附近單元的影響。而LSTM因為可以通過閥門記憶一些長期的信息,相應的也就保留了更多的梯度。而GRU也可通過重置和更新兩個閥門保留長期的記憶,也相對解決了梯度消失的問題。
循環神經網絡進階
AlexNet
首次證明了學習到的特徵可以超越⼿⼯設計的特徵,從而⼀舉打破計算機視覺研究的前狀。
特徵:
1. 8層變換,其中有5層卷積和2層全連接隱藏層,以及1個全連接輸出層。
2. 將sigmoid激活函數改成了更加簡單的ReLU激活函數。
3. 用Dropout來控制全連接層的模型複雜度。
4. 引入數據增強,如翻轉、裁剪和顏色變化,從而進一步擴大數據集來緩解過擬合。
使用重複元素的網絡(VGG)
VGG:通過重複使⽤簡單的基礎塊來構建深度模型。
Block:數個相同的填充為1、窗口形狀為$3\\times 3$的卷積層,接上一個步幅為2、窗口形狀為$2\\times 2$的最大池化層。
卷積層保持輸入的高和寬不變,而池化層則對其減半。
⽹絡中的⽹絡(NiN)
LeNet、AlexNet和VGG:先以由卷積層構成的模塊充分抽取 空間特徵,再以由全連接層構成的模塊來輸出分類結果。
NiN:串聯多個由卷積層和“全連接”層構成的小⽹絡來構建⼀個深層⽹絡。
用了輸出通道數等於標籤類別數的NiN塊,然後使⽤全局平均池化層對每個通道中所有元素求平均並直接⽤於分類。
1×1卷積核作用
1.放縮通道數:通過控制卷積核的數量達到通道數的放縮。
2.增加非線性。1×1卷積核的卷積過程相當於全連接層的計算過程,並且還加入了非線性激活函數,從而可以增加網絡的非線性。
3.計算參數少
GoogLeNet
1. 由Inception基礎塊組成。
2. Inception塊相當於⼀個有4條線路的⼦⽹絡。它通過不同窗口形狀的卷積層和最⼤池化層來並⾏抽取信息,並使⽤1×1卷積層減少通道數從而降低模型複雜度。
3. 可以⾃定義的超參數是每個層的輸出通道數,我們以此來控制模型複雜度。
GoogLeNet模型
完整模型結構