1. 程式人生 > >[DeeplearningAI筆記]改善深層神經網路_優化演算法2.3_2.5_帶修正偏差的指數加權平均

[DeeplearningAI筆記]改善深層神經網路_優化演算法2.3_2.5_帶修正偏差的指數加權平均

Optimization Algorithms優化演算法

覺得有用的話,歡迎一起討論相互學習~Follow Me

2.3 指數加權平均

舉個例子,對於圖中英國的溫度資料計算移動平均值或者說是移動平均值(Moving average).

2017-10-24_105908

IMG_20171024_111318
大體公式就是前一日的V值加上當日溫度的0.1倍,如果用紅線表示這個計算數值的話就可以得到每日溫度的指數加權平均值.

2017-10-24_111740
\[V_{t}=\beta V_{t-1}+(1-\beta)\theta_{t}\]

  • 對於\(\theta\)的理解,你可以將其認為該數值表示的是\(\frac{1}{1-\beta}\)天的平均值,例如如果這裡取\(\beta\)是取0.9,那麼這個V值表示的是十天以來的溫度的加權平均值.如果我們設定\(\beta\)
    值是0.98那麼我們就是在計算50天內的指數加權平均,這時我們用圖中的綠線表示指數加權平均值

2017-10-24_123827

  • 我們看到這個高值的\(\beta=0.98\)得到的曲線要平坦一些,是因為你多平均了幾天的溫度.所以波動更小,更加平坦.缺點是曲線向右移動,這時因為現在平均的溫度值更多,所以會出現一定的延遲.對於\(\beta=0.98\)這個值的理解在於有0.98的權重給了原先的值,只有0.02的權重給了當日的值.
  • 我們現在將\(\beta=0.5\)作圖執行後得到黃線,由於僅平均了兩天的溫度,平均的資料太少,所以得到的曲線有更多的噪聲,更有可能出現異常值,但是這個曲線能更快的適應溫度變化,所以指數加權平均數經常被使用.
  • 在統計學中,它常被稱為指數加權移動平均值

2.4 理解指數加權平均

公式:\[V_{t}=\beta V_{t-1}+(1-\beta)\theta_{t}\]

  • \(\beta\)為0.9時,得到的是紅線,\(\beta\)為0.98,得到的是綠線,\(\beta\)為0.5時,得到的是黃線.

2017-10-24_130336

2017-10-24_130542

IMG_20171024_132821

  • 通過計算,我們發現\(0.9^{10}\approx\frac{1}{e}\approx0.35\),也就是說對於$\beta=0.9而言\(10天之後權重就會下降到\)\frac{1}{3}$
  • 對於\(\beta=0.98而言,有0.98^{50}\approx\frac{1}{e}\approx0.35\),即50天之後權重就會下降到\(\frac{1}{3}\)
  • 即有\[(1-\epsilon)^{\frac{1}{\epsilon}}\approx\frac{1}{e}\]

優勢

實際處理資料時,我們會使用以下公式:
2017-10-24_135627

  • 記憶體程式碼僅僅佔用一行數字而已,不斷覆蓋掉原有的V值即可,只佔單行數字的儲存和記憶體.雖然不是最精確的計算平均值的方法,但是相比於原有的計算平均值需要儲存所有資料求和後取平均的方法效率更高和資源佔用率大大減小.所以在機器學習中大部分採用指數加權平均的方法計算平均值.

2.5 指數加權平均的偏差修正

當我們取\(\beta=0.98\)時,實際上我們得到的不是綠色曲線,而是紫色曲線,因為使用指數加權平均的方法在前期會有很大的偏差,為此我們引入了偏差修正的概念

2017-10-24_150409

指數加權平均公式:\[V_{t}=\beta V_{t-1}+(1-\beta)\theta_{t}\]

帶修正偏差的指數加權平均公式:\[\hat{V}_{t}=\frac{V_{t}}{1-\beta^{t}}=\frac{(\beta V_{t-1}+(1-\beta)\theta_{t})}{1-\beta^{t}}\]

