【深度學習】——梯度下降優化算法(批量梯度下降、隨機梯度下降、小批量梯度下降、Momentum、Adam)

目錄

梯度

梯度下降

常用的梯度下降算法(BGD,SGD,MBGD)

梯度下降的詳細算法

算法過程

批量梯度下降法(Batch Gradient Descent)

隨機梯度下降法(Stochastic Gradient Descent)

小批量梯度下降法(Mini-batch Gradient Descent)

?梯度下降的優化算法

存在的問題

梯度下降優化的方法

?機器學習中具體梯度下降的優化算法

基于陷入局部最優的問題的優化

Momentum算法

基于學習率方面進行的梯度優化

Adam算法(Adaptive Moment Estimation)


參考:梯度下降(Gradient Descent)小結

梯度

概念:在微積分里面,對多元函數的參數求?偏導數,把求得的各個參數的偏導數以向量的形式寫出來,就是梯度。

?意義:梯度是函數在當前位置變化最快的方向,因此可以使得損失函數很快地找到極值,損失一般是找極小值,進而用于指導訓練模型中參數的更新。?

梯度下降

????????首先來看看梯度下降的一個直觀的解釋。比如我們在一座大山上的某處位置,由于我們不知道怎么下山,于是決定走一步算一步,也就是在每走到一個位置的時候,求解當前位置的梯度,沿著梯度的負方向,也就是當前最陡峭的位置向下走一步,然后繼續求解當前位置梯度,向這一步所在位置沿著最陡峭最易下山的位置走一步。這樣一步步的走下去,一直走到覺得我們已經到了山腳。當然這樣走下去,有可能我們不能走到山腳,而是到了某一個局部的山峰低處

具體實施:從整體來看,當點下降最快的方向不是由某一個維度的偏導決定的1,而是由所有維度的偏導共同決定的,這也符合“梯度是變化最快的方向”和“梯度是函數對所有參數求偏導后的值的向量”這兩個說法。在實際實施中,我們一般是通過偏導來指導不同參數的更新,以此來做到函數值下降得最快(梯度方向)。這就是梯度下降的本質。

????????從上面的解釋可以看出,梯度下降不一定能夠找到全局的最優解,有可能是一個局部最優解。當然,如果損失函數是凸函數,梯度下降法得到的解就一定是全局最優解。

常用的梯度下降算法(BGD,SGD,MBGD)

梯度下降的詳細算法

算法過程

一般有兩種方法,一種迭代,一種矩陣運算,具體見:梯度下降(Gradient Descent)小結

批量梯度下降法(Batch Gradient Descent)

?優點:對于準確率來說,因為使用了全部樣本的梯度,所以準確率會更高

缺點:但是使用了全部樣本,導致在訓練速度和收斂速度上都比較慢

隨機梯度下降法(Stochastic Gradient Descent)

?優點:隨機梯度下降就是BGD的極端,只是隨機選擇一個樣本的梯度來指導梯度的下降,因為使用了一個樣本,因此其訓練速度會很快

缺點:但是非常依賴于初始值和步長的影響,有可能會陷入局部最優中,導致收斂速度慢

小批量梯度下降法(Mini-batch Gradient Descent)

在深度學習中,SGD和MBGD統稱為SGD

這個梯度下降算法其實就是結合了BGD和SGD兩者,采用了小批次的梯度來進行計算。

優點:分擔了訓練壓力(小批量)、加快收斂

缺點:初始學習率難以確定、容易陷入局部最優

?梯度下降的優化算法

存在的問題

BGD、SGD以及MBGD都是比較常見的梯度算法,但是都存在以下問題:

1)學習步長(學習率)難以確定,是超參數,太大導致跳過最優解,太小收斂速度慢,可能會導致陷入局部最優;

2)參數初始值的確定,不同初始值有可能會產生不同的最優解,比如初始值分別在兩座山的山頂,那得到的山腳位置自然是可能不一樣的;

3)樣本特征值的差異性大,變化范圍大

梯度下降優化的方法

?機器學習中具體梯度下降的優化算法

基于陷入局部最優的問題的優化

Momentum算法

Momentum算法是在MBGD的基礎上進行了修改,即在梯度方向上增加動量(Momentum),意思指在更新梯度時,會保留之前更新的梯度方向,然后利用當前批次的梯度進行微調

