• 沒有找到結果。

第二章 文獻探討

2.2 演化式計算

演化式計算是以計算機模仿生物在自然界中的行為,其概念是利用達爾文進 化論“適者生存,不適者淘汰"(Survival of the Fittest) 的道理,做為搜尋機制,

藉此可求解各種組合的最佳化問題。演化式計算所建立的模式通稱為演化式演算 法 (Evolutionary Algorithms, EA)[30][31][32]。其中最主要的 EA 就是演化式規 劃(Evolutionary Programming, EP)、演化策略(Evolutionary Strategy, ES)、與基

因演算法(Genetic Algorithms, GA),部份學者將它們稱之為 EA 的三種主流模 式或三種基本的理論模式。

用 EA 演算來解決最佳化的問題,是透過迭代的方式從一個群體(Population)

中,找出最佳的染色體(Chromosome),一條染色體就是代表一個問題的解答。

一個群體是由許多染色體所組成,而基因是組成染色體的基本單位。在演化中一 個世代(Generation)即是一個完整的演化過程,演化過程會經過基因運算子來 改變染色體中的基因內容,演化結束後會透過競爭法,保留最佳適應度的染色 體,使最佳適應度的染色體得以在下一個世代中繼續演化。

EA 的三種模式中,以基因演算法應用最廣泛,該方法是 1975 由 John Holland 發表其著作“Adaptation in Natural and Artificial Systems(1975)"[33]之中,正式 的定義了基因演算法的數學基礎。基因演算法己經被應用在各領域之中。例如在 物理學之中的 VLSI 佈局、液晶、雷射技術等,在工程方面的控制、類神經網路、

模糊理論、航空、太空軌道等,其他還有像是影像處理、醫學、機器人學、建築 等領域之應用。

基因演算法的演化機制主要是由四部分所構成的:(1) 編碼方式、 (2) 適應 函數 (fitness function)、(3) 挑選機制、(4)交配與(5)突變運算子。

1. 編碼方式:使用基因演算法時,必需先將問題轉換為染色體的型式。通常編 碼方式以 0 與 1 或其它實數所組成。

2. 適應函數:用來決定染色體適應度的方法,根據問題的不同,會有對應的適 應函數。

3. 挑選機制:透過適應度函數,挑選群體中最佳適應度的染色體,使最佳適應 度的染色體得以在下一個世代繼續演化。

4. 交配運算子:對基因演算法而言,交配是最主要的遺傳運算子。其執行方法

是挑選群體中的兩條最佳的染色體當成“雙親“,雙親染色體經過合併程序 後,會產生兩條子染色體,子染色體擁有雙親的部份基因。通常交配方式可 分 為 三 種 : (1) 單 點 (one-point) , (2) 兩 點 (two-point) , (2) 多 點 (multi-point)。使用單點交配是從雙親染色體中,挑選出一個交配點,從中 切斷,並且從交配點交換染色體資料,如圖 2-1。使用兩點或多點交配時,

會增加許多交配點,增加染色體的資料交換程度。經過交配後的子染色體由 於是由最佳的染色體產生而成,適應度較高,因此子染色體會直接取代掉適 應度不佳的染色體。

圖 2-1 單點交配示意圖

5. 突變運算子:突變運算子可以使染色體進入一個未曾找尋過的適應狀態,但 是若突變機率過高,則會使整個基因演算法變成隨機演算法。因此突變運算 子被視為次要的運算子,以較低的機率來使染色體進入未曾找尋的適應狀 態。標準的突變機制,會透過亂數決定突變基因的位置,而這些突變基因有 相對應的機率突變為其它的基因值,如圖 2-2。基因演算法透過上述的演化 機制,即可完成一個世代的演化。而基因演算法應用在實際問題上時,透過 以下流程進行,如圖 2-3。判斷染色體是否己達到收歛狀態,若達到收歛或 者演化世代己達到設定值則會停止基因演算法的演化。

1 0 0 0 1 1 1

0 1 1 1 1 1 1 0 1

1 0 1 1 1 0 1

0 1 1 1 0 0 1 1 1

交配點 交配點

雙親染色體

子染色體

