1. 程式人生 > >深度學習入門(四)梯度更新演算法的選擇(附執行程式碼)

深度學習入門(四)梯度更新演算法的選擇(附執行程式碼)

文章目錄

指數加權平均

本處參考:吳恩達的深度學習課程
梯度更新的演算法理解都要用到指數加權平均,所以這裡我們首先介紹下指數加權平均。關於每種更新演算法的詳解後續再做更新,先把框架搭好~
加權平均的公式
v

t = β v t 1
+ ( 1 β ) θ t
v_t = \beta * v_{t-1} + (1-\beta)*{\theta_t}
我們稱 v t v_t 為滑動平均值,我們以每日溫度為例,今日的滑動平均值等於昨天的滑動平均值的 β \beta 倍加上近日氣溫的 ( 1 β ) (1-\beta)
首先考慮 β \beta = 0.98,那麼滑動平均值相當於當天的氣溫佔比為0.02, 1 0.02 = 50 \frac{1}{0.02} = 50 相當於50天的平均。
上述計算方式是因為權值如果小於 1 e \frac{1}{e} 可以忽略不計,因而我們只需要證明 β 1 1 β = 1 e \beta^{\frac{1}{1-\beta}} = \frac{1}{e}
1 1 β = N \frac{1}{1-\beta} = N β = 1 1 N \beta = {1-\frac{1}{N}}
只需證明 ( 1 1 N ) N = 1 e {(1-\frac{1}{N})^{N}} = \frac{1}{e}
利用在n趨於無窮時, ( 1 + 1 n ) n e (1 + \frac{1}{n})^{n}等於e

下圖紅線表示的是 β = 0.9 \beta = 0.9 也就是平均10天,而綠線表示 β = 0.98 \beta = 0.98 相當於平均50天。
綠色的曲線要平坦一些,原因在於多平均了幾天的溫度,所以這個曲線,波動更小,更加平坦。缺點是曲線進一步右移,因為現在平均的溫度值更多,要平均更多的值,指數加權平均公式在溫度變化時,適應地更緩慢一些,所以會出現一定延遲。相當於給前一天的值加了太多權重,只有0.02的權重給了當日的值,所以溫度變化時,溫度上下起伏,當 β \beta 較大時,指數加權平均值適應地更緩慢一些。
Alt
我們考慮第100天的滑動平均值
v 100 = 0.1 θ 100 + 0.9 ( 0.1 θ 99 + 0.9 v 98 ) v_{100} = 0.1*\theta_{100} + 0.9*( 0.1*\theta_{99}+0.9*v_{98} )
最後可以推匯出 v 100 = 0.1 θ 100 + 0.1 0.9 θ 99 + 0.1 0.9 0.9 θ 98 + . . . v_{100} = 0.1*\theta_{100} + 0.1*0.9*\theta_{99} + 0.1*0.9*0.9*\theta_{98} + ...
然後我們構建一個指數衰減函式,從 0.1 0.1 開始,到 0.1 0.9 0.1*0.9 ,到 0.1 0.9 0.9 0.1*0.9*0.9 ,以此類推。假設 β = 0.9 \beta = 0.9 0.9 10 {0.9}^{10} 約為0.35,約等於 1 e \frac{1}{e} ,也就是說約10天后,衰減到初始權值的 1 3 \frac{1}{3} ,如果 β \beta = 0.98,則需要約50天也就是 0.98 50 {0.98}^{50} 到大概 1 e \frac{1}{e}
另外,考慮到初始 v 0 v_{0} = 0,所以初始的滑動平均值會有很大的誤差,因而會考慮使用 v t 1 β t \frac{v_t}{1-\beta_t} 來代替 v t v_t ,這種方法稱為指數加權平均偏差修正。
指數加權平均的主要好處是:佔用記憶體少,只佔用一行程式碼,當然它並不是最精準的計算平均數的方法。

SGD

上文我們構建模型採用的梯度更新演算法是SGD
W = W η ( L ) ( W ) W =W-\eta{\frac{\partial(L)}{\partial(W)}}

相關推薦

深度學習入門梯度更新演算法選擇(執行程式碼)

文章目錄 指數加權平均 SGD Momentum AdaGrad RMSProp Adam 梯度更新演算法的選擇 Learning rate decay 區域性最優 local optima 指數加權平均

深度學習筆記——神經網路和深度學習淺層神經網路

1.神經網路概覽 神經網路的結構與邏輯迴歸類似,只是神經網路的層數比邏輯迴歸多一層,多出來的中間那層稱為隱藏層或中間層。從計算上來說,神經網路的正向傳播和反向傳播過程只是比邏輯迴歸多了一次重複的計算。正向傳播過程分成兩層,第一層是輸入層到隱藏層,用上標[1]來表示;第二層是隱藏層到輸出層,用上標

機器學習入門迴歸演算法

--------韋訪 20181010 1、概述 現在開始學習演算法了,從線性迴歸和邏輯迴歸開始。 2、線性迴歸概念 關於迴歸和分類的概念,我們在TensorFlow入門筆記第八講有說過,這裡直接複製過來, 分類問題:分類問題希望解決的是將不同的樣本分到事先定義好的

深度學習入門——TensorFlow介紹

TensorFlow     1.使用圖 (graph) 來表示計算任務.     2.在被稱之為 會話 (Session) 的上下文 (context) 中執行圖.     3.使用 tensor 表示資料.     4通過 變數 (Variable) 維護狀態.

windows深度學習入門1在windows10上安裝TensorFlow

主要步驟:首先安裝python和pip,再通過pip安裝tensorflow,如果是安裝CPU版本的非常簡單,如果安裝GPU版本的話,還需要再安裝CUDA和CuDNN。 1.安裝python與pip,由於我之前的python是python 3.6,然而pyth

