本文乃在提出一系統,名為RelGAs,來學習邏輯關係之概念。RelGAs之輸入為一些 正例(postive examples)及負例(negative examples) ,而學習之結果則為一邏輯 定義(在本系統為Prolog之程式)。RelGAs採用基因演算法(Genetic Algorithms) 作為學習之基本策略。基因演算法為一機器習學習(Macheine Learning) 之方法, 其靈感乃得自人類基因之交配與突變,並藉由世代演進(evolvegenerations) 的過 程,來產生新的搜尋空間(search space),以達成學習之目的。 基因演算法有2個主要的過程,一為評分(evaluation),一為基因運算子(Genetic Operators)之運作。RelGAs嘗試使用符號性(symbolic)之基因,此表示法不同於傳 統基因演法中之位元串(bit-string),在RelGAs中,此符號性基因為-Prolog 之子 句(clause)。RelGAs使用子句堆疊(clause stack)及過濾夾層(filtering slab)的 觀念來作評分,並加入分裂(splitting) 及突變(mutation)等適合問題特性基因運 算子,俾使基因演算法之策略得以使用在邏輯程式之學習。 傳統的歸納式邏輯程式習系統(inductive logic programming learning system) 如FOIL,Forte ,Rx等,因受制於局部極大(local maximum) 的問題,往往無法將 學習對象的複雜度(complexity)增高,更遑論及實用性。FOIL等系統,甚至連亦使 用基因演算法的GA-SMART系統,均以對等的方式來處理正負例。但在RelGAs中,正 負例用途是不同的。在實驗結果的比較中,RelGAs比Forte 具較高的能力可避免局 部極大之問題。在此,我們的實驗似乎提出了一問題,究竟局部極大起因於對正負 例的看法,亦或如同GA-SMART所言,是貪婪策略(greedy strategy) 的使然,尚有 待更進一步實驗之觀察。
|