一直以爲遺傳算法高大上,而後都不明覺厲,決定仍是要學習下這個優化算法。git
遺傳算法主要是模擬咱們高中學的染色體變異、染色體交叉等過程,而後經過優勝劣汰得到最優解。github
遺傳算法中,一個基本單位爲「個體」,一個種羣(系統)中擁有好多個體。每一個個體攜帶兩個內容:染色體與適應度。以羊羣舉例算法
整個牧場 -> 一個種羣函數
一頭羊->一個個體學習
某頭羊決定肥瘦程度的染色體->該個體的染色體(模型中全部變量構成一條染色體,每一個變量就是染色體上一個基因)優化
肥瘦程度->適應度(每一個個體的適應度就至關於這個模型在「這個染色體的變量的值下的解」,評價模型的最優解)視頻
目標->養出最肥的羊(尋找最優解,從中挑出來最大的適應度,它就是在當前狀況下的最優解)it
遺傳算法流程:io
一次迭代包括如下幾個過程:變量
GA的目標函數和限制條件都要人爲根據業務場景調整
視頻參考:https://morvanzhou.github.io/tutorials/machine-learning/evolutionary-algorithm/2-01-genetic-algorithm/