貢獻:Shreya Shetty
LinkedIn簡介:https://www.linkedin.com/in/shreya-shetty-9a070792/
你有沒有想過某些理論如何極大地激發了一項特定的發明?遺傳算法也是如此。我們都聽說過查爾斯·達爾文的著名理論,“適者生存”(最適合的個體被選擇繁殖以產生下一代的後代)自然選擇的進化。
受達爾文理論的啟發,遺傳算法是進化算法的一部分,專門針對優化和搜索問題生成高質量的解決方案,依賴於生物學啟發的算子,如突變,交叉,選擇.
我將在這裏詳細說明概念部分,並為編碼部分留下更多探索的空間。
如前所述,遺傳算法主要用於兩個目的
1.搜索
2.優化
遺傳算法使用迭代過程來獲得最佳解決方案。從多個最佳解決方案中找到最佳解決方案(最佳中的最佳)。與自然選擇相比,適者生存是很自然的。
現在,讓我們試著從進化方麵獲取一些指針,以便清楚地將其與遺傳算法聯係起來。
- 進化通常以迭代的形式從隨機生成的個體群體開始。(迭代將產生新一代)。
- 在每一次迭代或世代中,每個個體的適應度被確定為選擇最適合的。
- 基因組最適合的個體被選擇突變或改變形成新一代,這個過程會一直持續,直到找到最佳解決方案。
流程在兩種情況下終止-
- 當已創建最大代數時
- 達到健康水平即可。
將其與優化場景聯係起來,我們需要確定基因表示我們需要解決的解決方案領域或業務問題。評價標準,即:適應度函數決定一個解決方案的價值。
還讀:React JS教程
例如:
- 我們需要通過增加產品的銷售(遺傳表示)來最大化利潤(適應度函數)。
- 我們需要為分類算法找到最佳的模型超參數(適應度函數),即微調以產生最佳預測
- 構建機器學習模型(遺傳表示)的最優特征(適應度函數)選擇。
該過程大致可分為以下幾個部分:
1.初始化:
隨機產生一個有多條染色體的種群。基因是最小的單位,可以被稱為一組特征(變量)。我們的目標是加入基因以獲得染色體(溶液)。染色體本身抽象地代表一種候選解。染色體的生成是用戶自定義的(0到5之間的數字組合或僅二進製數)。
2.定義fit函數:
現在我們需要定義最佳染色體(溶液)的評價標準。每個染色體被適應度函數分配一個適應度分數,適應度分數代表了解決方案的優劣。假設適應度函數是所有基因的和。因此,和最大的染色體是最適合的。在我們的例子中,染色體的和是12。
3.選擇:
選擇最適合的2條染色體來創造下一代。它們將作為父母為下一代產生後代,下一代自然會繼承這些強大的特征。兩對個體(父母)是根據他們的健康分數選出的。其他染色體被丟棄。這裏有一些選擇親本的方法
- 輪盤選擇
- 等級的選擇
- 穩態選擇
- 錦標賽選擇
- 精英主義的選擇
4.交叉:
跨界就相當於父母生了一個孩子。每條染色體都為新個體提供一定數量的基因。後代是通過父母之間的基因交換而產生的,直到達到交叉點。
- 單點交叉。
- k點交叉(k≥1)
- 統一的交叉。
5.基因突變:
為了避免口是心非(交叉產生與父母相似的後代),為了增強後代的多樣性,我們進行突變。突變算子通過隨機改變子代中某些特征的值來解決這個問題。
重複這些步驟,直到滿足終止條件。
何時應用遺傳算法:
- 存在多個局部最優
- 目標函數不是光滑的(因此導數方法不能應用)
- 參數的數量非常大
- 目標函數是有噪聲的或隨機的
遺傳算法的優點:
- 概念很容易理解
- 模塊化,與應用分離
- 答案會隨著時間的推移而變得更好
- 固有的並行;輕鬆地分布
- 遺傳算法在染色體上工作,染色體是潛在解決方案參數的編碼版本,而不是參數本身。
- 遺傳算法使用從目標函數中獲得的適應度分數,而不使用其他衍生或輔助信息
缺點:
- 遺傳算法在計算方麵可能是昂貴的,因為每個個體的評估需要一個模型的訓練。
- 這些算法可能需要很長時間才能收斂,因為它們具有隨機性。
結論:
由於特征選擇和調優超參數對於任何模型構建過程都是至關重要的,因此使用遺傳算法等先進技術可以極大地提高結果。要了解更多此類概念,請加入beplay2018官网Great Learning的PGP人工智能和機器學習課程.