圖 2-2 突變運算子示意圖 開始

建立第一代群體

交配

突變

挑選

收歛

結束 再次演化

圖 2-3 基因演算法流程圖 2.3 平行與分散式處理

在面對於大量資料處理及複雜運算時,可透過硬體加速的方式,增進計算效 率,常用的方式有平行處理與分散處理兩種方法,在本節將探討此兩種技術及相 關文獻。

2.3.1 平行處理

平行運算(Parallel Computing)[2][4]依據平行處理的方式,可分成二種模式:

1 1 1 0 1 0 1 1 0 1 1 1 0 1

突變點

0

0

(1) 共享式記憶多處理器系統( Shared Memory Multi-processors System);(2)分散 式多處理器系統(Distributed Memory Multi-processors System)。

1. 共 享 式 記 憶 體 多 處 理 器 系 統 : 又 稱 對 稱 多 處 理 器 電 腦 (Symmetric Multi-processor,簡稱 SMP),如圖 2-4,是由多個同型的處理器,共用一個 主記憶體,這樣的系統架構,透過系統匯流排的方式,讓多個處理器與共享 記憶體和 I/O 互相連接。

2. 分 散 式 記 憶 體 多 處 理 器 系 統 : 又 稱 大 量 平 行 處 理 器 (Massive Parallel Processor,簡稱 MPP),相較於共享記憶體系統,是一種更高度平行的運算 模式,由於每個處理器擁有各自所屬的記憶體(Local Memory),因此每個處 理模組包含了 CPU 和 Local Memory 且擁有各自獨立的作業系統,而整個電 腦系統,由另一個單獨的作業系統進行管理。由於沒有共享式記憶體,每個 處理器之間也透過訊息傳遞(Message Passing)的方式進行溝通,因此 MPP 在 進行平行計算步驟比較複雜,必需將程式計算資料和任務,做適當的切割,

再分到各個處理器進行運算,最後再把運算完的資料,傳回給運算節點,如 圖 2-5。

CPU #0 CPU #1 CPU #2 CPU #3

System Bus

I/O Bus Share Memory

Screen Network Cord Hard disk 圖 2-4 SMP 架構示意圖

System Bus

I/O Bus

Network Cord Hard disk CPU #0

Local Memory

CPU #1 Local Memory

CPU #2 Local Memory

CPU #3 Local Memory

System Bus

System Bus

圖 2-5 MMP 架構示意圖 2.3.2 格網運算

格網運算(Grid Computing)[2][5]是一種具備分散式運算,網路服務環境,大 容量儲存體與其它運算資源的整合系統,主要目的建一個虛擬化超級電腦型態的 分散式運算環境,提供解決大容量與複雜性運算等問題。格網運算在進行時,透 過高速網路連接獨立的電腦,每個獨立的電腦有各自的處理器、記憶體及 I/O。

每一台電腦之間,要傳輸資料,必需透過訊息傳遞(Message Passing),而在進行 格網運算之前,必需要資料及任務做適當的切割,再透過高速網路,將資料分送 給各系統內的各台電腦進行運算,由於必需透過網路進行傳輸,所以受限於網路 傳輸速度,其執行方式如圖 2-6。

CPU #0 CPU #1 CPU #2 CPU #3

System Bus

I/O Bus Share Memory

Screen Network Cord Hard disk CPU #0 CPU #1 CPU #2 CPU #3

System Bus

I/O Bus Share Memory

Screen Network Cord Hard disk

CPU #0 CPU #1 CPU #2 CPU #3

System Bus

I/O Bus Share Memory

Screen Network Cord Hard disk

CPU #0 CPU #1 CPU #2 CPU #3

System Bus

I/O Bus Share Memory

Screen Network Cord Hard disk System Bus

圖 2-6 格網運算示意圖 2.4 平行化資料分類

資料分類為本文的主要目的,在本節中將探討關於平行化資料分類演算法的 相關文獻。

2005 年 Sungjin Park[12]等人提出(parallel neural network classification banks, PNNCB)。以類神經網路分類器應用於聲納辨識,其主要目的為辨識感興趣的聲 納特徵,排除掉其它容易造成干擾的噪音聲源。由於類神經網路需要透過訓練權 重值,加強辨識分類的效果,因此使用平行化方法加速類神經網路的訓練時間。

