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等)
- 指标的定义
- 简单的统计描述(均值,方差等)
- 训练时间和需要的硬件条件
- 使用的计算基础架构(系统?)