遺傳演算法及其改進演算法

2021-08-09 22:01:39 字數 2306 閱讀 5351

問題:已知一組特徵,求使損失函式最小的線性加權係數

已知特徵向量的集合

從中要找到加權係數

新的向量

每個類得到乙個點 滿足

分類策略:馬氏距離最小的類就是該點所屬的類

找到b使識別的錯誤率最小

遺傳演算法的術語:

基因型(genotype):

性狀染色體的內部表現即b

表現型(phenotype):

染色體決定的性狀的外部表現,或者說,根據基因型形成的個體的外部表現;

即在b的條件下識別的錯誤率

進化(evolution):

種群逐漸適應生存環境,品質不斷得到改良。生物的進化是以種群的形式進行的。

每一次進化都是一次迭代

適應度(fitness):

度量某個物種對於生存環境的適應程度。

識別的錯誤率

選擇(selection):

以一定的概率

從種群中選擇若干個個體。一般,選擇過程是一種

基於適應度

的優勝劣汰的過程。

即選擇運算元

複製(reproduction):

細胞**時,遺傳物質dna通過複製而轉移到新產生的細胞中,新細胞就繼承了舊細胞的基因。

精英保留機制,即當前最好的b直接複製保留到下一代

交叉(crossover):

兩個染色體的某一相同位置處dna被切斷,前後兩串分別交叉組合形成兩個新的染色體。也稱基因重組或雜交;

即交叉運算元

變異(mutation):

複製時可能(很小的概率)產生某些複製差錯,變異產生新的染色體,表現出新的性狀。

變異運算元

編碼(coding):

dna中遺傳資訊在乙個長鏈上按一定的模式排列。遺傳編碼可看作從表現型到基因型的對映。

分為二進位制編碼和浮點編碼

解碼(decoding):

基因型到表現型的對映。

即b到b的條件下識別的錯誤率的對映

個體(individual):

指染色體帶有特徵的實體;

b種群(population)

:個體的集合,該集合內個體數稱為種群的大小

。b的集合    

交叉運算元:二進位制編碼就是位元位的部分交換,浮點編碼就是求兩個浮點數之間取乙個隨機數

變異運算元:二進位制編碼就是位元位的隨機變換,浮點編碼就是浮點數加減乙個隨機數

選擇運算元:給不同的適應度的個體打分,然後用輪盤賭的方法進行選擇(如3個個體打分為1,2,3,那麼第乙個個體被選擇機率為1/6)

精英策略:把當代表現型最好的個體直接複製到下一代種群。

經典遺傳演算法實現過程

產生種群:隨機產生一組b的集合

計算各個b下的識別的錯誤率識別的錯誤率

利用選擇運算元選擇b

利用交叉運算元的在剩下的b中產生下一代b

利用變異運算元產生新的b

重複2-5

2.多目標優化問題(有多個目標函式的優化問題)

nsga(非支配排序遺傳演算法)

nsgaii(帶精英策略的非支配排序的遺傳演算法)

人臉識別可以是單目標優化問題,如目標函式是總錯誤率,也可以是多目標優化問題,如每個類的錯誤率為目標函式。這裡nsga解決的是多目標優化問題。

2.1 paerot支配關係

2.2 paerot最優解

nsga 和 nsgaii

識別非支配個體及非支配個體排序:

識別在這個集合中是否有兩兩非支配的個體,如果有就把它們分離出來,最後使得每一級的個體為支配關係。

通過上述步驟得到的非支配個體集是種群的第一級非支配層;然後,忽略這些標記的非支配個體,再遵循步驟(1)一(4),就會得到第二級非支配;依此類推,直到整個種群被分類。

虛擬適應度值的確定

在對種群進行非支配排序的過程中,需要給每乙個非支配層指定乙個虛擬適應度值。級數越大,虛擬適應度值越小;反之,虛擬適應度值越大。這樣可以保證在選擇操作中等級較低的非支配個體有更多的機會被選擇進入下一代,使得演算法以最快的速度收斂於最優區域。

而nsga一ii的改進

a)提出了快速非支配排序法,降低了演算法的計算複雜度。由原來的o(mn3)降到o(mn2),其中,m為目標函式個數,n為種群大小。b)提出了擁擠度和擁擠度比較運算元,代替了需要指定共享半徑的適應度共享策略,並在快速排序後的同級比較中作為勝出標準,使準paroet域中的個體能擴充套件到整個pareto域,並均勻分布,保持了種群的多樣性。)c引入精英策略,擴大取樣空間。將父代種群與其產生的子代種群組合,共同競爭產生下一代種群,有利於保持父代中的優良個體進入下一代,並通過對種群中所有個體的分層存放,使得最佳個體不會丟失,迅速提高種群水平。

遺傳演算法及其應用簡介

遺傳演算法 genetic algorithm,ga 是計算數學中用於解決最優化問題的搜尋演算法,是進化演算法的一種。進化演算法最初是借鑑了達爾文進化生物學中的一些現象而發展起來的,這些現象包括遺傳 突變 自然選擇以及雜交等。預備知識 達爾文演化論,遺傳學三大基本定律 查爾斯 達爾文 1809 18...

python遺傳演算法 Python 遺傳演算法實現

關於遺傳演算法 遺傳演算法是仿照自然界中生物進化而產生的一類優化演算法。個人感覺遺傳演算法簡單粗暴,適應性廣。關於遺傳演算法的介紹網上有很多了,這裡按照我自己的理解簡單概括一下。編碼解碼,將待優化的引數編碼為dna序列,最簡單直接的為二進位制編碼 即有兩種鹼基的dna鏈 生成隨機初代 選擇,適應度 ...

遺傳演算法 python 簡書 遺傳演算法

優化的演算法有很多種,從最基本的梯度下降法到現在的一些啟發式演算法,如遺傳演算法 ga 差分演化演算法 de 粒子群演算法 pso 和人工蜂群演算法 abc 舉乙個例子,遺傳演算法和梯度下降 梯度下降和遺傳演算法都是優化演算法,而梯度下降只是其中最基礎的那乙個,它依靠梯度與方向導數的關係計算出最優值...