平行化後的類神經網路具有多個事件能力的分類和顯示,藉以提升整體的分類效 能。

2007 年 Rhonda D. Phillips[13]等人,為了解決規模日益擴大的遙感數據集,

因而提出一套共享記憶體的平行化混合分類演算法,迭代制導拒絕分類(Iterative

Guided Spectral Class Rejection, IGSCR)。以 Fortran 95 撰寫程式並使用 Open-MP API 進行平行化,加速 IGSCR。根據實驗結果顯示,IGSCR 分類陸地衛星數據 覆蓋最弗吉尼亞美國進入森林和非森林班級,大約 90%的準確度。平行化的效 果在使用 SGI Altix 3300 共享內存的電腦和 SGI 公司的 Altix 3700 多達 64 個處 理器的加速比達到近 77。

2001 年 Massimo Coppola[14]提出資料探勘的平行化方法,探討骨架萃取的 探勘問題,在文獻中分析 Apriori 關聯規則分類、DBSCAN 分群法及決策樹分類 法 C4.5 演算法之平行策略。演算中需要處理大量的分區讀取,頻繁和稀疏 獲得小塊,以及一個不規則的小型和大型的混合傳輸,讓開發效率應用上的巨大 資料庫。該文獻研究的對象及組件界面的骨架結構模型,以簡化開發環境集成平 行化的資料探勘應用。

2009 年 J. Ramírez[15]等人使用平行化方法加速 SVM 的運算效率。在機器 學習的方法中,訓練資料的數量愈大,愈能夠得到更好的訓練模型,但也因此導 致訓練階段的計算量相當大的問題。在本文介紹了兩種通用平行處理技術為基礎 的分級制度,進行平行化。文中提到 Cascade-svm 及 Spread-svm 兩個平行化的 SVM 方法,使用平行化的方法後,使得整體計算時間的訓練從 70 小時到 3 分 鐘。

2010 年 Michael Connor 與 Piyush Kumar[16]提出使用多執行緒的平行化 K-最鄰近分類演算法,加速在多核心環境中的執行效率,使用更少的空間,更好地 儲存效率,能夠處理大量數據集,易於並行化和實施。雖然該演算法性能最佳點 集,使用整數坐標,它是從實驗表明,該演算法仍是可行的使用浮點坐標。此外 該演算法在實踐中尺度以及隨著 k 的增加,以及資料量太大居住在內部存儲 器。最後,緩衝效率的算法應該允許它的規模以及更處理能力變得可用。

檢測網路行為是否正常是很難的,因為行為無法明確界定。其中一個在這種 困難的預測過程,是一代假警報,許多異常的入侵檢測系統。然而,模糊邏輯是 一個重要的解決方案,以減少誤報率確定侵入活動。因此 2007 年 Mohammad Saniee Abadeh[17]提出一種平行遺傳局部搜索算法(Parallel Genetic Local Search algorithm, PAGELS),產生的模糊規則能夠探測侵入計算機網絡的行為。該系統 採用密歇根的做法,每個人代表一個模糊規則,有如下形式''if condition then prediction。該演算法在全球人口分為若干群,每個分配給不同的處理器。每一群 由同一個類的模糊規則。這些規則演變獨立並行的方式,在建議。實驗結果顯示,

該算法產生模糊規則,它可以用來構建一個可靠的入侵檢測系統。

第三章 解析編碼之演化式分類演算法

由於一般機器學習的分類演算法要擁有較高的準確度,必須將分類模型的規 則詳細定義,而詳細的規則定義通常會消耗掉大量的運算資源。本研究提出解析 編碼之演化式分類演算法(Genetic Algorithm with Resolution-based Encoded

由於一般機器學習的分類演算法要擁有較高的準確度,必須將分類模型的規 則詳細定義,而詳細的規則定義通常會消耗掉大量的運算資源。本研究提出解析 編碼之演化式分類演算法(Genetic Algorithm with Resolution-based Encoded

相關文件