優點:

1)能夠抑制梯度的震蕩,在梯度與上次相同的時候梯度下降多一點,反之少一點

2)有可能跳出局部極值

基于學習率方面進行的梯度優化

Adam算法(Adaptive Moment Estimation)

優點:

1)每一次迭代的學習率都在依次確定的范圍內 ,使得參數更新更加地穩定

2)使模型更加地收斂,適用于深層網絡和較為復雜的場景

參考文獻

https://blog.csdn.net/liuy9803/article/details/81780543

https://www.cnblogs.com/pinard/p/5970503.html

物體檢測書籍

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255827.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255827.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255827.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Javascript隱式轉換

亂想 javascript為什么需要隱式轉換?如果沒有會出現什么情況? 找了一圈沒有看到關于這個的討論,只好自己研究了,可能不一定正確,自行辨知。 郁悶就是郁悶在好好的,為什么要搞個隱式轉換,一般來講…

雙工位機器人 焊接夾具注意事項 o(╯□╰)o

焊接夾具設計注意事項 一套完美的夾具,需要機械設計人員正確的設計思想,良好的配件質量,鉗工負責認真的裝配質量,卡具在使用中不斷的修磨和改進,才會達到好的效果。 本人非機械設計,只是在使用焊接卡具過程中遇到了很多卡具設計上…

【公共類庫】加密解密