IMG_20171024_150711

補充

在機器學習中,在計算指數加權平均數的大部分時候,大家不太在乎偏差修正,大部分寧願熬過初始階段,拿到具有偏差的估測,然後繼續計算下去.
如果你關心初始時期的偏差,修正偏差能幫助你在早期獲得更好的估測

相關推薦

[DeeplearningAI筆記]改善深層神經網路_優化演算法2.3_2.5_修正偏差指數加權平均

Optimization Algorithms優化演算法 覺得有用的話,歡迎一起討論相互學習~Follow Me 2.3 指數加權平均 舉個例子,對於圖中英國的溫度資料計算移動平均值或者說是移動平均值(Moving average). 大體公式就是前一日的V值加上當日溫度的0.1倍,如果用紅線表示這個計算

[DeeplearningAI筆記]改善深層神經網路_深度學習的實用層面1.10_1.12/梯度消失/梯度爆炸/權重初始化

覺得有用的話,歡迎一起討論相互學習~Follow Me 1.10 梯度消失和梯度爆炸 當訓練神經網路,尤其是深度神經網路時,經常會出現的問題是梯度消失或者梯度爆炸,也就是說當你訓練深度網路時,導數或坡度有時會變得非常大,或非常小,甚至以指數方式變小.這加

改善深層神經網路_優化演算法_mini-batch梯度下降、指數加權平均、動量梯度下降、RMSprop、Adam優化、學習率衰減

1.mini-batch梯度下降 在前面學習向量化時,知道了可以將訓練樣本橫向堆疊,形成一個輸入矩陣和對應的輸出矩陣: 當資料量不是太大時,這樣做當然會充分利用向量化的優點,一次訓練中就可以將所有訓練樣本涵蓋,速度也會較快。但當資料量急劇增大,達到百萬甚至更大的數量級時,組成的矩陣將極其龐大,直接對這麼大

[DeeplearningAI筆記]改善深層神經網路1.1_1.3深度學習實用層面_偏差/方差/欠擬合/過擬合/訓練集/驗證集/測試集

覺得有用的話,歡迎一起討論相互學習~Follow Me 1.1 訓練/開發/測試集 對於一個數據集而言,可以將一個數據集分為三個部分,一部分作為訓練集,一部分作為簡單交叉驗證集(dev)有時候也成為驗證集,最後一部分作為測試集(test).接下來我們開始

Coursera | Andrew Ng (02-week2)—改善深層神經網路優化演算法

