title: 機器學習代碼完整性自查清單
date: 2020-11-18 19:56:32
categories:
- 機器學習
tags: - 代碼完整性
寫機器學習算法代碼的規范。
[[1]機器之心-機器學習論文復現,這五大問題你需要注意](file:///D:/Documents/zotero/storage/GKIWGIGK/2020-11-02-5.html),一篇博客,作者分析了復現論文時的常見問題。
[2]paperswithcode/releasing-research-code,[1]中提到的README樣例
[3]機器之心-PapersWithCode發布代碼完整性自查清單:想獲得更多星,你需要注意這五項,[2]的中文翻譯
[4]Joelle Pineau發布的機器學習可復現性檢查清單,[1]中提到的檢查清單。
[2]paper with code提供的自查清單
一份README文件示例:README.md template
具體包括如下幾項:
依賴項
寫清楚安裝的庫和版本,提供requirements.txt
或environment.yml
或setup.py
。在README中寫清楚安裝過程。
可以考慮使用Docker
。
訓練腳本
寫清楚整個過程使用的超參數和技巧。
提供train.py
。
評估腳本
提供eval.py
。
預訓練模型
提供已經得出的數據對應的模型,這樣其他用戶不用重新訓練就能看到結果是可信的。
結果
通過表格快速展示。
項目示例
https://github.com/kakaobrain/fast-autoaugment
https://github.com/eth-sri/eran
其他資源
包括
- 預訓練模型文件托管平臺
- 模型文件管理工具
- 標準化模型界面
- 結果排行榜
- 制作項目頁面工具
- 制作 demo 和教程工具
詳見[2]或[3]
[4]機器學習可復現性檢查清單
對于模型和算法:
- 數學公式、算法、模型的清晰描述
- 假設的清晰描述
- 算法的時間、空間復雜度分析
對于定理聲明:
- 清晰的陳述
- 完整的證明
對于使用的數據集:
- 簡單的統計信息,例如數量
- 用于訓練、驗證、測試的細節
- 預處理步驟的說明
- 下載鏈接
- 如果對數據集有修改,寫出修改過程
對于代碼:(這段和[2]相同)
- 依賴性說明
- train代碼
- eval代碼
- 預訓練模型
- README文件和結果
對于實驗結果:
- 超參數的范圍,選擇最佳超參數的方法,生成結果的超參數
- 訓練和驗證的參數(epoch等)
- 指標的定義
- 簡單的統計描述(均值,方差等)
- 訓練時間和需要的硬件條件
- 使用的計算基礎架構(系統?)