第2次課改善深層神經網路:超引數優化、正則化以及優化
1. 除錯處理
超引數重要性排序
- 學習速率(learning rate)
α - 動量權重
β=0.9 ,隱藏層節點數,mini-batch size - 層數,learning rate decay
- Adam優化演算法的引數
β1=0.9,β2=0.999,ϵ=10−8 一般不改
調參方法
- 網格搜尋,使用引數較少的情況
隨機選擇,該方法較優,原因是對於一個具體問題,不清楚哪個引數比較重要,而網格搜尋是各個引數地位是平等的
- 先確定一個大致的引數區間,然後再細緻搜尋
2. 為超引數選擇合適的範圍
一個例子 - 隱藏層節點數nx 和層數L
- 隱藏層節點數,隨機選擇50-100個
- 層數,可以隨機選擇2-4,也可以網格搜尋
另一個例子 - 學習速率α
- 問題:選擇一個可能下界0.0001和一個上界1,在[0.0001,1]中隨機取點,由於尺寸不對稱,小的數字被取到的概率小
- 解決方法:把區間劃分成4個部分,[0.0001,0.001], [0.001,0.01], [0.01,0.1], [0.1,1],然後在4個區間內隨機取點,也就是對其取對數
- 示例程式碼:
python
r = -4*np.random.rand()
alpha = 10**r
最後一個例子 - 動量權重β
- 問題:和學習速率一樣,[0.9,0.999]之間不能均勻取值
- 解決方法:通過
1−β 到[0.001,0.1],然後用學習速率的方法進行對數取值 - 原因:
11−β 之後,0.9到0.9005不敏感,但是0.999到0.9995很敏感,對結果的影響大,所以需要在接近1的地方密集取值
3. 超引數訓練實踐 - Pandas vs. Caviar魚子醬(analogy)
調整引數的方法 - 看計算能力
- Pandas - 計算能力不夠的時候,邊訓練邊調整引數
- Caviar - 同時嘗試多種引數組合進行模型訓練
4. 正則化網路的啟用函式
- Batch Norm,對隱藏層節點啟用函式輸入或者輸出進行歸一化
Batch Norm
歸一化輸入可以加快訓練速度
Batch Norm是對隱藏層進行歸一化操作
有兩個版本的Batch Norm:
1. (Default)對節點啟用函式的輸入
2. 對節點的輸出
演算法步驟
Given some intermediate values in NN
z(1),...,z(m) μ=1m∑iz(i) σ2=1m∑i(zi−μ)2 z(i)norm=z(i)−μσ2+ϵ√
- 分母加上
ϵ 是為了防止分母太小,保證演算法穩定性
- 分母加上
z~(i)=γz(i)norm+β
- 為了不讓隱藏層節點啟用函式的輸入都是均值為0方差為1,其中
γ,β 都是模型的學習引數,可以用梯度下降或者其他方法來更新這兩個引數的值,也可以設定成固定值
- 為了不讓隱藏層節點啟用函式的輸入都是均值為0方差為1,其中
- Use
z~(i) to be the input of activate function
如果
γ=σ2+ϵ−−−−−√,β=μ ,那麼z(i)=z~(i)
5. 將Batch Nrom擬合進神經網路
一個完整的網路
一個節點
- X通過w和b進行求和得到z
- z通過
γ[1],β[1] 引數和BatchNorm操作得到z~[1] - 用啟用函式計算節點的輸出
一些注意點
- 引數
β 和上一節中的不是一個引數 γ[l],β[l] 和w,b等價,可以用梯度下降進行更新,也可以用優化方法進行優化加快學習- tf.nn.batch-normalization框架實現,不需要自己手動實現,但是要理解做法
- 因為歸一化要減去均值,所以偏置b就沒有用了,刪掉,
β 有相似的作用 γ[l],β[l] 的維度是(n[l] , 1)
6. Batch Norm為什麼奏效
通過歸一化操作,把尺度不一的輸入限定在相同的量綱下,從而加快學習速度
Covariate shift
- 定義:已經學習了x到y的對映,如果x的分佈改變了,需要重新訓練學習演算法。
對於一個多層的神經網路,把第二層的輸出當作輸入,有一個
Batch Norm和regularization正則化
使用mini-batch,在每個mini-batch上計算均值方差進行歸一化。會給隱藏層的啟用函式帶來噪聲,產生類似於dropout的效果。因為新增的噪聲很小,只有輕微的正則化效果
和dropout一起使用獲得更好的正則化效果,mini-batch size越大,正則化效果越弱,Batch Norm的正則化效果只是小的副作用,不是其主要功能。
7. 測試時的Batch Norm
訓練的做法
分別對每個mini-batch進行歸一化處理
測試的做法
測試的時候需要對樣本逐個處理樣本
使用指數加權平均來估計均值和方差,也可以使用其他方法
X{1}−>μ{1}[l] X{2}−>μ{2}[l] X 相關推薦
吳恩達deep learning筆記第二課 改善深層神經網路:超引數除錯、正則化以及優化
學習吳恩達DL.ai第二週視訊筆記。 1.深度學習實用層面 在訓練集和驗證集來自相同分佈的前提下,觀察訓練集的錯誤率和驗證集的錯誤率來判斷過擬合(high variance高方差)還是欠擬合(high bias高偏差). 比如訓練集錯誤率1%,驗證集11%則過擬合(
改善深層神經網路:超引數除錯、正則化以及優化_課程筆記_第一、二、三週
所插入圖片仍然來源於吳恩達老師相關視訊課件。仍然記錄一下一些讓自己思考和關注的地方。 第一週 訓練集與正則化 這周的主要內容為如何配置訓練集、驗證集和測試集;如何處理偏差與方差;降低方差的方法(增加資料量、正則化:L2、dropout等);提升訓練速度的方法:歸一化訓練集;如何合理的初始化權
改善深層神經網路:超引數除錯、正則化以及優化 優化演算法 第二週
改善深層神經網路:超引數除錯、正則化以及優化 優化演算法 第二課 1. Mini-batch Batch vs Mini-batch gradient descent Batch就是將所有的訓練資料都放到網路裡面進行訓練,計算量大,硬體要求高。一次訓練只能得到一個梯
吳恩達 改善深層神經網路:超引數除錯、正則化以及優化 第一週
吳恩達 改善深層神經網路:超引數除錯、正則化以及優化 課程筆記 第一週 深度學習裡面的實用層面 1.1 測試集/訓練集/開發集 原始的機器學習裡面訓練集,測試集和開發集一般按照6:2:2的比例來進行劃分。但是傳統的機器學習
《吳恩達深度學習工程師系列課程之——改善深層神經網路:超引數除錯、正則化以及優化》學習筆記
本課程分為三週內容: 深度學習的使用層面 優化演算法 超引數除錯、Batch正則化和程式框架 WEEK1 深度學習的使用層面 1.建立神經網路時選擇: 神經網路層數 每層隱藏單元的個數 學習率為多少 各層採用的啟用函式為哪些 2
吳恩達deeplearning.ai課程《改善深層神經網路:超引數除錯、正則化以及優化》____學習筆記(第一週)
____tz_zs學習筆記第一週 深度學習的實用層面(Practical aspects of Deep Learning)我們將學習如何有效運作神經網路(超引數調優、如何構建資料以及如何確保優化演算法快速執行)設定ML應用(Setting up your ML applic
第2次課改善深層神經網路:超引數優化、正則化以及優化
1. 除錯處理 超引數重要性排序 學習速率(learning rate)α 動量權重β=0.9,隱藏層節點數,mini-batch size 層數,learning rate decay Adam優化演算法的引數β1=0.9,β2=0.999,ϵ=10
吳恩達改善深層神經網路引數:超引數除錯、正則化以及優化——優化演算法
機器學習的應用是一個高度依賴經驗的過程,伴隨著大量的迭代過程,你需要訓練大量的模型才能找到合適的那個,優化演算法能夠幫助你快速訓練模型。 難點:機器學習沒有在大資料發揮最大的作用,我們可以利用巨大的資料集來訓練網路,但是在大資料下訓練網路速度很慢; 使用快速的優化演算法大大提高效率
吳恩達《深度學習-改善深層神經網路》3--超引數除錯、正則化以及優化
1. 系統組織超參除錯Tuning process1)深度神經網路的超參有學習速率、層數、隱藏層單元數、mini-batch大小、學習速率衰減、β(優化演算法)等。其重要性各不相同,按重要性分類的話: 第一類:最重要的引數就是學習速率α 第二類:隱藏層單元數、min
Coursera | Andrew Ng (02-week2)—改善深層神經網路:優化演算法
在吳恩達深度學習視訊以及大樹先生的部落格提煉筆記基礎上添加個人理解,原大樹先生部落格可檢視該連結地址大樹先生的部落格- ZJ Optimization Algorithms 2.1 Mini-batch Gradient Descent (M
第九節,改善深層神經網絡:超參數調試、正則化以優化(下)
nbsp dao 區別 行列式 增加 ngs out 來看 row 一 批標準化 (batch normalization) 部分內容來自: Batch Normalization 批標準化 深度學習Deep Learning(05):Batc
改善深層神經網絡:超參數調試、正則化及優化
正則 ria 左右 訓練 訓練集 第一周 1.3 實驗 必須 第一周 深度學習的實用層面 1.1 訓練、驗證、測試集 應用機器學習是個高度叠代的過程:想法--->編碼--->實驗 (1)神經網絡的層數 (2)隱含層神經元個數 (3)學習率 (4)激勵函數
2、改善深層神經網路
偏差方差 解決過擬合的措施: 1、增加資料集 2、L2正則化 3、Dropout正則化 4、資料預處理方式增加資料集 5、早停機制 正則化輸入的重要性 梯度檢查 梯度檢查注意事項 mini-batch 一般取64-51
DeepLearing學習筆記-改善深層神經網路(第三週作業-TensorFlow使用)
0- 背景: 採用TensorFlow的框架進行神經網路構建和結果預測 1- 環境依賴: import math import numpy as np import h5py import matplotlib.pyplot as plt import
[DeeplearningAI筆記]改善深層神經網路_優化演算法2.3_2.5_帶修正偏差的指數加權平均
Optimization Algorithms優化演算法 覺得有用的話,歡迎一起討論相互學習~Follow Me 2.3 指數加權平均 舉個例子,對於圖中英國的溫度資料計算移動平均值或者說是移動平均值(Moving average). 大體公式就是前一日的V值加上當日溫度的0.1倍,如果用紅線表示這個計算
4周第2次課 vim 一般模式光標移動、復制、剪切
vim 一般模式光標移動、復制、剪切四周第二次課(11月7日)5.1 vim介紹vi這個命令,它是linux中必不可少的一個工具。早期的Unix系統默認的編輯器的。vi與vim有什麽區別?vim是vi的升級版。帶彩色和代碼提示,有利於提高使用人員的效率。安裝: yum install -y vim-enhan
5周第2次課 yum更換國內源 yum下載rpm包 源碼包安裝
yum更換國內源 yum下載rpm包 源碼包安裝1. yum 更換國內源系統內置的源很多時候都是官方的,大部分在國外,使用起來不是很快,也很難下載,這時候最好使用國內的源,如1631.1 刪除系統中自帶的 yum源配置文件mv CentOS-Base.repo CentOS-Base.repo.bak1.2
linux 2017-12-12 第1周第2次課 學習筆記
服務 系統 onf 靜態ip spa 網卡 .com 文檔 boot 配置固定的ip是為了讓你的系統可以上網,可以遠程連接你的服務器。 命令:#ls 【列出當前目錄下的目錄或者文件】 #ip addr 【查看你的網卡信息】 #dhclient【自動給你的虛擬系
改善深層神經網路_優化演算法_mini-batch梯度下降、指數加權平均、動量梯度下降、RMSprop、Adam優化、學習率衰減
1.mini-batch梯度下降 在前面學習向量化時,知道了可以將訓練樣本橫向堆疊,形成一個輸入矩陣和對應的輸出矩陣: 當資料量不是太大時,這樣做當然會充分利用向量化的優點,一次訓練中就可以將所有訓練樣本涵蓋,速度也會較快。但當資料量急劇增大,達到百萬甚至更大的數量級時,組成的矩陣將極其龐大,直接對這麼大
02改善深層神經網路-Initialization-第一週程式設計作業1
分別使用 全零:parameters['W' + str(l)] = np.zeros((layers_dims[l], layers_dims[l-1])) 隨機:parameters['W' + str(l)] = np.random.randn(layers_dim