1. 程式人生 > >深度學習: 如何訓練網路

深度學習: 如何訓練網路

Introduction

目的:
快速 有效擬合

手段:
隨機批處理學習率批規範化模型優化演算法遷移學習

隨機批處理

隨機批處理,mini-batch,一種 在模型每輪 (epoch) 訓練進行前將訓練資料集隨機打亂 (shuffle) 的 訓練機制。

可以防止 被模型猜到 “出樣本順序”

作用:
過擬合

合理的學習率

學習率,learning rate,控制模型的 學習進度

在訓練過程中,根據訓練輪數,合理設定動態變化的學習率:

  • 剛開始訓練時:學習率以 0.01 ~ 0.001 為宜。
  • 一定輪數過後:逐漸減緩。
  • 接近訓練結束:學習速率的衰減應該在100倍以上。

Note:
如果是 遷移學習 ,由於模型已在原始資料上收斂,此時應設定較小學習率 (104) 在新資料上進行 微調

作用:
防止 欠擬合/過擬合/擬合慢

批規範化

批規範化,batch normalization,即著名的BN操作。
對應網路模型中的 BN層 ,一般置於 啟用函式 之後,池化層 之前

計算批處理資料的 均值方差,據此對該批資料做 規範化 ,並進行 縮放平移

作用:

  • 縮小輸入空間,從而降低調參難度;

  • 防止梯度爆炸/消失,從而加速網路收斂。

影響:

  • 該質優價廉的設計目前幾乎成了CNN標配。

模型優化演算法

優化演算法 型別 包括 一階優化法 和 二階優化法。

一階優化法較為常見,包括:
隨機梯度下降法、基於動量的隨機梯度下降法、Nesterov型動量隨機下降法、Adagrad法、Adadelta法、RMSProp法、Adam法。

遷移學習

在已經預訓練好的模型上進行 微調

優勢:

  • 高效快捷

目前,大部分的模型訓練都是 遷移學習 ,已經很少有人從頭開始新訓練一個模型了。

相關推薦

深度學習神經網路訓練調參技巧

本文主要介紹8種實現細節的技巧或tricks:資料增廣、影象預處理、網路初始化、訓練過程中的技巧、啟用函式的選擇、不同正則化方法、來自於資料的洞察、整合多個深度網路的方法原文如下:http://blog.csdn.net/u013709270/article/details/70949304。

深度學習訓練技巧---權重初始化

常量 反向傳播 ive str 防止 自己 對稱性 就是 導致 全零初始化   全零初始化即所有的變量均被初始化為0,這應該是最笨、最省事的隨機化方法了。然而這種偷懶的初始化方法非常不適合深度學習,因為這種初始化方法沒有打破神經元之間的對稱性,將導致收斂速度很慢甚至訓練失敗

深度學習神經網路論文們可能會誤導人的地方

可好可差的特點,強調它作為優點時候的特性。比如手機重,就說有質感;輕了,就說輕盈不累手。再比如引數量少了,強調這樣可以避免過擬合,並且不用調整太多的引數,訓練會變快;引數量大了,就強調這個模型引數足夠多,也就有強大的能力來提取資料集中的特徵,萬能逼近,超引數多了說人可以掌控模型。讓人誤以為

深度學習網路Xavier初始化方法

參考: 深度學習-網路Xavier初始化方法 通過方差分析詳解最流行的Xavier權重初始化方法 在 Xavier Glorot 和 Yoshua Bengio 2010 年的論文 Understanding the difficulty of training deep feedf

深度學習 --- 神經網路學習原理(學習規則)

    從今天開始進入深度學習領域,深度學習我在前兩年的理論學習過程中,體會頗深,其中主要有兩個演算法CNN和RNN,但是本人喜歡追本溯源,喜歡刨根問題。最重要的是每個演算法並不是拍腦袋想出來的,是根據當時的研究程序和研究環境有關,因此想要深入理解深度學習的精髓,我們需要去了

深度學習除錯網路時常用的優化演算法總結

自己的小專案在實際除錯中出現過的優化模型的演算法,這裡做一個總結。 1、 學習率調整(避免欠擬合) 2、 正則化(避免過擬合) 3、 Dropout(避免過擬合) 4、 提前終止(避免過擬合) 學習率調整: 在訓練網路的時候,已不變的學習率學習往往不能找到最優解,從而使loss值

深度學習訓練評價指標

深度學習分類任務評價指標 PR曲線即查準率(Precision)與查全率(Recall) https://blog.csdn.net/zong596568821xp/article/details/80797695   深度學習常用評價指標(分類清晰) https://

