一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

常見的最優(yōu)化方法介紹

深度學(xué)習(xí)自然語言處理 ? 來源:深度學(xué)習(xí)自然語言處理 ? 作者:深度學(xué)習(xí)自然語言 ? 2020-11-24 09:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

目錄

梯度下降法

牛頓法和擬牛頓法

共軛梯度法

啟發(fā)式優(yōu)化方法

解決約束優(yōu)化問題——拉格朗日乘數(shù)法

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

1. 梯度下降法(Gradient Descent)

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

梯度下降法的缺點:

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

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

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

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

在機器學(xué)習(xí)中,基于基本的梯度下降法發(fā)展了兩種梯度下降方法,分別為隨機梯度下降法和批量梯度下降法。

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

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

(1)將J(theta)對theta求偏導(dǎo),得到每個theta對應(yīng)的的梯度:

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

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

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

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

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

(2)每個樣本的損失函數(shù),對theta求偏導(dǎo)得到對應(yīng)梯度,來更新theta:

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

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

對批量梯度下降法和隨機梯度下降法的總結(jié):

批量梯度下降---最小化所有訓(xùn)練樣本的損失函數(shù),使得最終求解的是全局的最優(yōu)解,即求解的參數(shù)是使得風(fēng)險函數(shù)最小,但是對于大規(guī)模樣本問題效率低下。

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

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

1)牛頓法(Newton's method)

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

具體步驟:

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

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

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

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

牛頓法搜索動態(tài)示例圖:

關(guān)于牛頓法和梯度下降法的效率對比:

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

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

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

牛頓法的優(yōu)缺點總結(jié):

優(yōu)點:二階收斂,收斂速度快;

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

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

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

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

具體步驟:

擬牛頓法的基本思想如下。首先構(gòu)造目標(biāo)函數(shù)在當(dāng)前迭代xk的二次模型:

這里Bk是一個對稱正定矩陣,于是我們?nèi)∵@個二次模型的最優(yōu)解作為搜索方向,并且得到新的迭代點:

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

的更新?,F(xiàn)在假設(shè)得到一個新的迭代xk+1,并得到一個新的二次模型:

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

從而得到

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

3. 共軛梯度法(Conjugate Gradient)

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

具體的實現(xiàn)步驟請參加wiki百科共軛梯度法。

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

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

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. 啟發(fā)式優(yōu)化方法

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

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

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4711

    瀏覽量

    95446
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64947
  • 梯度
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    10497

