• 沒有找到結果。

利用基因演算法演化且建構具有功能的中間節點之類神經網路

N/A
N/A
Protected

Academic year: 2021

Share "利用基因演算法演化且建構具有功能的中間節點之類神經網路"

Copied!
5
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會補助專題研究計畫成果報告

※※※※※※※※※※※※※※※※※※※※※※※※※

利用基因演算法建構具有功能的中間節點之類神經網路

※※※※※※※※※※※※※※※※※※※※※※※※※

計畫類別:個別型計畫

計畫編號:NSC-89-2218-E-009-019

執行期間:89 年 08 月 01 日 至 90 年 07 月 31 日

計畫主持人:李嘉晃

共同主持人:

本成果報告包括以下應繳交之附件:

□赴國外出差或研習心得報告一份

□赴大陸地區出差或研習心得報告一份

□出席國際學術會議心得報告及發表之計畫各一份

□國際合作研究計畫國外研究報告書一份

執行單位:國立交通大學資科所

(2)

行政院國家科學委員會專題研究計畫成果報告

國科會專題研究計畫成果報告撰寫格式說明

Pr epar ation of NSC Pr oject Repor ts

計畫編號:NSC 89-2218-E-009-019

執行期限:89 年 8 月 1 日至 90 年 7 月 31 日

主持人:李嘉晃

執行單位:國立交通大學資科所

一、中文摘要 在傳統的類神經網路 (Artificial Neural Networks, ANNs) 裡,所有的隱藏層節點 (Hidden Node) 皆被視為一致的個體,配合倒傳遞演算法 (Back Propagation Algorithm) 調整權值 (Weight) 以解決問題。然而倒傳遞演算法有訓練效率過低的 缺點,並且在整合基因演算法 (Genetic Algorithm, GA) 演化類神經網路結構時,運用此法調整權值, 也容易產生結構與權值無法配合的問題。本計劃提 出賦予隱藏層節點特定的功能,節點據此調整權 值,期望所得的輸出與指定功能的目標值一致。而 整體網路的訓練便是以單層的網路訓練為基礎,由 底而上漸次完成。並且利用基因演算法,選擇適當 的節點功能,安排在適當的位置,讓整個系統得以 因應不同的問題,自動產生適合的類神經網路結 構。本方法具有隱藏層節點的定位確定,節點功能 的再利用,網路訓練透明化與增益演化效率幾項特 點。 關鍵詞:基因演算法、類神經網路、功能化隱藏結Abstract

In traditional Artificial Neural Networks, all hidden nodes are regarded identical, and the nodes adapt weights to solve problems with Back Propagation Algorithm. However, the speed of convergence of Back Propagation is slow, and when we incorporate Genetic Algorithms in evolving Artificial Neural Networks with this method tuning weights, the network architecture and weights will not match well easily. This project proposed giving hidden nodes specific functions. Then, the nodes change weights to make their outputs similar to the goals of the functions of them. The whole neural network training is based on the single neural networks training and then completes. In addition, we use Genetic Algorithm to select the functions for right nodes. The system will automatically generate a fit Artificial Neural Network for various applications respectively. The primary characteristics of this method include the niche of hidden nodes, the re-usefulness of node functions, the transparency of network training, and the improvement of evolution performance.

Keywords: Genetic Algorithms, Neural Networks,

Functional Hidden Nodes

二、緣由與目的

近年來,人工智慧的研究領域愈來愈受到重 視,許多過去難以解決的問題,都希望能藉由其範 疇內的方法來解決。其中,類神經網路

