终极算法【5】——进化学派
在霍德.利普森位于康奈爾大學的創意機器實驗室中,奇形怪狀的機器人正在學習爬行和飛行。這些機器人并不是人類工程師設計出來的,而是進化來的,和地球上生命多樣性產生的過程一樣。
使這些機器人進化的算法,是19世紀由查爾斯.達爾文發明的。那時他不覺得這是一種算法,部分原因在于當時缺少一個關鍵的子程序。一旦1953年詹姆斯.沃森和弗朗西斯.克里克提供了該子程序,進化就會進入第二個階段:該進化是在計算機中而不是活體中進行,而且會比活體進化快10億倍。該子程序的提倡者是約翰.霍蘭德。
和許多其他早期的機器學習研究者一樣,霍蘭德開始時研究的是神經網絡。在密歇根大學讀研究生時,他閱讀了羅納德.費雪的經典著作《自然選擇的遺傳理論》。在該著作中,同時作為現代統計學奠基人的費雪,提出了關于進化的第一套數學理論。霍蘭德認為該理論遺漏了進化論的精華,費雪孤立地看待每個基因,但是有機體的適應度就是它所有函數的復值函數。如果基因都是獨立的,它們變量的相對頻率會快速收斂至最大適應點,然后從此保持均衡。但如果基因相互作用,進化(追求最大適應度)就要復雜得多。
隨著霍蘭德的創作漸漸為人所知,遺傳算法的關鍵輸入就是一個適應度函數。給定一個特定程序和某個設定的目標,適應度函數會給程序打分,反映它與目標的契合度。
適應度函數將人在這個過程中扮演的角色概括化了。但和人的角色相比,更為微秒的部分是自然的角色。開始,是一群適應力不那么強的個體(可能是完全隨機的個體)遺傳算法得找出變量,然后這些變量依據適應度而被選擇。DNA依據堿基對的序列對機體進行編碼,同理,我們也可以依據一串二進制數字對程序進行編碼。變量,無論在DNA序列中,還是在位串中,都可通過幾種方法產生。最簡單的方法就是點突變,即隨意翻轉位串中的一個比特值,或者改變一段DNA中的單個基本堿基。但對霍蘭德來說,遺傳算法的真正威力在于更為復雜的東西:性。
有性生殖包括在父親和母親的染色體之間進行材料交換,這個過程稱作染色體交叉。這個過程會產生兩條新的染色體,一條染色體交叉點的一邊是母親的染色體,另外一邊則是父親的染色體,另外一條相反。
遺傳算法通過模擬這個過程發揮作用。它為每一代中兩個適應力最強的個體進行配對,通過隨機交叉父母位串點中的一點,讓每對父母生出兩個后代。將點突變應用到新的位串后,算法讓這些點突變在其虛擬世界中釋放。每個點突變都會反饋適應度得分,然后重復這個過程。每一代都會比前一代的適應度更高,當達到理想的適應度或者時間用盡時,這個過程就會結束。
和費雪梳理的簡單模型相比,遺傳算法有了很大的進步。通過一組方程來充分體現自然選擇很困難,但將自然選擇表達為一種算法又是另外一回事,而且這樣還能夠闡明許多其他棘手的問題。為什么一些物種會突然出現在化石記錄中?能夠證明這些物種是漸漸由早期物種進化而來的證據在哪里?1972年,尼爾斯.埃爾德雷奇和史蒂芬.杰伊.古爾德提出進化過程由一系列“間斷平衡”組成,長期的停滯與短暫的快速變化相互交替,就像寒武紀爆發那樣。
我們應注意遺傳算法和多層感知器的差異程度。反向傳播會在任何給定時間堅持單一假設,而且這個假設會漸漸改變,直到其適應某個局部最優值。遺傳算法會在每一步中考慮整個群體的假設,而由于交叉行為,這些假設可以從這一代跨到下一代。將初始權值設為小的隨機值后,反向傳播才會確定繼續進行下去。相反,遺傳算法則充滿隨機選擇:該使哪些假設成立并進行交叉(適應度更高的假設更有可能成為備選對象),該在哪里對兩個字符串進行交叉,該使哪些比特的信息發生突變。反向傳播為了預先設定的網絡結構掌握權值;密集度更大的網絡更為靈活,但掌握起來也更困難。除了通用式外,遺傳算法不會對它們即將學習的結構進行預先假設。
因為這個原因,和反向傳播相比,遺傳算法陷入局部最優值困境的可能性更小,而且原則上也更有可能找到真正新穎的東西,但遺傳算法分析起來也要難得多。
遺傳算法的靈活之處就在于,每個字符串都暗含指數數量的構造塊,被稱為“基模”,因此該研究比它看起來的還要高效的多。這是因為字符串比特的每個子集都是一個基膜,代表可能合適的性能組合,而一個字符串有指數數量的子集。我們可以用這樣的方法來代表基模,也就是用“*”來代替字符串中不屬于該字符串的比特。相反,在群體中,一個特定的基模可能由許多不同的字符串來表示,而且每當這時,這些基模都會受到隱式評估。假設在下一代中仍然成立的概率與其適應度成正比,那會怎樣?霍蘭德表明,在這種情況下,和平均值相比,在某代中表示基模的字符串適應度越高——我們能期望的——在下一代中看到這些表示字符串的數量也越多。那么雖然遺傳算法暗地里對字符進行操縱,它也會找到基模更大的可能性。隨著時間的流逝,適應度更高的基模會主導群體。
在開始的幾十年,遺傳算法的陣營主要由約翰.霍蘭德、他的學生、這些學生的學生組成。大約在1983年的時候,遺傳算法解決的最大問題就是學會控制天然氣管道系統。不過,大概同樣的時間段,神經網絡回歸了,人們對進化計算的興趣也開始濃厚起來。
霍蘭德的學生中較為出色的是約翰.科扎。1987年,他在意大利參加會議,飛回加利福尼亞時,有一瞬間他突然醒悟了。我們要不要對成熟的計算機程序進行進化,而不是發展相對簡單的東西。科扎稱他的方法為“遺傳編程”,在這個方法中,我們通過隨機交換程序樹的兩棵子樹,來對兩棵程序樹進行交叉。我們可以測量程序的適應度(或缺乏適應度),方法就是通過其輸出值與訓練數據中的準確值之間的差距來判斷。
遺傳編程的第一次成功是在1995年,也就是成功設計了電子電路。下一個里程碑于2005年到來,當時美國專利及商標局為一項專利頒獎,該專利根據遺傳學設計,是工廠的優化系統。
演化新論者和聯結學派重要的共同點是:他們都因為受到自然啟發而設計了學習算法,不過后來分道揚鑣了。演化新論者關注的是學習架構,對他們來說,通過參數優化來對演化的架構進行微調,這是次重要的事情。相反,聯結學派更喜歡用一個簡單、手工編寫的結構,加上許多連接行為,然后讓權值學習來完成所有工作。這就是機器學習版本關于先天和后天的爭論,而且雙方都有很好的論據。
在先天與后天的爭論中,兩方都沒有完整的答案,關鍵在于找到如何將兩方結合起來。終極算法既不是遺傳編程,也不是反向傳播,但它得包含這兩者的重要部分:結構學習和權值學習。
“鮑德溫效應”是由J.M.鮑德溫于1986年提出來的。在鮑德溫進化中,初次掌握的行為,之后會變成天生的本領。
進化尋求好的結構,而神經學則填滿這些結構:這樣的結合是我們走向終極算法最簡單的一步。
機器學習的目標是盡可能找到最好的學習算法,利用一切可能的方法,而進化和大腦不可能提供學習算法。進化的產物有很多明顯的錯誤。
與聯結學派及演化新論者相反,符號學派和貝葉斯學派不相信“法自然”的說法。他們想從基本原理中找出學習算法該做什么,而且也包括我們人類。符號學派和貝葉斯學派想指出,弄明白“我們該怎樣學習”也可以幫助我們了解人類如何學習,因為這兩者大概不會完全不相關(遠非如此)。特別指出的是,對于生存有重要意義、已經經歷很長一段時間進化的行為應該就是最優的。
在20世紀八九十年代,聯結主義者占支配地位,但現在貝葉斯學者的數量正在上升。最優學習是貝葉斯學派的中心目標,而且他們肯定自己已經找到了實現這個目標的方法。請看下章......
參考文獻:
?終極算法. [美] Pedro Domingos 著. 黃芳萍 譯
總結
以上是生活随笔為你收集整理的终极算法【5】——进化学派的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决NGINX PHP No input
- 下一篇: 微信公众号 自定义菜单栏目