Machine-Learning
什麼時候遺傳算法是優化的好選擇?
遺傳算法是優化方法的一種形式。通常隨機梯度下降及其導數是函數優化的最佳選擇,但有時仍會使用遺傳算法。例如,美國宇航局 ST5 航天器的天線是使用遺傳算法創建的:
什麼時候遺傳優化方法比更常見的梯度下降方法更好?
遺傳算法 (GA) 是一系列啟發式算法,在許多情況下,它們在經驗上擅長提供體面的答案,儘管它們很少是給定領域的最佳選擇。
您提到了基於導數的算法,但即使沒有導數,也有很多無導數優化算法的性能比 GA 好。有關一些想法,請參見這個和這個答案。
許多標準優化算法的共同點(甚至是無導數的方法)是假設基礎空間是一個光滑的流形(可能具有一些離散維度),並且要優化的函數在某種程度上表現良好。
然而,並不是所有的函數都定義在一個光滑的流形上。有時您想對圖或其他離散結構進行優化(組合優化)——這裡有專門的算法,但 GA 也可以工作。
您越是使用在復雜、離散結構上定義的函數,GA 就越有用,特別是如果您可以找到遺傳算子在其中發揮最佳作用的表示(這需要大量的手動調整和領域知識)。
當然,未來可能會導致完全忘記 GA,並開發將離散空間映射到連續空間的方法,並使用我們對連續表示的優化機制。