深度學習入門-第一章 必備基礎知識點

1.深度學習與人工智慧簡介 大資料時代造就了人工智慧的發展,人工智慧的時代已經來臨。資料規模越大,深度學習演算法越好。深度學習有諸多應用,如訴說圖片故事,自動駕駛等等。 2.CV面臨的挑戰與常規

神經網路與深度學習筆記

第四章 神經網路可以計算任何函式的視覺化證明     神經網路的一個最顯著的事實就是它可以計算任何的函式。不管這個函式是什麼樣,總會確保有一個神經網路能夠對任何可能的輸入xx,其值f(x)f(x)(或者某個足夠準確的近似)是網路的輸出。即使這個函式有很多輸入和

深度學習介紹卷積操作

接下來介紹一下,CNNs是如何利用空間結構減少需要學習的引數數目的 如果我們有一張1000x1000畫素的影象,有1百萬個隱層神經元,那麼他們全連線的話(每個隱層神經元都與影象的每一個畫素點相連),這樣就有1000x1000x1000000=10^12個連線,

深度學習入門構建簡單的兩層神經網路

25天看完了吳恩達的機器學習以及《深度學習入門》和《tensorflow實戰》兩本書,吳恩達的學習課程只學了理論知識,另外兩本書的程式碼自己敲了一遍,感覺過的太快,趁著跑cGAN的時間把兩本書的知識點總結下,然後繼續深度學習的課程。歡迎小夥伴一起學習~ 另外,本文先把框架搭好,後續會一直補充

深度學習入門感知機與啟用函式

文章目錄 感知機 啟用函式 1.sigmoid 2.tanh 3.relu 4.softmax 25天看完了吳恩達的機器學習以及《深度學習入門》和《tensorflow實戰》兩本書,吳恩達的學習課程只學了理論知識,另外兩本

深度學習筆記VGG14

Very Deep Convolutional Networks for Large-Scale Image Recognition 1. 主要貢獻 本文探究了引數總數基本不變的情況下,CNN隨著層數的增加,其效果的變化。(thorough evaluation of net

深度學習入門

1. OpenSOC是各種開源大資料架構和安全分析工具的有機結合(Apache Metron)2. Apache Metron 是一個網路安全的實時資料處理、分析、查詢、視覺化框架.3. opensos包括資料來源系統,資料收集層,訊息系統層,實時處理層,儲存層,分析處理層。

深度學習入門-例項,技巧,框架

15.分類與迴歸(=Location)任務應用詳解 定位就是給框出來,用迴歸來做。 Location as regression:通過預測結果,不斷擬合groudtruth的過程 一些技巧 對於某一任務,找合適的模型。一般,AlexNet和V

機器學習入門之----線性迴歸正規方程

再談最小平方問題 有了矩陣求導工具後,我們可以尋找最小化損失函式的引數值的閉式解(closed-form solution)。首先我們先把這個損失函式表達成向量的形式。 把每個訓練樣本放在矩陣一行,可以得到一個\(m \times n\) 設計矩陣\(X\) (design matrix) ,即 \[ X=\

深度學習總結各種優化演算法

一.優化演算法介紹 1.批量梯度下降(Batch gradient descent,BGD) θ=θ−η⋅∇θJ(θ) 每迭代一步,都要用到訓練集的所有資料,每次計算出來的梯度求平均 η代表學習率LR 2.隨機梯度下降(Stochas

深度學習筆記--目標檢測演算法綜述

目前目標檢測領域的深度學習方法主要分為兩類:two stage的目標檢測演算法;one stage的目標檢測演算法。前者是先由演算法生成一系列作為樣本的候選框,再通過卷積神經網路進行樣本分類;後者則不用產生候選框,直接將目標邊框定位的問題轉化為迴歸問題處理。正是由於兩種方法的

[TensorFlow深度學習入門]實戰·邏輯迴歸鳶尾花進行分類對比均方根誤差與softmax交叉熵誤差區別

[TensorFlow深度學習入門]實戰四·邏輯迴歸鳶尾花進行分類 問題描述 資料集 鳶尾花資料集下載地址 鳶尾花資料集包含四個特徵和一個標籤。這四個特徵確定了單株鳶尾花的下列植物學特徵: 1、花萼長度 2、花萼寬度 3、花瓣長度 4、花瓣寬度 該標籤確定了鳶尾花品種,

DeepLearning.ai學習筆記卷積神經網絡 -- week2深度卷積神經網絡 實例探究

過濾 common 經典 上一個 問題 inline 最壞情況 ali method 一、為什麽要進行實例探究? 通過他人的實例可以更好的理解如何構建卷積神經網絡,本周課程主要會介紹如下網絡 LeNet-5 AlexNet VGG ResNet (有152層) Incep

JavaSE學習總結——Java面向對象十分鐘入門

組織 table 運行時 order 3.1 project park 得到 row 目錄 一、理解類與對象及他們間的關系 1.1、對象 1.3、類與對象間的關系 二、了解面向對象編程的意義 三、定義類與實例化對象 3.1、定義類 3.2、實例化對象 四、區別

python程式設計:從入門到實踐學習筆記-Django入門

建立其他網頁 我們接下來擴充“學習筆記”專案,建立兩個顯示資料的網頁,其中一個列出所有的主題,另一個顯示特定主題的所有條目。 模板繼承 編寫一個包含通用元素的父模板,並讓每個網頁都繼承這個模板,而不必在每個網頁中重複定義這些通用元素。這樣我們可以專注於開發每個網頁的獨特部分。1.父模板