2018年9月,微软亚洲研究院推出了NNI(Neural Network Intelligence),该项目在GitHub上获得了3.8K星标,成为最受欢迎的自动机器学习(AutoML)开源项目之一。
作为专门为研究人员和算法工程师设计的自动机器学习工具和框架,NNI在过去的一年里持续迭代更新。团队发布了稳定的API版本1.0,并不断引入最新的算法,增强了对各种分布式训练环境的支持。
NNI的最新版本在机器学习的各个阶段都提供了全面的支持,包括特征工程、神经网络架构搜索(NAS)、超参调优以及模型压缩等步骤,都可以通过自动机器学习算法实现。
无论是初学者还是经验丰富的专家,NNI都能提供强大的支持。本文将详细介绍NNI最新版本的各项功能,帮助大家更好地理解和使用这一自动机器学习工具。
自动机器学习近年来备受关注,各种自动机器学习工具层出不穷,各有优缺点。有的专注于算法但不支持分布式训练;有的功能强大但缺乏友好的用户界面;有的仅限于特定领域;还有些只能在云端运行。
微软的自动深度学习工具NNI具有以下优势:
完整中文文档请访问:https://aka.ms/nnizh
随着机器学习和人工智能的发展,经典算法和深度学习网络已广泛应用。然而,不同数据集所需的超参数设置各不相同,超参优化正是为了解决这个问题,通过启动多个实例找到最优参数组合。
NNI的超参调优功能特别适用于此类场景。在超参搜索算法方面,NNI不仅提供了TPE、SMAC、进化算法等优秀算法,还支持遍历、批处理、随机、Hyperband等多种算法。此外,还支持自动终止低效实例,加速学习过程。
NNI的安装非常简单,只需一条命令:“pip install nni”。
使用NNI也非常简便:首先定义搜索的超参空间;然后在训练前通过NNI的接口读取参数并传递目标值(如准确率);最后配置调参算法即可开始。
具体步骤可以参考入门教程:https://aka.ms/nnizq
特征工程是应用经典机器学习算法的重要步骤,通过特征工程,可以加快机器学习过程,获得更好的结果。
NNI的超参调优功能可以直接应用于特征增强和自动特征选择等任务。为了便于新手入门,NNI内置了基于梯度和决策树的自动特征选择算法,并提供了扩展其他算法的接口。
NNI团队对自动特征工程进行了对比测试,在colon-cancer、gisette、rcv1、neews20.binary、real-sim等数据集上验证了其效果。实验表明,在成千上万的特征中选择前20个,决策树通常能取得较好结果,而选择更多特征则会有更好的表现。
更多信息请访问:https://aka.ms/nnizfe
神经网络结构搜索(Neural Architecture Search,简称NAS)旨在通过自动搜索网络结构来提高性能。近年来,关于NAS的研究成果层出不穷,算法种类繁多。
为了促进NAS的创新和发展,NNI实现了ENAS、DARTS、P-DARTS等算法,并提供了one-shot算法的接口。此外,还支持网络形态(Network Morphism)等经典搜索方法。
算法介绍及用法:https://aka.ms/nnizn
随着深度学习的发展,模型变得越来越大,虽然准确率显著提升,但较大的模型尺寸会影响推理速度并对硬件提出更高要求。因此,模型压缩成为一个热门话题。
模型压缩主要分为两类:一是剪枝算法,用于压缩网络结构;二是量化算法,用于减小模型精度。NNI目前提供了AGP、L1Filter、Slim、Lottery Ticket、FPGM、QAT、DoReFa等九种模型压缩算法。用户可以根据需要通过NNI的模型压缩接口实现自定义算法。
相关算法介绍及用法:https://aka.ms/nnizc
随着人工智能技术的发展,理论和建模方法也在不断进步。我们致力于将最实用的工具提供给每一位研究人员和算法工程师,加速人工智能领域的进步与发展。
2020年,我们将继续创新,力求让NNI提供全生命周期的自动化框架、更丰富的算法和更高效的分布式调参能力,进一步提升NNI的易用性和用户体验。
作为一个开源项目,我们期待大家为NNI添加新算法、新功能和新示例,并欢迎大家提出建议和报告问题。如果您有任何反馈或建议,欢迎在GitHub社区中告诉我们。
NNI的GitHub社区:https://aka.ms/nniis
扫描下方二维码,访问NNI的中文文档。
NNI中文文档链接:https://aka.ms/nnizh