傳統優化演算法與智能演算法如何界定其區別?有相關這類的書籍可以推薦嗎?
最近學了《最優化理論與演算法》這門課,所以想請教一下,這一類演算法與新興的智能演算法(我的定義是:例如神經網路、SVM這樣的「沒有辦法的辦法(這門課老師原話)」)如何區分?兩者各有什麼樣的優劣,有哪些參考書籍和資料可以閱讀?
已經在看陳寶林老師的《最優化理論與演算法》了。
簡答:
1. 傳統優化演算法一般是針對結構化的問題,有較為明確的問題和條件描述,如線性規劃,二次規劃,整數規劃,混合規劃,帶約束和不帶約束條件等,即有清晰的結構信息;而智能優化演算法一般針對的是較為普適的問題描述,普遍比較缺乏結構信息。
2. 傳統優化演算法不少都屬於凸優化範疇,有唯一明確的全局最優點;而智能優化演算法針對的絕大多數是多極值問題,如何防止陷入局部最優而儘可能找到全局最優是採納智能優化演算法的根本原因:對於單極值問題,傳統演算法大部分時候已足夠好,而智能演算法沒有任何優勢;對多極值問題,智能優化演算法通過其有效設計可以在跳出局部最優和收斂到一個點之間有個較好的平衡,從而實現找到全局最優點,但有的時候局部最優也是可接受的,所以傳統演算法也有很大應用空間和針對特殊結構的改進可能。
3. 傳統優化演算法一般是確定性演算法,有固定的結構和參數,計算複雜度和收斂性可做理論分析;智能優化演算法大多屬於啟發性演算法,能定性分析卻難定量證明,且大多數演算法基於隨機特性,其收斂性一般是概率意義上的,實際性能不可控,往往收斂速度也比較慢,計算複雜度較高。
btw,你老師的原話「沒有辦法的辦法」基本上是對的,如果有確定的問題結構描述和對應的傳統演算法(有理論證明可保證其可靠性),誰會去選計算又複雜結果又不可控的智能演算法呢?只有在傳統演算法很難得到一個可接受的最優解(實際問題中許多時候並不要求全局最優,智能演算法也並不保證100%找到全局最優)的時候,智能演算法作為一個可選項確實是沒有辦法的辦法。為什麼智能演算法的研究更熱門呢,因為前者剩下的都是硬骨頭了又需要強大的數學功底才能小小的進步一點,而智能演算法本科生拍腦袋就能寫篇文章——雖然高質量的文章依然是很難的。但另一半話不準確,SVM和神經網路並不是「優化」演算法,這倆一般是用做分類問題或回歸——倒是如何訓練神經網路是個優化問題,傳統BP演算法並不能保證全局最優(但並不妨礙其使用,因為大多數時候也能得到一個可接受的解),許多許多年前就有人提出用智能演算法來訓練神經網路的參數。感覺傳統的演算法跟智能演算法最大的不同在於只能演算法得到的大多是概率解 換句話說用比傳統演算法快很多的速度 得到一個 近似是最優的解
優點 快 簡單易懂缺點 未必最優 但是可以再多用一點時間來提高正確率 但是永遠達不到100%推薦閱讀:
※求推薦從事臨床試驗行業的、適合新人看的、能增長專業知識的書或者論壇?
※有哪些自學紡織學的書籍值得推薦?
※想問問大家有什麼提高文學素養的書籍推薦,感覺自己太無知?
※哪一本書曾顛覆了你以前的想法?為什麼?