(Artificial Neural Networks, ANNs) 與基因演 算法 (Genetic Algorithm, GA) 是最備受青睞的 兩種機制模型。在傳統的類神經網路訓練裡,倒傳 遞演算法 (Back-Propagation Algorithm) [1][2] 是最早被提出,也是當時最有效率的方法。它將輸 出端應得的正確值,減去實際的輸出,並將誤差的 效應往輸入層傳遞,作為調整權值 (Weight) 與節 點臨界值 (Threshold) 的憑藉。然而在利用倒傳 遞法學習調整權值與臨界值時,每一條權值與每一 個節點,完全無法知道自身在整體網路中的定位, 因此無法明確且迅速地朝某個目標作調整。同時又 會因為訓練不同的樣本 (Pattern),而受到其他 的節點與權值影響,導致原本已經調整好的數值又 被迫改變,甚至與原來的數值呈反向的成長,這就 是所謂的「獸群效應 (Herd Effect)」[3]。而這 也正是倒傳遞演算法最被詬病之處:匯集 (Convergence) 速度過慢。另一個在應用類神經網 路時所遭遇的問題為:無法在解決問題之初,就明 確的知道應該設計何種網路結構,才具有足夠的能 力處理該問題。一般早期的解決之道,是研究人員 憑藉過去的經驗猜測並且測試,然後再根據所得的 實驗結果做調整。近期許多學者引進基因演算法, 以類似生物進化的方式演化類神經網路,使其自動 找到適合的網路架構 [4][5]。可是在演化的過程 裡,常會發生網路結構與權值不一致的情形。而當 此問題發生時,研究人員並不清楚是網路結構不合 適,或是權值還未調整至適當的值。 在本計畫裡,我們提議賦予類神經網路的隱 藏層節點 (Hidden Layer Nodes) 一些功能。使其在 訓練的過程中,與整合基因演算法演化網路結構 時,能更有效率。這些功能的選擇可以是隨機的, 也可以是來自於對應用的部分瞭解所產生的。為了 解決上節所提到的問題,本計劃提出一個方法 設 計類神經網路內的隱藏層節點具有特定的功能,並 且利用基因演算法演化網路架構。我們賦予每一個 隱藏層節點指定的功能,當此節點接受輸入後,根 據所屬的功能,會有相對應的輸出值。而此節點只 要根據這些相對應的輸出,訓練所屬的權值與臨界 值,使得其輸出與目標值儘量一致,然後再將其輸

(3)

出值傳遞給上一層的節點即可。與傳統利用倒傳遞 演算法訓練類神經網路不同的,節點的臨界值與所 屬權值的訓練,完全不會受到頂層輸出端所得誤差 值的影響。當然正在訓練的權值與臨界值,也不會 受到其他節點與權值的影響,故將不會發生獸群效 應。而整個類神經網路的訓練,就是以個別單層網 路的訓練為基礎,由底而上漸次完成。而除了改變 訓練類神經網路的方式,與新增加功能外,整個網 路隱藏層節點的數量,所配置的位置和各具有的功 能,以及輸出、輸入和隱藏層節點間的連結關係, 都是交由基因演算法因應不同的應用自動演化。由 於每一個節點都有自身的定位,故在演化的過程 裡,所屬的權值將會朝一特定的方向作調整,而不 需擔心網路結構與權值無法配合的問題。我們希望 本方法能提供一個更佳的解答機制,因應不同的問 題自動產生適合的類神經網路。而另一個更長遠的 目標,就是將節點視為一個軟體物件,連結的權值 視為物件間的輸出與輸入介面,利用自然競爭與演 化的方式,將它們放置到適合的位置上,彼此「合 作」,則整個的網路架構可以視為另一個因應不同 的應用,自動產生的整合型軟體。這不但符合軟體 元件再利用的精神,同時具有類似程式自動化的意 味,而這也正是我們最後希望達成的目標。 三、方法 所謂指定功能的隱藏層節點,就是此節點具 有一個特定的功能,它能根據不同的輸入而有一定 相對應的輸出值。舉例言之,如果一個節點具有布 林代數 AND 的功能,而且其輸入只有「正值」 (Positive Value) 與「負值」 (Negative Value) 兩種 型態,那麼除了全部的輸入皆為正值外,其他的輸 入組合皆會得到結果為負值的輸出。這個定義在多 層類神經網路架構的訓練中指明了一件事,即任何 具有指定功能的隱藏層節點,都只需負責自身所屬 的輸入,而不會受到其他權值改變的影響。同時這 也表示整個類神經網路的訓練過程,是由各個單層 的網路訓練所堆砌出來的。圖一說明如何利用本方 法,訓練類神經網路達到 XOR 的功能。圖一設計 一個能夠學習 XOR 的三層類神經網路。底層的 x 和 y 為二元輸入,中間標示 OR 和 AND 的節點, 為各具有布林代數 OR 與 AND 功能的隱藏層節 點,而標示 XOR 的節點為輸出端,表示此網路最 後應習得的功能。x 與 y 分別同時輸入到標示具有 布林代數 OR 與 AND 的節點做訓練,由於 OR 和 AND 為線性可以區隔的問題 (Linear Separable Problem),故利用簡單的差別法 (Delta Rule) 即可 在至多幾十個訓練週期 (Epochs) 完成各自對應的 正確輸出的訓練。然後這兩個隱藏層節點再將所對 應的輸出,傳給最上層的單層網路作為輸入,由真 值表可知,最後單層網路所需解決的問題,也是簡 單線性可區隔的問題,故此單層網路也可以輕易的 解決問題,而最後整個類神經網路便學習到 XOR 的功能,於是整個網路的訓練便結束。 相對於一般利用倒傳遞演算法訓練多層類神 經網路的方式,我們提出的方法具有以下的兩個主 要優點: 1. 每個隱藏層節點皆有明確的目標,故能有效率 地調整所屬的權值,務使其輸出與目標值一 致,同時在學習過程中不會發生所謂的「獸群 效應」。

