第五章 演化式計算
5.1 基因演算法(GA)
基因演算法是根據達爾文所提出的「物競天擇,適者生存」自然進化法則,
以模擬生物於自然界進化的過程中,經由生物競爭以及天擇淘汰後,生存下來的 物種繁衍下一代,如此經過一代又一代,最後所存活的物種即為最能適應該自然 環境生存的物種。在基因演算法的過程中,每個染色體(Chromosome)中的基因 (Gene)分別對應到各個 IMF 之權重值,不同染色體就代表著不同的權重值組合,
每一代的所有染色體都會經過選擇、交配、突變三個步驟,接著計算適應函數 (Fitness Function),適應函數代表著每個染色體的情緒語音辨識率,如此反覆,
直到達到固定演化代數或者得到一個可接受的結果時才結束,此時得到的最佳適 應函數所對應的染色體,即為所求的 IMF 之最佳權重值組合。圖 5.1 為 GA 演算 法流程圖。
是
否
圖 5.1 GA 演算法流程圖
5.1.1 選擇
在自然界中,物種會發生同類競爭,競爭的理由可能為了食物,可能為了領 域,可能為了求偶,生存下來的物種為該環境中最優秀的物種,換句話說就是對 於該環境適應性最好的物種。在基因演算法中,根據競爭結果挑選優秀的染色體 以進行交配產生子代,這個挑選的過程稱為選擇(Selection)。一般常用的選擇方 法為輪盤法(Roulette Wheel Selection)。
輪盤法是根據各個染色體的適應函數來做選擇,適應函數值越高,被選擇的 機率也越大,所有的染色體被選擇的機率和為 1。染色體被選擇的機率公式如下:
N
j j i i
f p f
1
(5-1)
初始化染色體
計算適應函數
選擇
交配
突變
達到終止條件 結束
其中p 為第 i 個染色體被選擇的機率,i f 為第 i 個染色體的適應函數,N 為總染i 色體數。每一代都需要重新計算一次 p 。所以輪盤法的做法就像是一個輪盤,i 只是上面的格子大小比例是依據被選擇機率來決定,因此輪盤中有的格子大有的 格子小。
5.1.2 交配
在染色體選擇過後,將挑選得到的一對染色體進行交配(Crossover)並且產生 新的優秀子代。由於 IMF 之權重值為 0~1 之間之實數,因此我們採用實數型的 交配方式。實數型的交配方法是將一對染色體以線性組合的方式進行交配,其實 數交配公式如下:
j i
c gen gen
gen (1) (5-2) 在公式(5-2)中,gen 為兩個不同染色體c gen 和i gen 交配後之子代染色體,j 為 0~1 之間的實數常數,以亂數取之。
5.1.3 突變
突變是自然界中物種演化的法則之一,突變的結果有好有壞。而在基因演算 法之中加入突變機制,目的在於能避免區域最佳解的問題發生。一般而言,演算 法會對最佳的染色體以外的染色體執行突變的計算,這是為了要保留最佳的染色 體。因此,在基因演算法中會設置一個突變率的指標,染色體會經由突變率計算 該染色體是否發生突變,而突變率的大小對於基因演算法收斂速度有所影響,但 是設定太高或太低的突變率容易發生陷入區域最佳解的問題。在本論文中,實數 型染色體突變的方法為檢查染色體中的每個基因是否發生突變,若發生突變,則 該實數基因隨機產生一個在 0~1 範圍內之實數取代原來的基因,若沒發生突變,
則該基因不變。