导读:以机器学习,特别是深度学习为代表的人工智能迅速发展,将深刻改变人类社会生活、改变世界。而这都依赖于大数据及其数据分析能力,大规模机器学习和深度学习平台为其核心部分。因此,对有意尝试或导入 AI 的企业来说,“让机器学习得以自动化”具有很大的吸引力。比如微软的 CustomVision.AI、谷歌的 Cloud AutoML,国内如第四范式、智铀科技等公司也推出了 AutoML 平台。本文介绍拍拍信的AutoML 实践之路。
AutoML 简介
AutoML 的概念源自 2012 年学术界提出一个新观念
——Programming by Optimization(PbO),旨在于解决编程时人工调校参数的问题。机器学习(Machine Learning) 是一个相对复杂的且需要相当专家经验的开发过程,涵盖数据采集-数据清洗-特征工程-模型超参优化-模型验证等步骤。AutoML致力于自动化完成以上过程,有效降低开发成本以及准入门槛。
AutoML 简介
1. Work Flow
拍拍信AutoML主要工作流程如下如所示,涵盖数据读取-特征预处理-模型自动化训练、迭代-自动化部署等过程。在使用时相对简单,只需指定声明相应的学习任务(分类或者回归),并在对应的训练样本上进行模型训练即可,同时实现一键式自动化模型部署。
请输入图片描述
2. 核心 “黑箱”介绍
2.1 Auto Feature Preprocessing
自动化完成特征基本检查,包括数值型/分类型变量检测、缺失值检测、特征异常值检测等,同时实现缺失值填充、异常值处理、Feature Normalization、 分类型变量处理等。
2.2 Auto Hyper Parameter Optimization
机器学习模型超参优化一般认为是一个黑盒优化问题,模型的训练过程是相对耗时的,因此需要有更“准确和高效”的方法来调优超参数,进行模型的自动化优化迭代。拍拍信AutoML支持Genetic algorithm(遗传算法)、Particle Swarm Optimization(粒子群优化)、Bayesian Optimization(贝叶斯优化)、TPE等超参优化算法,有效提高模型训练效率。
2.3 Auto Model Deployment
经过模型训练后会产生相应的模型,而最终目的是将模型应用到新的数据中。支持模型自动化部署以及自动化升级,支持高并发的在线预测和大批量的离线预测,满足用户不同使用场景。在模型上线后,在实际生产环境中如何进行快速扩容/资源回收是一个非常重要的问题。 支持模型容器化部署,将算法模型直接打包成docker image 文件,直接部署于K8S集群上。
AutoML Action on Deep Learning
自动化神经网络架构搜索
神经网络架构搜索NAS问世多年,但高昂算力和时间成本严重限制了深度学习在自动化和平台化方向的进一步发展。
2018年2月推出的Efficient Neural Architecture Search via Parameter Sharing(ENAS)首次为深度学习的自动化提供了一种实现可能。它通过对于结构搜索,验证计算和参数优化等方面的简化和改革,取得了一个开发深度神经网络的效率与效果的平衡。
ENAS能够以单显卡在10小时自动设计出一个极为优秀的深度神经网络
● 图像分类的模型在CIFAR-10得分仅次于DenseNet
● NLP的模型在Penn Treebank测试中创造了新的记录(state-of-art)
本质上ENAS是一个巧妙设计的黑盒优化架构。它通过引入pre-node index将结构参数化,并利用该架构节点数量及种类固定的特点实现了参数共享,借此大大降低了计算量。通过该黑盒优化就能以远低于传统神经网络架构搜索的时间和算力找出最优的结构和参数。
当然在实现超高效搜索的同时,ENAS也做出了不少妥协:
● 结构设计受限(单向全连接),复杂度较低(固定节点个数和种类)使得它注定不能像人类专家一样设计出精妙的结构
● 参数共享使得评估结构的公平性不足,远非理论最优
● 优化迭代时只取最优结构和参数不利于搜索的稳定性
● 在线评估(inference)限制了训练超参(dropout-rate, learning-rate等)的优化
虽然在设计模型的复杂程度,优化及评估方式上仍有待提高.但ENAS在深度学习最为广泛应用的两个领域,图像和自然语言处理上,自动化地设计出了不亚于资深专家的模型.它也因此受到了学界的认可。目前的开源代码仅提供了RNN,CNN整网,以及CNN处理层三个主要针对图像和NLP的设计功能,在处理其他任务时需要进行较大量的二次开发.并且在得出最优结构设计后,还要对参数进行大量在再训练才能达到预期的效果,所以到商业化之前还要繁多的理论和开发工作需要跟进。
目前我们正在积极开发基于ENAS架构的商业化自动深度学习平台,目标是在图像和自然语言处理的基础上开发更为定制的贴合客户实际应用场景的自动平台方案。
总结
AutoML让机器学习变成是真正的 “机器” 学习,把经验性的工作自动化,能极大地降低未来机器学习的门槛,提高人工智能的适用领域。