2.

整個網路的訓練是各個單層網路訓練的總和結 果。各單層網路一經訓練完畢,便凍結其權值 不再改變,故可以視之為一個具有特定功能的 基本單位。當其他上層的節點需要利用到已經 完成訓練的節點時,此節點僅需將它已經完成 訓練的輸出,傳遞給上層網路即可,而無須再 行訓練,此方式將可大幅增益整體網路訓練的 成效。 圖一 誠如在開頭已經提過,在設計類神經網路架 構解決問題之前,必須先猜測何種的架構才足以應 付所需。通常皆是研究人員憑藉著過去的經驗猜 測,然後試驗,根據所得的結果再行調整。可是此 方法不僅浪費人力,沒有效率,而且通常找出的類 神經網路架構也是僅為堪用,並不是最佳化,或次 佳化。倘若是再換成解決相類似的問題,也許還是 得從新再設計一次網路,至少也必須浪費人力在調 整部份網路結構。有鑑於此,利用基因演算法演化 類神經網路的方法被引用進來,希望能藉由其具有 在龐大資料中搜尋的能力,自動產生最佳化的網路 結構解決問題。從過去許多成功的實驗結果中,發 現到利用此法應用在演化類神經網路方面應該是 個正確的決定。 目前一般的應用方法,主要分為下列三種: 1. 直接將整個網路的結構(節點數,連接方式,有 些也包括權值)全部編碼放置入染色體中,整體 進行演化。 2. 不直接演化整個類神經網路,而是演化產生網路 架構的規則 [4]。 3. 將整體網路架構以節點為單位,分割成多個染色 體。然後群體競爭,最後再將表現優異的染色體 群整合,以成一完整網路架構。 我們在基本精神上是採用第一種方式,也就是直接 將整個網路的結構(不包括權值)編碼置入染色 體。之所以採用此方法,是因為在研究初期比較容 易控制整個網路的節點數,隱藏層節點的功能與配 置的位置,以及節點間的連結方式,而且在目前的 實驗中皆能得到不錯的成果。然而不可否認的,若 要繼續解決更實際複雜的問題,採用第二種演化產 生網路結構規則的方式,應該會有更好的成效表 現。由於我們提出具有特定功能的隱藏層節點,故 演化網路架構的主要問題為:隱藏層節點的配置方

(4)

