[-NNI使用体验]
一、NNI简介
在机器学习建模时,除了准备数据,最耗时耗力的就是尝试各种超参组合,找到最佳模型的过程了。对于初学者来说,常常是无从下手。即使是对于有经验的算法工程师和数据科学家,也是很难把握所有的规律,只能多次尝试,找到较好的超参组合。而自动机器学习这两年成为了热门领域,它将机器学习过程中包括自动特征提取、模型选择、参数调节等过程自动化地学习,使学习过程在给定数据和任务上学习和泛化能力非常强大。NNI (Neural Network Intelligence) 是微软开源的自动机器学习工具包,与当前的各种自动机器学习服务或工具相比,有非常独特的价值。NNI着力解决超参调试过程的挑战,通过内置的超参选择算法、算力的强大支持和便捷的交互方式来加速和简化超参搜索的过程。
用户只需要三步即可完成实验准备,(1)定义搜索空间(search space);(2)上传代码(codes);(3)定义实验 ,用户可以使用一行命令行即可开始实验,并可使用webUI在网页端实时查看实验进程和结果。
NNI的使用场景包括:
- 在本地 Trial 不同的自动机器学习算法来训练模型。
- 在分布式环境中加速自动机器学习(如:远程 GPU 工作站和云服务器)。
- 定制自动机器学习算法,或比较不同的自动机器学习算法。
- 在自己的机器学习平台中支持自动机器学习。
二、常见 Auto ML 对比
-
Cloud AutoML (Google AutoML, Baidu EasyDL等)
这是一类基于云的AutoML服务,这类开发利器,即便用户不懂机器学习,也能训练出一个定制化的机器学习模型。AutoML工具是把自动调参作为一种服务提供给用户的。操作上,只需要提供带有标签的数据,服务会根据用户提供的数据进行模型参数和结构的搜索,自动生成定制化的机器学习模型,例如Cloud AutoML,这些过程都是可以在拖放式界面完成的,整个过程简单到几乎不需要任何人为的干预。
主要优点:- 门槛低,开发者无需深入掌握机器学习知识;
- 操作简单,基本都是在托放式界面完成;
主要缺点:
- 付费;
- 搜索过程完全交给服务,不可控;
- 函数计算代价巨大,因为组合方式太多,而且每一个组合都需要从头做数据预处理,特征处理,模型训练等操作。
- 由于是在云端操作,数据需要上传到云端,涉及数据安全问题;