• 沒有找到結果。

演化式分類演算法在多核心計算環境下的設計與效率分析

N/A
N/A
Protected

Academic year: 2021

Share "演化式分類演算法在多核心計算環境下的設計與效率分析"

Copied!
70
0
0

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

全文

(1)國立高雄大學電機工程學系(研究所) 計算機組 碩士論文. 演化式分類演算法在多核心計算環境下的設計與效率 分析 A Study on the Design and Performance Analysis of a New Evolutionary Classification Algorithm in a Multi-Core Computing Environment. 研究生:洪銘宏 撰 指導教授:吳志宏. 中華民國九十九年七月.

(2) 演化式分類演算法在多核心計算環境下的設計與效 率分析 指導教授:吳志宏教授 國立高雄大學電機工程研究所 學生:洪銘宏 國立高雄大學電機工程研究所. 摘要 分類演算法在面對高維度大量的資料運算,通常會造成運算效率缺乏。因此 本研究設計一個解析編碼之演化式分類演算法,演算法具備兩大特色,第一個特 色是以解析方格的方式,解析每一個資料空間內的資料,這種方法可以處理資料 點分佈複雜的問題;第二個特色為透過演化式反覆計算機制,求得較適合分類模 型。為進一步提升解析編碼之演化式分類演算法的運算效率,因此本研究加入多 核心程式設計方法,以多核心處理器加速解析編碼之演化式分類演算法的效率。 本研究的開發了一般單核心程式的版本,與支援平行化計算的多核心程式版本, 並比較單核心版本與多核心版本的效能,及分析各種不同平行化的機制間加速的 效果。. 關鍵字:資料探勘、機器學習、分類演算法、演化式計算、平行運算、多執行緖 程式設計. i.

(3) A Study on the Design and Performance Analysis of a New Evolutionary Classification Algorithm in a Multi-Core Computing Environment Advisor: Dr. CHIH-HUNG WU Department of Electrical Engineering National University of Kaohsiung Student: MING-HUNG HUNG Department of Electrical Engineering National University of Kaohsiung. ABSTRACT This study presents GAREC (genetic algorithms with resolution-encoded chromosome) for classification. GAREC partitions the data space into resolution lattices which are encoded as chromosomes to be processed by genetic algorithms (GA.) A resolution lattice is a decision region of a class which is determined by GA. A lattice containing two or more data points belonging to different classes is considered as a new classification problem to be processed by GAREC iteratively. From the experimental results, GAREC is effective to the classification problems. In order to improve the performance of GAREC, this study implements GAREC on a multi-core computing environment using Open-MP. The performance of single- and multi-core versions of GAREC is evaluated and compared. Keyword: Data Mining, Machine Learning, Classification, Evaluable Computing, Parallel Computing, Multi-threading Programming. ii.

(4) 目錄 摘要.................................................................................................................................i ABSTRACT...................................................................................................................ii 圖目錄 ...........................................................................................................................v 表目錄 .........................................................................................................................vii 第一章. 緖論............................................................................................................1. 1.1 研究背景與目的 ............................................................................................1 1.2 研究架構 ........................................................................................................2 第二章. 文獻探討....................................................................................................5. 2.1 分類演算法 ....................................................................................................5 2.2 演化式計算 ....................................................................................................5 2.3 平行與分散式處理 ........................................................................................8 2.3.1 平行處理..............................................................................................8 2.3.2 格網運算............................................................................................10 2.4 平行化資料分類 ..........................................................................................11 第三章. 解析編碼之演化式分類演算法..............................................................14. 3.1 解析式染色體編碼 .......................................................................................14 3.2 解析編碼之演化式分類演算法 ..................................................................16 3.3 演化式分類演算法運算元機制 ..................................................................18 3.3.2 適應函數............................................................................................18 3.3.3 挑選機制............................................................................................19 3.3.4 交配與突變機制 ................................................................................19 3.3.5 重生(Restart)機制 .............................................................................19 3.6 演算法流程圖及步驟說明 ..........................................................................20 3.7 建立分類模型 ..............................................................................................22 iii.

(5) 3.8 實驗分類效果 ..............................................................................................23 第四章. 多核心程式設計與方法..........................................................................37. 4.1 多執行緖程式設計 .......................................................................................37 4.1.1 執行緖.................................................................................................37 4.1.2 多執行緖程式設計方法 ....................................................................38 4.2 平行化策略 ...................................................................................................39 4.2.1 資料分割(Data Decomposition) .......................................................39 4.2.2.任務分割(Task Decomposition) .......................................................40 4.3 演化式分類程式設計階段 ...........................................................................40 4.4 平行化階段 ...................................................................................................41 第五章. 整合後實驗與不同參數分析..................................................................45. 5.1 實驗測試規劃 ...............................................................................................45 5.2 實驗測試環境 ...............................................................................................46 5.3 實驗參數 ......................................................................................................46 5.4 多核心效率實驗 ..........................................................................................47 第六章. 結論與討論..............................................................................................55. 6.1 結論...............................................................................................................55 6.2 討論...............................................................................................................55 參考文獻 .....................................................................................................................56. iv.

(6) 圖目錄 圖 1-1 研究架構圖 ........................................................................................................3 圖 2-1 單點交配示意圖 ................................................................................................7 圖 2-2 突變運算子示意圖 ............................................................................................8 圖 2-3 基因演算法流程圖 ............................................................................................8 圖 2-4 SMP 架構示意圖 ...............................................................................................9 圖 2-5 MMP 架構示意圖............................................................................................10 圖 2-6 格網運算示意圖 ..............................................................................................11 圖 3-1 解析方格圖 ......................................................................................................14 圖 3-2 染色體編碼排列圖 ..........................................................................................15 圖 3-3 類別解析示意圖 ..............................................................................................17 圖 3-4 演化式分類演算法編碼流程圖 ......................................................................17 圖 3-5 工作佇列示意圖 .............................................................................................17 圖 3-6 演化分類表示圖 ..............................................................................................19 圖 3-7 適應度計算示意圖 .........................................................................................19 圖 3-8 分段式基因演算法示意圖 ..............................................................................20 圖 3-9 Restart-KNN (1-NN) ........................................................................................20 圖 3-10 原始訓練資料與分類模型比較圖 ................................................................22 圖 3-11 演化式分類演算法流程圖 ............................................................................22 圖 3- 12 Spiral 解析圖.................................................................................................36 圖 3- 13 分類錯誤圖 ...................................................................................................36 圖 4-1 多執行緖示意圖 ..............................................................................................38 圖 4-2 資料分割示意圖 ..............................................................................................40 圖 4-3 任務分割示意圖 ..............................................................................................40 圖 4-4 資料分割設計概念圖 ......................................................................................41 v.

(7) 圖 4-5 資料分割程式碼 .............................................................................................42 圖 4-6 工作切割概念圖 .............................................................................................43 圖 4- 7 工作分割程式碼 ............................................................................................44 圖 5-1 實驗流程架構圖 .............................................................................................45. vi.

(8) 表目錄 表 3-1 SMO 實驗參數表.............................................................................................23 表 3-2 DecisionTable 實驗參數表..............................................................................24 表 3-3 ConjunctiveRule 實驗參數表 ..........................................................................24 表 3-4 LibSVM 實驗參數表 .......................................................................................24 表 3-5 MultilayerPerceptron 實驗參數表 ...................................................................25 表 3-6 GAREC-1 實驗參數表 ....................................................................................25 表 3-7 GAREC-2 實驗參數表 ....................................................................................25 表 3-8 UCI 資料集 ......................................................................................................26 表 3-9 Yeast 適應度比較表 ........................................................................................26 表 3-10 Pima 適應度比較表 .......................................................................................26 表 3-11 Abalone 適應度比較表..................................................................................27 表 3-12 Ecoli 適應度比較表.......................................................................................27 表 3-13 Tea 適應度比較表 .........................................................................................27 表 3-14 Iris 適應度比較表..........................................................................................28 表 3-15 Haye-roth 適應度比較表 ...............................................................................28 表 3-16 自訂影像-MHH 資料表................................................................................29 表 3-17 MHH 適應度比較表......................................................................................29 表 3-18 自訂影像-twGPS 資料表..............................................................................30 表 3-19 twGPS 適應度比較表....................................................................................30 表 3-20 自訂影像- LM 資料表...................................................................................31 表 3-21 LM 適應度比較表 .........................................................................................31 表 3-22 自訂影像- Inland 資料表..............................................................................32 表 3-23 Inland 適應度比較表 .....................................................................................32 表 3-24 自訂影像- Seaboard 資料表 .........................................................................33 vii.