式與具有的功能,和所有節點間連結的方式,這與 第三種將網路以節點為單位切割成不同的染色 體,群體競爭找出表現優異的個體,然後再行組合 產生網路的方法所著重之處不同。所以基於以上的 原因,我們最後決定採第一種方法演化類神經網路 架構。從許多的研究裡,我們發現到許多演化類神 經網路的方法,都是將輸入、輸出和隱藏層節點一 起演化 [4]。可是在解決問題之前,我們已經明確 的知道輸入與輸出端的個數,所不曉得的僅為隱藏 層節點的數量,和所有節點間連結的關係。故我們 將輸入與輸出端獨立抽取出來,各成為一條染色 體,希望能更有效率的找出最佳的網路架構。圖二 顯示以一個矩陣表示網路結構,與其染色體和外在 的型態。圖二 (a) 是將整個網路的架構以矩陣陣列 的方式表示,位於對角線的位元 (Bits),表示此位 置的節點存在與否,”1” 表示存在,”0” 表示不存 在。而對於每一個節點而言,其同列 (Row) 的位 置表示從此節點發出到對應的節點的鏈結,”1” 表 示存在,”0” 表示不存在;其同行 (Column) 的位 置表示此節點從所對應的節點接收的鏈結,相同 地,”1” 表示存在,”0” 表示不存在。根據圖二 (a) 的矩陣圖,圖二 (b) 為其外在型態的類神經網路架 構。然而在此要特別說明,在從個體的染色體基因 轉換為網路結構時,必須先除去一些不合適的部 分,這些部份分別為: (1) 所有的鏈結不能連到不 存在的節點,或是從不存在的節點連出。(2) 由於 我們所討論的僅是非遞迴 (Non-Recurrent) 的網 路,故所有遞迴的鏈結都必須去除。所謂的去除僅 是在轉換過程中做調整,以產生一個正確且適合的 網路,而非對染色體內的基因做改變。圖二 (c) 將 圖二 (a) 更細部的劃分成三個部份,分別是輸入 端,輸出端與隱藏層節點。誠如前述所言,輸入和 輸出的節點數在問題確定的同時已經被決定了,所 以僅剩連結的問題;可是隱藏層節點除了連結的問 題外,還有數量與位置的問題。數量決定網路結構 的大小,而位置決定此節點具有的功能。在此對於 位置決定功能作更詳細的說明:每一個座落在隱藏 層節點矩陣裡,對角線上的位元,皆表示隱藏層節 點可能出現的位置,而每一個位置預先都已經被指 定具有特殊的功能,此功能可以是系統隨機產生, 抑或已經被指定的;換言之,只要隱藏層節點出現 在此位置,就具備此位置設定的功能。以圖二 (c) 的隱藏層區塊為例,對角線上的第一與第二個位元 為 "1",表示這兩個隱藏層節點存在,而假若系統 預先已經設定對角線上的三個位元,分別具有 AND,OR 與 NAND 的功能,則第一個隱藏層節點 便具有 AND 的功能,而第二個則具有 OR 的功能。 由於位於對角線上的第三個位元為 "0",故依此矩 陣產生的類神經網路僅有兩個隱藏層節點,且分別 具有 AND 與 OR 的功能。從圖二 (c) 中可以很明 顯的看到,由於輸入端的數量與位置已經被確定, 故其僅需負責與輸出端和隱藏層節點的連結關 係,於是輸入端只是將此連結關係編碼置入染色體 內;相同的,輸出端也是僅需負責與隱藏層節點間 的連結關係,並且也僅將此關係編碼置入染色體 中;而隱藏層節點部份不但要負責與自身群體間的 連結關係,還要決定數量與位置的問題,是故需要 將這些資訊皆編碼置入染色體內。圖二 (d) 示出分 屬於輸入端,輸出端與隱層節點的染色體。圖二 (d) 輸入端的染色體基因,是圖二 (c) 左下角兩個白色 區塊內的位元,以列為單位上至下的放置;而圖二 (d) 輸出端的染色體基因,是圖二 (c) 中上白色區 塊內的位元,以行為單位左至右放置;圖二 (d) 隱 藏層的染色體基因,是圖二 (c) 左上網狀區塊(隱 藏層區塊)內的位元,以列為單位由上而下的放置。 圖二 四、結果 參 照 先 前 的 相 關 文 獻 , 我 們 發 現 XOR 與 N-Parity 函數為最常被用來測試類神經網路學習 成 效 , 同 時 也 是 最 簡 單 的 標 竿 測 試 資 料 (Benchmark) 。XOR 為布林代數中的一個函數,屬 於線性不可區隔的問題。它具有兩個輸入與一個輸 出,當兩個輸入值相同時(同為 0 或同為 1),則輸 出值為 0;反之,當兩個輸入值不一致時,則輸出 為 1,故共有 4 個訓練樣本。而 N-Parity 的函數則 是 XOR 的延伸,”N” 表示此函數有 N 個輸入,同 樣地也只有一個輸出。當 N 個輸入中有奇數個 1 時,輸出為 1;反之,則為 0,所以此函數總共有 2n 個學習樣本。 表格一 隨機挑選功能學習 XOR 的結果 表格二 隨機挑選功能學習 3-Parity 函數的結果