【讀書1】【2017】MATLAB與深度學習——神經網路(1)

本章講解了單層神經網路的學習規則。 This chapter explains the learning rulesfor a single-layer neural network. 第3章討論了多層神經網路的學習規則。 The learning rules

深度學習訓練中關於資料處理方式--原始樣本採集以及資料增廣

         好久沒有寫部落格,一直想重新調整自己的部落格,想盡可能寫的前後連貫一點,同時希望自己寫的更通熟易懂些,可是遲遲沒有動筆修改曾經的博文,哎,還是慢慢跟著自己的理解再修改之前的文章吧,今兒就寫寫關於深度學習訓練中最關鍵的一步,資料問題,也就是樣本庫的建立!來

深度學習網路設計時優化【Dropout,Batch Normalization及其python實現】

一、Dropout 隨機失活是一種 簡單但非常有效的 神經網路訓練效果提升技巧,原理大概是它在一定程度上避免了某些特定特徵組合對訓練造成的負面影響。 在正向傳播時隨機挑選一部分神經元失活。在反向傳播時梯度只流經沒有失活的神經元。 圖1 使用Dropout的網路結構示意

【讀書1】【2017】MATLAB與深度學習——神經網路分層(4)

圖2-9 該示例神經網路等價於單層神經網路This example neuralnetwork is equivalent to a single layer neural network 請記住,當隱藏節點具有線性啟用函式時,隱藏層實際上是無效的。 Keep

[深度學習] 神經網路中的啟用函式(Activation function)

20180930 在研究調整FCN模型的時候,對啟用函式做更深入地選擇,記錄學習內容 啟用函式(Activation Function),就是在人工神經網路的神經元上執行的函式,負責將神經元的輸入對映到輸出端。 線性啟用函式:最簡單的linear fun

深度學習 -- 神經網路 3

上一講介紹了2層神經網路,下面擴充套件開來,介紹通用L層神經網路 深層神經網路 構建神經網路的幾個重要步驟通過更加直觀的示意圖來表示,如下: 這就是深度神經網路的內部實現原理,通過多次迭代訓練後,最終得到一個模型,然後用此模型進行預測 在實現該網路之前,首

深度學習——神經網路

一:神經網路介紹  傳統神經網路結構比較簡單,訓練時隨機初始化輸入引數,並開啟迴圈計算輸出結果,與實際結果進行比較從而得到損失函式,並更新變數使損失函式結果值極小,當達到誤差閾值時即可停止迴圈。 神經網路的訓練目的是希望能夠學習到一個模型,實現輸出一個期望的目標值。學習的方式是在外

深度學習訓練的常用名詞

     本文節選自CVer《深度學習速查詞典》中的一部分內容,並補充一些常見名詞。       batch size 一次前向或反向傳播時樣本的數目,該引數受限於記憶體的大小。      

如何解決機器學習深度學習訓練集樣本不均衡的問題!

解決樣本不均衡的問題很多,主流的幾個如下: 1.樣本的過取樣和欠取樣。 2..使用多個分類器進行分類。 3.將二分類問題轉換成其他問題。 4.改變正負類別樣本在模型中的權重。 一、樣本的過取樣和欠取樣。 1.過取樣:將稀有類別的樣本進行復制,通過增加此稀有

深度學習經典網路回顧:AlexNet+VGG

一.AlexNet: 雖然深度學習元年是2006年,但是真正使深度學習火起來的是2012年的ImageNet上的AlexNet,由於本人本科畢設有用到該網路模型,雖然後面更優秀的網路模型層出不窮本人再沒有使用過該網路,但是該網路的設計對後序網路的設計還是又不可磨滅的影響。首

吳恩達神經網路深度學習——神經網路基礎習題1

python numpy 基礎 1.使用iPython Notebooks 2.使用numpy 函式 and numpy矩陣或向量操作 3.理解"broadcasting" 4.向量化程式碼 用numpy建立一個基礎函式 sigmoid 函式 math庫

吳恩達神經網路深度學習——神經網路基礎習題2

神經網路思維的邏輯迴歸 1.初始化引數 2.計算代價函式及其導數 3.使用梯度下降 判斷影象上是否有貓 影象預處理 問題敘述 你得到了一個數據集(“data.h5”),包含: -標記為cat ( y = 1 )或非cat ( y = 0 )的m個訓練集 -標

深度學習網路調參

1. 網路層數 CNN:小卷積核,深網路。 RNN:淺網路,最多2層,因為rnn本身就是自迴圈的,展開之後已經很深。 2. 啟用函式 relu,tanh,sigmoid。一般來說,relu可以稍微減緩過擬合。 3. mini-batch size 一般10