首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AI技术词条 Auto-Net

全自动网络

Auto-Net

前言

亲爱的读者,您好!

欢迎您阅读《AI技术词条》系列文章,AI君力求用最通俗易懂的话语带你读懂“人工智能”领域的专业词汇和算法,不废话不凑字,直达最核心的内容。请大家帮忙多多转发,感激不尽!

概述

AI君今天要讲的不能单纯算作一个算法,但说它不是算法又并不合适。那它到底是什么呢,它就是自动网络,英文名Auto-Net。

乍一看,你可以会觉得很陌生,完全不知道Auto-Net究竟是什么。但是AI君相信你一定听过著名的Auto-Sklearn,Auto-Net就是在Auto-Sklearn基础上的进一步封装和改进。如果这两个你都没听过也不要紧,AI君接下来会为你一一讲解。

读者应该知道,机器学习领域有着众多的算法,这些分类方法各有优缺点,分别适用于不同的数据集,单一的方法并不能有效地通用,而且同一个方法在不同的超参数设置(hyperparameter setting)下的表现也会有很多的差异。

通常情况下,学者和开发人员们会根据自身的经验知识,结合具体的数据处理案例,选择合适的算法,并不断优化超参数设置来得到最优的模型。很明显,这种方法过于依赖开发人员的经验知识,而且人为超参数的调节是一件效率非常低下的事情。

Auto-Sklearn就是一种开源的可以有效解决这一问题的方法,它集成了多达15种分类算法(classification algorithm),可以在未知数据集上自动训练各种算法,并自动优化超参数设置。Auto-Net就是在Auto-Sklearn基础上集成深度神经网络。接下来对Auto-Sklearn和Auto-Net作简要介绍。

Auto-Sklearn

Auto-sklearn是一个开源的自动机器学习工具,他集成了表1所示的15种分类算法(classification algorithms)和表2所示的18种预处理算法。

表1 Auto-Sklearn集成的15种分类算法

表2 Auto-Sklearn集成的18种预处理算法

Auto-Sklearn功能强大效率高,面世之初就获得了当年的ChaLearn AutoML challenge的冠军。挑战结束之后,它的作者团队又将其封装成为了一个开源工具,现在它已经是非常简单易用,可以快速上手的一个工具了。如图1所示,简单几行代码就可以在你的数据集上测试训练多种算法,并且在规定的时限内得到更好的超参数组合。

图1 一个快速上手的Auto-Sklearn示例

Auto-Sklearn拓展

图2所示即为Auto-Sklearn的基本框架。它在贝叶斯优化的基础上,增加了meta特征学习和组合环节。下面会对这两个环节做简要介绍。

图2 Auto-Sklearn工作流程

Meta特征可以理解成数据的特征,比如说数据的样本数,每个样本的特征数量等。Meta特征学习可以通过对数据结构的了解,估算出可能最适合该数据的算法和超参数。

传统的贝叶斯优化只会输出一个最适合这个数据的算法模型,而Auto-Sklearn则认为这会导致两个问题:是一种浪费,因为有很多算法的表现非常接近于最优算法,直接舍弃过于可惜,白白浪费了宝贵的训练资源和时间;是过拟合(overfitting)问题,因为模型只是单纯根据准确率选出一个最佳模型。

组合(ensemble)方法则是将表现最佳的若干个算法组合封装起来,根据他们在Holdout数据的表现分配不同的权值。

Auto-Net

Auto-Sklearn效果很好,但是它也有着很明显的缺点:在数据量过于庞大的时候,Auto-Sklearn无法找到有效的模型。

这一问题的出现也有两个原因:Auto-Sklearn基于Sklearn库,这个库在中小数据集的表现不错,在大型数据集上却表现出效率低下,进而导致了算法在尝试更多的模型和超参数组合需要付出更多的时间和计算资源;通过表1我们可以看出,Auto-Sklearn集成的15种分类算法里没有包括神经网络,这就在一定程序上限制了其在大型数据集的表现。

基于上述缺点,Auto-Sklearn的作者们又提出了Auto-Net,它在Auto-Sklearn的基础上加入了全连接的前馈神经网络(fully connected feed-forward neural network),充分将Auto-Sklearn和深度网络的优势结合起来。从图3可以看出,总体来说,将两者结合的效果比单独使用都要好。

图3 Auto-Sklearn和Auto-Net运行效果测试

总结

Auto-Sklearn和Auto-Net功能强大,集成度高,但是很明显,只在Auto-Sklearn的基础上加入一个前馈神经网络是不够的,他们的作者团队也指出,Auto-Net在未来会加入更多的神经网络模块,比如说卷积神经网络(CNN)和迭代神经网络(RNN)。随着功能的丰富,相信未来Auto-Net能够带给我们更多的惊喜。

后话

请在文章末尾留言写出你的想法,告诉AI君你最想了解的人工智能算法,我就会优先写出你想看的文章哦。

最后,请大家帮忙多多转发《AI技术词条》系列文章,感激不尽!

祝好!

AI君

2018年1月30日 于欧洲

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180131G0DGSD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券