(5)

實驗各應用一些基本參數至 XOR 與 Parity 函數的 實驗中,並分別獨立執行 10 次 (Runs),所得的結 果以表一與表二示之。由表一及表二中可以看出, 利用本方法解決 XOR 和 3-Parity 的問題是相當有 效率的,同時所建構出的網路架構也相當精簡。但 是由於這兩個問題過於簡單,因此我們又以另外一 個較複雜的例子,驗證本方法確實有效。 鴛尾花 (Iris) 的分類 鳶尾花的分類問題,是三個分別具有 50 筆,總共 150 筆的資料,描述花朵特性與種類,讓系統根據 所學習的資料,找到三個種類的特性的分類問題。 本實驗最大隱藏層節點數設為 8,節點功能由系統 隨機產生。表三顯示執行 10 次的結果。從過去的 文獻中 [6][7],知道鳶尾花分類問題的錯誤,約在 0 到 5 個之間。從表三中可知,所得的結果並不亞 於一般的分類方法。 表格 三 隨機挑選功能學習鳶尾花分類的結果 五、結論 本計畫提出一個新的觀念:設定類神經網路的 隱藏層節點具有特定的功能,並利用基因演算法自 動搜尋適合的網路架構,以因應不同的應用。這就 好比一家公司,有許多人分配至不同的職位上。這 些在位者,必須調整自己以適應新的職務;同時就 整體而言,公司又必須視總體表現,決定工作的分 配,部門的規畫,與職務的調動。從所得的實驗結 果中,可以驗證應用此想法在解決不同的問題上, 確實具有不錯的成效。底下歸結本方法的特點。 本模型的特點 1. 隱藏層節點的定位確定 各個隱藏層節點都有特定的功能,它們僅需配合自 身的輸入,調整所屬的權值,盡量達到設定的功能 即可,而不會被其他各層的隱藏層節點與權值的變 化所影響。如此將使得各隱藏層節點有效率地找到 自身的定位,而不會發生獸群效應。 2. 量身定做的節點功能 各個節點的功能,可以依應用的不同而有不同的設 計。此外,相較於其他一般訓練網路與演化結構的 模型,本方法還具有另外一項特點,那就是可以加 入「提示 (Hint)」,使得所演化的類神經網路架 構更趨最佳化,同時演化與訓練的效率更高。所謂 的「提示」,即在解決問題之前,對該問題有一定 的瞭解,曉得哪些功能的加入,將可以增益訓練的 效率,於是設定節點具備該功能。 3. 節點功能的再利用 由於各個隱藏層節點一經訓練完畢,其所屬的權值 將不再變動。當其他未完成訓練的上層節點,需要 利用到已經完成訓練的節點時,僅需直接取得相對 應的輸出,而無須再行訓練,以達到功能節點再被 利用之效,增進系統效能。

