摘要:解決模型退化問題避免了過渡訓練后,導致模型準確率反而降低的情況。經過實驗后發現確實能解決這個問題。本人對于這個問題的確切原因并不清楚,但是猜測這個原因很可能是由于梯度消失以及眾多其他原因所造成的。
給定卷積神經網絡輸入,卷積核大小,padding,步長,求輸出的shape?
各個激活函數的優缺點
Sigmod
優點
輸出值0-1(很重大的優點)
其余的和其他眾多激活函數比起來,感覺沒有什么優點,方便入門理解
缺點
容易梯度消失
x的可變值區域太小,極其容易陷入級值的狀況(-0.9~0.9)
指數exp計算復雜
Tanh
優點
和sigmod比起來,是零均值化處理。(零均值化可以加快模型的收斂)
缺點
和sigmod一樣的缺點
Relu
優點
計算復雜度低(只有一個if>0判斷,大于0則激活值為1),部分區域線性遞增,沒有冪運算與指數運算
缺點
x小于0時無法產生激活值
訓練到后期可能權重參數更新太大
Leakly ReLu
優點
相對于relu來說,激活值必然可以產生
缺點
Relu的其他缺點一概繼承下來了
ELU
優點
相對于Leaky relu來說,激活值更平滑
缺點
其他的Leaky relu的缺點一并繼承下來了。
如何選擇激活函數?
Relu-小心設置learning
rate(因為x>0的情況下,導數均為1),最好是設置一個比較小的值。
不要使用sigmod(缺點太多,計算復雜)
如何初始化CNN?(理論)
不要全部把超參數設置為0(單層網絡可以)
容易梯度消失
如何初始化CNN?(實踐)
Xavier-tanh(不太適合relu)
fan_in輸出通道數
Fan_out輸出通道數
代碼Np.randon.rand(fan_in,fan_out)/np.sqrt(fan_in/2)
如何分析初始化參數結果好壞?
查看初始化后各層的激活值分布
是否在固定的,穩定的,同一個區間的均勻分布
比較好的初始化結果
均值為0,方差為0.02
如tanh,relu函數
什么叫梯度消失,梯度爆炸
當網絡層數過多時,前面層由于求導過程乘積運算,出現weight與bias變得異常大與異常小的情況
左下角的內容清楚的說明了梯度爆炸和梯度消失的場景
BN是什么,為什么能提高收斂速度
批歸一化是什么?
標準化處理,特征縮放的一個方式,將數據規整到一定范圍內。
如上圖所示,BN步驟主要分為4步:
求每一個訓練批次數據的均值
求每一個訓練批次數據的方差
使用求得的均值和方差對該批次的訓練數據做歸一化,獲得0-1分布。其中εε是為了避免除數為0時所使用的微小正數。
尺度變換和偏移:將xixi乘以γγ調整數值大小,再加上ββ增加偏移后得到yiyi,這里的γγ是尺度因子,ββ是平移因子。這一步是BN的精髓,由于歸一化后的xixi基本會被限制在正態分布下,使得網絡的表達能力下降。為解決該問題,我們引入兩個新的參數:γγ,ββ。 γγ和ββ是在訓練時網絡自己學習得到的。
為什么能提高收斂速度?
解決internal covariate shift問題。
特征沒有消失,而是歸一到一定范圍內,加快學習速度
因為最終都是映射到歸一化范圍內,所以前一層的權重調整對后一層的影響程度都會降低,不用重新適應新的分布,從而讓模型學的更快,避免完全從頭學習
Tips
BN不用于輸入層和輸出層(經驗論)
BN(實踐)
每次batch傳入時都做BN
各個優化器的優缺點
優化器分兩種
固定學習率的優化算法
SGD隨機梯度下降
優點
只隨機采樣一個樣本來計算梯度,加快學習效率,并且避免了普通GD一次性參數更新的壞處(導致模型無法收斂)
缺點
選擇合適的學習率較為困難
Momentum動量
優點
動量梯度下降,動力火車,慣性火車,這一次梯度下降的值,會影響下一次梯度下降的值,相對于簡單的梯度下降來說,Momentum動量帶有延續性相對于簡單的梯度下降來說,
減少梯度震蕩
缺點
和SGD一樣,選擇合適的學習率較為困難
自適應學習率的優化算法
Adagrad
優點
更新參數時,會針對原梯度值乘上一個變量,即其所有梯度歷史平均值總和的平方根(如上圖)
這樣在訓練初期,分母較小,學習率較大,學習比較快,后期時,學習會逐漸減慢
缺點
從訓練開始就積累梯度方差會導致有效學習率過早和過量的減小
只能解決凸問題,當應用于非凸函數訓練神經網絡時,學習可能會到達一個局部是凸碗的區域
RMSProp
優點
能夠解決凸問題
由累計平方梯度變成和平均梯度
缺點
缺少Momentum動量元素
Adam(結合了動量和RMSProp,通用方案)
結合了Momentum和RMSProp的優點
手畫一下LSTM
梯度裁剪
介紹一下殘差網絡
ResNet 基于VGG沒解決深層網絡下出現性能[梯度消失,導致學不到東西]與效率下降[反向傳播運算成本大]的問題,優化出來的一個新的神經網絡結構,如圖所示,兩條路一起走,最終線性激活輸入值f(x)+x,然后將f(x)+x傳遞給激活函數[假設為relu]。那么在反向傳播的時候,后面層的梯度更加“無損”的直接傳遞到前面層,前面層的參數因此也能繼續更新。
為什么殘差網絡會有效果?
□ 先驗證明《深層網絡效果會比淺層網絡好》
只要有理想的訓練方式,更深的網絡肯定會比較淺的網絡效果要好。證明過程也很簡單:假設在一種網絡A的后面添加幾層形成新的網絡B,如果增加的層級只是對A的輸出做了個恒等映射(identity mapping),即A的輸出經過新增的層級變成B的輸出后沒有發生變化,這樣網絡A和網絡B的錯誤率就是相等的,也就證明了加深后的網絡不會比加深前的網絡效果差。
當層數比較多時,容易導致模型學不到東西,甚至出現反效果,然而deep layers又確實是能使模型效果變好的,所以出現殘差網絡。
效率不影響,層數增加,可以低成本高效率的學到更多非線性的特征。
解決梯度彌漫問題
如上所說,關鍵點在于反向傳播的時候,梯度可以沿著shortcut無損進行回傳,避免梯度彌漫問題。
解決模型退化問題
避免了過渡訓練后,導致模型準確率反而降低的情況。paper中稱為degration。經過實驗后發現確實能解決這個問題。
本人對于這個問題的確切原因并不清楚,但是猜測這個原因很可能是由于梯度消失以及眾多其他原因所造成的。
Q:既然說中間層是不必要的,那么為什么不直接把這些層去掉呢?可事實上,ResNet的結果比淺層網絡的結果好的多,這應該怎么解釋呢?
加入中間層主要是為了說明會產生退化的效果。 ResNet效果好是因為解決了退化問題,,梯度爆炸/梯度彌散,調節了網絡結構,簡化了反向傳播求導運算的流程。這和砍掉深一點的層是不一樣的思想
風格轉換的原理
圖像風格轉換
由風格特征與內容特征共同計算得出
風格特征
風格的抽象度(越往后層,加入了越多內容的元素,更加具像)
內容特征
內容的相似度(越往后層,加入了越多風格的元素,和原圖越不像)
## 怎么解決過擬合
簡化模型
正則化(包含dropout)
數據增強
集成學習
早停
減少特征數或使用較少的特征組合
## 怎么解決欠擬合
增加特征數或者使用較多的特征組合
減小正則權重
增加模型復雜度
使用boosting集成學習
如何提高學習算法性能的指導方針
->低可擬合偏差
更大的模型,更深的層
更好的優化器方案
探索更合適的超參數
->低方差
找尋更多的數據
正則化,dropout
對抗神經網絡
探索更合適的超參數
->清晰的正交化方案
……
思路邏輯清晰的調試
數據預處理一般步驟有哪些?
指定原始數據的文件列表 -> 創建文件列表隊列 ->
從文件中讀取數據 -> 數據預處理 -> 整理成batch
作為神經網絡輸入
如何用指標和方案去評判一個優秀的模型?
train/Validation/Test 準確率/召回率
方差
偏差
CNN模型加速與壓縮匯總
1. 合理設計模型2. 權值剪枝(編程稀疏矩陣)
3. 權值量化(聚類)
4. 二值化(BWN,XNorNet)
5. 霍夫曼編碼
6. 奇異值分解(projection層)
7. 1x1卷積的恰當使用減少通道量
8. 卷積分解為deepwise Conv和pointwise
Conv可大幅度減小計算量和參數量1/(Dk^2)9. Group Conv(可節省1/g計算量)
10. Channel Shuffle
11. 蒸餾法
12. 低秩分解
13. 模型裁剪
# 怎么選擇超參數
神經網路中的超參數主要包括1. 學習率 η,
2. 正則化參數 λ,
3. 神經網絡的層數 L
4. 每一個隱層中神經元的個數 j
5. 學習的回合數Epoch
6. 小批量數據 minibatch 的大小
由神經網絡的機理進行選擇
7. 輸出神經元的編碼方式
8. 代價函數的選擇
9. 權重初始化的方法
10. 神經元激活函數的種類
11 . 寬泛策略的核心在于簡化和監控
12. 參加訓練模型數據的規模
如文章你已看懂,點個「喜歡」即可。
如若錯誤以及不清晰的地方,隨時提出。
歡迎掃一掃上面二維碼加入我的個人微信號進行技術交流。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19884.html
摘要:出現方差是正常的,但方差過高表明模型無法將其預測結果泛化到從中抽取訓練樣本的較大母體。機器學習中的學習曲線是一種可視化圖形,能根據一系列訓練實例中的訓練和測試數據比較模型的指標性能。 欠擬合(通常代表高偏差) 精度 如前所述如果模型具有足夠的數據,但因不夠復雜而無法捕捉基本關系,則會出現偏差。這樣一來,模型一直會系統地錯誤表示數據,從而導致預測精度低。這種現象叫做欠擬合(und...
閱讀 794·2023-04-26 00:30
閱讀 2702·2021-11-23 09:51
閱讀 1049·2021-11-02 14:38
閱讀 2571·2021-09-07 10:23
閱讀 2248·2021-08-21 14:09
閱讀 1385·2019-08-30 10:57
閱讀 1608·2019-08-29 11:20
閱讀 1157·2019-08-26 13:53