色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

常見的最優化方法介紹

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 作者:深度學習自然語言 ? 2020-11-24 09:23 ? 次閱讀

目錄

梯度下降法

牛頓法和擬牛頓法

共軛梯度法

啟發式優化方法

解決約束優化問題——拉格朗日乘數法

我們每個人都會在我們的生活或者工作中遇到各種各樣的最優化問題,比如每個企業和個人都要考慮的一個問題“在一定成本下,如何使利潤最大化”等。最優化方法是一種數學方法,它是研究在給定約束之下如何尋求某些因素(的量),以使某一(或某些)指標達到最優的一些學科的總稱。隨著學習的深入,博主越來越發現最優化方法的重要性,學習和工作中遇到的大多問題都可以建模成一種最優化模型進行求解,比如我們現在學習的機器學習算法,大部分的機器學習算法的本質都是建立優化模型,通過最優化方法對目標函數(或損失函數)進行優化,從而訓練出最好的模型。常見的最優化方法有梯度下降法、牛頓法和擬牛頓法、共軛梯度法等等。

1. 梯度下降法(Gradient Descent)

梯度下降法是最早最簡單,也是最為常用的最優化方法。梯度下降法實現簡單,當目標函數是凸函數時,梯度下降法的解是全局解。一般情況下,其解不保證是全局最優解,梯度下降法的速度也未必是最快的。梯度下降法的優化思想是用當前位置負梯度方向作為搜索方向,因為該方向為當前位置的最快下降方向,所以也被稱為是”最速下降法“。最速下降法越接近目標值,步長越小,前進越慢。梯度下降法的搜索迭代示意圖如下圖所示:

梯度下降法的缺點:

(1)靠近極小值時收斂速度減慢,如下圖所示;

(2)直線搜索時可能會產生一些問題;

(3)可能會“之字形”地下降。

從上圖可以看出,梯度下降法在接近最優解的區域收斂速度明顯變慢,利用梯度下降法求解需要很多次的迭代。

在機器學習中,基于基本的梯度下降法發展了兩種梯度下降方法,分別為隨機梯度下降法和批量梯度下降法。

比如對一個線性回歸(Linear Logistics)模型,假設下面的h(x)是要擬合的函數,J(theta)為損失函數,theta是參數,要迭代求解的值,theta求解出來了,那最終要擬合的函數h(theta)就出來了。其中m是訓練集的樣本個數,n是特征的個數。

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

(1)將J(theta)對theta求偏導,得到每個theta對應的的梯度:

(2)由于是要最小化風險函數,所以按每個參數theta的梯度負方向,來更新每個theta:

(3)從上面公式可以注意到,它得到的是一個全局最優解,但是每迭代一步,都要用到訓練集所有的數據,如果m很大,那么可想而知這種方法的迭代速度會相當的慢。所以,這就引入了另外一種方法——隨機梯度下降。

對于批量梯度下降法,樣本個數m,x為n維向量,一次迭代需要把m個樣本全部帶入計算,迭代一次計算量為m*n2。

2)隨機梯度下降(Stochastic Gradient Descent,SGD)

(1)上面的風險函數可以寫成如下這種形式,損失函數對應的是訓練集中每個樣本的梯度,而上面批量梯度下降對應的是所有的訓練樣本:

(2)每個樣本的損失函數,對theta求偏導得到對應梯度,來更新theta:

(3)隨機梯度下降是通過每個樣本來迭代更新一次,如果樣本量很大的情況(例如幾十萬),那么可能只用其中幾萬條或者幾千條的樣本,就已經將theta迭代到最優解了,對比上面的批量梯度下降,迭代一次需要用到十幾萬訓練樣本,一次迭代不可能最優,如果迭代10次的話就需要遍歷訓練樣本10次。但是,SGD伴隨的一個問題是噪音較BGD要多,使得SGD并不是每次迭代都向著整體最優化方向。

隨機梯度下降每次迭代只使用一個樣本,迭代一次計算量為n2,當樣本個數m很大的時候,隨機梯度下降迭代一次的速度要遠高于批量梯度下降方法。兩者的關系可以這樣理解:隨機梯度下降方法以損失很小的一部分精確度和增加一定數量的迭代次數為代價,換取了總體的優化效率的提升。增加的迭代次數遠遠小于樣本的數量。

對批量梯度下降法和隨機梯度下降法的總結:

批量梯度下降---最小化所有訓練樣本的損失函數,使得最終求解的是全局的最優解,即求解的參數是使得風險函數最小,但是對于大規模樣本問題效率低下。

