卷積神經網絡注意事項
1)數據集的大小和分塊
數據驅動的模型一般依賴于數據集的大小,CNN和其他經驗模型一樣,能夠適用于任意大小的數據集,但用于訓練的數據集應該足夠大, 能夠覆蓋問題域中所有已知可能出現的問題,
設計CNN的時候,數據集應該包含三個子集:訓練集、測試集、驗證集
訓練集:包含問題域中的所有數據,并在訓練階段用來調整網絡的權重
測試集:在訓練的過程中用于測試網絡對訓練集中未出現的數據的分類性能,根據網絡在測試集上的性能情況,網絡的結構可能需要作出調整,或者增加訓練循環次數。
驗證集:驗證集中的數據統一應該包含在測試集和訓練集中沒有出現過的數據,用于在網絡確定之后能夠更好的測試和衡量網絡的性能
Looney等人建議,數據集中65%的用于訓練,25%的用于測試,10%用于驗證
2)數據預處理
為了加速訓練算法的收斂速度,一般都會采用一些數據預處理技術,其中包括:去除噪聲、輸入數據降維、刪除無關數據等。
數據的平衡化在分類問題中異常重要,一般認為訓練集中的數據應該相對于標簽類別近似于平均分布,也就是每一個類別標簽所對應的數據集在訓練集中是基本相等的,以避免網絡過于傾向于表現某些分類的特點。
為了平衡數據集,應該移除一些過度富余的分類中的數據,并相應補充一些相對樣例稀少的分類中的數據。
還有一個方法就是復制一部分這些樣例稀少分類中的數據,并在這些數據中加入隨機噪聲。
3)數據規則化
將數據規則化到統一的區間(如[0,1])中具有很重要的優點:防止數據中存在較大數值的數據造成數值較小的數據對于訓練效果減弱甚至無效化,一個常用的方法是將輸入和輸出數據按比例調整到一個和激活函數相對應的區間。
4)網絡權值初始化
CNN的初始化主要是初始化卷積層和輸出層的卷積核(權值)和偏置
網絡權值初始化就是將網絡中的所有連接權重賦予一個初始值,如果初始權重向量處在誤差曲面的一個相對平緩的區域的時候,網絡訓練的收斂速度可能會很緩慢,一般情況下網絡的連接權重和閾值被初始化在一個具有0均值的相對小的區間內均勻分布。
5)BP算法的學習速率
如果學習速率選取的較大,則會在訓練過程中較大幅度的調整權值w,從而加快網絡的訓練速度,但是這和造成網絡在誤差曲面上搜索過程中頻繁抖動,且有可能使得訓練過程不能收斂。
如果學習速率選取的較小,能夠穩定的使得網絡逼近于全局最優點,但也可能陷入一些局部最優,并且參數更新速度較慢。
自適應學習率設定有較好的效果。
6)收斂條件
有幾個條件可以作為停止訓練的判定條件,訓練誤差、誤差梯度、交叉驗證等。一般來說,訓練集的誤差會隨著網絡訓練的進行而逐步降低。
7)訓練方式
訓練樣例可以有兩種基本的方式提供給網絡訓練使用,也可以是兩者的結合:逐個樣例訓練(EET)、批量樣例訓練(BT)。
在EET中,先將第一個樣例提供給網絡,然后開始應用BP算法訓練網絡,直到訓練誤差降低到一個可以接受的范圍,或者進行了指定步驟的訓練次數。然后再將第二個樣例提供給網絡訓練。
EET的優點是相對于BT只需要很少的存儲空間,并且有更好的隨機搜索能力,防止訓練過程陷入局部最小區域。
EET的缺點是如果網絡接收到的第一個樣例就是劣質(有可能是噪音數據或者特征不明顯)的數據,可能使得網絡訓練過程朝著全局誤差最小化的反方向進行搜索。
相對的,BT方法是在所有訓練樣例都經過網絡傳播后才更新一次權值,因此每一次學習周期就包含了所有的訓練樣例數據。
BT方法的缺點也很明顯,需要大量的存儲空間,而且相比EET更容易陷入局部最小區域。
而隨機訓練(ST)則是相對于EET和BT一種折衷的方法,ST和EET一樣也是一次只接受一個訓練樣例,但只進行一次BP算法并更新權值,然后接受下一個樣例重復同樣的步驟計算并更新權值,并且在接受訓練集最后一個樣例后,重新回到第一個樣例進行計算。
ST和EET相比,保留了隨機搜索的能力,同時又避免了訓練樣例中最開始幾個樣例如果出現劣質數據對訓練過程的過度不良影響。
-
神經網絡
+關注
關注
42文章
4781瀏覽量
101180 -
算法
+關注
關注
23文章
4630瀏覽量
93365 -
卷積
+關注
關注
0文章
95瀏覽量
18548
發布評論請先 登錄
相關推薦
評論