【IT168 评论】由于项目需要,调整机器学习算法和模型的工作并不能总由专家完成。毕竟,很多企业并不拥有这方面的专家,机器学习的力量是有代价的。即便拥有技能、工具包、硬件和数据,创建和微调机器学习模型仍然存在复杂性。
但是,如果机器学习的全部要点是使以前需要人类掌握的任务自动化,是不是可以使用机器学习将一些工作从机器学习本身脱离出来呢?答案是肯定的,在“自动化机器学习”或AML下,一系列技术可以减少准备模型所需的工作,并逐步完善以提高其准确性。
自动机器学习仍处于初期阶段,它被实现为一大堆不同的技术,被快速塑造成一般业务用户而不是机器学习专家。
以下是六种领先的自动化机器学习工具:
·Auto-sklearn和Auto-Weka
很多自动化机器学习已都广泛使用Scikit-learn项目,这是一套通用的机器学习功能形式。
Scikit-learn提供了几种不同的“estimator”功能或用于从数据中学习的方法。因为选择正确的estimator是困难的,Auto-sklearn项目旨在消除一些这样的困扰。它提供了一个通用estimator函数,进行分析以确定给定Scikit-learn任务的非常好的算法和超参数集。
Auto-sklearn仍然需要一些手动干预。最终用户需要对调整过程可以使用的内存和时间设置限制。但是,做出这些选择很容易,让机器决定其余的时间,而不是修改模型选择和超参数。
对于使用Java的机器学习者和Weka机器学习包,有一个类似的项目叫做Auto-Weka。Auto-sklearn实际上是Auto-Weka的延伸。
·Prodigy
创建监督学习模型是一个劳动密集型工作,如自然语言处理。人类必须手工创建元数据来描述或注释模型使用的数据,至少整个过程还没有完全自动化。然而,有可能使用机器学习来加快整个过程,使人力劳动变得更少。
这是一个名为Prodigy的注释工具,它使用Web界面使训练过程尽可能快速和直观地反映需要注释数据集的模型。已经添加到数据集中的注释用于指导未来注释,有助于加快注释过程。
Prodigy使用Python作为机器学习环境,它提供用于培训模型的Python模块,测试探索注释数据集以及在项目之间管理结果。完成的模型可以导出为Python包,并通过其他Python应用程序直接放入生产。
·H2o Driverless AI
另一个旨在使机器学习更适合非专家级用户的产品是H2o Driverless AI。H2o Driverless AI设计用于熟悉Tableau等产品的业务用户,他们希望从数据中获得洞察力,而无需学习机器学习算法的内容。
像Prodigy一样,H2o Driverless AI使用基于Web的UI。这里用户选择数据集中的一个或多个目标变量来解决,并且系统提供答案。结果通过交互式图表呈现,并用简体中文的注释解释。
与Prodigy不同,H2o Driverless AI是专有产品。H2o.ai的大部分堆栈是开源的,但是这个特定组件不是。一个迹象表明,商业产品而不是开源栈可能是将机器学习带到非技术用户的主要方法。
·Google的AutoML和Vizier
近几个月来,Google公布了自己的两个项目,尽管完全是内部项目。第一个项目“AutoML”是为了自动化多层次深度学习模型的设计而创建的。Google表示,设计网络的过程通常需要大量时间和实验,具有重要的机器学习专长。AutoML使用强化学习算法来测试数千种可能的网络,而不是让人类尝试一个又一个深度学习的网络设计。可以使用算法每次运行的反馈来为下一次运行创建新的候选架构。通过足够的运行,培训机制可以确定哪些模型结构产生更好的结果。
另一项Google项目由Google Vizier发表,是一项“black-box 优化服务”。这是一种找到系统非常好的运行参数的方法,在提供的参数和结果之间相关联。
根据这篇文章,Google使用Vizier研究通过调整自己的行为来改善服务。示例包括“调整用户界面参数(如字体和缩略图大小,颜色模式和间距)或流量服务参数,例如各信号在确定向用户显示哪些项目时的相对重要性。
现在,Vizier只适用于Google内部使用。但是,希望Google最终能够提供产品版本的服务,甚至将其作为开源项目发布。