public static class MyEncryption{#region Md5加密/// <summary>/// 使用MD5加密/// </summary>/// <param name"str">需要加密的數據。</param>/// <param name"kind">加密類型&#xff1a;1-普通加密&#xff1b;2-密碼加…

使用JOTM實現分布式事務管理(多數據源)

使用spring和hibernate可以很方便的實現一個數據源的事務管理,但是如果需要同時對多個數據源進行事務控制,并且不想使用重量級容器提供的機制的話,可以使用JOTM達到目的. JOTM的配置十分簡單,spring已經內置了對JOTM的支持,一.<bean id"jotm" class"org.spri…

【機器學習】——《機器學習實戰》面試復習

目錄 一、機器學習概念 二、機器學習步驟 三、有監督學習 1、k-近鄰算法 核心思想 實例&#xff1a;手寫數字的識別 優缺點&#xff1a; 2、決策樹 相關概念 核心思想 一些小技巧 優缺點 3、神經網絡 4、SVM——支持向量機 核心思想 SVM和SVR的區別 ? 優缺點…

一鍵分享代碼

文章出處&#xff1a;http://share.baidu.com/code/advance 一、概述 百度分享代碼已升級到2.0&#xff0c;本頁將介紹新版百度分享的安裝配置方法&#xff0c;請點擊左側列表查看相關章節。 二、代碼結構 分享代碼可以分為三個部分&#xff1a;HTML、設置和js加載&#xff0c;…

ubuntu安裝LDAP

參考文獻&#xff1a; https://help.ubuntu.com/12.04/serverguide/openldap-server.html&#xff08;最主要的&#xff09; http://www.linuxidc.com/Linux/2011-08/40020.htm http://blog.chinaunix.net/uid-24276740-id-3360306.html 前言 在網上搜索ldap的安裝配置&#xf…

58.貪心算法練習:??最小新整數

總時間限制: 1000ms 內存限制: 65536kB 描述 給定一個十進制正整數n(0 < n < 1000000000)&#xff0c;每個數位上數字均不為0。n的位數為m。現在從m位中刪除k位(0< m)&#xff0c;求生成的新整數最小為多少&#xff1f;例如: n 9128456, k 2, 則生成的新整數最小…

ABB機器人之LOADDATA

ABB機器人之LOADDATA loaddata是用來描述連接到機器人機械接口的負載&#xff08;機器人的安裝法蘭&#xff09;。loaddata數據通常定義有效載荷或負荷&#xff08;通過指令gripload設置機器人抓手負載 或mechunitload指令設置變位機負載。loaddata通常也作為tooldata的一部分&…

【深度學習】——性能指標(ROC、MAP、AUC等)

目錄 一、分類任務性能指標 1、混淆矩陣 2、精確度ACCURACY 正確數/總數 3、查全率&#xff08;RECALL&#xff09;——真正正樣本中預測正確的比例 4、查準率&#xff08;precision&#xff09;——預測為正樣本中的預測正確的比例 5、F-score——對查準率和查全率進行結…

【深度學習】——過擬合的處理方法

目錄 一、什么是過擬合&#xff1f;&#xff08;overfitting&#xff09; 二、過擬合的表現&#xff08;判定方法&#xff09; 訓練集、測試集、驗證集區別 測試集與驗證集的區別 三、產生過擬合的原因 1、樣本方面 2、模型方面 四、避免過擬合的方法 1、樣本方面 1&…

ASP.NET頁面的字符編碼設置

在用ASP.NET寫網上支付的接口程序時&#xff0c;遇到一個奇怪問題&#xff0c;通過表單提交過去的中文全是亂碼&#xff0c;英文正常。而用asp程序進行測試&#xff0c;可以正常提交中文&#xff0c;asp頁面中有這樣的HTML代碼&#xff1a; <meta http-equiv"Content-T…

帝人製機--適合的機遇--遇到恰到好處的產品--工業機器人減速機造就一個百年企業

持之以恒是成功的必要條件&#xff0c;但是也要有恰當的土壤。日本Nabtesco(納博特斯克)舊名&#xff1a;帝人製機(TEIJINSEIKI)高性能日本RV減速機納博特斯克(Nabtesco)公司是一家居世界領先地位的精密傳動控制系統及組件製造商。目前全世界已有超過兩百萬件由Nabtesco製造的精…

Python個人項目--豆瓣圖書個性化推薦

項目名稱: 豆瓣圖書個性化推薦 需求簡述&#xff1a;從給定的豆瓣用戶名中&#xff0c;獲取該用戶所有豆瓣好友列表&#xff0c;從豆瓣好友中找出他們讀過的且評分5星的圖書&#xff0c;如果同一本書被不同的好友評5星&#xff0c;評分人數越多推薦度越高。 輸入&#xff1a;豆…

#define宏定義形式的函數導致的bug

定義了一個宏定義形式的"函數": #define SUM8(YY)\ {\ int Y YY>>2;\ ...\ } 然后使用的時候&#xff0c;傳入了一個同名的變量Y: int Y Ywin[x]; SUM8(Y) 本意是想展開成int Y Ywin[x]>>2; 但實際上#define只是把參數名(YY)替換&#xff0c;與函數…

【深度學習】——BN層(batch normalization)

目錄 一、“Internal Covariate Shift”問題 二、BatchNorm的本質思想 兩個參數r和β的意義——精髓所在 三、訓練階段如何做BatchNorm 四、BatchNorm的推理(Inference)過程 五、BatchNorm的好處 一般使用在卷積層后、激活層前 Batch Normalization作為最近一年來DL的重要…

打印池

餐飲行業&#xff0c;打印池是必要的部件。 實現原理&#xff1a;每一臺打印機都有自己的任務隊列和處理任務隊列的線程。 unit untPrintTask; interface uses System.SysUtils, System.Classes, Datasnap.DBClient, frxclass, System.Generics.Collections; type TBillContent…

JAXB vs XStream

2019獨角獸企業重金招聘Python工程師標準>>> JAXB vs XStream 博客分類&#xff1a; java JAXB vs XStream 這兩東東本質上是有差別的&#xff0c;JAXB稱為OX binding工具&#xff0c;XStream應該算序列化工具&#xff0c;但OX binding工具也會marshall和unmarsha…

ABB 機器人 DRVIO_1通信報警

ABB 機器人DRVIO_1通信報警 2014.06.13 ABB1600弧焊機器人&#xff0c;從A地搬運到B地&#xff0c;到達B地后&#xff0c;機器人上電&#xff0c;報DRVIO_1通信故障&#xff0c;機器人進入故障停止模式。 DRVIO_1為LOCAL_GENERIC類型的ABB內部LOCAL總線類型的單元實例。 故障…

S2SH CRUD 整合

S2SH CRUD 整合 采用的框架 Struts2Spring4Hbiernate4. 目錄結構 &#xff1a; EmployeeAction: 1 package com.xx.ssh.actions;2 3 import java.io.ByteArrayInputStream;4 import java.io.InputStream;5 import java.io.UnsupportedEncodingException;6 import java.util.…