原文標(biāo)題:常見的幾種最優(yōu)化方法

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    效率最優(yōu)的感應(yīng)電機無差拍直接轉(zhuǎn)矩控制

    摘要:提出了一種感應(yīng)電機無差拍直接轉(zhuǎn)矩控制系統(tǒng)的效率最優(yōu)控制方法。在定子磁鏈定向坐標(biāo)系中以定子磁鏈和轉(zhuǎn)子磁鏈為狀態(tài)變量,導(dǎo)出了空間矢量無差拍直接轉(zhuǎn)矩控制的電壓控制律。分析了電機損耗與轉(zhuǎn)矩、轉(zhuǎn)速和定子
    發(fā)表于 07-16 19:02

    無刷直流電機滑模觀測器參數(shù)優(yōu)化設(shè)計方法

    摘要:滑模反電勢觀測器的增益參數(shù)會影響觀測器的收斂速度以及動態(tài)響應(yīng)性能,常見的設(shè)計方法是基于觀測器穩(wěn)定性理論進(jìn)行設(shè)計。提出一種利用遺傳算法在穩(wěn)定域內(nèi)搜索觀測誤差最小的增益參數(shù)的新方法,既減少了參數(shù)
    發(fā)表于 06-27 16:48

    氮化鎵電源芯片U8722CAS打嗝模式實現(xiàn)噪音和紋波最優(yōu)化

    氮化鎵電源芯片U8722CAS打嗝模式實現(xiàn)噪音和紋波最優(yōu)化打嗝模式本質(zhì)為電源保護機制(如短路保護),優(yōu)化需在保障可靠性的前提下進(jìn)行。高頻噪聲問題需協(xié)同芯片設(shè)計、封裝工藝及PCB布局綜合解決。氮化鎵
    的頭像 發(fā)表于 06-12 15:46 ?475次閱讀
    氮化鎵電源芯片U8722CAS打嗝模式實現(xiàn)噪音和紋波<b class='flag-5'>最優(yōu)化</b>

    數(shù)字IC設(shè)計:方法、技巧與實踐

    了如何在RTL設(shè)計中考慮綜合和后端設(shè)計的問題;然后,給出了一些最常見的設(shè)計實例和代碼;最后,介紹了仿真的相關(guān)知識。第5章為邏輯綜合和相關(guān)技術(shù)。主要介紹了綜合工具的功能和基本使用方法,包
    發(fā)表于 05-28 16:06

    VirtualLab 應(yīng)用:傾斜光柵的參數(shù)優(yōu)化及公差分析

    ,也稱為RCWA)對傾斜光柵的優(yōu)化方法。優(yōu)化后的光柵的衍射效率超過90%。此外,還研究了其對光柵的傾角偏差和圓角邊緣的影響。 建模任務(wù) **優(yōu)化 ** 為了為傾斜光柵找到一組
    發(fā)表于 05-22 08:52

    常見的PFC拓?fù)浼軜?gòu)及控制方法

    本期,芯朋微技術(shù)團隊將為各位fans分享常見的PFC拓?fù)浼軜?gòu)及控制方法,為設(shè)計選型提供參考。
    的頭像 發(fā)表于 04-27 18:03 ?3296次閱讀
    <b class='flag-5'>常見</b>的PFC拓?fù)浼軜?gòu)及控制<b class='flag-5'>方法</b>

    VirtualLab Fusion應(yīng)用:參數(shù)優(yōu)化文檔介紹

    (相關(guān)性或優(yōu)先級) → 公共價值函數(shù)值=目標(biāo)函數(shù)值,定義為所有約束的加權(quán)和。 權(quán)重與貢獻(xiàn) **優(yōu)化方法的選擇 ** 所有提供的優(yōu)化都旨在使目標(biāo)函數(shù)值最小化。 1.選擇優(yōu)化策略(局部或
    發(fā)表于 02-28 08:44

    如何優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率

    優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率是提高模型訓(xùn)練效率和性能的關(guān)鍵步驟。以下是一些優(yōu)化BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率的方法: 一、理解學(xué)習(xí)率的重要性 學(xué)習(xí)率決定了模型參數(shù)在每次迭代時更新的幅度。過大的學(xué)習(xí)率可能導(dǎo)致模型在
    的頭像 發(fā)表于 02-12 15:51 ?948次閱讀

    帶通濾波器的設(shè)計步驟與優(yōu)化方法

    帶通濾波器作為信號處理領(lǐng)域的重要組件,其設(shè)計步驟與優(yōu)化方法對于確保濾波器性能滿足特定應(yīng)用需求至關(guān)重要。本文將詳細(xì)闡述帶通濾波器的設(shè)計步驟,并深入探討優(yōu)化方法,以期為相關(guān)領(lǐng)域的研究者和工
    的頭像 發(fā)表于 02-05 16:48 ?1718次閱讀

    焊接技術(shù)流程優(yōu)化方法

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

    交換機常見故障及解決方法 如何優(yōu)化交換機的性能

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

    AI大模型的性能優(yōu)化方法

    AI大模型的性能優(yōu)化是一個復(fù)雜而關(guān)鍵的任務(wù),涉及多個方面和策略。以下是一些主要的性能優(yōu)化方法: 一、模型壓縮與優(yōu)化 模型蒸餾(Model Distillation) 原理:通過訓(xùn)練一個
    的頭像 發(fā)表于 10-23 15:01 ?2434次閱讀

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

    機械分選是一種利用物料的物理性質(zhì)差異(如大小、形狀、密度、磁性等)來實現(xiàn)物料分離的技術(shù)。在工業(yè)生產(chǎn)中,機械分選廣泛應(yīng)用于礦物加工、農(nóng)業(yè)、食品加工、回收利用等領(lǐng)域。以下是一些常見的機械分選方法介紹
    的頭像 發(fā)表于 09-25 15:38 ?1943次閱讀

    25G/28G重定時器與轉(zhuǎn)接驅(qū)動器在常見應(yīng)用中的最優(yōu)化實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《25G/28G重定時器與轉(zhuǎn)接驅(qū)動器在常見應(yīng)用中的最優(yōu)化實現(xiàn).pdf》資料免費下載
    發(fā)表于 09-06 11:26 ?0次下載
    25G/28G重定時器與轉(zhuǎn)接驅(qū)動器在<b class='flag-5'>常見</b>應(yīng)用中的<b class='flag-5'>最優(yōu)化</b>實現(xiàn)

    常見的測量電池內(nèi)阻的方法

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