N a tio n a l U niversity of Kao hsi un g
國立高雄大學電機工程學系
計算機組
碩士論文
以演化式學習法調整自主型機器人之 MPI 分散
式訊息管理機制的效能
Adaptive Performance Management for MPI-based
Mobile Robots Using Genetic Learning Methods
研究生:蔡柏威撰
指導教授:吳志宏
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
以演化式學習法調整自主型機器人之 MPI 分散
式訊息管理機制的效能
指導教授: 吳志宏博士 學生:蔡柏威 國立高雄大學電機工程學系摘要
智慧型機器人經常需要根據各種感測資料,判斷環境資訊以做出正確的對應 決策。為了決策結果更精準,通常需使用較多的感測資料以提供足夠的環境資訊, 但也需要更多的計算量及反應時間。以分散式架構建立機器人系統,能夠將龐大 的計算量與資料頻寬分散至多台電腦,藉此降低平均計算量並降低反應時間。然 而分散式架構仍舊存在頻寬平衡與分配的問題。本研究依照感測資料的特性與 機器人的使用場景,提出以演化式技術推導頻寬分配與反應效能的關係,並在以 MPI 為基礎的分散式環境下進行驗證。本研究將感測資料的使用情形視為系統參 數,並提出以分散式機器人系統反應時間模型為基礎,在進行參數最佳化之前, 先預測不同參數的反應時間,找出能符合場景需求的參數,再進行參數調整,以 確保系統的運作合乎預期。本研究可分為兩個階段,第一階段蒐集系統在各種場 景下,不同參數與整體反應時間的實際運作結果,使用基因表達程式規劃推估該 系統之模型。第二階段則根據前一階段推估之模型,透過基因演算法快速找出最 佳參數配置。本研究實際建置 MPI 一台分散式機器人系統,並將前述兩階段方 法實現於一個系統參數最佳化的機制中。研究結果顯示,本方法能夠根據場景要 求,準確調整出適合的參數,說明迴歸模型能夠有效表達系統參數與反應時間的 關係。 關鍵字:智慧型機器人、分散式運算、MPI、人工智慧、基因表達程式規劃、演 化式計算。N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
Adaptive Performance Management for MPI-based
Mobile Robots Using Genetic Learning Methods
Advisor: Dr. WU, CHIH-HUNG Student: TSAI, BO-WEI
Department of Electrical Engineering, National University of Kaohsiung
ABSTRACT
Autonomous robots usually equip with various types of sensors for collecting infor-mation of the environment. When a number of sensors are installed on an autonomous robot, a longer processing time for making decisions for actuator control is needed; and hence, a degraded response time of the robot obtains. This study presents an MPI-based distributed architecture for message management among sensors and the decision-making unit for autonomous robots. In the proposed architecture, sensor units process environ-mental information independently and forward processed data to a centralized decision-making unit which connects various clients of sensor units. To maximize the performance of message-passing in this architecture, genetic-based methods are employed for develop-ing managment strategies. Two methods are developed and presented. First, performance models of message-passing between sensor clients and the server is built using genetic expression programming (GEP). The amounts of sensing data, the degree of importance of data for making decisions in a specific situation, and the buffer size to be reserved in the server are considered as parameters of the performance model. A number of the above-mentioned data tuples are collected and used for learning a regression model using GEP. The regression model is installed on autonomous robots for evaluating the performance of the message-passing under the setting of current parameters. For adjusting a better combi-nation of the parameters for a new environment, a genetic algorithm (GA) based method is applied. This study presents the design and implementation of the MPI-based distributed message management system that is integrated with the techniques of GEP model find-ings and GA parameter tunning. The experimental result shows that the proposed method is efficient and effective than centralized message-passing managment for autonomous robots.
Keywords: Autonomous Robot, Distributed Computing, MPI, Artificial Intelligence, Gene Expression Programming, Evolutionary Algorithms.
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
致謝
本論文能夠順利完成,乃受惠於諸多貴人支協助,首先要感謝指導教授 吳志宏老師,回顧碩士的兩年間,不論是辦理營隊、出國參加研討會、參加競賽 等,許多的經驗都是相當寶貴的,並且不論是實驗進行、碩士論文撰寫技巧等, 老師都能夠耐心的從旁提點,相較於兩年前,不論是程式撰寫能力、系統整合、 專案開發、待人處事等,都有不少的成長,感謝老師對我的諄諄教誨。此外也感 謝口試委員賴智錦教授、潘欣泰教授、歐陽振森教授於本論文的指導與建議,使 本論文得以更加完善。 感謝小駱學長、瓊輝學長在實驗室活動的協助,以及論文撰寫、實驗相關的 指導。感謝冠文學長、孟瑋學長在我剛進實驗室時,能夠快速地榮是實驗室的環 境,也讓我能夠在這個領域不斷的成長。也感謝正齡、智鈞、耀葆、思彤、張簡 在我程式撰寫技巧的協助,讓我的程式設計能力能夠不斷加強。也感謝宗彬、正 齡幫忙分擔實驗室的日常事務,讓我能夠有時間完成這本論文。還要感謝已經畢 業的瓏軒學長,在工作之餘回來實驗室教導大家使用 Git 版本管理工具,讓我在 開發過程中減少很多錯誤的發生。感謝實驗室所提供的資源,讓我有機會接觸像 是機器人專案整合、網站與系統管理等方面的技術,讓我對未來的發展有更多的 想法。 最後要感謝我的父母,在背後支持我繼續攻讀碩士班,讓我能夠專心地往自 己理想的目標前進,謝謝你們。 蔡柏威謹誌於國立高雄大學電機工程學系 中華民國一零六年八月N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
目錄
中文摘要 . . . i 英文摘要 . . . ii 致謝 . . . iii 目錄 . . . iv 圖目錄 . . . vi 表目錄 . . . viii 1 緒論 . . . 1 1.1 研究背景 . . . 1 1.2 研究動機與目的 . . . 2 1.3 研究方法 . . . 2 1.4 論文架構 . . . 5 2 文獻探討 . . . 7 2.1 集中與分散式運算 . . . 72.2 Message Passing Interface (MPI) . . . 8
2.2.1 基本運作機制 . . . 9 2.2.2 資料傳遞機制 . . . 10 2.3 基因演算法 . . . 12 2.4 基因表達程式規劃 . . . 15 3 問題定義與分析 . . . 20 3.1 分散式機器人系統架構 . . . 20 3.2 系統參數定義 . . . 21 3.3 系統運作流程 . . . 23 3.4 系統效能最佳化機制 . . . 24 4 研究方法與設計 . . . 26 4.1 基於 MPI 建置分散式機器人 . . . 26 4.2 系統效能模型 . . . 26 4.3 系統參數最佳化方法 . . . 27
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
4.3.1 基因演算法染色體編碼 . . . 28 4.3.2 基因染色體適性值評估 . . . 28 4.3.3 系統參數最佳化機制 . . . 29 5 實驗與結果分析 . . . 30 5.1 實驗環境與架構 . . . 30 5.2 不同迴歸方法之比較 . . . 31 5.3 參數最佳化機制驗證 . . . 35 5.3.1 場景 A . . . 35 5.3.2 場景 B . . . 37 5.3.3 場景 C . . . 37 5.4 實驗總結 . . . 40 6 結論與未來展望 . . . 41 6.1 結論 . . . 41 6.2 未來展望 . . . 41 參考文獻 . . . 42N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖目錄
1.1 機器人決策系統流程示意圖 . . . 1 1.2 傳輸參數與反應時間模型示意圖 . . . 3 1.3 參數最佳化機制示意圖 . . . 5 1.4 研究進行流程圖 . . . 6 2.1 多核心系統架構示意圖 . . . 7 2.2 分散式系統架構示意圖 . . . 8 2.3 MPI 對等式架構運作示意圖 . . . 9 2.4 MPI 主從式架構運作示意圖 . . . 10 2.5 MPI 資料傳遞機制 . . . 10 2.6 MPI 同步傳遞機制 . . . 11 2.7 MPI 非同步傳遞機制 . . . 11 2.8 MPI Non-blocking 傳遞機制 . . . 12 2.9 MPI 資料標籤傳遞示意圖 . . . 12 2.10 GA 流程圖 . . . 13 2.11 GA 染色體示意圖 . . . 14 2.12 GP 的樹狀結構 . . . 14 2.13 GEP 染色體儲存樹狀結構方式 . . . 15 2.14 突變 . . . 16 2.15 轉換 . . . 17 2.16 重組 . . . 17 2.17 基因表達程式演化流程圖 . . . 19 3.1 系統架構比較圖 . . . 20 3.2 範例場景示意圖 . . . 21 3.3 資料處理方式 . . . 24 3.4 收發資料流程 . . . 25 3.5 資料決策流程 . . . 25N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
4.1 MPI 建置之分散式機器人架構 . . . 26 4.2 系統模型示意圖 . . . 28 4.3 參數最佳化機制流程圖 . . . 29 5.1 系統架構圖 . . . 30 5.2 GEP 訓練資料筆數分析 . . . 34 5.3 參數最佳化機制預測與實際效能-場景 A . . . 36 5.4 參數最佳化機制預測與實際效能-場景 B . . . 38 5.5 參數最佳化機制預測與實際效能-場景 C . . . 39N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
表目錄
3.1 不同感測資料所需的接收與計算時間 . . . 23 5.1 感測器參數表 . . . 31 5.2 GEP 相關參數 . . . 31 5.3 運算子集合列表 . . . 32 5.4 不同迴歸方法精確度比較 . . . 33 5.5 GA 相關參數 . . . 35 5.6 場景 A 環境設定 . . . 36 5.7 參數最佳化機制預測與實際效能-場景 A . . . 36 5.8 場景 B 環境設定 . . . 37 5.9 參數最佳化機制預測與實際效能-場景 B . . . 37 5.10 場景 C 環境設定 . . . 38 5.11 參數最佳化機制預測與實際效能-場景 C . . . 39N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
第 1 章
緒論
1.1
研究背景
隨著科技發展,機器人相關之技術日新月異。得益於運算效能的提升,以及感測 元件的進步,機器人能完成的任務越來越多樣,應用的場合也越來越廣。廣義而 言,智慧型機器人是一種能感知環境透過決策機制做出應對策略、執行任務的裝 置。例如服務型機器人 [1]、自動駕駛車 [2, 3] 等都可以歸類為智慧型機器人。智慧型機器人可以將其計算流程分為感測 (Sense)、決策 (Plan)、輸出 (Action) 三個部分。首先透過感測器得到目前的環境資訊,再經過決策系統計算出合理的 反應,最後由驅動器做出指定的動作,不斷循環這個流程直到任務完成。其系統 運作流程如圖1.1所示。 圖 1.1: 機器人決策系統流程示意圖 根據任務內容不同,所需要的環境資訊量與計算量不同,系統計算流程所需 的時間也不同。簡單的場景因為環境較單純,資訊量與計算量較少,因此計算流 程能夠較快完成,系統反應時間較短。反過來說,越複雜、越多樣化的場景;往 往需要越多的感測資訊,才能做出適當的判斷,然而越多的感測資料,也代表需 要越多的計算量,反應時間相對較長。如果要在高複雜度的環境中仍有不錯的計 算速度與系統反應時間,硬體的建置成本往往會相當高昂。
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
1.2
研究動機與目的
一般常見的機器人多半是採集中式架構 [4, 5],即是將所有感測器及驅動裝置安裝 在一台電腦 (運算單元) 上,並以此運算單元做為決策中心。然而資料量越大所需 的計算量也越大,機器人從感測到動作反應輸出的時間也會越長,導致機器人動 作的速度降低,使整體運作效率降低。 為了提升機器人的反應與效能,本研究提出以分散式架構建立一個機器人感 應與決策計算系統。在此分散式架構中,由一個運算單元 (主節點) 與多個運算單 元 (子節點) 所構成,形成一個主從式 (Client-server) 或對等式 (Peer-to-peer) 的分散 式架構。相較於傳統的集中式架構,由於每一個運算單元需負擔的資料量與計算 量較低,因此當數據較龐大時,分散式架構能夠提供更好的反應效能,且因此分 散式架構透過網路連接多個運算單元,所以擁有更好的擴充能力。 由於分散式系統通常以網路連接多個運算單元,網路傳輸經常會面臨傳輸頻 寬擁擠的問題。但不同應用場景下,系統中每個運算單元的效能與感測資料的重 要性可能不同,因此需要經過適當的頻寬使用參數調整,才能使分散式系統的優 勢發揮到最大。本研究希望透過人工智慧與機器學習式的迴歸分析的方法,預測 系統在不同設定下的效能,建立一個能夠即時預測系統效能的機制,使機器人面 對不同的應用場合,都能夠快速且有效率地調整適合目前場景的參數,以順利完 成任務。1.3
研究方法
本研究可分為兩個階段:第一階段將著重於傳輸參數與反應時間模型的建立;第 二階段則透過前一階段所得的系統模型為基礎,以機器學習演算法設計快速且準 確的參數最佳化機制。 系統模型建立部分,本研究將資料傳輸之優先順序、頻寬使用率等在系統N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 1.2: 傳輸參數與反應時間模型示意圖 中以不同參數表示,而系統反應時間與傳輸參數間存在函數對應關係,可以表 示如圖1.2,因此我們可以將此問題視為一個迴歸分析問題,並求出其迴歸函數, 迴歸為一種統計學上對數據進行分析的方法,主要探討數據間是否有特定之關 係,在迴歸分析中,若自變數與應變數為一對一的關係時,通常可以用簡單線性 迴歸,而多對一的關係,則必須使用複迴歸分析。當系統存在非線性關係時,則 必須根據問題,使用指對數迴歸、雙曲線迴歸等方式進行分析。由於本研究中, 傳輸參數對反應時間的關係較為複雜,可能需要同時使用多種不同的非線性模 型,才能找到較好的迴歸模型。迴歸模型的描述與建立方式大致可以分成黑盒子 (black-box) 與白盒子 (white-box) 方法 [6]。 • 黑盒子:著重於模型的準確度與預測結果的正確率,無須知道輸入與輸出之 間的計算過程。 • 白盒子:輸入與輸出的計算過程具有描述性,因此可以從白盒子模型分析輸 入與輸出的關係。 為了將參數調整機制整合進機器人系統中,系統模型必須具有可描述性,因此本 研究擬採用白盒子迴歸模型。本研究在第一階段使用基因表達程式規劃 (Gene Expression Projramming,,簡 稱 GEP) 進行迴歸分析,GEP 能夠同時使用不同的線性、非線性運算子,組合
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
出複雜度較高的迴歸模型,並且具有可描述性,因此本研究利用 GEP 分析與建 立傳輸參數與反應時間之模型。在第二階段,本研究基於基因演算法 (Genetic Algorithm,簡稱 GA) 設計參數最佳化機制,GA 是根據自然演化法則設計的演算 法,計算過程中能夠保留最接近最佳解的參數組合。本研究透過 GA 產生多個參 數組合,使用前一階段分析出的模型預測每一個參數組合的反應效能,經過多次 迭代找到近似最佳參數組合,並將此參數組合實際應用至系統中。本論文擬以 MPI(Message Passing Interface) 建置一個分散式機器人系統,透過 GEP 進行迴歸分析,找出符合系統行為的迴歸函數,建立傳輸參數與反應效能的 對應模型,並透過 GA 快速找出不同場景中的最佳參數組合,以利在實際運作中, 當系統效能不理想時,能夠快速地透過 GA 找出能符合要求的參數組合,期望達 成目標如下: • 以 MPI 建立一個機器人系統,並蒐集在不同場景與參數下的系統表現,建 立訓練資料集。 • 以基因表達程式規劃對訓練資料集進行迴歸分析,找出能表達此系統的迴歸 模型。設定不同應用場景進行模擬測試,以前一步驟找出的迴歸模型預測目 前場景是否符合應用場景的反應時間要求,若發生無法達成要求的現象,則 透過 GA 調整系統參數,使反應時間符合要求。 • 實際於機器人平台進行實際測試。 根據上述討論,本研究首先透過 GEP 找出圖1.2的迴歸模型,並基於此模型, 利用 GA 建立參數最佳化機制,此機制可描述如圖1.3,首先透過 GA 產生參數, 帶入模型中預測其效果,最終找到一組最佳參數並實際套入系統中。
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 1.3: 參數最佳化機制示意圖1.4
論文架構
本論文的研究流程根據研究動機、文獻探討、程式撰寫、實驗結果與分析等部分 說明如下,流程圖如1.4。 • 研究動機:包含相關的研究背景、問題之範圍與定義,分析分散式運算應用 於機器人系統的優缺點,著重於分散式運算於機器人系統之最佳化問題。 • 相關文獻蒐集與探討:蒐集與本研究相關之技術文獻、包含分散式系統之訊 息傳遞機制、GA、GEP 等,深入了解相關技術應用。 • 程式撰寫:設計並撰寫可調整的訊息傳遞介面,蒐集在不同參數下的系統表 現以建立迴歸模型,並設計基於 GA 之參數最佳化機制。 • 實驗結果分析與結論:實際於機器人系統中測試,比較不同實驗參數下之效 能及分析。N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 1.4: 研究進行流程圖N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
第 2 章
文獻探討
本章簡述分散式運算及機器學習技術及相關文獻探討。2.1
集中與分散式運算
面對大量資料時,通常會以集中式的多核心平行處理架構,或是叢集式電腦架構 進行大量分散處理。根據處理方式不同,可分為共享記憶體架構與分散記憶體架 構。 • 共享記憶體架構:由多個相同的計算核心組成,如圖2.1所示,是由多個同 型的處理器,共用一個主記憶體,並透過系統匯流排令多個處理器共享 I/O 裝置。由於核心之間是透過系統匯流排溝通,資料交換效率相當高, 對於大量同類型資料的平行處理有顯著的效能提升。例如學者 Putu Harry Gunawan[7] 利用 OpenMP 加速熱傳導問題的計算速度,而學者 F. Pescador 等人 [8] 利用 OpenMP 加速 HEVC 的解碼速度。圖 2.1: 多核心系統架構示意圖
• 分散記憶體架構:架構如圖2.2所示,在此架構中,每個運算單元稱為節點
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
個完整的作業系統,整個系統由一個或數個主節點管理及控制。由於此種架 構通常透過網路連接各個節點,只要合理分配計算內容,較共享記憶體架構 具有更好的擴充性與調整性,隨時能夠根據計算量需求增減運算節點。例如 Google 提出的 MapReduce[9] 即是將大量資料交由多個節點進行處理。學者 Melisa Cantu 等人 [10] 利用 MPI 建立大型運算叢集,以多個節點尋找散列碰 撞問題。學者 Edgar Marko Trono[11] 等人提出在災難發生而無法使用雲端服 務時,透過行動裝置間的訊息傳遞,將災區的地理資料傳遞至一台計算節 點,以建構災區地圖。圖 2.2: 分散式系統架構示意圖
2.2
Message Passing Interface (MPI)
MPI[? ] 是一個標準化的應用程式介面 (API),其定義了許多與訊息傳遞相關的標 準語法,通常用於分散式架構中,多個節點之間的資料傳遞與溝通,使開發者 能夠專注解決分散式架構中,資料分配與流向的問題。常用的 MPI 函式庫包含 MPICH[12]、OpenMPI[13] 等,不同函式庫間 MPI 的基本語法並無不同,因此本
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
節僅簡述 MPI 運作機制。2.2.1
基本運作機制
分散式架構通常透過網路,將數個運算單元組成一個運算叢集,在一個運算叢集 中,通常將運算單元稱為節點,為了使用方便,基於 MPI 設計的程式通常由主節 點下達指令,控制所有的子節點執行指定的程式。在運算叢集中,MPI 將這些節 點按照開發者定義的列表,抽象化為編號 (rank),使每個運算單元在程式中都有 獨立的編號,開發者可以根據節點編號將特定工作分給特定節點執行,如圖2.3所 示,Program A 當中定義了不同的程式片段,當該程式開始執行之後,每個節點 圖 2.3: MPI 對等式架構運作示意圖 會得到自己在此叢集中的編號,執行屬於自己編號的程式片段,此種方式概念上 即是將多個運算單元視為多個執行緒,將一個叢集當作一個多核心電腦來使用, 較適用於將大量同類型的資料分散至不同節點進行協同運算,例如學者 Hisham Mohamed[14] 等人使用此方式提高 MapReduce 的執行效率、學者 Wen Fan[15] 基 於 MPI 實現了多節點的 H.264 即時編碼。除了上述將多個節點視為一個大型的多核心電腦的方式之外,MPI 也提供了 主從式架構的運作機制,架構如圖2.4所示,首先由一個主節點開啟多個連接埠, 其餘子節點透過這些連接埠與主節點進行連線,由於此種運作方式,子節點之間
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 2.4: MPI 主從式架構運作示意圖 資料傳遞較為複雜,因此較適合節點數量不定,且資料相依性低的場合。例如, Zounmevo[16] 等人探討如何利用此種架構建立一個高效能且高動態性的運算系 統。 MPI 定義了許多與通訊相關的規範,使開發者能夠專注於資料的傳遞方向, 以及資料內容的分配與處理,因此被應用於許多場合,例如 Zolkiewski[17] 等人 利用 MPI 建立機械手臂控制器與電腦端 LabView 軟體的通訊界面,並結合 Kinect 分析操作員的動作,達到遠端控制的目的。Lmimouni[18] 等人利用 MPI 架設一個 運算叢集,使多個運算節點可以同時控制並處理來自多台機器人的訊號,2.2.2
資料傳遞機制
基本的 MPI 資料傳遞機制可以表示如圖2.5,發送端將資料送出後,會先送到接收 端的系統緩衝區,接收端再從系統緩衝區將資料取回指定的記憶體位置。 圖 2.5: MPI 資料傳遞機制 而根據傳遞方式不同,可以分成 Blocking 與 Non-Blocking 傳輸機制 [19]。N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
Blocking 傳輸機制於發送端,會等到資料確實送到接收端之後才返回,而根據接 收方式不同,還可以再細分為同步與非同步傳遞。 • 同步傳遞:資料送出之後,發送端會等到資料從被接收端取至指定記憶體位 置後才會返回,流程如圖2.6所示。 圖 2.6: MPI 同步傳遞機制 • 非同步傳遞:發送端將資料送到接收端的緩衝區之後即返回。流程如 圖2.7所示。 圖 2.7: MPI 非同步傳遞機制 而 Non-Blocking 機制則是在資料開始送出時就返回,直到執行到程式碼中 指定的同步點才會停下來,等到緩衝區內的資料都處理完畢後再繼續執行,如 圖2.8所示。 在實務應用中,兩個節點間的資料傳遞可能有很多次,每一次的資料類型或 大小都不同,並且具有不同意義,因此 MPI 定義了資料標籤 (Tag) 來區分不同的N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 2.8: MPI Non-blocking 傳遞機制 資料,開發者可以根據不同的資料內容,予以不同的資料標籤,確保資料可以被 正確接收。如圖2.9所示,即使 Node 1 較慢開始接收資料,仍不會因此收到錯誤 的資料。 圖 2.9: MPI 資料標籤傳遞示意圖2.3
基因演算法
基因演算法 (genetic algorithm, GA)[20] 是一種搜尋問題最佳化的方法。在自然界 中,生物演化的基本概念為「適者生存,不適者淘汰」,GA 即是根據此一概念, 將欲處理的問題視為環境,並根據問題設計個體的基因序列,或稱為染色體,透 過模擬自然界中交配、突變等演化過程,計算每一個個體與環境的適應程度,保 留適應性高的個體,淘汰適應性低的個體,經過一定次數的演化,找出最理想的 答案。
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
實際應用上,使用者因應不同的問題內容,需設計不同的染色體編碼方式來 表達問題的可行解,並根據問題設計適應函數,以評估這些可行解對於此問題的 適合程度。GA 演算過程中,每一次迭代都會產生新的染色體,染色體之間透過 突變、交配等演化方式產生新的染色體,再透過適應函數計算染色體的適應值, 保留適應值較高的染色體,直到達成終止條件時,取適應值最高的染色體為近似 最佳解,流程如圖2.10所示。 Initialize Population Fitness Evaluation Mutation Crossover Selection Solution Termination Conditions No Yes 圖 2.10: GA 流程圖 舉例來說,已知公式(2.2)[21],要透過 GA 找出此公式中 f (x, y) = 1 的輸入值 x, y,首先必須將 x, y 編碼為染色體,定義目標值 T arget = 1,在此問題中,可以 用二進位的概念將染色體編碼如圖2.11所示,並設計適應函數(2.1),以圖中的編 碼為例,解碼後可以得到 x = 9, y =−13,f(x, y) = 121.16,fitness = 0.008。 1 1 +|T arget − f(x, y)| (2.1) f (x, y) = 0.26(x2+ y2)− 0.48xy (2.2) 基因演算法廣泛應用於電腦科學、工程學、經濟學、物理學、化學、數學、 工業及其他領域之中。例如學者 Abolfazl Mosaddegh[22] 利用 GA 解決電力系統的N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 2.11: GA 染色體示意圖 圖 2.12: GP 的樹狀結構 平衡問題,並透過分散式系統加速運算。由於 GA 是以生物演化的策略尋找解答, 每一次演化中保留適應值較高的可行解,因此在合理的時間範圍內,隨著演化次 數增加,能夠不斷逼近最佳解,對於複雜度較高的問題,GA 能夠有效地找出問 題的近似最佳解。基因程式規劃 (genetic programming, GP)[23] 是於 1992 年由 Koza 所提出的一 種演化式計算方法。GP 參考大自然生物演化的模式,以電腦進行高效率最佳解搜 尋,可利用此特性,經過適當地訓練得以自動化產生所需要的公式或數學模型。 GP 以樹狀結構來表示一個程式或公式,如圖 2.12。以達爾文的自然法則適者生存 概念為核心的演化式方法,模仿生物演化時交配,突變,基因複製,基因刪除等 迭代進化,直到達成預先設定的某個中止條件為止。
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 2.13: GEP 染色體儲存樹狀結構方式2.4
基因表達程式規劃
基因表達程式規劃 (gene expression programming, GEP)[24] 是在 2001 年由 Ferreira 所提出的一種新式演化式計算技術,GEP 結合基因演算法及基因程式規劃之概 念,以染色體代替了樹狀結構來表示方程式的數學式。原本的 GP 使用鏈結串列 實現樹狀結構,而 GEP 採用陣列結構,並以廣度優先的方式還原為 GP 的樹狀 結構,如圖2.13所示,進行交配與突變等演化過程中,GP 的時間複雜度為 O(n), GEP 為 O(1),因此 GEP 具有較高的計算效率。
GEP 之染色體分為頭 (head) 與尾巴 (tail) 兩部分,在演化中,葉節點若由運算 子改變為運算元時,染色體長度不足以存放額外的運算子,故尾巴的存放內容均 存放運算子,使其可構成完滿二元樹;頭的長度決定尾巴的長度,而其長度關係 如公式 (2.3)。 t = h(nmax− 1) + 1 (2.3) 其中 t 為尾巴長度,h 為頭長度,nmax 為此染色體中所有運算子的最大運算元數 量 (maximum arity)。以圖 2.13為例,最大運算元數量為 2,頭的長度為 7,尾巴的 長度為 8,長度關係可表示為 8 = 7(2− 1) + 1。
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
GEP 之演化方式於染色體演化之後改變其樹狀結構,其染色體演化的方式分 為突變、轉換 (transposition) 與重組 (recombination): • 突變:在染色體陣列中隨機選擇位置,若所選位置在頭部,則將該陣列員素 質隨機以運算元、運算子取代;若選擇位置在尾部,則隨機產生運算元取 代,如圖2.14所示。 圖 2.14: 突變 • 轉換:隨機挑選染色體中的片段,並複製此片段隨機插入至頭部任一位置, 如圖2.15所示。 • 重組:在族群中隨機挑選兩條染色體,並選擇任意位置作為重組點,在重組 點切斷染色體並交換,產生新的染色體,步驟如圖2.16所示。 GEP 中 的 適 性 值 (fitness) 為 演 化 式 計 算 中 評 估 答 案 之 指 標,通 常 使 用 均 方差指標 (mean squared error,以下簡稱 MSE) 來衡量染色體優劣;有時還會使 用 平 均 絕 對 誤 差 (mean absolute error, 以 下 簡 稱 MAE),與 平 均 絕 對 百 分 比 誤 差 (mean absolute percent error,以下簡稱 MAPE) 指標來進一步分析效果。如公N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 2.15: 轉換 圖 2.16: 重組N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
式(2.4)-(2.6),其中 yi, y′i分別表示實際值與模型推估值,n 表示資料筆數。 MSE = 1 n n ∑ i=1 (yi− y′i) 2 (2.4) MAE = 1 n n ∑ i=1 |yi− yi|′ (2.5) MAPE = (1 n n ∑ i=1 |yi− yi′ yi |) × 100 (2.6) 每個世代演化完成後計算出各染色體之適性值,在從中挑選出較好的染色體繼續 演化直到某染色體之適性值達到終止條件為止。終止條件由使用者依照問題自行 定義,使用者可依照問題之誤差容許範圍設定終止條件,若將終止條件定為較嚴 謹,相對的演化次數較多,執行時間越久,故可根據問題之誤差容許範圍定義出 最適合之終止條件。GEP 的演化流程與大多數的演化式計算差不多,演化步驟如 下: Step 1: 隨機產生族群數為 k 之染色體,t1, . . . , tk。 Step 2: 計算族群內 ti 之適性值,1≤ i ≤ k。 Step 3: 判斷適性值或演化代數是否符合終止條件,符合即結束演化,否則繼續 Step 4。 Step 4: 保留較好的染色體做突變,轉換,重組等動作後跳至 Step 2。 詳細演化流程如圖2.17。使用 GEP 的相關研究如 LI Kun-lun 等人 [25] 利用改良 的 DF-GEP,應用於大規模的系統資源排程問題,使系統資源利用率最大化。學 者 Alejandro Sosa-Ascencio 等人 [26] 利用 GEP 對股票走勢進行迴歸分析,並與 SVM 等方法比較,GEP 具有較好的預測準確度。學者 J Mwaura[27] 等人利用改 良的多輸出 moGEP 使迴歸模型更精確,並使機器人不同場中更準確的控制。學 者 Chou[28] 將基於基因規劃的符號式迴歸引擎應用在全球定位系統的座標軸轉換 上,得到的實驗結果顯示基因演算法的確可以解決實際的迴歸問題。學者 AlirezaN
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 2.17: 基因表達程式演化流程圖Tashakori Abkenar[29] 等人利用 GEP 分析電動船的能源消耗,使燃料電池能夠根 據能源使用情形快速調節燃料使用。為了解決複雜的複迴歸問題,演化式計算例 如基因演算法或是基因規劃便適合從大量且多維度的資料之中尋找出合適的迴歸 公式,因此本論文採用演化式基因表達程式規劃的技術進行分散式系統之模型建 立。
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
第 3 章
問題定義與分析
3.1
分散式機器人系統架構
傳統集中式機器人系統,通常是將所有用到的感測裝置安裝到一個處理單元上, 感測、決策、輸出的流程皆在該處理單元上完成,如3.1(a)所示,此種架構雖然容 易維護與開發,但對於處理單元的硬體要求較高。因此本論文基於集中式的機器 (a) 集中式機器人系統架構 (b) 分散式機器人系統架構 圖 3.1: 系統架構比較圖N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
人架構,將感測裝置分散至多個處理單元負責計算,並指定一個處理單元為主節 點,主要負責決策與輸出,其餘的子節點則負責感測資料的前置處理,透過網路 將這些處理單元連接在一起,系統架構可表示為圖3.1(b)。3.2
系統參數定義
上述的分散式架構中,由多個運算單元同時接收感測資料的方式,機器人的系統 運作流程大致上仍然與集中式架構相同,但在資料傳輸與處理方面必須適當調 整,以發揮分散式系統的優勢。 首先,在機器人系統中通常會使用許多感測裝置,而在本研究中,我們將不 同的感測裝置分散給多個運算單元負責接收,為了方便識別與調整這些感測裝置 的相關參數,本研究中以編號 i 表示不同的感測器。例如一台搭載紅外線循跡模 組、雷射測距儀、攝影機共三個裝置的機器人,可以分別編號為 0 2,則編號 0 代 表紅外線循跡模組,雷射測距儀為 1,攝影機為 2。 圖 3.2: 範例場景示意圖 而機器人在執行任務中,通常會有不同的階段,例如圖3.2為一個任務場地, 圖中藍色點為前述之機器人,曲線為循跡之軌道線,紅色三角形為目標物所在 地,該任務分成循跡、尋找目標、夾取目標三個階段,為了完成這三階段任務, 需要用紅外線循跡模組進行循跡,以雷射測距儀量測機器人與障礙物的距離以避 免碰撞,並以攝影機尋找目標物。而為了使這三個感測器在分散式系統中能夠發 揮最大效益,因此需要調整以下參數:N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
• 優先順序 Ps:每一種感測資料在不同階段都有不同的重要性,並根據重要 性高低進行排序,以參數 Ps表示,s 越小代表重要性越高,例如尋找目標 的階段中,為了避免機器人發生碰撞,應該以雷射測距儀的資料為優先,即 P0 = 1,而在夾取目標的階段中,則以接近目標物為優先,因此 P0 = 2。 • 處理方式 Ri:以分散式系統而言,可以視情況決定是否讓子節點進行資料 前處理,而處理方式可以以參數 Ri 表示,例如 0 代表不接收此資料,1 代 表直接傳遞原始資料,2 代表先過濾出特徵資料後再傳遞等等。以尋找目標 的階段而言,紅外線循跡的資料已經不重要,因此 R0 設定為 0,以降低頻 寬使用量。此外由於分散式系統中,每個節點的運算能力不同,例如 i = 2 節點的計算能力較差,則可以考慮將 R2 設定為 1,或是主節點的計算量過 大造成整體計算時間加長,則可以將 R1 設定為 2,降低主節點的計算量, 以發揮分散式系統能夠將計算量分散的優勢。 • 緩衝區處理上限 Bi:在分散式系統中,即使是在決策與輸出的步驟,感測 資料仍會不斷地從子節點送往主節點,而此段時間的感測資料可能對下一次 決策有一定影響,因此必須設計緩衝區來暫存資料。然而當緩衝區較大時, 要將所有暫存的感測資料處理完畢,可能會使決策階段花費過多時間,因此 必須設定緩衝區處理上限,以 Bi表示之,而每個感測資料的傳輸頻率不同, 因此必須對每個感測資料設定不同的 Bi。舉例來說,若負責處理攝影機的 子節點每 0.1 秒可以傳遞一次影像資訊,而主節點需要 0.2 秒計算出結果, 則適度降低 B2 的值,捨棄較舊的感測資料,可以提升反應時間。 • 傳輸頻率 Fi:某些感測資料由於其資料量大,或是傳送頻率較高,會占用 較多的頻寬,可以適當的調整傳輸頻率 Fi,降低其佔用的頻寬,使重要的 感測訊息可以獲得較多的頻寬。例如在尋找目標物的階段中,攝影機的資料 量較大,可能會使雷射測距儀的資料需要較多時間進行傳送,造成系統不穩N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
或執行效率降低,此時可以適當調整攝影機的資料傳送頻率 F2,確保整體 的執行效率。3.3
系統運作流程
上述討論中,本研究歸納出四種可調整的參數,而在不同的環境中,由於計算 量、資料量與不同的參數設定,會有不同的效能表現。以機器人系統而言,感 測、決策、動作的過程所花費的時間是較直觀的效能指標,此參考值稱為反應時 間 TR。在簡單的環境中,由於計算量較低,我們會預期系統此時的 TR 值應該較 低,反之,若是較複雜的環境,雖然預期 TR 的值可能較大,但如果適度調整參 數,還是可以盡可能降低 TR值。 假設經過量測,每一種感測資料單獨接收時所需要的平均感測時間 TSi、計 算時間 TP i 如表3.1所示,並且系統每一次動作的時間 TA需要 0.2 秒,在此系統 中,反應時間計算如公式(3.1)所示。 表 3.1: 不同感測資料所需的接收與計算時間 Sensor(i) 0 1 2 TSi 0.05 0.10 0.20 TP i 0.10 0.15 0.25 TR= TS+ TP + TA (3.1) 機器人執行任務中,首先會根據 Ri 的參數,決定是否接收裝置 i 的資料,以 及其資料類型,流程如圖3.4所示,接收過程中,會根據 Fi 的參數,決定資料接 收的頻率。接著在決策階段,會等到 P0的最新一筆資料被接收,才進行決策與輸 出,例如 P0 = 1,則預期的 TS = TS1 = 0.1。 然而實際應用中,當同時接收多個資料時,因為每一種資料的頻率與大小 不同,TSi 往往會大於單獨接收所需的時間,因此對於重要性較低,或是資料量N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 3.3: 資料處理方式 較大的資料,會透過設定 Fi 與 Ri 的參數,降低頻率與資料量,將頻寬留給較重 要的資料。而決策過程中,系統會從最新的感測資料往前處理 Bi 筆,因此預期 TP = TP i× Bi,但如果緩衝區資料筆數小於 Bi,則只處理到緩衝區被清空為止, 流程如圖所示3.5,緩衝區處理方式則如圖3.3所示。3.4
系統效能最佳化機制
機器人面臨不同場景,都存在預期的理想反應時間,上述的討論中是調整不同參 數,使系統反應時間能夠達到預期,然而不同參數對系統效能的影響是具有連帶 關係的,因此參數的調整可以視為一個多對多的關係,要解決此一問題,可分為 下列步驟: • 為了在系統執行中快速找出合適的參數,首先必須建立一個系統模型,作為 最佳化機制的參考依據。為了能夠準確描述參數與效能的關係,首先必須蒐N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 3.4: 收發資料流程 圖 3.5: 資料決策流程 集系統在不同參數下的效能表現,並透過迴歸分析技術找出系統模型,為了 能夠容易整合於最佳化機制中,因此希望此模型為一個白盒子模型。 • 此問題的核心方法,是在不同場景中找出合適的參數,然而參數的搜尋空間 相當龐大,考慮到機器人系統必須能夠快速適應場景,必須有一個快速找出 最佳化參數的方法。演化式演算法能夠在問題的搜尋空間中隨機產生多組參 數組合,並根據所設計的適應值函數,保留最接近理想值的參數組合,因此 本研究將採用演化式演算法實作最佳化機制。N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
第 4 章
研究方法與設計
4.1
基於 MPI 建置分散式機器人
以 MPI 建構分散式機器人時,由於各種感測資料的處理方式各有不同,為了系統 維護的便利性,處理感測資料的子節點與決策中心的主節點應該獨立成不同的程 式,並且感測器數量可以隨場景不同而有所增減,採用主從式架構,根據子節點 的數量 n,開啟對應數量的連接埠 Pn,是比較合理且容易維護的做法。架構確定 之後,考慮資料的時效性問題,過舊的感測資料對於系統的決策是不利的,因此 在設計上使用同步傳遞模式,能夠確保資料的即時性。 傳輸部分,利用 MPI 的資料標籤將傳輸的三個步驟加以區別,以確保資料能 夠正確傳遞,此外本研究使用多執行緒的方式,同時接收多個來源的資料,可以 增加系統整體的執行效率。此系統之架構可以描述如圖4.1。 圖 4.1: MPI 建置之分散式機器人架構4.2
系統效能模型
為了在系統執行過程中能夠快速分析不同參數的效果,必須事先透過迴歸分析的 方式找出系統模型,此系統模型必須能夠具備高準確度,而 GEP 能夠透過多種不N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
同運算子的組合,找出準確度較高的系統模型,使模型預測與實際效果的差距較 小。在第3.4節中,提到系統反應時間的公式可以表示為公式(3.1),其中 TS、TP 會受到參數 Ps、Ri、Bi、Fi影響,因此本研究將上述參數分別以集合 P 、R、B、 F 表示,輸出則為這些參數下系統的反應時間,則系統模型可以表示如公式(4.1), 並可表示如圖4.2。 TR= f (P, R, B, F ) (4.1) 為了找出能夠描述此系統的迴歸公式,本研究中將訓練資料集之輸入輸出描 述如下: • Input: P 、R、B、F • Output: TR • Training Set: S = {⟨P, R, B, F, TR⟩n} 為了使 GEP 能夠分析出較精確的模型,需要調整多種不同參數組合進行量測,蒐 集足夠的資料筆數 n,本研究設計一個隨機設定參數的機制,蒐集系統在各種可 能的參數下所需的反應時間 TR,以建立訓練資料集,為了衡量 GEP 所分析出的 模型與訓練資料集 S 的差異程度,本研究以 MSE 的公式為參考,設計迴歸模型 S 的適應函數 f 如公式(4.2)所示。 f = 1 1 + n1∑(TR− ˜TR)2 (4.2)4.3
系統參數最佳化方法
要即時將系統參數調整至理想狀態,往往需要大量的運算,因此需要較快速又準 確的方法,本研究提出以 GA 快速找出符合目前場景需求的最佳參數,方法設計 如下。N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
4.3.1
基因演算法染色體編碼
為了描述系統目前的參數配置情況,根據先前章節描述的公式,將染色體描述如 圖4.2。 圖 4.2: 系統模型示意圖 舉例來說,若目前系統中總共 3 種感測資料,根據重要性不同,於 Ps中將資 料依重要性排序,並根據頻寬與處理量的不同,決定資料處理的方式 Ri,而對於 重要性較低的資料,則可以透過調整 Fi的值降低其傳遞的速度,並根據感測資料 的處理量,決定一次要處理幾筆緩衝區資料 Bi。4.3.2
基因染色體適性值評估
基因演算法進行演化時,需要有機制評估染色體的優劣,即為 GA 的適應性函數。 在本研究中,越接近場景要求的反應時間代表適應性越好,計算方法如下。 假設 i = 1, . . . , k,k 代表子節點數量,要得到系統反應時間的預估值 ˜TR,可 以將染色體內的基因代入第一階段推得的迴歸公式來取得。 不同場景中都存在重要性最高的資料編號,假設目前場景最重要的資料編號 為 x,則 P0 = x,其餘基因則隨機產生。要評估 ˜TR 之前,先檢查 Rx 是否為 0, 如果是,則該條基因的適性值強制設定為 999,使其在演化過程中自然被淘汰; 如果不是,則套入系統模型計算 ˜TR,計算與目前場景要求的反應時間 TR之誤差, 本研究以計算 TR與 ˜TL 的 MSE 為適性值分析,因此此值越小表示適應性越好, 計算方式如公式(4.3)所述: f itness = 1 n ∑ (TR− ˜TR)2 (4.3)N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
4.3.3
系統參數最佳化機制
系統模型建立之後,機器人系統即可根據此負載模型,在執行任務中動態調整參 數,步驟如下: 1. 機器人執行任務中,每隔一段時間測量一次反應時間,並根據反應時間決定 後續動作。 2. 如果反應時間合乎目前場景需求,則為最佳化狀態,返回前一步驟,反之則 進行下一步處理。 3. 啟動基因演算機制,以系統模型為依據尋找最佳參數。 4. 將最佳參數套用至系統中。 5. 重複此步驟直到任務結束。 流程如圖4.3。 圖 4.3: 參數最佳化機制流程圖N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
第 5 章
實驗與結果分析
5.1
實驗環境與架構
實驗環境共使用三台 Raspberry Pi 2 作為子節點,處理器為 ARMv7 架構,4 核心 的 Broadcom BCM2836,作業系統為基於 Debian 8[30] 客製化的 Raspbian[31]。主 節點使用 NVIDIA Jetson TK1,處理器為 ARMv7 架構,4 核心的 NVIDIA Tegra K1,作業系統為 Ubuntu 14.04[32],並於主節點設置 NFS 共享儲存區,彼此之間 透過 100MBps 的交換器互相連接,本實驗的系統參數最佳化機制由主節點執行並 主導控制,系統架構如圖5.1所示。 為了模擬實際應用的場景,本實驗在三台 Raspberry Pi 2 上面總共安裝了五種 感測器,感測裝置的詳細參數如表5.1所示,由於紅外線循跡與雷射測距儀的計算 量相對較小,因此實驗中將三個攝影機分別安裝於每一台 Raspberry Pi 2,再將紅 外線循跡與雷射測距模組安裝於其中兩台,使各自的計算量平均。 為了量測系統反應時間,我們實際在子節點連接各種感測裝置,並以亂數方 式產生各種不同的參數組合,將不同情況下的反應時間加以記錄,獲得系統模型 的訓練資料集,總共產生 10038 筆訓練資料。 圖 5.1: 系統架構圖N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
表 5.1: 感測器參數表Camera 0 Infrared Laser Camera 1 Camera 2
DataType Image double int Image Image
DataSize 640*480 14 726 640*480 1280*720
5.2
不同迴歸方法之比較
進行 GEP 迴歸分析所採用的參數如表5.2,所使用的運算子如表5.3,為了確保模 型的正確性,本實驗使用不同的迴歸方法分析系統參數資料,並進行比較,所使 用的迴歸方法包含 GEP、線性 (LIN)、多項式 (POL)、指數 (EXP),並將訓練資料 共 10038 筆分成 8000(80%) 筆訓練資料與 2038(20%) 筆測試資料。 表 5.2: GEP 相關參數 Parameters Value Iteration 200000 Population size 30 Head length 16 Tail length 17 Prob. Mutation 0.00138 Prob. Crossover 0.00277 Prob. Transposition 0.00277 Prob. Recombination 0.00277 為了獲取效果較好的系統模型,本實驗首先將 10038 筆的訓練資料集隨機挑 選其中的 10%、20%、30%、40%、50%、60%、70%、80%、90% 進行迴歸分析, 以 MSE、MAE、MAPE 來分析結果,實驗結果如圖5.2所示,可以發現採用 70% 的資料量來訓練效果較佳,因此後續的實驗將採用 10038 筆資料中的 70% 進行訓 練,接著將 GEP 的訓練結果與 LIN、POL、EXP 等方法進行比較,結果如表5.4, 可以發現 GEP 相較於其他方法具有較高的準確度,顯示 GEP 的模型較具有穩定
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
表 5.3: 運算子集合列表 (x+y) sqrt(x) floor(x) (x-y) x3 ceil(x) (x*y) x4 abs(x) (x/y) logistic(x) -xexp(x) if x < 0 or y < 0, then 1, else 0 x5
ln(x) if x >= 0 or y >= 0, then 1, else 0 x1/4
1/x if x < 0 and y < 0, then 1, else 0 x1/5 x2 if x >= 0 and y >= 0, then 1, else 0
x1/3 if x < y, then x, else y
min(x,y) if x >= y, then x, else y
max(x,y) if x < y, then 1, else 0
avg(x,y) if x >= y, then 1, else 0
arctan(x) if x < y, then (x+y), else (x-y) tanh(x) if x >= y, then (x+y), else (x-y)
(1-x) if x < y, then (x+y), else (x*y) if x >= y, then (x+y), else (x*y) if x < y, then (x+y), else atan(x*y) if x >= y, then (x+y), else atan(x*y)
性。各種迴歸方法所產生的系統模型範例如下: • LIN:-0.3917 - 0.002 * F0+ 0.0113 * F1- 0.0052 * F2+ 0.0054 * F3- 0.0069 * F4 + 0.0781 * R0+ 0.0324 * R1+ 0.0352 * R2+ 0.0162 * R3+ 0.0718 * R4+ 0.007 * B0+ 0.005 * B1+ 0.0082 * B2+ 0.0029 * B3 + 0.0029 * B4 + 0.1218 * P0+ 0.016 * P1 - 0.0006 * P2+ 0.0051 * P3 • EXP:exp(-3.5102 - 0.0266 * F0+ 0.0816 * F1- 0.0027 * F2+ 0.0028 * F3- 0.0082 * F4 + 0.2832 * R0 - 0.1252 * R1 + 0.0016 * R2 + 0.0761 * R3 + 0.1535 * R4 + 0.0136 * B0 + 0.0077 * B1 + 0.0139 * B2 - 0.0143 * B3 + 0.0036 * B4 + 0.4215 * P0+ 0.0665 * P1- 0.0074 * P2 + 0.0119 * P3) • POL:-0.0489 - 0.0044 * F0+ 0.0007 * F02 + 0.0244 * F1- 0.0018 * F12- 0.0086 *
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
表 5.4: 不同迴歸方法精確度比較GEP LIN EXP POL
MSE 0.0484 0.0823 0.0938 0.0565 MAE 0.1246 0.2030 0.1824 0.1430 MAPE 1.2089 2.5981 1.3398 1.7595 F2+ 0.0008 * F22- 0.0071 * F3+ 0.0012 * F32- 0.0055 * F4- 4E-05 * F42 - 0.0639 * R0 + 0.0471 * R02 - 0.075 * R1 + 0.0573 * R12 + 0.0107 * R2 + 0.0226 * R22 -0.0512 * R3+ 0.0374 * R23- 0.0892 * R4+ 0.0548 * R24+ 0.018 * B0- 0.0013 * B02 + 0.0178 * B1- 0.0012 * B12 + 0.0191 * B2- 0.0011 * B22+ 0.0197 * B3 - 0.0016 * B2 3 - 0.0049 * B4+ 0.0006 * B42- 0.2903 * P0+ 0.1021 * P02- 0.0135 * P1+ 0.0056 * P12- 0.0326 * P2 + 0.0079 * P22 - 0.0176 * P3 + 0.004 * P32 • GEP:(((((R2+(R1+(B2÷ 4.6898))) ÷ 2) × R4)× exp(((((-3.5633)+P0)-0.1389)×
1.3253)))× atan(0.1389)) + max((-2.0448),(P1-max(exp(((gep3Rt(R1)-min(R1,F1
))-((3.6253+3.6253)÷ 2))),min(tanh((1 ÷ (3.6253))),(1-exp(R1)))))) +
(1-log((tanh(((min(tanh(tanh(R2)),F2)+(((R4-P0)-((R0+R3)÷ 2))+max((B2-B1),6.5642))) ÷ 2)) × 6.5642))) + (1-(P1× max((1-(1-tanh((((((P0× 17.1006)-R1)+tanh(R1))÷
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
(a) MSE、MAE (b) MAPE 圖 5.2: GEP 訓練資料筆數分析N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
5.3
參數最佳化機制驗證
本實驗目的在於驗證本研究所提出之方法,於分散式機器人系統的參數最佳化問 題中的效果,最佳化機制如4.3節所述,並以 MSE 作為效果的衡量指標。實驗以 C++ 搭配 MPI 函式庫撰寫節點連接與資料傳遞的機制,並同樣以 C++ 撰寫 GA 之 參數最佳化機制。實驗中 GA 的參數設定如表5.5,並設定數種不同場景來驗證本 方法之效果。 表 5.5: GA 相關參數 Parameters Value Iteration 1000 Pool size 64 Prob. Mutation 0.05 Prob. Crossover 0.55.3.1
場景 A
此場景設定了五個階段,依序使用不同的感測裝置,並且設定較高的反應時間容 許值,詳細參數如表5.6所示。實驗結果如圖5.3所示,不同場景下預測值與實際 效能的 MSE 如表5.7所示。首先可以看到在反應時間容許值較大的階段,因為設 定的反應時間較高,系統在決策階段有時會去處理其他感測資料,增加決策所花 的時間,因此造成反應時間加長,而在反應時間容許值較低的情況,則相對較穩 定,因為一些接收頻率較低的感測裝置,在多數時候緩衝區都是沒有資料的,由 於每一次計算的流程通常不會計算這些資料,所以反應時間相對就穩定許多。N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
表 5.6: 場景 A 環境設定 Stats P0 TR 1 0 0.30 2 1 0.15 3 2 0.20 4 3 0.30 5 4 0.80 表 5.7: 參數最佳化機制預測與實際效能-場景 AState Predict Real MSE
1 0.30000 0.20888 0.01371 2 0.14912 0.07408 0.00605 3 0.20006 0.09900 0.01048 4 0.29804 0.30996 0.00633 5 0.79927 0.30220 0.32868 圖 5.3: 參數最佳化機制預測與實際效能-場景 A
N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
5.3.2
場景 B
此場景延續上一個實驗,但是反應時間都設定在較低的值,以模擬機器人在較嚴 苛的條件下切換場景的情形,參數設定如表5.8所示。實驗結果如圖5.4所示,不同 場景下預測值與實際效能的 MSE 如表5.9所示。在此次實驗中,可以看到在第一 階段中,實際反應時間相當接近預測值,可以推測在較嚴苛的條件下,系統會選 擇不接收一些較龐大的資料,藉此降低反應時間來符合要求。 表 5.8: 場景 B 環境設定 Stats P0 TR 1 0 0.22 2 1 0.08 3 2 0.11 4 3 0.25 5 4 0.50 表 5.9: 參數最佳化機制預測與實際效能-場景 BState Predict Real MSE
1 0.22001 0.21836 0.00001 2 0.08469 0.03189 0.00309 3 0.11059 0.09947 0.00039 4 0.24975 0.28389 0.00186 5 0.50027 0.89464 0.21075
5.3.3
場景 C
此場景為模擬實際應用中,由於場景內容的複雜度不同,會在平穩與嚴苛的條件 間交互切換,觀察機器人於實際應用中的可行性,參數設定如表5.10所示。實驗 結果如圖5.5所示,不同場景下預測值與實際效能的 MSE 如表5.11所示。在此實驗 中所設定的參數有時候較嚴苛,有時候較寬鬆,較符合實際應用的場景,可以看N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
圖 5.4: 參數最佳化機制預測與實際效能-場景 B 到在此實驗中,大多數情況下 GEP 模型搭配 GA 參數最佳化機制的表現都是不錯 的,GEP 模型的預測值與實際結果通常是接近的,因此可以證明本研究所提出的 方法是有效的。 表 5.10: 場景 C 環境設定 Stats P0 TR 1 3 0.20 2 0 0.40 3 1 0.15 4 2 0.15 5 4 0.40 6 1 0.08 7 0 0.20 8 3 0.30 9 2 0.10N
a
ti
o
n
a
l
U
niversity of
K
ao
h
si
u
n
g
表 5.11: 參數最佳化機制預測與實際效能-場景 CState Predict Real MSE
1 0.20043 0.35045 0.02256 2 0.39988 0.51521 0.01451 3 0.14994 0.10080 0.00319 4 0.14944 0.09812 0.00267 5 0.39936 0.90838 0.31223 6 0.08031 0.01133 0.00519 7 0.20071 0.27565 0.00607 8 0.29938 0.33987 0.00173 9 0.10062 0.09947 0.00059 圖 5.5: 參數最佳化機制預測與實際效能-場景 C