[论文阅读]TPOT
[论文阅读]TPOT原文
来源
Bioinformatics——CCF B 生物信息学顶刊
作者实验室:宾夕法尼亚大学 生物信息学研究所
解决的问题
提出树形pipeline优化器,主体使用遗传算法,通过一些模块化功能,提高了自动化机器学习系统的可扩展性。
论文发表时的baseline及存在的问题
网格搜索、随机搜索、贝叶斯优化
存在的问题:网格搜索和随机搜索计算成本太高,不可能在具有高维搜索空间的模型上探索;贝叶斯优化的实例有auto-sklearn、AutoWEKA,存在的问题是难以构建复杂预测问题需要的更复杂的pipeline或堆叠模型。
方法
基于树的pipeline优化工具(TPOT)是一个基于EA的AutoML系统,使用遗传算法来优化一系列特征选择器、预处理器、ML模型。
以下主要介绍两个能够提升模型可扩展性的模块:
- FSS:特征集选择器,允许用户传递特定的特征子集,减轻在大型数据集上评估的时候的压力
- Template:为强类型GP启用了选项,可以在GP中强制执行类型约束,有助于减少计算时间
FSS
简单来说就是将大型原始数据集分割成较小的数据集,减小空间的维度。例如从一个医学的例子上来说,对于某种基因表达分析中,可以指定感兴趣的路径中的基因集合(个人感觉就是pipeline提供了一个加入先验的过程)
遗传算法
参考博客:TPOT解读 - 知乎 (zhihu.com)
-
初始化:随机初始化100个tree-based pipeline
-
淘汰:通过NSGA-II选择规定(多目标遗传规划),最大化验证集准确率同时最小化每个pipeline的operators,选取前20个pipeline
-
分裂:把2得到的20个pipelines复制5分共100个pipelines作为初始化子代
-
变异:
-
- 5%子代与另5%子代的pipeline上的operators互换
- 剩下的90%的子代,等概率(1/3)进行增,剪,转移operator操作
-
转到步骤2,重复该过程100次.
Template
是用来定义统一的pipeline流程的,在每一次EA算法演进时都使用相同的工作流来处理。借用原文的一张图:
优点&创新点
不认为创新点很多,主要是构建了一个很完整的系统。
实验数据
一个模拟数据集——使用privateEC生成
一个真实世界RNA表达数据集
对比实验结果与分析
对比实验较少,对比了TPOT-FSS和TPOT以及XGBoost,最终结果是TPOT-FSS效果较好。
存在的问题&个人感受
存在的问题
目前还是只适用于小型特征集,由于计算代价太大。
个人感受
文章涉及很多生物信息的知识,个人认为这篇文章的贡献其实是构造了一个相对完整、易用的AutoML系统。光看文章感觉可读的必要不是很大。
由于网上TPOT的系统使用教程很多,因此本博客不再涉及。