浅谈对算法收敛性以及收敛速度的理解
最近在看資料時(shí),遇到了這樣的說(shuō)法“某某算法具有收斂快的優(yōu)點(diǎn)”,于是便有點(diǎn)疑惑:收斂不是函數(shù)或者數(shù)列才有的概念嗎?用到算法上是代表什么意思呢?遂查閱資料,將一點(diǎn)理解記錄如下。
?
算法收斂性
算法的收斂性就是指某個(gè)算法能否在迭代時(shí)間趨于無(wú)窮的假設(shè)下,最終找到問(wèn)題的全局最優(yōu)解。這里有一點(diǎn)要明確:算法收斂性是迭代法中的一個(gè)概念,所以主要針對(duì)跟迭代相關(guān)的算法,如進(jìn)化算法。對(duì)于能夠一次求解的直接法,就不在算法收斂的討論范圍之內(nèi)了。
?
算法收斂速度
知道了算法收斂性的含義,再來(lái)理解算法收斂速度就比較容易了。百度百科對(duì)算法收斂速度是這樣解釋的:
在數(shù)值分析中, 一個(gè)收斂序列向其極限逼近的速度稱為收斂速度(Rate of convergence). 該概念多用于最優(yōu)化算法中; 其被定義為一個(gè)迭代序列向其局部最優(yōu)值逼近 (假設(shè)計(jì)算過(guò)程收斂, 并能達(dá)到最優(yōu)值) 的速度, 是評(píng)價(jià)一個(gè)迭代法于該問(wèn)題中發(fā)揮的性能的一個(gè)重要指針。
說(shuō)白了,算法收斂速度就是指算法需要經(jīng)過(guò)多少次迭代才能得到最優(yōu)解。很明顯,有些算法的收斂性好,有些算法的收斂性差,所謂收斂性好就是收斂得快,快速收斂的意義就是使用較少的迭代次數(shù)便可得到相對(duì)精確的值,或者說(shuō)是在允許的時(shí)間內(nèi)得到滿意結(jié)果。因此,能以較快速度收斂于最優(yōu)解的算法,才能稱得上一個(gè)好算法。
?
最后再貼一段關(guān)于收斂性的論述來(lái)幫助理解:
僅僅知道算法是收斂的還遠(yuǎn)遠(yuǎn)不夠,收斂性的結(jié)論是建立在無(wú)窮迭代時(shí)間基礎(chǔ)上的,而實(shí)際應(yīng)用中的計(jì)算迭代時(shí)間是有限的。收斂性研究只能回答進(jìn)化算法在迭代無(wú)窮次后最終會(huì)不會(huì)找到全局最優(yōu)解,而不能回答算法實(shí)際究竟要花多長(zhǎng)時(shí)間(迭代多少次)才能找到最優(yōu)解,很難在實(shí)踐中用于指導(dǎo)算法設(shè)計(jì)和改進(jìn)。
?
關(guān)于如何證明一個(gè)算法的收斂性以及對(duì)收斂速度的分析,有興趣的可以看以下資料:
1.https://xueshu.baidu.com/usercenter/paper/show?paperid=f70e65d2b08ddb59a2602e9ff1593033&site=xueshu_se
2.https://kns.cnki.net/kcms/detail/detail.aspx?dbcode=CDFD&dbname=CDFD1214&filename=1013320373.nh&v=Mdg9jxBMyFAAVIXJAHoc4RLlqgHadtKNiNI9aJBOO6JygAqnN6SovcLK56hCzkrY
3.https://blog.csdn.net/q__y__L/article/details/51834694?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-2&spm=1001.2101.3001.4242
?
參考資料:
?
幾篇有關(guān)算法收斂性的文獻(xiàn)分享:鏈接:https://pan.baidu.com/s/1QkyiKEzlFF7LF9JsaQOG7w? ? ? 提取碼:egef?
總結(jié)
以上是生活随笔為你收集整理的浅谈对算法收敛性以及收敛速度的理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梯度下降收敛性分析与证明
- 下一篇: 拓扑空间中的收敛性