4.

網路訓練透明化 過去通常視類神經網路的訓練為一個黑盒子,訓練 成功與否很難去分析與解釋,而追蹤與剖析錯誤更 是困難重重。可是採用本方法可以明確的知道,各 個節點應該有哪些相對應的輸出,這在偵測錯誤, 分析與解釋訓練結果上有極大的助益。 5. 增益演化效率 1. 由於本系統採用基因演算法演化類神經 網路,故當系統從其他的實驗結果中,得 到一個不錯的網路結構時,可以以此網路 結構作為基礎,再進行演化以獲得更佳的 網路結構,而此舉可以節省演化的時間。 2. 避免在演化類神經網路的過程裡,發生網 路架構與權值不配合的情形。 3. 將輸入、輸出與隱藏層節點分開演化,減 少搜尋的空間,避免無謂的搜尋。 五、參考文獻

[1] Parker, D. B., Learning-Logic. Technical Report TR-47, Massachusetts Institute of Technology, Center for Computational Research in Economics and Management Science, Cambridge, MA, 1985. [2] Rumelhart, D. E., Hinton, G. E., and Williams, R.

J., Learning Internal Representations by Error Propagation. In Rumelhart, D. E. and McClelland, J. L. (editor), Parallel Distributed Processing: Explorations in the Microstructure of Cognition, chapter 8. MIT Press, Cambridge, MA, and London, England, 1986.

[3] Fahlman, S. E. and Lebiere, C., The Cascade-Correlation Learning Architecture (Technical Report CMU-CS-90-100). Computer Science Department, Carnegie Mellon University, Pittsburgh, PA, 1990.

[4] Kitano, H., Designing neural networks using genetic algorithms with graph generation system.

Complex Systems, 4:461-476. 1990.

[5] Harp, S. A., Samad, T., and Guha, A., Towards the genetic synthesis of neural networks. In Schaffer, J. D., editor, Proceedings of third International conference on Genetic Algorithms, pages 360-369, George Mason University, USA. Morgan Kaufmann, 1989.

[6] Geva, S., Production rule extraction. Neural Networks. Proceedings, IEEE International Conference, vol. 4, pp. 1806 –1811. 1995. [7] Copland, H.& Hendtlass, T., Engram decay in

artificial neural networks. Neural Networks. Proceedings, IEEE International Conference, vol. 1, pp. 669 –673. 1995.

參考文獻

相關文件

由於資料探勘 Apriori 演算法具有探勘資訊關聯性之特性,因此文具申請資 訊分析系統將所有文具申請之歷史資訊載入系統,利用

介面最佳化之資料探勘模組是利用 Apriori 演算法探勘出操作者操作介面之 關聯式法則,而後以法則的型態儲存於介面最佳化知識庫中。當有

本論文結合了 GPU-FPM 以及 Bitmap 的優點,並利用 Multi-GPU 架構提出 Multi-GPU CSFPM 的演算法,由於 CSFPM 如同 GPU-FPM

本章將對 WDPA 演算法進行實驗與結果分析,藉由改變實驗的支持度或資料 量來驗證我們所提出演算法的效率。實驗資料是以 IBM synthetic data generator

智慧型手機是一種運算能力及功能比傳統手機更強的手機。 通常使用的作 業系統有: Symbian 、 Windows Mobile 、 iOS 、 Linux (含 Android 、 Maemo 和 WebOS) 、.. Palm

Wi-Fi 定位即利用無線網路來傳遞信號,根據各種網路參數和算法可以找出使用

F., “A neural network structure for vector quantizers”, IEEE International Sympoisum, Vol. et al., “Error surfaces for multi-layer perceptrons”, IEEE Transactions on

Kaneko, “An algorithm for node-to-set disjoint paths problem in burnt pancake graphs”, IEICE Trans. and