1. 程式人生 > >irace package -- 引數調優神器

irace package -- 引數調優神器

[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中,所有參