进化计算在深度学习中的应用 | 附多篇论文解读

基于遗传规划的自动机器学习机器学习

自动机器学习(Automated/Automatic Machine Learning, AutoML)做为近年来逐渐兴起的热门研究领域,旨在下降机器学习的门槛,使其更加易用。性能

通常而言,一个完整的机器学习(特别是监督式机器学习)工做流一般包含如下部分,数据清洗,特征工程,模型选择,训练测试以及超参数调优。每一道工序都有至关多的实现选项,且工序之间相互影响,共同决定最终的模型性能。学习

对于机器学习使用者而言,针对具体任务设计实现合适的工做流并不容易,在不少状况下可能会耗费大量的时间进行迭代。AutoML 的目标即是尽量地使以上的过程自动化,从而下降使用者的负担测试

本次咱们要同你们分享的是近年来在 AutoML 领域内比较有影响力的一个工做,基于树表示的工做流优化(Tree-based Pipeline Optimization Tool, TPOT)优化

TPOT 的做者为 Randal S. Olson 等人,相关文献为 [1] (2016 EvoStar Best Paper) 和[2] (2016 GECCO Best Paper),咱们在这里将两篇文献的内容统一为你们做介绍。设计

292b7c07ce33068266b7a6b5adc89546036f04f5

 图1:机器学习工做流中被TPOT优化的部分blog

如图 1 所示,TPOT 但愿从总体上自动优化机器学习的工做流 。在 TPOT 中,一个工做流被定义为一棵树,树上每个非叶子节点为操做(Operator)节点,叶子节点则为数据节点。数据集从叶子节点流入,通过操做节点进行变换,最终在根节点处进行分类/回归,图 2 给出了一个例子。ip

25cca20bf77da9d9b10a7ff8cc321a965f845165

 图2:基于树表示的工做流的一个例子ci

TPOT 一共定义了 4 种操做节点类型(见图 3),分别是预处理、分解/降维、特征选择以及学习模型。这些操做的底层实现均是基于 Python 的机器学习库 scikit-learn。工作流

5d05b6316a81d685673c7b16277d79d14c38cb1a

 图3:TPOT操做节点类型

有了以上基于树的表示,TPOT 直接利用遗传规划(具体来讲,是 Python 库 DEAP 中的 GP 实现)对工做流进行优化。在搜索过程当中,任一工做流首先在训练集上训练,而后在独立的验证集上评估(另外一种更为耗时的选项是交叉验证)。在搜索结束后,TPOT 将返回最好的工做流所对应的代码。

相关文章
相关标签/搜索