在吳恩達深度學習視訊以及大樹先生的部落格提煉筆記基礎上添加個人理解,原大樹先生部落格可檢視該連結地址大樹先生的部落格- ZJ Optimization Algorithms 2.1 Mini-batch Gradient Descent (M

DeepLearing學習筆記-改善深層神經網路(第三週作業-TensorFlow使用)

0- 背景: 採用TensorFlow的框架進行神經網路構建和結果預測 1- 環境依賴: import math import numpy as np import h5py import matplotlib.pyplot as plt import

改善深層神經網路:超引數除錯、正則化以及優化_課程筆記_第一、二、三週

所插入圖片仍然來源於吳恩達老師相關視訊課件。仍然記錄一下一些讓自己思考和關注的地方。 第一週 訓練集與正則化 這周的主要內容為如何配置訓練集、驗證集和測試集;如何處理偏差與方差;降低方差的方法(增加資料量、正則化:L2、dropout等);提升訓練速度的方法:歸一化訓練集;如何合理的初始化權

《吳恩達深度學習工程師系列課程之——改善深層神經網路:超引數除錯、正則化以及優化》學習筆記

本課程分為三週內容: 深度學習的使用層面 優化演算法 超引數除錯、Batch正則化和程式框架 WEEK1 深度學習的使用層面 1.建立神經網路時選擇: 神經網路層數 每層隱藏單元的個數 學習率為多少 各層採用的啟用函式為哪些 2

吳恩達deeplearning.ai課程《改善深層神經網路:超引數除錯、正則化以及優化》____學習筆記(第一週)

____tz_zs學習筆記第一週 深度學習的實用層面(Practical aspects of Deep Learning)我們將學習如何有效運作神經網路(超引數調優、如何構建資料以及如何確保優化演算法快速執行)設定ML應用(Setting up your ML applic

吳恩達deep learning筆記第二課 改善深層神經網路:超引數除錯、正則化以及優化

學習吳恩達DL.ai第二週視訊筆記。 1.深度學習實用層面 在訓練集和驗證集來自相同分佈的前提下,觀察訓練集的錯誤率和驗證集的錯誤率來判斷過擬合(high variance高方差)還是欠擬合(high bias高偏差). 比如訓練集錯誤率1%,驗證集11%則過擬合(

吳恩達改善深層神經網路引數:超引數除錯、正則化以及優化——優化演算法

機器學習的應用是一個高度依賴經驗的過程,伴隨著大量的迭代過程,你需要訓練大量的模型才能找到合適的那個,優化演算法能夠幫助你快速訓練模型。 難點:機器學習沒有在大資料發揮最大的作用,我們可以利用巨大的資料集來訓練網路,但是在大資料下訓練網路速度很慢; 使用快速的優化演算法大大提高效率

改善深層神經網路:超引數除錯、正則化以及優化 優化演算法 第二週

改善深層神經網路:超引數除錯、正則化以及優化  優化演算法 第二課 1. Mini-batch Batch vs Mini-batch gradient descent Batch就是將所有的訓練資料都放到網路裡面進行訓練,計算量大,硬體要求高。一次訓練只能得到一個梯

吳恩達 改善深層神經網路:超引數除錯、正則化以及優化 第一週

吳恩達 改善深層神經網路:超引數除錯、正則化以及優化 課程筆記  第一週 深度學習裡面的實用層面 1.1 測試集/訓練集/開發集        原始的機器學習裡面訓練集,測試集和開發集一般按照6:2:2的比例來進行劃分。但是傳統的機器學習

改善深層神經網路——優化演算法(6)

目錄 1.Mini-batch gradient descent 前我們介紹的神經網路訓練過程是對所有m個樣本,稱為batch,通過向量化計算方式,同時進行的。如果m很大,例如達到百萬數量級,訓練速度往往會很慢,因為每次迭代都要對所

改善深層神經網路week1學習筆記

1.Initialization Zero initialization 即初始化為0。如果將w權重矩陣和b偏置矩陣都使用Zero initialization則會產生以下的結果: 演算法對每個測試樣裡都會輸出0,因此準確率在0.5左右,與隨機猜測無異。總體來說,因

吳恩達《深度學習-改善深層神經網路》3--超引數除錯、正則化以及優化

1. 系統組織超參除錯Tuning process1)深度神經網路的超參有學習速率、層數、隱藏層單元數、mini-batch大小、學習速率衰減、β(優化演算法)等。其重要性各不相同,按重要性分類的話:   第一類:最重要的引數就是學習速率α    第二類:隱藏層單元數、min

2次課改善深層神經網路:超引數優化、正則化以及優化

1. 除錯處理 超引數重要性排序 學習速率(learning rate)α 動量權重β=0.9,隱藏層節點數,mini-batch size 層數,learning rate decay Adam優化演算法的引數β1=0.9,β2=0.999,ϵ=10

吳恩達深度學習筆記(22)-深層神經網路說明及前後向傳播實現

深層神經網路(Deep L-layer neural network) 目前為止我們已經學習了只有一個單獨隱藏層的神經網路的正向傳播和反向傳播,還有邏輯迴歸,並且你還學到了向量化,這在隨機初始化權重時是很重要。 目前所要做的是把這些理念集合起來,就可以執行你自己的深度神經網路。

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

改善深層神經網路——超引數除錯、Batch正則化和程式框架(7)

目錄 1.超引數除錯 深度神經網路需要除錯的超引數(Hyperparameters)較多,包括: α:學習因子 β:動量梯度下降因子 :Adam演算法引數 #layers:神經網路層數