(9) 表 3-25 SeaBoard 適應度比較表................................................................................33 表 3-26 自訂影像- Street 資料表...............................................................................34 表 3-27 Street 適應度比較表......................................................................................34 表 3-28 自訂影像- Spiral 資料表 ..............................................................................35 表 3-29 Spiral 適應度比較表......................................................................................35 表 4-1 Tea 資料分割實驗結果比較表........................................................................42 表 4-2 Tea 工作分割實驗結果比較表........................................................................44 表 5-1 實驗硬體環境 .................................................................................................46 表 5-2 Yeast 實驗數據表.............................................................................................47 表 5-3 Pima 實驗數據表 .............................................................................................47 表 5-4 Abalone 實驗數據表........................................................................................48 表 5-5 Ecoli 實驗數據表.............................................................................................48 表 5-6 Tea 實驗數據表 ...............................................................................................48 表 5-7 Iris 實驗數據表................................................................................................48 表 5-8 Haye-roth 實驗數據表 .....................................................................................49 表 5-9 MHH 實驗數據比較表....................................................................................49 表 5-10 twGPS 實驗數據比較表................................................................................49 表 5-11 LM 實驗數據比較表 .....................................................................................49 表 5-12 Inland 實驗數據比較表 .................................................................................50 表 5-13 Seaboard 實驗數據比較表 ............................................................................50 表 5-14 Street 實驗數據比較表..................................................................................50 表 5-15 Spiral 實驗數據比較表..................................................................................50 表 5-16 abalone 解析度分析表...................................................................................51 表 5-17 ecoli 解析度分析表 .......................................................................................52 表 5-18 Pima 解析度分析表 .......................................................................................52. viii.

(10) 表 5-19 Tae 解析度分析表 .........................................................................................52 表 5-20 Hayes-Roth 解析度分析表 ............................................................................52 表 5-21 Iris 解析度分析表..........................................................................................52 表 5-22 yeast 解析度分析表 .......................................................................................53 表 5-23 MHH 解析度分析表......................................................................................53 表 5-24 twGPS 解析度分析表....................................................................................53 表 5-25 LM 解析度分析表 .........................................................................................53 表 5-26 Inland 解析度分析表 .....................................................................................53 表 5-27 Seaboard 解析度分析表 ................................................................................54 表 5-28 Street 解析度分析表......................................................................................54 表 5-29 Spiral 解析度分析表......................................................................................54. ix.

(11) 第一章. 緖論. 1.1 研究背景與目的 資料探勘的目的是從大量資料庫中,找出隱藏在資料中的有用資訊,提供決 策分析者在作決策時的重要參考依據。資料探勘可透過統計、線上分析處理、機 器學習、專家系統和模式識別等方法,來達成資料探勘。資料探勘的過程又稱資 料庫中的知識發掘(Knowledge Discovery in Database)。 資料探勘可以利用機器學習的方式達成。機器學習是人工智慧的一種應用。 目前機器學習常用的方法如分類演算法(Classification Algorithm)、分群演算法 (Clustering Algorithm)、類神經網路(Neural Networks)、模糊理論(Fuzzy Theory) 等方法。機器學習的學習能力雖然無法達到人類學習能力的程度,但在某些條件 限制下,仍可得到令人滿意的學習效果。機器學習在面對高維度或大量資料時, 往往會造成運算耗時的問題。 本 研究探討分類問題,較 廣為人知的分類演算法有貝式分類 (Bayesian Classification)[28][29]、類神經網路(Neural networks)[19][20]、遺傳演算法(Genetic Algorithms)[21][22]、k-最鄰近分類演算法(K-Nearest Neighbor)[26][27]及支援向 量機(Support vector machines)[23][24][25]等。但是這些分類演算法有兩大共同的 問題,一是面對資料分佈複雜的問題,很難建立出好的分類模型。另一個問題是 分類演算法在面對高維度且資料量大的問題時,通常導致執行效率不佳。 本研究提出本研究提出解析編碼之演化式分類演算法(Genetic Algorithm with Resolution-based Encoded Chromosome for Classification, GAREC) ,演算法具 備兩大特色。第一個特色是以解析方格(Resolution Lattice)的方式,決定每一個資 料的分類,這種方法可以處理資料點分佈複雜的問題;第二個特色為透過演化式. 1.

(12) 機制,處理分類模型。本方法經測試,的確可以解決資料分佈複雜的問題。但是 解析編碼之演化式分類演算法在處理高維度大量的資料仍然有運算效率的問 題,因此本研究也針對此進行效率的提升。 為了解決大量資料處理及複雜運算,所帶來的運算耗時的問題,可透兩種策 略來解決此問題:(1)改善機器學習的演算法,將演算法改寫,(2)透過硬體機制 進行平行處理。其中改善機器學習演算法是將演算法重新改寫或使用新的資料結 構,以加快運算速度。但其缺點在於重新改寫程式碼時,無疑增加開發成本與開 發時間。有時也受限於演算法的本質,己無法再進行加速。在此情況下,就必需 考慮改由硬體加速的機制,如:格網運算、平行運算等。以最低的硬體成本,加 快運算速度。 近年 Intel 和 AMD 兩處理器大廠,紛紛推出 x86 系列多核心處理器,且漸 成市場的主流,所以本研究在設計演化式分類演算法程式時,除傳統的單核心版 程式外,還設計支援多核心平行化版本之程式,並探討多核心程式的實作方法, 及不同平行化的策略,對於平行化加速的效益。. 1.2 研究架構 本文研究架構如圖 1-1 研究架構圖,主要分成研究目的、相關研究、演化式 演算法設計、平行化程式設計、實驗分析及結論等部份。 1.. 研究目的:包含相關的研究背景、問題的範圍及問題定義。透過搜集與資料 探勘及機器學習相關資料及文獻了解研究背景。並將研究問題的範圍定在資 料探勘或機器學習面對於大量運算的處理。在問題定義是設計一個新的演化 式分類演算法,並以多核心平行化方式進行程式開發,對於其執行效率進行 分析。. 2.. 相關研究:本研究蒐集並分析相關研究與相關技術文獻,包含演化式計算、 2.

(13) 分類演算法、格網運算、平行運算、多執行緖程式設計、平行化策略等。 3.. 演化式分類演算法設計:設計一個分類演算法,透過演化式計算,找出較佳 的分類模型。. 4.. 平行化程式設計:撰寫多核心版本的演化式分類演算法程式。. 5.. 實驗分析:比較不同資料集、硬體環境及不同實驗參數,各種情況下的實際 效能分析。. 6.. 結論:為依實驗分析結果,探討平行化的方式,對於演化式分類演算法,實 際加速的效益,並建議未來研究方向。. 圖 1-1 研究架構圖. 3.

(14) 1.3 論文架構 本論文後續章節內容簡述如下:第一章說明研究背景及研究目的。第二章簡 述相關研究背、相關資訊技術及敘述相關名詞定義。第三章探討演化式分類演算 法的程式架構。第四章探討多核心程式設計方法、平行化機制、開發環境及範例 說明。第五章實驗與分析,在實驗設計與各種不同資料集與不同參數運用,比較 未平行化的演化式分類演算法的效能與加入平行化後的演化式分類演算法,且增 進多少效能。第六章說明研究的結果,目前遭遇的困難與限制,及建議未來的研 究方向。. 4.

(15) 第二章. 文獻探討. 2.1 分類演算法 資料分類(Classification)的目的是解決未知資料“類別"的歸屬問題,利用 現有資料庫裡的資料屬性及類別找尋資料規則,並且把找尋出來的規則,建立成 資料分類模型,藉此分類模型來預測未來資料應歸屬的類別。分類演算法是一種 監督式(Supervised)的機器學習方法,根據己知的資料進行分類模型的建立。分 類演算法中,通常透過訓練樣本(Training Samples)及測試樣本(Testing Samples) 來完成評估的目的。訓練樣本是根據己知的資料取部份做為模型建立時所需的參 考資料,而分類模型建立完成時,將使用該分類模型來評估測試樣本的資料,將 評估出來的類別與原本測試樣本的己知類別做比較,如此即可知道分類模型的準 確性。以診所使用藥物為例,診所可根據資料庫中的病患資料及症狀建立分類模 型,當有新病患看診時,醫生雖然無法從現有資料庫中調閱到該病患的歷史病 例,但是卻可以依病患症狀從透過分類模型,來決定施打的藥物。常見的分類方 法 有 : 貝 式 分 類 (Bayesian Classification)[28][29] 、 類 神 經 網 路 (Neural Networks)[19][20]、遺傳演算法(Genetic Algorithms)[21][22]、k-最鄰近分類演算 法 (K-Nearest. Neighbor)[26][27] 及 支 援 向 量 機 (Support. Vector. Machines)[23][24][25]等。. 2.2 演化式計算 演化式計算是以計算機模仿生物在自然界中的行為,其概念是利用達爾文進 化論“適者生存,不適者淘汰"(Survival of the Fittest) 的道理,做為搜尋機制, 藉此可求解各種組合的最佳化問題。演化式計算所建立的模式通稱為演化式演算 法 (Evolutionary Algorithms, EA)[30][31][32]。其中最主要的 EA 就是演化式規 劃(Evolutionary Programming, EP) 、演化策略(Evolutionary Strategy, ES) 、與基 5.

