-
當前位置:首頁 > 創(chuàng)意學院 > 技術(shù) > 專題列表 > 正文
優(yōu)化算法有哪些(路徑優(yōu)化算法有哪些)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于優(yōu)化算法有哪些的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀企業(yè),服務客戶遍布全國,網(wǎng)絡營銷相關(guān)業(yè)務請撥打175-8598-2043,或微信:1454722008
本文目錄:
一、優(yōu)化算法
SGD算法中的一個關(guān)鍵參數(shù)是學習率。之前,我們介紹的SGD使用固定的學習率。在實踐中,有必要隨著時間的推移逐漸降低學習率,因此我們將第 k 步迭代的學習率記作 ϵ k 。
這是因為SGD中梯度估計引入的噪聲源(m 個訓練樣本的隨機采樣)并不會在極小點處消失。相比之下,當我們使用批量梯度下降到達極小點時,整個代價函數(shù)的真實梯度會變得很小,之后為 0,因此批量梯度下降可以使用固定的學習率。保證SGD收斂的一個充分條件是
若 ϵ 0 太大,學習曲線將會劇烈振蕩,代價函數(shù)值通常會明顯增加。溫和的振蕩是良好的,容易在訓練隨機代價函數(shù)(例如使用Dropout的代價函數(shù))時出現(xiàn)。如果學習率太小,那么學習過程會很緩慢。如果初始學習率太低,那么學習可能會卡在一個相當高的代價值。通常,就總訓練時間和最終代價值而言,最優(yōu)初始學習率會高于大約迭代 100 次左右后達到最佳效果的學習率。因此,通常最好是檢測最早的幾輪迭代,選擇一個比在效果上表現(xiàn)最佳的學習率更大的學習率,但又不能太大導致嚴重的震蕩。
雖然隨機梯度下降仍然是非常受歡迎的優(yōu)化方法,但其學習過程有時會很慢。動量方法 (Polyak, 1964) 旨在加速學習,特別是處理高曲率、小但一致的梯度,或是帶噪聲的梯度。動量算法積累了之前梯度指數(shù)級衰減的移動平均,并且繼續(xù)沿該方向移動。動量的效果如圖8.5所示
受 Nesterov 加速梯度算法 (Nesterov, 1983, 2004) 啟發(fā),提出了動量算法的一個變種。這種情況的更新規(guī)則如下:
其中參數(shù) α 和 ϵ 發(fā)揮了和標準動量方法中類似的作用。Nesterov 動量和標準動量之間的區(qū)別體現(xiàn)在梯度計算上。Nesterov 動量中,梯度計算在施加當前速度之后。因此,Nesterov 動量可以解釋為往標準動量方法中添加了一個校正因子。完整的Nesterov動量算法如算法3.2所示
初始點能夠決定算法是否收斂,有些初始點十分不穩(wěn)定,使得該算法會遭遇數(shù)值困難,并完全失敗。當學習收斂時,初始點可以決定學習收斂得多快,以及是否收斂到一個代價高或低的點。此外,差不多代價的點可以具有區(qū)別極大的泛化誤差,初始點也可以影響泛化。
也許完全確知的唯一特性是初始參數(shù)需要在不同單元間 ‘‘破壞對稱性’’。如果具有相同激活函數(shù)的兩個隱藏單元連接到相同的輸入,那么這些單元必須具有不同的初始參數(shù)。如果它們具有相同的初始參數(shù),然后應用到確定性損失和模型的確定性學習算法將一直以相同的方式更新這兩個單元。即使模型或訓練算法能夠使用隨機性為不同的單元計算不同的更新(例如使用Dropout的訓練),通常來說,最好還是初始化每個單元使其和其他單元計算不同的函數(shù)。這或許有助于確保沒有輸入模式
丟失在前向傳播的零空間中,沒有梯度模式丟失在反向傳播的零空間中。每個單元計算不同函數(shù)的目標促使了參數(shù)的隨機初始化。我們可以明確地搜索一大組彼此互不相同的基函數(shù),但這經(jīng)常會導致明顯的計算代價。例如,如果我們有和輸出一樣多的輸入,我們可以使用 Gram-Schmidt 正交化于初始的權(quán)重矩陣,保證每個單元計算彼此非常不同的函數(shù)。在高維空間上使用高熵分布來隨機初始化,計算代價小并且不太可能分配單元計算彼此相同的函數(shù)。
通常情況下,我們可以為每個單元的偏置設(shè)置啟發(fā)式挑選的常數(shù),僅隨機初始化權(quán)重。額外的參數(shù)(例如用于編碼預測條件方差的參數(shù))通常和偏置一樣設(shè)置為啟發(fā)式選擇的常數(shù)。
我們幾乎總是初始化模型的權(quán)重為高斯或均勻分布中隨機抽取的值。高斯或均勻分布的選擇似乎不會有很大的差別,但也沒有被詳盡地研究。然而,初始分布的大小確實對優(yōu)化過程的結(jié)果和網(wǎng)絡泛化能力都有很大的影響。
更大的初始權(quán)重具有更強的破壞對稱性的作用,有助于避免冗余的單元。它們也有助于避免在每層線性成分的前向或反向傳播中丟失信號——矩陣中更大的值在矩陣乘法中有更大的輸出。如果初始權(quán)重太大,那么會在前向傳播或反向傳播中產(chǎn)生爆炸的值。在循環(huán)網(wǎng)絡中,很大的權(quán)重也可能導致混沌(chaos)(對于輸入中很小的擾動非常敏感,導致確定性前向傳播過程表現(xiàn)隨機)。在一定程度上,梯度爆炸問題可以通過梯度截斷來緩解(執(zhí)行梯度下降步驟之前設(shè)置梯度的閾值)。較大的權(quán)
重也會產(chǎn)生使得激活函數(shù)飽和的值,導致飽和單元的梯度完全丟失。這些競爭因素決定了權(quán)重的理想初始大小。
也有助于避免在每層線性成分的前向或反向傳播中丟失信號——矩陣中更大的值在矩陣乘法中有更大的輸出。如果初始權(quán)重太大,那么會在前向傳播或反向傳播中產(chǎn)生爆炸的值。在循環(huán)網(wǎng)絡中,很大的權(quán)重也可能導致混沌(chaos)(對于輸入中很小的擾動非常敏感,導致確定性前向傳播過程表現(xiàn)隨機)。在一定程度上,梯度爆炸問題可以通過梯度截斷來緩解(執(zhí)行梯度下降步驟之前設(shè)置梯度的閾值)。較大的權(quán)重也會產(chǎn)生使得激活函數(shù)飽和的值,導致飽和單元的梯度完全丟失。這些競爭因素決定了權(quán)重的理想初始大小。
有些啟發(fā)式方法可用于選擇權(quán)重的初始大小。一種初始化 m 個輸入和 n 輸出的全連接層的權(quán)重的啟發(fā)式方法是從分布 U(−1/√ m ,
1/√ m ) 中采樣權(quán)重,而 Glorot and Bengio 建議使用標準初始化
后一種啟發(fā)式方法初始化所有的層,折衷于使其具有相同激活方差和使其具有相同梯度方差之間。這假設(shè)網(wǎng)絡是不含非線性的鏈式矩陣乘法,據(jù)此推導得出。現(xiàn)實的神經(jīng)網(wǎng)絡顯然會違反這個假設(shè),但很多設(shè)計于線性模型的策略在其非線性對應中的效果也不錯。
數(shù)值范圍準則的一個缺點是,設(shè)置所有的初始權(quán)重具有相同的標準差,例如1/√ m ,會使得層很大時每個單一權(quán)重會變得極其小。Martens (2010) 提出了一種被稱為稀疏初始化(sparse initialization)的替代方案,每個單元初始化為恰好有 k 個非零權(quán)重。這個想法保持該單元輸入的總數(shù)量獨立于輸入數(shù)目 m,而不使單一權(quán)重元素的大小隨 m 縮小。稀疏初始化有助于實現(xiàn)單元之間在初始化時更具多樣性。但是,獲得較大取值的權(quán)重也同時被加了很強的先驗。因為梯度下降需要很長時間縮小 ‘‘不正確’’ 的大值,這個初始化方案可能會導致某些單元出問題,例如maxout單元有幾個過濾器,互相之間必須仔細調(diào)整。
Delta-bar-delta 算法 (Jacobs, 1988) 是一個早期的在訓練時適應模型參數(shù)各自學習率的啟發(fā)式方法。該方法基于一個很簡單的想法,如果損失對于某個給定模型參數(shù)的偏導保持相同的符號,那么學習率應該增加。如果對于該參數(shù)的偏導變化了符號,那么學習率應減小。當然,這種方法只能應用于全批量優(yōu)化中。
AdaGrad 算法,如算法8.4所示,獨立地適應所有模型參數(shù)的學習率,縮放每個參數(shù)反比于其所有梯度歷史平方值總和的平方根 (Duchi et al., 2011)。具有損失最大偏導的參數(shù)相應地有一個快速下降的學習率,而具有小偏導的參數(shù)在學習率上有相對較小的下降。凈效果是在參數(shù)空間中更為平緩的傾斜方向會取得更大的進步。
在凸優(yōu)化背景中,AdaGrad 算法具有一些令人滿意的理論性質(zhì)。然而,經(jīng)驗上已經(jīng)發(fā)現(xiàn),對于訓練深度神經(jīng)網(wǎng)絡模型而言,從訓練開始時積累梯度平方會導致有效學習率過早和過量的減小。AdaGrad在某些深度學習模型上效果不錯,但不是全部。
RMSProp 算法 (Hinton, 2012) 修改 AdaGrad 以在非凸設(shè)定下效果更好,改變梯度積累為指數(shù)加權(quán)的移動平均。AdaGrad旨在應用于凸問題時快速收斂。當應用于非凸函數(shù)訓練神經(jīng)網(wǎng)絡時,學習軌跡可能穿過了很多不同的結(jié)構(gòu),最終到達一個局部是凸碗的區(qū)域。AdaGrad 根據(jù)平方梯度的整個歷史收縮學習率,可能使得學習率在達到這樣的凸結(jié)構(gòu)前就變得太小了。RMSProp 使用指數(shù)衰減平均以丟棄遙遠過去的歷史,使其能夠在找到凸碗狀結(jié)構(gòu)后快速收斂,它就像一個初始化于該碗狀結(jié)構(gòu)的 AdaGrad 算法實例。
RMSProp 的標準形式如算法8.5所示,結(jié)合 Nesterov 動量的形式如算法8.6所示。相比于 AdaGrad,使用移動平均引入了一個新的超參數(shù)ρ,用來控制移動平均的長度范圍。經(jīng)驗上,RMSProp 已被證明是一種有效且實用的深度神經(jīng)網(wǎng)絡優(yōu)化算法。目前它是深度學習從業(yè)者經(jīng)常采用的優(yōu)化方法之一。
Adam (Kingma and Ba, 2014) 是另一種學習率自適應的優(yōu)化算法,最好被看作結(jié)合 RMSProp 和具有一些重要區(qū)別的動量的變種。首先,在 Adam 中,動量直接并入了梯度一階矩(指數(shù)加權(quán))的估計。將動量加入 RMSProp 最直觀的方法是將動量應用于縮放后的梯度。結(jié)合縮放的動量使用沒有明確的理論動機。其次,Adam 包括偏置修正,修正從原點初始化的一階矩(動量項)和(非中心的)二階矩的估計(算法8.7)。RMSProp 也采用了(非中心的)二階矩估計,然而缺失了修正因子。因此,不像 Adam,RMSProp 二階矩估計可能在訓練初期有很高的偏置。Adam 通常被認為對超參數(shù)的選擇相當魯棒,盡管學習率有時需要從建議的默認修改。
目前,最流行并且使用很高的優(yōu)化算法包括 SGD、具動量的 SGD、RMSProp、具動量的 RMSProp、AdaDelta 和 Adam。
二、優(yōu)化算法是什么呢?
優(yōu)化算法是指對算法的有關(guān)性能進行優(yōu)化,如時間復雜度、空間復雜度、正確性、健壯性。
大數(shù)據(jù)時代到來,算法要處理數(shù)據(jù)的數(shù)量級也越來越大以及處理問題的場景千變?nèi)f化。為了增強算法的處理問題的能力,對算法進行優(yōu)化是必不可少的。算法優(yōu)化一般是對算法結(jié)構(gòu)和收斂性進行優(yōu)化。
同一問題可用不同算法解決,而一個算法的質(zhì)量優(yōu)劣將影響到算法乃至程序的效率。算法分析的目的在于選擇合適算法和改進算法。一個算法的評價主要從時間復雜度和空間復雜度來考慮。
遺傳算法
遺傳算法也是受自然科學的啟發(fā)。這類算法的運行過程是先隨機生成一組解,稱之為種群。在優(yōu)化過程中的每一步,算法會計算整個種群的成本函數(shù),從而得到一個有關(guān)題解的排序,在對題解排序之后,一個新的種群----稱之為下一代就被創(chuàng)建出來了。首先,我們將當前種群中位于最頂端的題解加入其所在的新種群中,稱之為精英選拔法。新種群中的余下部分是由修改最優(yōu)解后形成的全新解組成。
常用的有兩種修改題解的方法。其中一種稱為變異,其做法是對一個既有解進行微小的、簡單的、隨機的改變;修改題解的另一種方法稱為交叉或配對,這種方法是選取最優(yōu)解種的兩個解,然后將它們按某種方式進行組合。爾后,這一過程會一直重復進行,直到達到指定的迭代次數(shù),或者連續(xù)經(jīng)過數(shù)代后題解都沒有改善時停止。
三、多目標優(yōu)化算法有哪些?
主要內(nèi)容包括:多目標進化算法、多目標粒子群算法、其他多目標智能優(yōu)化算法、人工神經(jīng)網(wǎng)絡優(yōu)化、交通與物流系統(tǒng)優(yōu)化、多目標生產(chǎn)調(diào)度和電力系統(tǒng)優(yōu)化及其他。
四、什么是智能優(yōu)化算法
群體智能優(yōu)化算法是一類基于概率的隨機搜索進化算法,各個算法之間存在結(jié)構(gòu)、研究內(nèi)容、計算方法等具有較大的相似性。因此,群體智能優(yōu)化算法可以建立一個基本的理論框架模式:
Step1:設(shè)置參數(shù),初始化種群;
Step2:生成一組解,計算其適應值;
Step3:由個體最有適應著,通過比較得到群體最優(yōu)適應值;
Step4:判斷終止條件示否滿足?如果滿足,結(jié)束迭代;否則,轉(zhuǎn)向Step2;
各個群體智能算法之間最大不同在于算法更新規(guī)則上,有基于模擬群居生物運動步長更新的(如PSO,AFSA與SFLA),也有根據(jù)某種算法機理設(shè)置更新規(guī)則(如ACO)。
擴展資料
優(yōu)化算法有很多,經(jīng)典算法包括:有線性規(guī)劃,動態(tài)規(guī)劃等;改進型局部搜索算法包括爬山法,最速下降法等,模擬退火、遺傳算法以及禁忌搜索稱作指導性搜索法。而神經(jīng)網(wǎng)絡,混沌搜索則屬于系統(tǒng)動態(tài)演化方法。
優(yōu)化思想里面經(jīng)常提到鄰域函數(shù),它的作用是指出如何由當前解得到一個(組)新解。其具體實現(xiàn)方式要根據(jù)具體問題分析來定。
參考資料來源:百度百科-智能算法
以上就是關(guān)于優(yōu)化算法有哪些相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
濟南官網(wǎng)SEO技巧(濟南seo網(wǎng)站排名優(yōu)化工具)
官網(wǎng)關(guān)鍵詞優(yōu)化價格(關(guān)鍵詞優(yōu)化的價格查詢)
優(yōu)化網(wǎng)站排名就去云尚網(wǎng)絡(云尚優(yōu)算是什么平臺)