進化算法VS傳統數學優化方法
-
進化算法是基於種羣的搜索
-
進化算法是隨機的搜索算法,不需要梯度,不需要解析的目標函數
進化算法優勢
-
適用於沒有解析目標函數和無法得到目標函數梯度信息的優化問題
-
基於種羣,一次運行得到一組解,so求解多目標優化問題具有優勢
-
隨機搜索,so搜索全局最優解能力比較強
-
並行計算
-
適用於解決同時有整數和連續變量的混合優化問題
-
處理不確定性有優勢,如魯棒性,由於基於種羣的方法有着隱式的平均在裏面,魯棒性較好
傳統數學規劃方法解決多目標優化問題
-
通過特定的方法將其轉換爲單目標問題,一次求解只能獲得一個帕累託解
機器學習與數學規劃的優化
-
機器學習算法大部分是梯度法及其變形,像牛頓法、梯度下降法、爬山法等
-
增強學習本質是一種動態規劃方法
爲什麼做數據驅動的優化
-
在現實世界中有很多優化問題無法用解析的數學公式來表示,其性能的優劣只能仿真或實驗來驗證
數據驅動的優化與一般的進化優化
-
一般的進化優化算法需要解決的挑戰主要在於問題中含有很多局部極優、大規模、多目標、強約束及不確定量
-
數據驅動的優化首先面對來自數據方面的挑戰,如數據有各種類型,如小數據、大數據、異構數據,數據可能包含很多噪聲,還有數據缺失、流數據、數據保密等問題
優化與建模之間的主要區別
-
建模是爲了擬合數據
-
優化是爲了引導優化算法更快的找到最優解
離線數據優化意義
-
做研究一般分爲兩類,問題驅動的研究和理論驅動的研究
-
離線數據驅動更多是問題驅動的優化,是數據驅動優化問題中比較特殊的一類問題
-
像生產過程的優化問題無法邊優化邊驗證
-
像資源優化問題只能離線數據優化,其數據來源於日常生活,並且是獨立於優化過程而產生的,無法在優化過程中採集想要的數據
汽車設計中的進化算法應用
-
難點:沒有明確的優化目標函數、做仿真和實驗都很耗時或費錢
-
沒法用解析的數學公式來描述優化問題的目標函數,需要用基於數據驅動的方法求解
-
基於小數據驅動的優化,需要將進化算法與先進的機器學習方法(如半監督學習、遷移學習等)進行有機結合
實際應用中問題
-
解決實際問題時問題描述本身很複雜
-
產品設計過程分很多階段。一般來說,在不同的設計階段需要考慮不同的變量和目標函數。
-
在概念設計階段,把大的框架定下來,把某些設計參數定好,這時所使用的仿真工具精度低一些
-
然後對每個部件進行優化,這時設計的變量可能發生改變,目標也可能發生改變,所選擇的仿真工具精度高一些
-
最後涉及每個零件的設計,更加細微,所關注的目標函數和自變量又會改變
機器學習×進化算法
-
怎麼用機器學習幫助進化計算:用深度學習處理大數據,半監督學習、遷移學習解決小數據驅動的優化問題,增強學習解決時變數據驅動的優化問題
-
進化計算來提升機器學習性能:機器學習本質是優化問題,機器學習中的誤差函數或損失函數就是目標函數,在機器學習中,爲了考慮其他目的,如正則化、稀疏化等,就分別把正則化或稀疏的要求有一個超參數累加到損失函數中去,總之就是使用加權的方法把不同目標合成一個目標,所以機器學習是一個多目標優化問題。
機器學習大多采用梯度法及其變形算法,進化算法有如下優勢
-
進化算法更適合解決非凸問題。如機器學習中採用加權法把不同的學習目標加在一起,如果是凸優化問題,梯度法效果好,但如果是非凸問題,通過加權以後解決不了
-
傳統的機器學習只能用於參數優化,用梯度法進行神經網絡的結構優化就比較難了。事實上爲了解決大規模深度網絡的結構優化問題,可以將進化算法和發育模型相結合
-
進化算法可以實現多目標學習
多目標學習的好處
-
傳統機器學習將多個目標整合爲一個目標需要人工設置超參數,但很難確定最優的超參數
-
如果問題是非凸問題,調超參數沒有用
-
採用多目標學習,用帕累託優化的思想,得到不同模型,滿足不同用戶的需求(如可解釋性和精度)
可解釋和精度
-
在機器學習中加正則化就是防止過擬合/防止複雜度過高,會產生稀釋的特性/降低模型複雜度,產生了一定可解釋性
參考資料:
https://mp.weixin.qq.com/s/sHGMW3eLvTpFHkz6UYFCxQ