Wednesday, March 11, 2009

The future of Genetic Programming

(http://antbsd.twbbs.org/~ant/wordpress/?p=77, February 16th, 2006)

Darin Molnar 描述了自己對 Genetic Programming(基因規劃) 的長景。 [原文在此]

我摘一些重點加上自己對 GP 的見解:

傳統的程式設計就像精美的工業設計一樣,完全依照我們的想象進行著,該做什麼,怎麼做,都條理分明,按步就班。

作者指出,Koza 基於「程式在未明確設計的情形下,如何學習去解決問題?」的好奇心,而發展了 GP。換句話說,就是「電腦在未明確告訴它如何做的情形下,就能夠自己完成它應該做的事」。

Darwin’s Dilemma (達爾文的難題)

為了尋求答案,電腦科學家自然而然希望向神奇的大自然借鏡,以得到啟發。最顯著的學習標的,自然就是「達爾文的演化論」。

作者也提出了達爾文演化論的四項遵守原則:

1. Entities can, and do, reproduce,
2. Several entities form a population,
3. Variety exists in the population among the entities, and
4. Some entities in the population can survive in the environment better than others. When these conditions are met, a population is actively engaged in the evolutionary process.

若希望借鏡演化論的精神,程式設計就必須含蓋此四項原則。

作者也指出,GP 相對於 Genetic Algorithm(基因演算法) 而言,提供更複雜的結構,使用更普遍與階層架構,展現程式大小與形式的彈性。GP 的主要目的是要在所有問題域空間(problem space)中找出最適的解。

的確,很多人認為 AI 的工具,充滿不確定性,並且懷疑其正確性。為何同樣的問題會有不同的解?在真實世界中,要找到最佳解有幾項要點:1. 考慮全部影響因子;2. 有限時間;3. 動態環境。

首先,數理統計常常搜集許多因子 (factors) 來進行分析,但往往有太多的因子,以致於無法搜集齊全,甚至有些重要因子尚待發現。第二點,有時問題域太大,在有限時間內是不可能找到最佳解,有些問題甚 至需要宇宙長的時間來解。最後,這個世界是動態的,此時的最佳解未必是下一秒的最佳解,有時許多因子的互相影響性,以致於無法用傳統數學來評估。

所以,很多 AI (包括 GA、GP) 工具都在追求「最適解」。最適解有可能就是最佳解,雖然無法保證,但至少最適解是我們可以接受的一個答案。就如我們日常生活中,整理東西或安排行程,往往不一定是要追求最佳解,而只是要我們能夠接受的結果就可以了。

Garbage In, Garbage Out?

有很多人認為現今的 AI 工具都是垃圾進,垃圾出。的確,以目前的技術而言,仍然有許多因子是人工加入或限制的,並非完全由程式自行發展。若以 GP 的最終精神而言,就是「GP 設計軟體的原則,就是程式本身」,而非人工。如果有良好的 GP 引擎設計,以及最低的人工限制,那麼就根本沒有所謂的垃圾進,垃圾出的問題。

作者最後指出,Koza 的精神與 Bill Gates 不謀而合,這代表著素未謀面的兩位大師有同一願景,的確是一個值得注意的現象。另外 Bill Gates 說:「”The next big advance in computer programming will be the development of programs that write themselves.”」,以及他投入的大量研究資金。種種原因,使得作者非常看好 GP 的未來前景。(作者認為他所研究的 AI 工具中,GP 是最優秀的)

No comments:

Post a Comment