隨機梯度下降---最小化每條樣本的損失函數,雖然不是每次迭代得到的損失函數都向著全局最優方向, 但是大的整體的方向是向全局最優解的,最終的結果往往是在全局最優解附近,適用于大規模訓練樣本情況。

2. 牛頓法和擬牛頓法(Newton's method &Quasi-Newton Methods)

1)牛頓法(Newton's method)

牛頓法是一種在實數域和復數域上近似求解方程的方法。方法使用函數f(x)的泰勒級數的前面幾項來尋找方程f(x) = 0的根。牛頓法最大的特點就在于它的收斂速度很快。

具體步驟:

首先,選擇一個接近函數f(x)零點的x0,計算相應的f(x0)和切線斜率f '(x0)(這里f '表示函數f 的導數)。然后我們計算穿過點(x0, f (x0))并且斜率為f'(x0)的直線和x軸的交點的x坐標,也就是求如下方程的解:

我們將新求得的點的x坐標命名為x1,通常x1會比x0更接近方程f (x) = 0的解。因此我們現在可以利用x1開始下一輪迭代。迭代公式可化簡為如下所示:

已經證明,如果f '是連續的,并且待求的零點x是孤立的,那么在零點x周圍存在一個區域,只要初始值x0位于這個鄰近區域內,那么牛頓法必定收斂。并且,如果f ' (x)不為0, 那么牛頓法將具有平方收斂的性能. 粗略的說,這意味著每迭代一次,牛頓法結果的有效數字將增加一倍。

由于牛頓法是基于當前位置的切線來確定下一次的位置,所以牛頓法又被很形象地稱為是"切線法"。牛頓法的搜索路徑(二維情況)如下圖所示:

牛頓法搜索動態示例圖:

關于牛頓法和梯度下降法的效率對比:

從本質上去看,牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。如果更通俗地說的話,比如你想找一條最短的路徑走到一個盆地的最底部,梯度下降法每次只從你當前所處位置選一個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之后,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,能更快地走到最底部。(牛頓法目光更加長遠,所以少走彎路;相對而言,梯度下降法只考慮了局部的最優,沒有全局思想。)

根據wiki上的解釋,從幾何上說,牛頓法就是用一個二次曲面去擬合你當前所處位置的局部曲面,而梯度下降法是用一個平面去擬合當前的局部曲面,通常情況下,二次曲面的擬合會比平面更好,所以牛頓法選擇的下降路徑會更符合真實的最優下降路徑。

注:紅色的牛頓法的迭代路徑,綠色的是梯度下降法的迭代路徑。

牛頓法的優缺點總結:

優點:二階收斂,收斂速度快;

缺點:牛頓法是一種迭代算法,每一步都需要求解目標函數的Hessian矩陣的逆矩陣,計算比較復雜。

2)擬牛頓法(Quasi-Newton Methods)

擬牛頓法是求解非線性優化問題最有效的方法之一,于20世紀50年代由美國Argonne國家實驗室的物理學家W.C.Davidon所提出來。Davidon設計的這種算法在當時看來是非線性優化領域最具創造性的發明之一。不久R. Fletcher和M. J. D. Powell證實了這種新的算法遠比其他方法快速和可靠,使得非線性優化這門學科在一夜之間突飛猛進。

擬牛頓法的本質思想是改善牛頓法每次需要求解復雜的Hessian矩陣的逆矩陣的缺陷,它使用正定矩陣來近似Hessian矩陣的逆,從而簡化了運算的復雜度。擬牛頓法和最速下降法一樣只要求每一步迭代時知道目標函數的梯度。通過測量梯度的變化,構造一個目標函數的模型使之足以產生超線性收斂性。這類方法大大優于最速下降法,尤其對于困難的問題。另外,因為擬牛頓法不需要二階導數的信息,所以有時比牛頓法更為有效。如今,優化軟件中包含了大量的擬牛頓算法用來解決無約束,約束,和大規模的優化問題。

具體步驟:

擬牛頓法的基本思想如下。首先構造目標函數在當前迭代xk的二次模型:

這里Bk是一個對稱正定矩陣,于是我們取這個二次模型的最優解作為搜索方向,并且得到新的迭代點:

其中我們要求步長ak滿足Wolfe條件。這樣的迭代與牛頓法類似,區別就在于用近似的Hesse矩陣Bk代替真實的Hesse矩陣。所以擬牛頓法最關鍵的地方就是每一步迭代中矩陣Bk

的更新。現在假設得到一個新的迭代xk+1,并得到一個新的二次模型:

我們盡可能地利用上一步的信息來選取Bk。具體地,我們要求

從而得到

這個公式被稱為割線方程。常用的擬牛頓法有DFP算法和BFGS算法。

