淺談機器學習中的優生觀念 — 遺傳演算

vc
躬行學社
Published in
5 min readDec 18, 2018
Photo by David Clode on Unsplash

生物的遺傳依靠基因的傳承,是近百多年來的主流認知,由十九世紀孟德爾的碗豆雜交實驗,乃至近數十年間的基因編輯實驗,隨著科技的進步,我們能夠獲得更多可靠的資訊,用以豐富及完善遺傳基因這套模型。

既然我們得知基因大致上控制了生物個體的成長,假設我們可以任意調配基因,製造出優秀的後代,令它們能夠更快更穩妥地適應我們給予的生活環境,那麼我們應該如何下手?

求學的確是求分數

以優生角度來看,不優不生,資源就盡可能留給較優秀的個體,逐步提高下一代中優秀個體的質素及數量。揀選出優秀個體,就順理成章地成為了每一次佚代的第一步。揀選的準則在於個體有多適應給予的環境,在遺傳演算(genetic algorithm)中,通常由一個量度函數來評分,量度函數會隨不同的應用而變化,可以是個體的可存活歲數,或是個體做出自毀行為的傾向等。

優秀個體獲派資源後,便開始繁衍與之相似的下一代。參照生物遺傳學的認識,典型遺傳演算摹擬了當中的交叉(crossover)及突變(mutation)兩類運算。突變運算影響單一個體的基因,以較少量的改變作出局部的搜尋,下文將作進一步介紹;交叉運算涉及複數個體間的資料重整,有學者[1][2]認為是遺傳演算中舉足輕重的概念,然而當中情況較為複雜,僅於茲略述。

機器學習的好朋友就只有梯度下降?

借鑑Uber最近發表的研究[3]上的做法,可說是全盤使用概率來達成學習,為了造出相似的個體,須在部份基因中加入雜訊,仿效基因突變的狀況。雜訊幅度的大小,會直接影響與下一代個體之間的相似度,亦成為當中一個可供操控的參數,調控深化某基因的作用與發掘其他可能性的取捨。

舉例說,要用一條10米長的繩索圈出最大面積的矩形,我們可以這樣以遺傳演算來找出矩形的長度。假切我們持續地保留兩個能圈出最大面積的長度,隨機以2及3作為第一代個體,各自加入些許雜訊突變成下一代,又假切結果為1.87、2.09、2.74及3.05,計算出的面積分別為5.8531、6.0819、6.1924及5.9475,最大的面積是6.0819及6.1924,因而保留2.09及2.74兩個長度,如此類推,保留的長度會越來越接近最佳答案,即2.5。

“Particular individuals do not recur, but their building blocks do” — John Henry Holland

以上的簡單例子,每個個體僅需要一個基因單位來代表,不用考慮太多基因編碼的實際操作。個體的特性如何地以基因表示,編碼應該如何設計,很大程度視乎應用到一個怎麼樣的課題上。或許,我們能在building block hypothesis[4]中窺出一絲端倪,盡可能地將基因組所導致的在評分上的優勢,或多或少帶到由它所構築起的較大的基因組裡。

編碼方式的選擇,無形中左右我們使用基因變異運算的方式。以交叉運算而言,它的設計原意是在複數個體中各取所長,將之合而為一,是深入找尋最佳解的方法之一,但若然編碼方式不利於交叉運算,例如所謂deception[5]的情況,個體的表現與基因排序無相關性,導致組合出來的個體並不一定集各家之大成,甚或最壞情況跟隨機抽樣同一效率。

基因編碼及各樣基因變異運算的選擇,須因應不同課題,這樣大大提高遺傳演算在應用方面的難度。然而,遺傳演算容許純粹以概率的方式來解決最佳解的問題,這是遺傳演算的優勢,相比起常見的梯度下降(gradient descent),免卻了可微性(differentiability)的掣肘。再者,個體之間甚少互相依賴,亦有利於並行運算。

參考資料

[1] Doerr, B., Happ, E., & Klein, C. (2012). Crossover can provably be useful in evolutionary computation. Theoretical Computer Science, 425, 17–33.

[2] Yoon, Y., Kim, Y. H., Moraglio, A., & Moon, B. R. (2012). A theoretical and empirical study on unbiased boundary-extended crossover for real-valued representation. Information Sciences, 183(1), 48–65.

[3] Such, F. P., Madhavan, V., Conti, E., Lehman, J., Stanley, K. O., & Clune, J. (2017). Deep neuroevolution: genetic algorithms are a competitive alternative for training deep neural networks for reinforcement learning. arXiv preprint arXiv:1712.06567.

[4] Goldberg, D. E. (1989). Genetic algorithms in search, optimization, and machine learning.

[5] Angeline, P. J., Saunders, G. M., & Pollack, J. B. (1994). An evolutionary algorithm that constructs recurrent neural networks. IEEE transactions on Neural Networks, 5(1), 54–65.

--

--