自动化机器学习(AutoML):优势与局限#
本节要点:
- 省时:AutoML 把模型选择与训练过程自动化,省掉大量手工试验的时间。
- 普惠:没有专业知识背景的用户也能建模,因为 AutoML 把机器学习“民主化”了,它还能用来评估数据集、落实最佳实践。
- 不完美:模型质量可能不如手工训练,训练中途的可定制性有限,模型搜索过程也不透明。
- 数据量:AutoML 一般同样需要大量数据,不过用上迁移学习的专用系统可以降低这个需求。
- 怎么选:ML 经验有限、只想要效率提升的团队适合 AutoML;把模型质量与可定制性放在首位的项目,手工训练更合适。
这一节要讨论的,正是 AutoML 的好处与局限有哪些 —— 看完你就能判断,它到底适不适合你的项目。
优势#
我们先看大家最常挑 AutoML 的几个理由:
省时间:很多人选 AutoML 就是为了省时间,免去一轮轮手工试验去找那个最佳模型;
提升机器学习模型的质量:AutoML 工具可以全面地搜索出质量最高的模型;
不具备专业能力也可以构建机器学习模型:把机器学习任务自动化带来的一个副作用就是让机器学习的“民主化”,用户不必对机器学习算法或编程有深刻理解,也能开发出一个机器学习模型。
给数据集做一次冒烟测试:哪怕你是个建模老手,AutoML 也能迅速给出一个基线结果,这个数据集在满噪声之中到底有没有足够的信号。如果连一个勉勉强强的模型 AutoML 都建不出来,那你也大概不必再花时间手工去凑一个好模型了。
给数据集做一次评估:很多 AutoML 系统不光能帮你评估它产出的模型,还帮你评估喂给这些模型的特征。就算最后你并不用它给出的模型,AutoML 工具也可能帮你判断:哪些特征其实不值得花力气去收集、不值得放进最终的数据集。
落实最佳实践:自动化本身内置了对机器学习最佳实践的支持,每一次模型搜索都会自动把它们套用上。
局限#
不过,选 AutoML 之前,有几条局限是你必须先掂量掂量的:
模型质量可能不如手工训练:用一个通用化的优化算法,为任意随机数据集去找“架构 + 超参数 + 特征工程”的最优组合,往往意味着一个有干劲、时间也够的专家,完全可以做出预测质量更好的模型。
模型搜索与复杂度可能是不透明的:用了 AutoML 你很难看清工具究竟是怎么一步步找到那个“最佳模型”的。事实上,它输出的模型本身可能就是由不同的架构、不同的超参数、不同的特征工程策略拼起来的,AutoML 生成的模型,很难靠手工复现。
多次 AutoML 运行之间的方差可能更大:由于优化算法是迭代着去找它认为最好的那些取值,不同次的 AutoML 运行可能会搜索到参数空间的不同区域,最终停在“有些不同”(甚至可能差别相当大)的位置上。用 AutoML 重新调参、构造出一个全新的模型架构,方差会比单纯把上一个模型架构重新训练一遍更大。
模型无法在训练过程中被定制:如果你的使用场景需要在训练过程中做定制或微调,AutoML 可能并不适合你。
数据要求#
不管你用的是定制训练还是 AutoML 系统,有一件事是确定的:当你从零开始构建模型时,那就需要大量的数据。AutoML 的优势在于,你可以基本不管架构与超参数的搜索,把注意力主要放在数据质量上。
也有一些专用的 AutoML 系统,因为用到了迁移学习,训练模型所需的数据量可以少得多。
举个例子:构建一个图像分类模型,通常需要几十万张样本;而这类专用 AutoML 系统,只需要几百张带标注的图片,再配合一个现成的图像分类框架模型做迁移学习就够了。
AutoML 适合你的项目吗?#
AutoML 能帮到任何人,从新手到专家,都能用机器学习做出产品、解决问题。如果你正在权衡 AutoML 是不是自己项目的正确选择,不妨对照下面这两条取舍:
AutoML 很适合这样的团队:搭建机器学习模型的经验有限,或者是有经验的团队,只想提升生产效率、又没有定制化需求。
定制(手工)训练在这些情况下更合适:模型质量很重要,而且团队需要能够定制自己的模型。这类情况下,手工训练可能要花更多时间做试验、搭方案,但团队往往能拿到比 AutoML 方案更高质量的模型。
关键术语:
- AutoML
- 迁移学习(Transfer learning)