3. 共軛梯度法(Conjugate Gradient)

共軛梯度法是介于最速下降法與牛頓法之間的一個方法,它僅需利用一階導數信息,但克服了最速下降法收斂慢的缺點,又避免了牛頓法需要存儲和計算Hesse矩陣并求逆的缺點,共軛梯度法不僅是解決大型線性方程組最有用的方法之一,也是解大型非線性最優化最有效的算法之一。在各種優化算法中,共軛梯度法是非常重要的一種。其優點是所需存儲量小,具有步收斂性,穩定性高,而且不需要任何外來參數。

具體的實現步驟請參加wiki百科共軛梯度法。

下圖為共軛梯度法和梯度下降法搜索最優解的路徑對比示意圖:

注:綠色為梯度下降法,紅色代表共軛梯度法

MATLAB代碼:

function [x] = conjgrad(A,b,x) r=b-A*x; p=r; rsold=r'*r; for i=1:length(b) Ap=A*p; alpha=rsold/(p'*Ap); x=x+alpha*p; r=r-alpha*Ap; rsnew=r'*r; if sqrt(rsnew)<1e-10 ? ? ? ? ? ? ?break; ? ? ? ?end ? ? ? ?p=r+(rsnew/rsold)*p; ? ? ? ?rsold=rsnew; ? ?endend

4. 啟發式優化方法

啟發式方法指人在解決問題時所采取的一種根據經驗規則進行發現的方法。其特點是在解決問題時,利用過去的經驗,選擇已經行之有效的方法,而不是系統地、以確定的步驟去尋求答案。啟發式優化方法種類繁多,包括經典的模擬退火方法、遺傳算法、蟻群算法以及粒子群算法等等。

還有一種特殊的優化算法被稱之多目標優化算法,它主要針對同時優化多個目標(兩個及兩個以上)的優化問題,這方面比較經典的算法有NSGAII算法、MOEA/D算法以及人工免疫算法等。

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4629

    瀏覽量

    93200
  • 函數
    +關注

    關注

    3

    文章

    4345

    瀏覽量

    62885
  • 梯度
    +關注

    關注

    0

    文章

    30

    瀏覽量

    10335

