irace package -- 引數調優神器
阿新 • • 發佈:2021-04-01
[toc]
***
作者:chegxy
說明:轉載請註明出處,原文在部落格園中,如有勘誤會及時更新,喜歡還請點個贊再走吧
***
## 1. irace 是什麼
相信許多做過演算法的同學都知道引數調優這個過程,例如在做PID演算法的時候,需要調節P、I以及D這三個引數以使得系統可以快速的達到期望值,又或者在做進化演算法時,你需要調整種群規模、交叉概率、遺傳概率以及其他一些引數。當然啦,這些引數都可以憑自己的經驗去調整,但這樣依然略顯麻煩。這時,irace出現了,其目的就是通過迭代計算從若干組引數中得到一組最優引數,其演算法也是使用的進化計算,感興趣的小夥伴可以看看[這篇文章](https://link.springer.com/chapter/10.1007/978-3-319-69404-7_17)。irace package 是實現該調優演算法的軟體包,使用的語言是R語言(學統計學的朋友應該非常熟悉了),即使你沒學過R語言也沒有關係,你只需要學會怎麼配置調優環境即可,接下來我們會詳細討論這個問題。
## 2. 安裝 irace
**提前申明一下**,以下內容均以Ubuntu系統為例,更多詳細內容請閱讀[The irace Package: User Guide](https://cran.r-project.org/web/packages/irace/vignettes/irace-package.pdf)。
1. 首先你需要先安裝R語言環境,執行命令 `sudo apt install r-base` ,中間可能會有兩次提示,第一次回車,第二次輸入 y 回車,安裝完成後命令列執行命令 `R` ,出現版本說明以及提示行表示安裝成功;
2. 輸入 `install.packages("irace")` 回車,出現以下內容:
3. 接下來,會彈處一個對話方塊,讓你選擇映象站點,你選擇一個國內的,點選 ok 開始安裝;
4. 安裝完成後,輸入 `library("irace")` 看是否會報錯,沒有資訊說明安裝成功,輸入 `q()` 退出 R 命令列。
5. 為了可以在任意位置執行 irace ,我們還需要將其執行目錄新增到環境變數中,執行命令 `sudo vim ~/.bashrc`,在檔案最後新增如下內容(記得將 IRACE_HOME 修改為你自己的 irace 安裝目錄):
6. 儲存退出編輯,執行命令 `irace --help` ,正常顯示幫助資訊說明配置成功。
## 3. irace 的執行機制
下面的一張圖是 irace 使用者手冊中的一張圖,展示了 irace 的執行基本流程:
在 irace 執行的開始,使用者需要為其配置測試環境,包括測試集、引數空間(也就是引數的取值範圍)以及初始引數等,然後 irace 會使用這些配置進行迭代計算使用者的程式,同時使用者程式必須返回一個用以評估使用該引數獲得效果的好壞,這些都是 targetRunner 的任務。通過幾次迭代,irace 最終會得到一個相對較好的引數取值反饋給使用者。
## 4. irace 的配置環境
之前談到,irace 的配置環境是很重要的一環,它為使用者提供了足夠的自由度來設計他自己的調優過程,其主要由7個檔案組成:
- configurations.txt
- instances-list.txt
- scenario.txt
- forbidden.txt
- parameters.txt
- target-runner
- target-evaluator
這些檔案可以在 `$IRACE_HOME/templates/` 下找到,接下來我們分別闡述這些配置的作用。
#### 4.1. parameters
引數配置可以通過修改 parameters.txt 實現,在parameters.txt中,所有參