自动机器学习和AI初学者指南

18-12-04 banq
         

AI供应商总是试图说服公司购买他们的机器学习平台和工具,原因之一是声称它的产品是自动化的。这是一个关键的卖点,因为大多数公司都敏锐地意识到他们无法雇用足够的数据科学家(甚至他们已经设法聘请任何数据科学家)。

数据科学家是那些探索数据,清理数据,测试他们认为可能对数据能够进行准确预测的算法的人,然后调整这些算法,直到它们运行良好,就像汽车修理工可能调整汽车一样。这是机器学习工作流程中更完整的任务列表。

如果数据科学家很幸运,他们会获得有效执行这些任务的工具,甚至可以将这些经过培训的机器学习模型部署到生产环境中,以便对实验室外的数据进行预测。

许多机器学习供应商,从谷歌到初创公司,如Datarobot和H2O.ai,声称他们可以自动化机器学习。这听起来很不错!你只需要自动化所有这些技能。

问题是,数据科学家拥有的技能很难实现自动化,而那些寻求购买自动化AI的人应该意识到使用现有技术可以实现什么样的自动化,哪些无法实现?

数据科学家执行许多任务。虽然自动执行其中一些任务可能会减轻他们的工作量,但除非您可以自动完成所有任务,否则数据科学家仍然是需要的,而且这些稀缺的人才仍然是阻碍许多组织中机器学习实施的阻碍点。

我们可以在机器学习中自动化什么?

前面提到数据科学家调整算法。当您调整复杂的机器(并且这些算法只是数学和符号机器)时,您通常需要转动几个旋钮。这有点像用几种食材烹饪,为了产生正确的味道,要调整你的菜肴,这些成分应该以适当的比例相互添加,关键是,正确的比例很重要。

数据科学家经常在没有“配方”的情况下操作,并且必须将旋钮彼此组合调整以探索哪种组合有效。在这种情况下,“工作”意味着调整算法,直到它能够从给予训练的数据中有效地学习。

超参数优化

在数据科学中,算法上的旋钮称为超参数,因此数据科学家一般是执行“超参数搜索”,因为他们需要测试了这些超参数的不同组合,它们的成分之间的比率不同。

超参数搜索可以自动化。Eclipse Arbiter是一个超参数优化库,旨在自动进行深度神经网络训练的超参数调整。它相当于Google Tensorflow的Vizier,或开源Python库Spearmint。Arbiter是Deeplearning4j框架的一部分。一些初创公司,如SigOpt,专注于超参数优化。

您可以使用不同类型的搜索算法搜索超参数的最佳组合,例如网格搜索,随机搜索和贝叶斯方法。

算法选择

AI供应商将做的一件事是通过默认设置超参数的几种算法运行相同的数据,以确定哪种算法可以最好地学习数据。在比赛结束时,他们选择获胜者。但是,也有其局限性,特别是在任何特定比赛中选择运行的算法范围,以及它们的调整程度。

快乐道路上的有限使用案例

只有当他们对正在解决的问题有一些了解,以及用于训练算法的数据时,AI供应商才能聪明地了解他们选择的算法。在许多实际情况中,需要冗长的数据探索和一些特定领域的知识来选择正确的算法。

在自动化机器学习的世界中,我们假装数据探索和业务领域知识无关紧要。我们只能针对一些有限的用例来做这件事。在软件中,这被称为快乐路径,或者一切都如我们所期望的那样的用例。自动化机器学习有一条狭窄的快乐道路; 也就是说,很容易走出困境并陷入困境。

例如,对于一个简单的用例来说,很容易实现机器学习的自动化。

在某些情况下,提供预先烘焙的解决方案可能很困难。数据管道(也称为ETL)通常是人工智能工作流程中需要最多人力关注的阶段。现实世界是混乱的,代表这个世界的数据通常也很混乱。在将数据用于训练机器学习算法之前,需要对大多数数据集进行探索,清理和预处理。清洁和探索通常需要专家。

专业的服务

一般有两种选择:公式可以聘请自己的数据科学家或依赖咨询公司的流程服务。每个主要的公共云供应商都引入了机器学习解决方案团队,试图缩小人才缺口,并使云计算的潜在用户更容易获得机器学习。

从埃森哲到贝恩的主要咨询公司都聘请了数据科学家团队为他们的客户建立解决方案。甚至像Data Robot这样的自动化机器学习初创公司也提供“面向客户的数据科学家”。

因此,很多时候,销售自动化机器学习的AI供应商实际上是在帮助人类“自动化”这些任务; 也就是说,他们允许他们的客户外包人才。这是因为构建AI解决方案所涉及的任务和决策是多方面的,多样的和复杂的,并且还不存在实现完全自动化的方法和技术,这是服务。

学习和预训练模型

机器学习模型一开始很愚蠢,通过使用数据“训练”他们才能变得聪明。训练包括猜测数据,测量猜测中的错误,并纠正自己,直到他们做出更准确的猜测。通过数据训练以产生符合数据的准确“模型”。经过训练的、准确的数据模型能够在提供类似于其训练的新数据时产生良好的预测。

出于本讨论的目的,将模型想象为黑盒子,对数据执行数学运算以对其进行预测。数据进入模型,预测结果出来; 例如,将您的一个朋友的图像输入到模型中,它将预测图像中朋友的姓名。

有时,您可以在一组数据上训练机器学习模型,然后将其用于另一组稍微不同的数据集。这仅在两个数据集彼此相似时才有效。例如,大多数照片具有一些共同的特征。如果你在名人面孔上训练一个机器学习模型,它将学习人类的样子,只需要一点额外的学习,你就可以教它将它所知道的东西转移到你的家人和朋友的照片上,即使从未见过。使用预先训练的模型可以节省您在分布式GPU上培训数千小时的成本,这是一个昂贵的开销。

获得一些世界性知识的预先训练的机器学习模型在计算机视觉中是有用的,并且可广泛使用。一些著名的预训练计算机视觉模型包括AlexNet,LeNet,VGG16,YOLO和Inception。这些预先训练的计算机视觉模型可在此处获得。Google的Cloud AutoML依赖于转移学习以及其他方法,以支持其声称“自动化机器学习”。