(16) 因演算法(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.. 交配運算子:對基因演算法而言,交配是最主要的遺傳運算子。其執行方法 6.

(17) 是挑選群體中的兩條最佳的染色體當成“雙親“,雙親染色體經過合併程序 後,會產生兩條子染色體,子染色體擁有雙親的部份基因。通常交配方式可 分 為 三 種 : (1) 單 點 (one-point) , (2) 兩 點 (two-point) , (2) 多 點 (multi-point)。使用單點交配是從雙親染色體中,挑選出一個交配點,從中 切斷,並且從交配點交換染色體資料,如圖 2-1。使用兩點或多點交配時, 會增加許多交配點,增加染色體的資料交換程度。經過交配後的子染色體由 於是由最佳的染色體產生而成,適應度較高,因此子染色體會直接取代掉適 應度不佳的染色體。 交配點. 交配點. 雙親染色體. 0. 1. 0. 1 1. 1. 0. 1. 1. 1. 1. 0 0. 1. 1. 子染色體. 0. 1. 0. 0 0. 1. 1 1. 1. 1. 1. 1 1. 1. 0 1. 1. 圖 2-1 單點交配示意圖 5.. 突變運算子:突變運算子可以使染色體進入一個未曾找尋過的適應狀態,但 是若突變機率過高,則會使整個基因演算法變成隨機演算法。因此突變運算 子被視為次要的運算子,以較低的機率來使染色體進入未曾找尋的適應狀 態。標準的突變機制,會透過亂數決定突變基因的位置,而這些突變基因有 相對應的機率突變為其它的基因值,如圖 2-2。基因演算法透過上述的演化 機制,即可完成一個世代的演化。而基因演算法應用在實際問題上時,透過 以下流程進行,如圖 2-3。判斷染色體是否己達到收歛狀態,若達到收歛或 者演化世代己達到設定值則會停止基因演算法的演化。. 7.

(18) 突變點. 0 1 0. 1 1. 1. 0 1. 0. 1 0. 1. 0. 1. 1. 1. 圖 2-2 突變運算子示意圖 開始 建立第一代群體 交配. 再次演化. 突變. 挑選 否 收歛 是 結束. 圖 2-3 基因演算法流程圖. 2.3 平行與分散式處理 在面對於大量資料處理及複雜運算時,可透過硬體加速的方式,增進計算效 率,常用的方式有平行處理與分散處理兩種方法,在本節將探討此兩種技術及相 關文獻。. 2.3.1 平行處理 平行運算(Parallel Computing)[2][4]依據平行處理的方式,可分成二種模式:. 8.

(19) (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. Share Memory. I/O Bus. Screen. Network Cord. Hard disk. 圖 2-4 SMP 架構示意圖. 9.

(20) CPU #0. CPU #1. CPU #2. CPU #3. Local Memory. Local Memory. Local Memory. Local Memory. System Bus. System Bus. System Bus. I/O Bus. Network Cord. Hard disk. 圖 2-5 MMP 架構示意圖. 2.3.2 格網運算 格網運算(Grid Computing)[2][5]是一種具備分散式運算,網路服務環境,大 容量儲存體與其它運算資源的整合系統,主要目的建一個虛擬化超級電腦型態的 分散式運算環境,提供解決大容量與複雜性運算等問題。格網運算在進行時,透 過高速網路連接獨立的電腦,每個獨立的電腦有各自的處理器、記憶體及 I/O。 每一台電腦之間,要傳輸資料,必需透過訊息傳遞(Message Passing),而在進行 格網運算之前,必需要資料及任務做適當的切割,再透過高速網路,將資料分送 給各系統內的各台電腦進行運算,由於必需透過網路進行傳輸,所以受限於網路 傳輸速度,其執行方式如圖 2-6。. 10.

(21) CPU #0. CPU #1. CPU #2. CPU #0. CPU #3. CPU #1. System Bus. Share Memory. CPU #3. System Bus. I/O Bus. Screen. CPU #2. Share Memory. Network Cord. Hard disk. I/O Bus. Screen. Network Cord. Hard disk. System Bus. CPU #0. CPU #1. CPU #2. CPU #0. CPU #3. CPU #1. System Bus. Share Memory. CPU #3. System Bus. I/O Bus. Screen. CPU #2. Share Memory. Network Cord. Hard disk. I/O Bus. Screen. Network Cord. Hard disk. 圖 2-6 格網運算示意圖. 2.4 平行化資料分類 資料分類為本文的主要目的,在本節中將探討關於平行化資料分類演算法的 相關文獻。 2005 年 Sungjin Park[12]等人提出(parallel neural network classification banks, PNNCB) 。以類神經網路分類器應用於聲納辨識,其主要目的為辨識感興趣的聲 納特徵,排除掉其它容易造成干擾的噪音聲源。由於類神經網路需要透過訓練權 重值,加強辨識分類的效果,因此使用平行化方法加速類神經網路的訓練時間。 平行化後的類神經網路具有多個事件能力的分類和顯示,藉以提升整體的分類效 能。 2007 年 Rhonda D. Phillips[13]等人,為了解決規模日益擴大的遙感數據集, 因而提出一套共享記憶體的平行化混合分類演算法,迭代制導拒絕分類(Iterative. 11.

(22) 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 的增加,以及資料量太大居住在內部存儲 器。最後,緩衝效率的算法應該允許它的規模以及更處理能力變得可用。. 12.

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

(24) 第三章. 解析編碼之演化式分類演算法. 由於一般機器學習的分類演算法要擁有較高的準確度,必須將分類模型的規 則詳細定義,而詳細的規則定義通常會消耗掉大量的運算資源。本研究提出解析 編碼之演化式分類演算法(Genetic Algorithm with Resolution-based Encoded Chromosome for Classification, GAREC)描述如下。. 3.1 解析式染色體編碼 解析度(Resolution),泛指在影像之中,將一個圖形切割成塊狀方格的方式, 如同螢幕輸出影像的方式,是由大量的像素(Pixel)所組成。影像像素量稱之為解 析度。以螢幕的解析度來說,960*600 是指 x 軸為 960 個像素,而 y 軸有 600 個 像素,在 960*600 的狀態下,全部的像素數量有 576000 個像素。愈高的解析度, 像素數量就會隨之增多。 本研究提出 GAREC 採用類似解析影像的概念,套用在分類資料中。GAREC 所指的解析度是指將訓練的資料維度空間切割成 K 個等份。如圖 3-1,表示一個 二維度的資料空間,每個維度的解析度為 3,整個資料空間的解析度為 32。圖中 每一個方格稱作一個 “解析方格”(Resolution Lattice)。 資料維度-2 g f e d c b a 3. 1. 2. 3. 4. 5. 6. 7. 8. 9. 4. 5. 資料維度-1 6. 圖 3-1 解析方格圖 每一個解析方格表示一個分類區間。例如圖 3-1 編號 5 的解析方格限制了資 14.

(25) 料維度-1 中為[4,5]區間,及資料維度-2 為[b,c]區間,若該解析方格表示一分類 類,別則在該區間的資料點都屬於同一個類別。GAREC 透過解析方格的方式將 訓練資料解析成染色體,其特性如下: 1.. 定義解析方格區間:找出訓練資料中各個維度的最大值與最小值,並且以解 析度決定方格區間的大小,使每一個方格的大小一致。每一個解析方格皆擁 有各自的類別。. 2.. 染色體架構:GAREC 的染色體,是由解析後的解析方格所組成,其排列方 式,如圖 3-2 所示。. 1. 2. 3. 1. 2. 3. 4. 5. 6. 7. 8. 9. 4. 5. 6. 7. 8. 9. 圖 3-2 染色體編碼排列圖 3.. 在 GAREC 的解析編碼中一條染色體就代表一個問題的分類結果。影響染色 體長度的數值為解析度(DPI)及資料維度(DIM) ,例如:在 2 維度的資料 空間中,解析度為 4 時,其染色體長度為 4*4,長度為 16;在 3 維度的資料 空間中,解析度為 8 時,則長度為 8*8*8,總長度 512。資料維度則是直接 影響次方數,因此資料維度對於染色體長度具有較大的影響力。計算染色體 長度的如公式(1). DPI DIM 4.. (1). 定義訓練資料點所屬方格:每一個訓練資料點,皆擁有自己的位置點,因此 以解析區間決定訓練資料點所屬方格。若資料點位於方格範圍內,則該資料 15.

(26) 點屬於該資料範圍,以圖 3-1 為例,若一資料點位置為[5.6,f]則該資料點屬 於方格 3,一個資料維度由公式(2)決定其所屬的解析區間。. ⎣D/Step ⎦ + 1. (2). 3.2 解析編碼之演化式分類演算法 每一個 GAREC 解析方格中,可能含有許多不同類別的資料點。GAREC 演 算法針對此問題時,會將該解析方格再次解析,使每一個解析方格得以完整地表 示一個類別,如圖 3-3 所示。其演算法精神有二: 1.. 解析訓練資料,使資料成為解析方格,並將此解析方格組成基因型式。以 GA 決定每一方格的類別。. 2.. 挑出最佳染色體中適應度不佳的基因,將該基因中未能完全分類的方格再次 解析,使其成為新的子工作。所有子工作重新執行基因演算法的演化分類, 如此反覆重新解析的工作,直到滿足停止條件為止。解析度可因應工作狀況 調整大小,通常呈遞減狀態。 GAREC 編碼流程如圖 3-4,圖中範例為一個 2 維度、解析度為 3 的資料,. 解析後的像素序列即是染色體,染色體中的解析方格就是一個基因,一個基因可 能無類別或同時擁有許多類別的資料點。圖示中的染色體有許多基因是同時擁有 兩個或兩個以上類別的資料點,這樣的基因無法演化出最佳的適應度,因此會再 將此基因再次解析,產生子工作。工作佇列如圖 3-5。. 16.

(27) 圖 3-3 類別解析示意圖. 訓練資料. 解析訓練資料. 染色體. 解析子工作. 圖 3-4 演化式分類演算法編碼流程圖. 圖 3-5 工作佇列示意圖. 17.

(28) 3.3 演化式分類演算法運算元機制 在本節中,將介紹演化式分類演算法如何套用基因演算法的運算子,挑選、 交配及突變,演化式分類演算機制中,額外加入了重生(Restart)機制用以加強演 化的效率。. 3.3.1 初始化染色體 GAREC 演算法一個解析方格所表示的類別即代表一個基因。在染色體初始 化中,GAREC 將每一個基因以亂數產生,以建立初始化的染色體。基因中如果 沒有包含任何的資料,則會將基因類別以空白表示。如圖 3-6(a)中,原資料空間 經解析後變成一長度為 9 的染色體,染色體經演化後,決定解析方格的類別如圖 3-6(b)。. 3.3.2 適應函數 染色體中的基因,由於擁有可能擁有多種不同的類別,因此在適應函數上, 會以基因類別與訓練資料的類別做等比例的適應度計算。計算基因適應度是根據 訓練染色體與演化染色體的相同位置的基因做比對公式(3) ,如圖 3-6(a)中的染 色體的第一個解析方格中,擁有兩個. 類別的資料點與一個 類別資料點,與圖. 3-6(b)演化染色體的第一個解析方格比對,在第一個基因中,總資料點為 3 個, 演化正確的資料點為 2 個,基因適應度為 2 / 3 = 0.6。染色體適應度為基因適應 度的加總,如公式(4),其中 N 為染色體的總長度。如圖 3-7 所示。 fi =. 正確資料點總合 資料點總合. (3). N. fitness = ∑ fi i =0. 18. (4).

(29) (a). (b). 圖 3-6 演化分類表示圖. 0.6. 0.6. 1. 0.5. 1. 0.5. 1. 0.6. 0.5. 圖 3-7 適應度計算示意圖. 3.3.3 挑選機制 GAREC 演算法會在演化過程中,挑選適應度最高的兩條染色體,並將其保 留至下一代繼續演化。. 3.3.4 交配與突變機制 演化式分類演算法的交配方式採用單點交配。突變機制則是參考每一個基因 的突變值。突變值會根據適應度而有所改變,當適應度達到最高時,突變值會直 接歸零,不再突變。. 3.3.5 重生(Restart)機制 演化式分類演算法在演化的過程中,經常會有演化上的瓶頸而陷入區域最佳 解。因此加入計算適應度標準差之機制,藉以判斷適應度提升的速度是否過於緩 慢,若過於緩慢,則會啟動 Restart 機制。Restart 機制中有四種不同的 Restart 方 式。 1.. 是將染色體內容全部以亂數取代現有的類別值,使染色體內容重新訓練. 2.. 是找出問題中,同一類別出現次數最多的類別值。. 3. 分段式基因演算法(Segmented Genetic Algorithm, SGA)是為了用來提升染 色體適應度的機制,該機制將染色體分割成數段染色體,如圖 3-8,每一段. 19.

(30) 染色體會各自執行基因演算法的機制。此機制下,演化的染色體較短,因此 可以有效縮短演化時間。. Selection. Selection. Selection. Selection. Cross-Over. Cross-Over. Cross-Over. Cross-Over. Mutation. Mutation. Mutation. Mutation. 圖 3-8 分段式基因演算法示意圖 4.. 最鄰近演算法(K-Nearest Neighbor, KNN)的特性為搜尋特定範圍中,所有的 類別值,藉以修正中心點的類別值。本文將會利用參數(K)設定 KNN 的 搜尋範圍大小,根據 K 的數值搜尋中心點附近 K 個基因值。如圖 3-9,K 值 為設定為 1,圖中為一個二維的資料空間,中心點基因編號為 12,所找出的 基因編號為(6,7,8,11,13,16,17,18) ,根據找出的基因編號的類別值,重新決 定中心點基因的類別值。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24. 圖 3-9 Restart-KNN (1-NN). 3.6 演算法流程圖及步驟說明 GAREC 演算法流程,可分成三大階段,第一個階段為建立初始資料及讀入 參數設定;第二階段為主工作部份,將讀入的訓練資料進行基因演算,並將演化 後適應度不佳的基因挑出,存入子工作佇列中;第三階段為子工作部份,將主工 作所產生的子工作進行基因演算法的處理,若適應度不佳,會再建立出子工作, 直到所有的工作的適應度達到設定目標停止。實際流程如圖 3-11。 20.

(31) 1.. 初始化工作. „ 讀入演算法基本參數及訓練資料。 „ 定義工作:找出訓練資料中的最大值及最小值。 „ 建立工作:根據最大值及最小值,定義出第一個工作的內容。 2.. 主工作處理. „ 建立訓練染色體:從主工作的訓練資料中,找出訓練染色體。 „ 定義染色體方格範圍:依據工作中資料的最大值及最小值做解析,解析 數由解析度決定。. „ 建立染色體:以亂數產生染色體。 „ 分類演算法:亂數產生的染色體,會透過基因演算法之基本運算子進行 演化,並且根據訓練染色體來監督染色體的適應度。在演化的過程中, 為了防止演化狀態進入趨緩,因此加入重生機制,打亂染色體內容,解 決演化趨緩的狀態。重生機制如 3.3.5 節所述。. „ 產生子工作:每一個工作演算結束後,會挑出染色體中適應度不佳的基 因,根據訓練資料中,符合該基因範圍的資料點,重新定義成新的子工 作,子工作會存入佇列中,若佇列無工作則結束演算工作。在的一次的 遞迴中,會處理一個佇列中的子工作,該子工作會再被解析成新的訓練 染色體,並且執行基因演算,若還是有適應度不佳的基因,將會繼續產 生子工作,如此遞迴地解決掉佇列中的全部的工作,最後完成全部的演 算動作。 3.. 子工作處理. „ 建立訓練染色體:讀取佇列中的子工作,建立訓練染色體 „ 定義染色體方格範圍:依據子工作中資料的最大值及最小值做解析,解 析數由解析度決定。. „ 建立染色體:以亂數產生染色體。. 21.

(32) „ 基因演算法:同第二階段的基因演算方式進行演算 „ 產生子工作:同第二階段方式產生子工作 3.7 建立分類模型 訓練資料經過演化式分類演算法演算後,可以將原始資料透過方格的方式將 每一個類別方格切割出來,並且辨識出每一個方格的類別。如圖 3-10,在實際的 演算中,分類模型的方格大小依據問題而定。. 圖 3-10 原始訓練資料與分類模型比較圖. 圖 3-11 演化式分類演算法流程圖. 22.

(33) 3.8 實驗分類效果 實驗資料以 7 種不同的 UCI 資料集[18]及 7 種不同的自訂影像資料集進行實 驗,並且使用 Weka 3.6.2 軟體之演算法,與本文提出之演算法 GAREC 進行適應 度 之 比 較 , 採 用 的 演 算 法 分 別 為 SMO 、 DecisionTable 、 ConjunctiveRule 、 MultilayerPerceptron 及 LibSVM。本實驗著重於分類適應度的計算。適應度的計 算實驗會先根據訓練資料訓練分類模型,測試資料與訓練資料比例分別為 70: 30、80:20,90:10,建立完成之分類模型再以測試資料進行測試。適應度是以 測試資料於分類模型中的正確率做計算。適應度可由公式(5)得之,假設若測試 資料筆數為 100,其正確分類的資料為 66,則適應度為 100/66 = 0.66。 測試資料筆數 測試正確數. (5). 因此適應度之值位於 0~1 之間,最佳的適應度值為 1。 實驗採用的參數如 下: 表 3-1 SMO 實驗參數表 buldLogisticModels. False. c. 1.0. checksTurnedOff. False. debug. False. epsilon. 1.0E-12. filterType. Normalize Training Data. kernel. PolyKernel –C 250007 –E 1.0. numFolds. -1. RandomSeed. 1. toleranceParameter. 0.0010. 23.

(34) 表 3-2 DecisionTable 實驗參數表 crossVal. 1. debug. False. displayRules. False. evaluationMeasure. Defualt. search. BestFirst –D 1 –N 5. useIBk. False. 表 3-3 ConjunctiveRule 實驗參數表 debug. False. exclusive. False. folds. 3. minNO. 2.0. numAntds. -1. seed. 1 表 3-4 LibSVM 實驗參數表. SVMType. C-SVC (classification). cacheSize. 40.0. coef0. 0.0. cost. 1.0. debug. False. degree. 3. doNotReplaceMissingValues. False. eps. 0.0010. gamma. 0.0. kernelType. radial basis function. loss. 0.1. normalize. False. nu. 0.5. probabilityEstimates. False. shrinking. True. weights. NULL. 24.

(35) 表 3-5 MultilayerPerceptron 實驗參數表 GUI. False. autoBuild. True. debug. False. decay. False. hiddenLayers. a. learningRate. 0.3. momenturn. 0.2. nominalToBinaryFilter. True. normalizeAttributes. True. normalizeNumericClass. True. reset. True. seed. 0. trainingTime. 500. validationSetSize. 0. validationThreshold. 20. 表 3-6 GAREC-1 實驗參數表 Population. 12. Generation. 1000. Mutation_Probability. 0.1. Succeed. 1.0. 表 3-7 GAREC-2 實驗參數表 Population. 12. Generation. 300. Mutation_Probability. 0.5. Succeed. 1.0. 25.

(36) 表 3-8 UCI 資料集 資料集. 維度. 類別數. 資料筆數. Yeast. 8. 10. 1484. Pima. 8. 2. 768. Abalone. 8. 3. 4177. Ecoli. 7. 8. 336. Tea. 5. 3. 151. Iris. 4. 3. 150. Haye-roth. 4. 3. 132. 表 3-9 Yeast 適應度比較表 FILE. Classify. 70%. 80%. 90%. yeast. SMO. 0.575281. 0.569024. 0.621622. DecisionTable. 0.588764. 0.589226. 0.60.1351. ConjunctiveRule. 0.413483. 0.42.4242. 0.418919. LibSVM. 0.442697. 0.427609. 0.486486. MultilayerPerceptron. 0.604494. 0.639731. 0.682432. GAREC-1. 0.641723. 0.62585. 0.646259. GAREC-2. 0.600907. 0.676871. 0.544218. 表 3-10 Pima 適應度比較表 FILE. Classify. 70%. 80%. 90%. pima. SMO. 0.752174. 0.746753. 0.714286. DecisionTable. 0.721739. 0.714286. 0.649351. ConjunctiveRule. 0.7. 0.688312. 0.649351. LibSVM. 0.630435. 0.623377. 0.610390. MultilayerPerceptron. 0.739130. 0.753247. 0.714286. GAREC-1. 0.723684. 0.754967. 0.778761. GAREC-2. 0.765487. 0.821192. 0.723684. 26.

(37) 表 3-11 Abalone 適應度比較表 FILE. Classify. 70%. 80%. 90%. abalone. SMO. 0.539505. 0.530539. 0.564593. DecisionTable. 0.522745. 0.530539. 0.521531. ConjunctiveRule. 0.530726. 0.51976. 0.566986. LibSVM. 0.534717. 0.525749. 0.535885. MultilayerPerceptron. 0.558659. 0.567665. 0.571770. GAREC-1. 0.54996. 0.582734. 0.594724. GAREC-2. 0.554756. 0.591127. 0.621103. 表 3-12 Ecoli 適應度比較表 FILE. Classify. 70%. 80%. 90%. ecoli. SMO. 0.821782. 0.835821. 0.882353. DecisionTable. 0.732673. 0.76.1194. 0.82.3529. ConjunctiveRule. 0.574257. 0.58.209. 0.67.6471. LibSVM. 0.653465. 0.731343. 0.823529. MultilayerPerceptron. 0.831683. 0.850746. 0.882353. GAREC-1. 0.818182. 0.830769. 0.826531. GAREC-2. 0.877551. 0.923077. 0.939394. 表 3-13 Tea 適應度比較表 FILE. Classify. 70%. 80%. 90%. tea. SMO. 0.511111. 0.566667. 0.4. DecisionTable. 0.333333. 0.3. 0.466667. ConjunctiveRule. 0.266667. 0.3. 0.4. LibSVM. 0.533333. 0.533333. 0.6. MultilayerPerceptron. 0.422222. 0.533333. 0.533333. GAREC-1. 0.533333. 0.62069. 0.627907. GAREC-2. 0.651163. 0.689655. 0.733333. 27.

(38) 表 3-14 Iris 適應度比較表 FILE. Classify. 70%. 80%. 90%. Iris. SMO. 0.955556. 0.966667. 0.933333. DecisionTable. 0.955556. 0.966667. 0.933333. ConjunctiveRule. 0.666667. 0.70. 0.666667. LibSVM. 1. 1. 1. MultilayerPerceptron. 0.909812. 0.966667. 0.933333. GAREC-1. 0.933333. 0.965517. 0.953488. GAREC-2. 0.953488. 0.931034. 0.933333. 表 3-15 Haye-roth 適應度比較表 FILE. Classify. 70%. 80%. 90%. Heya-Roth. SMO. 0.525. 0.615385. 0.538462. DecisionTable. 0.475. 0.461538. 0.615385. ConjunctiveRule. 0.325. 0.346154. 0.384615. LibSVM. 0.825. 0.769231. 0.846154. MultilayerPerceptron. 0.775000. 0.615385. 0.615385. GAREC-1. 0.684211. 0.730769. 0.846154. GAREC-2. 0.710526. 0.692308. 0.538462. 在 UCI 資料集中,GAREC 與其它分類演算法比較,可以顯示出分類效果在 面對各種不同的資料集,皆可以擁有與其它分類演算法相同或更佳的分類效果。 而 GAREC-1 與 GAREC-2 所使用的參數不同,因此執行後的分類效果有所差異。 以下我們嘗試以影像資料集進行演化式分類程式的分類效果,下表為本文所 使用之影像資料集。. 28.

(39) 表 3-16 自訂影像-MHH 資料表. 影像名稱. MHH. 維度. 6. 維度說明. 像素位置:x,y 三原色:R,G,B 三原色總合:s. 類別數. 3. 資料筆數. 20127 自定影像. 圖片說明 表 3-17 MHH 適應度比較表 FILE. Classify. 70%. 80%. 90%. MHH. SMO. 0.990394. 0.990559. 0.992052. DecisionTable. 1. 1. 1. ConjunctiveRule. 0.75058. 0.752298. 0.746647. LibSVM. 0.503644. 0.504596. 0.510681. MultilayerPerceptron. 0.995694. 0.995528. 0.995529. GAREC-1. 0.991716. 0.990805. 0.992545. GAREC-2. 0.990722. 0.989811. 0.992048. 在 MHH 自訂影像中,資料點多,而且維度較大,但是資料分佈狀況屬非常 複雜的分佈,在這一個實驗當中 SMO。DecisionTable 及 GAREC 演算法皆可以 達到 0.95 以上的適應度。而 LibSVM 往往無法擁有較佳的分類效果。. 29.

(40) 表 3-18 自訂影像-twGPS 資料表. 影像名稱. twGPS. 維度. 3 經度:x 緯度:y 高度:h. 維度說明. 類別數. 3. 資料筆數. 2748 台灣 GPS 坐標點配置圖. 圖片說明. 表 3-19 twGPS 適應度比較表 FILE. Classify. 70%. 80%. 90%. twGPS. SMO. 0.962379. 0.96. 0.956364. DecisionTable. 0.987864. 0.987273. 0.989091. ConjunctiveRule. 0.694175. 0.676364. 0.669091. LibSVM. 0.759709. 0.750909. 0.727273. MultilayerPerceptron. 0.989078. 0.994545. 0.989091. GAREC-1. 0.978129. 0.972678. 0.970909. GAREC-2. 0.970838. 0.974499. 0.963636. 在 twGPS 自訂影像中,資料點不多且資料維度並不大,但是台灣 GPS 坐標 點的資料分佈中,高度的值差異最大,因此 SVM 無法達到 SMO、DecisionTable 及 GAREC 演算法的分類效果。 30.

(41) 表 3-20 自訂影像- LM 資料表. 影像名稱. LM. 維度. 6 像素位置:x,y 三原色:R,G,B 三原色總合:s. 維度說明. 類別數. 6. 資料筆數. 586 自定影像. 圖片說明 表 3-21 LM 適應度比較表 FILE. Classify. 70%. 80%. 90%. LM. SMO. 0.892045. 0.905983. 0.932203. DecisionTable. 0.994318. 1. 1. ConjunctiveRule. 0.704545. 0.683761. 0.661017. LibSVM. 0.784091. 0.752137. 0.711864. MultilayerPerceptron. 1. 0.957265. 1. GAREC-1. 0.971264. 1. 1. GAREC-2. 0.988506. 0.982759. 1. LM 自訂影像中,資料點不多且資料維度並不大,但是該資料集的第四、第 五個維度的值,差異很大大,因此 SVM 無法達到 SMO、DecisionTable 及 GAREC 演算法的分類效果。. 31.

(42) 表 3-22 自訂影像- Inland 資料表. 影像名稱. Inland. 維度. 6 像素位置:x,y 三原色:R,G,B 三原色總合:s. 維度說明. 類別數. 3. 資料筆數. 65535 自定影像. 圖片說明 表 3-23 Inland 適應度比較表 FILE. Classify. 70%. 80%. 90%. Inland. SMO. 0.989013. 0.989319. 0.990844. DecisionTable. 0.997304. 0.997177. 0.997558. ConjunctiveRule. 0.911089. 0.910353. 0.905234. LibSVM. 0.994456. 0.995575. 0.995422. MultilayerPerceptron. 0.916022. 0.915465. 0.909812. GAREC-1. 0.999593. 0.999237. 0.999695. GAREC-2. 0.999695. 0.999466. 0.999542. 在 SeaBoard 自訂影像中,資料點多,而且維度較大,但是資料分佈狀況並 不屬於非常複雜的分佈,在這一個實驗當中所有測試的分類演算法皆可以達到 0.9 以上的適應度。 32.

(43) 表 3-24 自訂影像- Seaboard 資料表. 影像名稱. Seaboard. 維度. 6 像素位置:x,y 三原色:R,G,B 三原色總合:s. 維度說明. 類別數. 5. 資料筆數. 65535 自定影像. 圖片說明 表 3-25 SeaBoard 適應度比較表 FILE. Classify. 70%. 80%. 90%. SeaBoard. SMO. 0.993998. 0.994965. 0.995269. DecisionTable. 0.990946. 0.991684. 0.990844. ConjunctiveRule. 0.823296. 0.821241. 0.819777. LibSVM. 0.98825. 0.991379. 0.991759. MultilayerPerceptron. 0.997152. 0.997711. 0.998321. GAREC-1. 0.998779. 0.998932. 0.999237. GAREC-2. 0.999135. 0.999084. 0.999390. 在 SeaBoard 自訂影像中,資料點多,而且維度較大,但是資料分佈狀況並 不屬於非常複雜的分佈,在這一個實驗當中 SMO、DecisionTable、LibSVM 及本 文所提出之 GAREC 演算法皆可以達到 0.99 以上的適應度。 33.

(44) 表 3-26 自訂影像- Street 資料表. 影像名稱. Street. 維度. 6 像素位置:x,y 三原色:R,G,B 三原色總合:s. 維度說明. 類別數. 6. 資料筆數. 65535 自定影像. 圖片說明 表 3-27 Street 適應度比較表 FILE. Classify. 70%. 80%. 90%. Street. SMO. 0.983825. 0.986343. 0.98947. DecisionTable. 0.965768. 0.965438. 0.966275. ConjunctiveRule. 0.463377. 0.459831. 0.465893. LibSVM. 0.972838. 0.97528. 0.978178. MultilayerPerceptron. 0.980112. 0.962921. 0.984587. GAREC-1. 0.996795. 0.997253. 0.997253. GAREC-2. 0.995574. 0.997253. 0.996948. 在 Street 自訂影像中,資料點多,而且維度較大,但是資料分佈狀況並不屬 於非常複雜的分佈,在這一個實驗當中 SMO、DecisionTable、LibSVM 及本文所 提出之 GAREC 演算法皆可以達到 0.95 以上的適應度。. 34.

(45) 表 3-28 自訂影像- Spiral 資料表. 影像名稱. Spiral. 維度. 6 像素位置:x,y 三原色:R,G,B 三原色總合:s. 維度說明. 類別數. 6. 資料筆數. 65535 自定影像. 圖片說明 表 3-29 Spiral 適應度比較表 FILE. Classify. 70%. 80%. 90%. Spiral. SMO. 0.614286. 0.578571. 0.6. DecisionTable. 0.928571. 0.928571. 0.928571. ConjunctiveRule. 0.590476. 0.528571. 0.557143. LibSVM. 0.557143. 0.55. 0.442857. MultilayerPerceptron. 0.614286. 0.585714. 0.614286. GAREC-1. 1. 1. 1. GAREC-2. 1. 1. 1. 除 了 Spiral 資 料 集 之 外 , 自 訂 影 像 資 料 集 的 適 應 度 在 使 用 SMO 、 DecisionTable 及 GAREC 的演算法皆可達到 0.9 以上,並且在各個不同核心架構 下,根據維度及演化狀況的不同,執行效率確實有所提升。. 35.

(46) Spiral 資料集,資料分佈是屬於螺旋型,許多演算法在面對這種型態的資料 集,皆無法達到較佳的適應度。從實驗數據顯示 SMO 演算法就受到相對大的影 響。而 GAREC 演算法在面臨螺旋型的資料集,仍然擁有相當高的適應度,因為 GAREC 的解析方式,可以將螺旋型的資料解析成圖 3- 12 的型式,達到較佳的 分類效果。. 圖 3- 12 Spiral 解析圖 根據實驗所示,GAREC 演算法的分類適應度,在各種 UCI 資料集下皆可以 比 SMO、DecisionTable 或 CojunctiveRule 擁有更佳的適應度。即使如此 GAREA 仍然無法描述出完整的分類模型。其原因是因為,若資料筆數太少,而訓練資料 點位於邊界上,很可能造成誤判的狀況,如圖 3- 13,在編號 1 及編號 5 的方格 中,會因為訓練資料的關係,編號 1 被歸為紅色類別,而編號 5 會被歸為藍色類 別,假設方格 5 中的點為測試資料的點,那便會造成該點有可能應該被歸屬於紅 色類別的狀況,因此造成分類結果不佳,資料集的資料點內容差異愈小,愈容易 造成分類效果不佳。. 圖 3- 13 分類錯誤圖 36.

(47) 第四章. 多核心程式設計與方法. 4.1 多執行緖程式設計 多執行緖程式是實現多核心處理器平行化計算的一種方法,本章將說明執行 緖與多執行緖、多執行緖設計方法。並且將多核心程式設計方法套用至 GAREC 演算法,使其成為平行化解析編碼之演化式分類演算法(Parallel GAREC, P-GAREC). 4.1.1 執行緖 執行緖(Thread)[1]又稱輕量級程序( Lightweight process),它是 CPU 在運算 時最基本單位,它是由一個執行緖 ID、程式計數器、一組暫存器,及一個堆疊 空間所組成。而傳統的程序(Process)在一般情況下,只擁有一個執行緖,但當程 序是以多執行緖方式開發,此執行緖將控制多個執緖。如圖 4-1 所示執行緖在記 憶中的存取狀況,單執行緖每個程式有各自暫存器、堆疊,且包含各自的程式碼、 資料及檔案等,但多執行緖在記體中,每個執行緖擁有名自暫存器和堆疊外,而 程式碼、資料及檔案都是共享的方式進行存取。 使用多執行緖的優點: 1.. 應答(Responsiveness):對於交談式應用程式使用多執行緖時,例如某個程式 發出詢問視窗,等待使用者回應時,若以多執行緖方式開發設計,則在背景 仍可持續處理其它運算。. 2.. 資源分享(Resource sharing):執行緖之間共享它們所屬程序的記憶體和資 源。如圖 4-1 兩個執行緖擁有各自暫存器和堆疊,但共用程式碼、資料、檔 案等資源。. 37.

(48) 3.. 經濟(Economy):以程式的方式所配置的記憶體和資源耗費相當大,但由於 多執行緖共享其所屬程序的資源,所以在記憶體上更省記憶體空間。. 4.. 使用多處理器架構(Utilization of multiprocessor architectures):在多個處理器 的架構下,多執行緖將有更多優勢,因為每一個執行緖,可以並行的在不同 處理器上執行。. 暫存器組 執行緒. 暫存器組. 堆疊. 堆疊 程式碼/資料/檔案. 暫存器組 暫存器組 執行緒. 堆疊. 堆疊. 執行緒. 程式碼/資料/檔案 執行緒. 程式碼/資料/檔案. 單執行緒. 多執行緒. 圖 4-1 多執行緖示意圖. 4.1.2 多執行緖程式設計方法 多執行緖程式設計(Multi-Threads Programming)[1][7][9]是一種撰寫多核心 處理器平行運算的方法,由於多執行緖的技術已行之有年,撰寫多執行緖程式的 方法有很多種,以下將介紹常見開發多執行緖程式的方法: 1.. Win32 API:是針對微軟 Windows 系列作業系統而設計,在程式開發時,可 直接呼叫執行緖相關的函式,就可以控制執行緖,優點在於可控制到底層的 的執行緖,使用上較靈活,但其缺點只能在 Windows 作業系統環境下執行, 38.

(49) 且在程式撰寫上較複雜。 2.. Pthreads:是根據 POSIX(IEEE 1003.1c)所制定標準定義執行緖產生和同步的 API,與 Win32 API 相同,皆是用來控制執行緖的 API,優點在於可控制到 底層的的執行緖,使用上較靈活,其缺點是只能執行在 Unix 的環境之下, 且在程式撰寫上較複雜。. 3.. Open-MP API:是一種針對共享記憶體架構,開發多執行緖程式所設計的 API,其優點在對於單核原本程式碼,加上 Open-MP 的指令碼,不需重新設 計原始碼,就可進行平行化處理,且支援 Windows、Unix、Linux 等環境, 支援程式語言包含 C/C++和 Fortran,相較 Windows API 和 Pthread,在控制 執行緖上,較無靈活性,但撰寫與開發上較容易。. 4.. Java Thread:Java 是少部份直接支持執行緖的產生與控制的程式語言,然 而,因為 Java 的程式執行時,需要透過 Java 虛擬機(JVM),且 Java 產生的 執行緖,也是由 Java 虛擬機控管,因此若是 Java 虛擬機不支援平行化的設 計,就用 Java 是以多執行緖的方式設計,仍無法支援平行運算。. 4.2 平行化策略 開發多執行緖程式時,程式設計師應著重在單執行緖版本的程式分析,找出 程式中適合平行化的程式碼的區塊,當找出這些程式碼區塊時,在依問題的不 同,將計算內容做適當的切割,切割方式可分成兩種:. 4.2.1 資料分割(Data Decomposition) 對於大量資料運算而造成的運算耗時之問題,資料分割是一個很好的平行策 略,其運作概念是將要運算的資料進行切割,在將切割的資料,分給不同執行緖 進行運算。舉例如圖 4-2 資料分割示意圖說明有一千筆資料要進行運算,可將一 千筆資料分成四等份,每一等份由一個執行緖進行運算。. 39.

(50) 圖 4-2 資料分割示意圖. 4.2.2.任務分割(Task Decomposition) 當面對面對原始程式中,有較複雜運算時,可採取任務分割的平行策略,將 較複雜的運算切割出來,交由一個執行緖專門處理此複雜運算,但必需在任務與 任務間之間沒有相依性,舉例如圖 4-3 任務分割示意圖說明如果程式共需執行五 個任務,而五個任務各自有複雜運算,可利用任務分割的策略,進行平行運算, 但其中 Task3 和 Task4 是具有前後相依性,則在任務分割時,必需交由同一個執 行緖處理,而其它 Task1、Task2、Task5 等則可直接分配至其它執行緖進行處理。. 圖 4-3 任務分割示意圖. 4.3 演化式分類程式設計階段 在演化式分類程式設計階段,以 C 語言撰寫單核心的演化式分類程式,在 程式執行過程中,會以基因演算法將找出分類工作中的較佳解答,並且挑出染色 體中適應度不佳的基因,將其重新編碼,建立子工作,以子工作重覆執行基因演 化,直到無子工作為止。由於計算時間冗長,因此進行平行化處理,在 P-GAREC 40.

(51) 演算法中,我們使用 Open-MP API 進行平行化處理。. 4.4 平行化階段 平行化階段可分成兩大部份,第一部份為主工作的平行化,第二部份為子工 作部份進行平行化工作。 主工作通常解析度較高,所以染色體長度較長,然而過長的染色體非常消耗 運算資源,會導致基因演算法的運算效率不佳。因此必須進行平行化處理。第一 個分類工作,屬於單一工作,但運算大的問題。根據 4.2 節所討論,適合使用資 料分割的方式進行平行化處理。方法如圖 4-4 資料分割設計概念圖,圖中將染色 體切割成四段,每一段的染色體各自執行基因演算法的演化動作。. 圖 4-4 資料分割設計概念圖 在平行化的過程中,每一段染色體可能會有共同使用的變數,因此需要對這 些變數進行處理,如圖 4-5 資料分割程式碼中,每一段的基因演算法都會使用 i 變數來進行基因演算法的計數,因此必需使用 Open-MP 中的 private 進行處理, 使程式執行的過程中,不會造成衝突。. 41.

(52) omp_set_num_threads(CORE); #pragma omp parallel for private (i) for(j=0;j<SEG;j++) { ... for(i=0;i<GEN;i++) { ... getFitness(); ... CrossOver(); #pragma omp critical Mutation(); ... } ... } 圖 4-5 資料分割程式碼 根據資料分割的設計概念,我們做了一個實驗在多核心平台下的執行效率比 較,實驗資料使用 UCI 的 Tea 資料集,該資料集為 5 個維度、3 個類別、共有 151 筆資料,僅測試第一個工作的執行時間,如表 4-1 所示,執行時間確實有顯 著地提升。 表 4-1 Tea 資料分割實驗結果比較表 執行緖數量 執行時間. 1 1.906(秒). 2 0.984(秒). 4 0.625(秒). 子工作部份,是屬於資料量不多,但是工作數量很多的狀況,大量的工作數 量,會導致執行時間過久,因此必須進行平行化處理。根據 4.2 節所討論,工作 量多,而每一個工作並不耗時的狀況下適合使用工作分割進行平行化處理。在圖 4-6 工作切割概念圖中,Job Queue 為儲存子工作的區域,而 Job Process 是將工. 42.

(53) 作載入的工作區,子工作要被處理前,會被移到 Job Process 中,每一個 Job Process 會被一個執行緖所執行。. 圖 4-6 工作切割概念圖 執行工作切割時,基因演算法所使用到的指標變數皆會造成變數衝突,因此 在實作時,必須將全部的指標變數使用 private 指令,避免衝突的產生。在圖 4- 7 工作分割程式碼中,AssigtJob 函數是將子工作移入 JobProcess 的動作,分配好 工作之後進行平行化處理。,為了讓各個基因演算法能夠正確地讀取所屬的 JobProcess,因此加入 TID 變數,做為辨識執行緖的編號,演算法會根據所屬編 號進行演化,並產生新的子工作。. 43.

(54) While(JobQueue != NULL){ AssignJob(); omp_set_num_threads(CORE); #pragma omp parallel private(TID,RAWD,gRS_Pot,MT_Str,CRO,TCRO,GA_FAvg,GA_FStr,CO_TKing,SUMSCORE,SUBDOT) { #pragma omp critical TID = omp_get_thread_num(); GA(TID); CreateSubJob(); } }. 圖 4- 7 工作分割程式碼 根據工作分割的設計概念,我們做了一個實驗在多核心平台下的執行效率比 較,實驗資料使用 UCI 的 Tea 資料集,該資料集為 5 個維度、3 個類別、共有 151 筆資料,僅測試子工作部份的執行時間,如表 4-2 所示,執行時間確實有顯 著地提升。 表 4-2 Tea 工作分割實驗結果比較表 執行緖數量 執行時間. 1 5.016(秒). 2 3.453(秒). 44. 4 1.813(秒).

(55) 第五章. 整合後實驗與不同參數分析. 5.1 實驗測試規劃 本研究完成兩大設計階段及一個測試階段,如圖 5-1 實驗流程架構圖,第一 階段為演化式分類程式,第二階段為使用 Open-MP 進行程式平行化,最後實驗 測試階段,使用 UCI 資料集及影像資料集,測試單核心、雙核心及四核心的執 行效率。. 圖 5-1 實驗流程架構圖. 45.

(56) 5.2 實驗測試環境 1.. 實驗資料搜集 本實測試兩組資料,一組為 UCI 所提供測試資料集,搜集 UCI 資料庫中, 大量資料與高維度資料集,且適合進行演化式分類演算法的資料集。而另一 組資料則是以影像資料。. 2.. 實驗環境 為了探討演化式分類演算法於多核心平行化計算的加速效益,在實驗環境在 處理器,必需支援多核心共享記憶體架構。目前實驗硬體環境如下表 5-1 實. 驗硬體環境 表 5-1 實驗硬體環境 處理器. Intel(R)Core(TM)2 6300 CPU3.0GHz. Intel(R) Core (TM) 2 Quad Q6600 CPU3.2GHz. 核心數 記憶體. 2 3GB. 4 4GB. 5.3 實驗參數 實驗說明:本實驗分成兩大部份第一部份以. 46.

(57) 表 3-8 UCI 資料集進行實驗分類測試,並且將分別討論資料集在不同核心數量下 的適應度、加速倍率及解析度比較。第二部份以自訂影像資料進行分類測試,根 據己知的資料圖形來說明分類效果。. ‹ 實驗參數:適應度、核心數目、訓練資料百分比。 ‹ 實驗工具:以 weka 軟體之 SMO、DecisionTable、ConjunctiveRule 及 LibSVM 分類方法進行適應度比較。. ‹ 加速倍率(SpeedUP):計算 SpeedUP,如公式(7),GAREC_TIME 為單核 心 之執行時間,PGAREC_TIME 則是多核心的執行時間。SpeedUP 為加 速的倍數。若 SpeedUP 小於 1,則代表多核心執行時間比單核心執行時間 更久。 SpeedUP = ‹. PGAREC _ TIME GAREC _ TIME. (7). 執行時間:訓練模型所花費的時間,執行時間皆以”秒”為單位。. 5.4 多核心效率實驗 1. UCI 實驗-1 實驗資料以 UCI 資料集進行模型訓練,GAREA 演算法之解析度設定為 2, 比較資料集在各種不同的核心數量下的訓練時間及加速倍率。 表 5-2 Yeast 實驗數據表 單核心結果 雙核心結果 四核心結果 Yeast 訓練 適應 執行 適應 執行 Speed 適應 執行 Speed UP UP 百分比 度 時間 度 時間 度 時間 90% 0.646259 172.578 0.646259 136.281 1.27 0.646259 99.344 1.74 0.62585 175.438 0.629252 110.625 1.59 0.629252 77.14 2.27 80% 70% 0.641723 127.891 0.639456 97.078 1.32 0.641723 72.359 1.77 47.

(58) 表 5-3 Pima 實驗數據表 單核心結果 雙核心結果 四核心結果 訓練 適應 執行 適應 執行 Speed 適應 執行 UP 百分比 度 時間 度 時間 度 時間 90% 0.778761 31.172 0.778761 26.625 1.17 0.778761 13.922 80% 0.754967 35.672 0.754967 26.969 1.32 0.754967 14.86 Pima. 70%. 0.723684. 25.61. 0.723684. 23.11. 48. 1.11. 0.723684 12.562. Speed UP 2.24 2.40 2.04.

(59) 表 5-4 Abalone 實驗數據表 單核心結果 雙核心結果 四核心結果 訓練 適應 執行 適應 執行 Speed 適應 執行 Speed UP UP 百分比 度 時間 度 時間 度 時間 90% 0.592326 545.422 0.594724 352.985 1.55 0.589928 291.391 1.87 80% 0.583933 483.407 0.582734 324.625 1.49 0.582734 235.953 2.05 70% 0.546763 432.078 0.549161 308.328 1.40 0.54996 218.813 1.97. Abalone. 表 5-5 Ecoli 實驗數據表 Ecoli 訓練 百分比 90%. 單核心結果 適應 執行 度 時間 0.826531 6.156. 80%. 0.830769. 4.422. 70%. 0.818182. 5. 雙核心結果 適應 執行 Speed UP 度 時間 0.826531 3.61 1.71 0.830769 3.766 1.17. 四核心結果 適應 執行 Speed UP 度 時間 0.826531 3.391 1.82 0.830769 3.094 1.43. 0.818182. 0.818182. 3.313. 1.51. 2.578. 1.94. 表 5-6 Tea 實驗數據表 Tea. 單核心結果. 雙核心結果. 四核心結果. 訓練 百分比. 適應 度. 執行 時間. 適應 度. 執行 時間. Speed UP. 適應 度. 執行 Speed 時間 UP. 90%. 0.627907. 5.016. 0.627907. 3.453. 1.45. 0.627907. 1.813. 2.77. 80%. 0.62069. 5.156. 0.586207. 3.437. 1.50. 0.655172. 1.719. 3.00. 70%. 0.533333. 4.5. 0.466667. 2.703. 1.66. 0.533333. 1.578. 2.85. 表 5-7 Iris 實驗數據表 Iris. 單核心結果. 雙核心結果. 四核心結果. 訓練 百分比. 適應 度. 執行 時間. 適應 度. 執行 時間. Speed UP. 適應 度. 90%. 0.933333. 0.656. 0.933333. 0.5. 1.31. 0.933333. 0.406. 1.62. 80%. 0.965517. 0.625. 0.965517. 0.5. 1.25. 0.965517. 0.219. 2.85. 70%. 0.953488. 0.578. 0.953488. 0.344. 1.68. 0.953488. 0.219. 2.64. 49. 執行 Speed 時間 UP.

(60) 表 5-8 Haye-roth 實驗數據表 Haye-roth 訓練 百分比. 單核心結果 適應 度. 雙核心結果. 執行 時間. 適應 度. 四核心結果. 執行 Speed 時間 UP. 適應 度. 執行 Speed 時間 UP. 90%. 0.846154 1.016 0.846154 0.547. 1.86. 0.846154 0.313. 3.25. 80%. 0.730769 0.953 0.730769 0.563. 1.69. 0.730769 0.406. 2.35. 70%. 0.684211 0.906 0.684211 0.469. 1.93. 0.684211 0.375. 2.42. 表 5-9 MHH 實驗數據比較表 MHH 訓練 百分比. 單核心結果 適應 度. 雙核心結果. 執行 時間. 適應 度. 執行 時間. 四核心結果 適應 度. Speed UP. 執行 時間. Speed UP. 90%. 0.992545 87.875 0.991054 61.109. 1.44. 0.992545 38.313. 2.29. 80%. 0.990805 71.031 0.990308 51.875. 1.37. 0.990805 34.625. 2.05. 70%. 0.991716 69.812 0.991551 49.437. 1.41. 0.991551 32.593. 2.14. 表 5-10 twGPS 實驗數據比較表 twGPS. 單核心結果. 雙核心結果. 四核心結果. 訓練 百分比. 適應 度. 執行 時間. 適應 度. 執行 時間. Speed UP. 適應 度. 90%. 0.970909. 3.406. 0.970909. 1.813. 1.88. 0.970909. 1.078. 3.16. 80%. 0.972678. 3.266. 0.972678. 1.797. 1.82. 0.970856. 1.094. 2.99. 70%. 0.978129. 3.016. 0.979344. 1.625. 1.86. 0.979344. 0.953. 3.16. 執行 Speed 時間 UP. 表 5-11 LM 實驗數據比較表 LM. 單核心結果. 雙核心結果. 四核心結果. 訓練 百分比. 適應 度. 執行 時間. 適應 度. 執行 時間. Speed UP. 適應 度. 90%. 1. 4.985. 1. 2.36. 2.11. 1. 2.563. 1.94. 80%. 1. 1.953. 1. 1.766. 1.11. 1. 1.891. 1.03. 70%. 0.971264. 2.36. 0.971264. 2.578. 0.92. 0.971264. 0.922. 2.56. 50. 執行 Speed 時間 UP.

參考文獻

相關文件

微算機原理與應用 第6

計算機網路 微積分上 微積分下

應用閉合電路原理解決生活問題 (常識) 應用設計循環進行設計及改良作品 (常識) 以小數加法及乘法計算成本 (數學).

相關分析 (correlation analysis) 是分析變異數間關係的

也就是設定好間隔時間(time slice)。所有的 程序放在新進先出的佇列裡面,首先CPU

• 1961 年Lawrence Roberts使用低速網路線 將劍橋與加州的電腦相連,展示廣域網路 (wide area network) 的概念..

一、工業革命與19世紀社會背景 二、工業革命對設計環境的影響 三、平面設計的新形式與新媒材

Keywords: pattern classification, FRBCS, fuzzy GBML, fuzzy model, genetic algorithm... 第一章