深度學習筆記(基礎篇)——(八)搭建、訓練深度網絡的實現細節與技巧(未寫完)

    深度神經網絡在這裏特指CNN這種計算模型,它通過多層的處理,可以學習到數據在不同層級上的抽象表徵。該部分主要介紹搭建、訓練深度網絡的實現細節與技巧。包括以下四部分:

  • 介紹深度學習中必要的數據擴充和數據預處理
  • 網絡參數初始化的細節技巧
  • 如何設計網絡結構並進行微調
  • 使用正則化防止過擬合的發生

一、數據擴增

    因爲深度網絡需要在大規模的訓練圖像上來滿足性能,所以當原始圖像中的訓練數據集規模不夠多時,較好的辦法是通過擴增數據來提升模型性能。常見的數據擴增方法有:

  1. 水平翻轉圖像
  2. 隨機剪裁
  3. 顏色抖動
  4. 將這幾種處理過程任意組合,如旋轉並對其縮放等

    完成數據擴增後,會得到大量由原始圖像和其隨機剪裁構成的訓練樣本集,但此時還需要對這些圖像做預處理。最基本的預處理方法也就是下面即將提到的白化處理。

    此外,樣本不均衡也需要注意。若基於類別不均衡數據訓練深度卷積網絡,會導致嚴重的性能問題。解決辦法:

  1. 最簡單的解決辦法是使用上採樣或者下采樣平衡數據類別。
  2. 基於特殊的圖像剪裁,將原本類別較少的圖片通過剪裁得到新圖像的方法,解決類別不平衡
  3. 使用參數微調(Fine-Tuning)策略,將原始數據劃分成包含大量類別的訓練樣本圖像或剪裁有限類別的樣本圖像兩部分,針對每部分分別訓練,首先在大量類別訓練圖像上進行參數微調,之後再基於第二部分(樣本圖像較少的類別數據)上進行微調。這樣會減輕類別不均衡的問題。

二、數據白化處理

    白化(Whitening)也被稱爲漂白或者球化(Sphering)。白化的作用主要有兩個方面:

  • (1)減少特徵之間的相關性
  • (2)特徵具有相同的方差(協方差陣爲1)

    一般情況下,所獲得的數據具有相關性,所以通常都要求對數據進行初步的白化或者球化處理,從而簡化了後續獨立分量的提取過程。通常對數據進行了白化處理後,算法的收斂性要比不做白化處理的要好。

    對於一個混合矩陣A的大小如果爲n*n,白化後新的混合矩陣爲\bar{A}。由於\bar{A}是一個正交矩陣,其自由度降爲n*(n-1)/2,白化使得ICA(獨立成分分析)問題的工作量幾乎減少了一半。

2.1 去除相關性的過程

    因爲在PCA(主成分分析)中找到的各個維度的基本來就是正交的。因此,要去除樣本維度之間的相關性就是去除PCA的相關性。

    PCA白化:對數據進行PCA後其實就是去掉了數據特徵之間的相關性,那麼只需要對映射後的數據進行方差歸一化就實現了白化的效果。因此各個維度除以對應的特徵值的平方根就達到了這樣的效果。公式爲:

                                                         x_{PCAwhite,i}=\frac{x_{rot,i}}{\sqrt{\lambda _{i}}}

其中x_{rot,i}表示在PCA中的第i個基,也就是第i個維度上面映射的數據,\lambda _{i}對應這個特徵向量的特徵值。如圖3.37所示,相比於沒有白化處理的數據,白化處理後的數據聚集於原點的周圍,並且數據在空間的分佈比較均勻

    由於數據的協方差矩陣變爲單位矩陣的方式並不唯一,因此,拓展出來的另一個白化處理方式,叫做ZCA白化。這種白化的方式更加接近生物視網膜的圖像數據處理,做法就是在PCA白化的基礎上再左乘特徵向量,且PCA中不進行降維處理,則有  x_{ZCAwhite} = Ux_{PCAwhite}

三、參數初始化

    準備好數據後,就要進行網絡的訓練了,但在訓練前還需要對網絡的一些參數進行初始化,初始化的方式主要有全零初始化及小隨機數初始化。

3.1 全零初始化

    理想情況下,對於規範化後的數據來說,假設(初始化)權重參數正負大約各佔一半也是合理的。此外,一種聽起來似乎合理的想法是設定所有權重的初始值都爲0,這也許是一種人爲猜測的較好的期望權重初始值。實際上,這是一個錯誤的想法,因爲這會導致網絡中每個神經元的輸出結果一樣,即經過完全相同的參數更新,得到的方向傳播計算的梯度也相同。換言之,若初始權值相同,神經元就不具有非對稱性(Asymmetry)

3.2 小隨機數初始化

    小隨機數初始化是一種接近0但不爲0的權重初始化方法。做法是初始化權值爲接近於0的隨機小數,因爲很接近0但不相等,於是破壞了權重當中的對稱性,這也被稱爲“對稱破缺”(Symmetry Breaking)。實際做法是用一個趨近於0的數乘以一個標準的正態分佈。例如:weights~0.001*N(0,1)。這樣,其實也可以使用服從均勻分佈的隨機小數,但二者在實際的性能表現上只有很微弱的差別。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章