原文標題:常見的幾種最優化方法

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    焊接技術流程優化方法

    焊接方法的選擇對焊接質量有著直接影響。常見的焊接方法包括電弧焊、氣體保護焊、激光焊等。每種方法都有其特點和適用范圍,選擇合適的焊接方法可以
    的頭像 發表于 01-19 13:52 ?292次閱讀

    交換機常見故障及解決方法 如何優化交換機的性能

    交換機常見故障及解決方法 交換機的常見故障主要包括物理層故障、端口協商及自環問題、VLAN問題、設備兼容性問題以及其他問題。以下是對這些故障及其解決方法的詳細闡述: 物理層故障 硬件故
    的頭像 發表于 12-12 18:02 ?774次閱讀

    常見的機械分選方法有哪些

    機械分選是一種利用物料的物理性質差異(如大小、形狀、密度、磁性等)來實現物料分離的技術。在工業生產中,機械分選廣泛應用于礦物加工、農業、食品加工、回收利用等領域。以下是一些常見的機械分選方法介紹
    的頭像 發表于 09-25 15:38 ?1028次閱讀

    25G/28G重定時器與轉接驅動器在常見應用中的最優化實現

    電子發燒友網站提供《25G/28G重定時器與轉接驅動器在常見應用中的最優化實現.pdf》資料免費下載
    發表于 09-06 11:26 ?0次下載
    25G/28G重定時器與轉接驅動器在<b class='flag-5'>常見</b>應用中的<b class='flag-5'>最優化</b>實現

    常見的測量電池內阻的方法

    測量電池內阻的方法多種多樣,每種方法都有其獨特的原理和適用范圍。以下是一些常見的測量電池內阻的方法
    的頭像 發表于 08-13 18:14 ?3419次閱讀

    深度學習的模型優化與調試方法

    深度學習模型在訓練過程中,往往會遇到各種問題和挑戰,如過擬合、欠擬合、梯度消失或爆炸等。因此,對深度學習模型進行優化與調試是確保其性能優越的關鍵步驟。本文將從數據預處理、模型設計、超參數調整、正則化、模型集成以及調試與驗證等方面,詳細介紹深度學習的模型
    的頭像 發表于 07-01 11:41 ?938次閱讀

    溫度傳感器的常見故障及處理方法

    溫度傳感器是工業和日常生活中非常重要的設備,用于測量和監控溫度。以下是一些常見的溫度傳感器故障及其處理方法: 傳感器讀數不準確 : 原因 :可能是由于傳感器老化、污垢積累、環境干擾或校準不當。 處理
    的頭像 發表于 06-20 09:11 ?4259次閱讀

    常見的電機速度控制方法

      電機速度控制是電機應用領域的核心技術之一,它直接關系到電機運行效率、穩定性和使用壽命。隨著電機技術的不斷發展,電機速度控制方法也日益多樣化。本文將從電機速度控制的基本原理出發,詳細介紹幾種常見的電機速度控制
    的頭像 發表于 06-19 11:50 ?1919次閱讀

    常見的PWM脈寬調制方法

    等設備的精確控制。本文將詳細介紹PWM脈寬調制的方法,包括其基本原理、常見的調制方法以及應用實例等,旨在為讀者提供全面而深入的了解。
    的頭像 發表于 06-19 10:47 ?1239次閱讀

    雷達物位計的常見故障及維修方法

    雷達物位計在使用過程中可能會遇到多種故障,以下是一些常見故障及其維修方法的清晰分點表示和歸納
    的頭像 發表于 06-08 17:22 ?2177次閱讀

    鴻蒙OpenHarmony:【常見編譯問題和解決方法

    常見編譯問題和解決方法
    的頭像 發表于 05-11 16:09 ?2431次閱讀

    常見的DC電源模塊故障及解決方法

    BOSHIDA 常見的DC電源模塊故障及解決方法 DC電源模塊廣泛應用于各種電子設備中,為其提供穩定的直流電源。然而,由于長期使用或其他原因,DC電源模塊有時會出現故障。本文將介紹一些常見
    的頭像 發表于 04-01 14:02 ?1453次閱讀
    <b class='flag-5'>常見</b>的DC電源模塊故障及解決<b class='flag-5'>方法</b>

    電子束光刻的參數優化常見問題介紹

    本文從光刻圖案設計、特征尺寸、電鏡參數優化等方面介紹電子束光刻的參數優化,最后介紹了一些常見問題。
    的頭像 發表于 03-17 14:33 ?1225次閱讀
    電子束光刻的參數<b class='flag-5'>優化</b>及<b class='flag-5'>常見</b>問題<b class='flag-5'>介紹</b>

    熱電偶測回路常見故障及處理方法

    確甚至無法正常工作。本文將介紹熱電偶測回路常見故障及處理方法,以幫助用戶快速排除故障并恢復正常工作。 第一、接線錯誤 接線錯誤是熱電偶測回路中常見的故障之一。熱電偶回路通常包括兩個導線
    的頭像 發表于 02-05 13:46 ?2479次閱讀

    小區門禁系統常見故障及解決方法

    小區門禁系統是保障小區安全的重要設備,但常常會遇到各種故障。本文將從硬件故障、軟件故障及其他常見故障三個方面介紹小區門禁系統的常見故障及解決方法。 硬件故障是小區門禁系統
    的頭像 發表于 02-02 11:00 ?3634次閱讀
    主站蜘蛛池模板: 北原夏美 快播 | 亚洲免费一区二区 | 国内精品久久久久影院男同志 | 特黄特色大片免费播放器试看 | 99热久久久无码国产精品性麻豆 | 高h乱np甄宓 | 男女亲吻摸下面吃奶视频 | 男人到天堂a线牛叉在线 | 一手揉着乳头一手模仿抽插视频 | 手机在线观看毛片 | 三级网址在线播放 | 人妻免费久久久久久久了 | 98久久人妻无码精品系列蜜桃 | 在线视频免费观看 | 日韩精品无码视频一区二区蜜桃 | 亚洲AV精品无码成人 | 老师你奶真大下面水真多 | 91九色精品国产免费 | 国产精品无码人妻在线 | 新影音先锋男人色资源网 | 99热婷婷国产精品综合 | 久久综合中文字幕佐佐木希 | 色欲色香天天天综合 | 草莓湿漉漉是好事还是恶性 | 久久99精品涩AV毛片观看 | A级毛片无码久久精品免费 a级毛片黄免费a级毛片 | 日韩精品特黄毛片免费看 | 久久精品一卡二卡三卡四卡视频版 | 毛片网站网址 | 久久久国产精品免费A片蜜臀 | 午夜啪啪免费视频 | 欧美群交XXXCOM | 耻辱の奴隷淑女中文字幕 | AV一区AV久久AV无码 | 青青草伊人 | 国产午夜电影在线观看不卡 | 中文字幕高清在线中文字幕 | 久久高清内射无套 | 九九热视频 这里有精品 | 亚洲午夜久久久精品影院 | 麻豆国产精品AV色拍综合 |