ITPub博客

首页 > 人工智能 > > 实战:开发可供100,000多人观看的一个机器学习主题演示!

实战:开发可供100,000多人观看的一个机器学习主题演示!

作者:兔子爱喝奶茶 时间:2019-10-22 16:11:14 0 删除 编辑

作者:Kimberly Cook

你是否在Cloud Next'18会议主题演讲期间错过了AutoML公告和机器学习演示?在这篇文章中,我将概述所发布的AutoML产品以及在主题演讲中的演示。我还将分享关于构建演示过程的一些见解,以便你可以将它应用到自己的演示中。

什么是AutoML?

AutoML是谷歌云上的新推出的机器学习产品,可让你根据自己的数据训练自定义机器学习模型。其最在的好处是什么?你不必担心编写任何模型代码,只需按下一个训练(train)按钮,你就可以通过REST API端点神奇地进行自定义预测。

如果你想采用一些机器学习工具,那么AutoML就在其中。

AutoML目前有3种版本可供选择,所有这些版本都在下一个测试版中推出:

愿景:构建根据数据集中的图像训练的图像分类模型,以便对图像中的云计算类型进行分类。

自然语言:构建自定义文本分类模型,将句子和文本文档分类到自己的类别中。

翻译:构建特定领域的翻译模型,以改进针对特定行业术语和语言细微差别的翻译。在主题演讲中,展示了AutoML Vision和NL的演示。

在主题演讲中,我展示了AutoML Vision和NL的演示。 如果你想看我加载到一个14x14英尺的旋转立方体(这是我从未想过的东西),你可以在这里观看视频:

关于AutoML我最喜欢的一件事是,它为用户提供了一个特定于域的模型,并根据用户自己的数据集进行训练。这也使得难以演示,因为任何AutoML示例都将是小众化的,因此通常不适用。我们为AutoML主题演示想法浏览了很多(非常多)不同的数据集,目的是找到一些能够启发人们思考如何将AutoML应用于他们自己的问题的东西。我将在下面概述两个演示:

树叶图像的AutoML Vision演示

为了演示AutoML Vision,我构建了一个模型,拍摄树叶的图像并预测其物种。但是,我们如何开始?任何良好的机器学习模型背后都有一套高质量的训练数据。

查找图像数据集

训练数据集的大小取决于正在构建的模型类型。如果从头开始构建模型,则每个标签需要数千张图像才能获得更高的精度。幸运的是,AutoML使用了一种称为转移学习的技术,该技术涉及使用预先训练的模型作为在类似任务上训练模型的起点,而不必从头开始。因此,使用AutoML训练模型不需要那么多的训练数据。你可以从每个标签只有10张图片开始,但是对于高精度模型,你可能还需要更多图像。

考虑到这一点,我需要找到或创建一个特定的图像数据集,以突出AutoML Vision的价值。有许多很好的公开可用图像数据集,但其中许多使用更高级别的标签,我们可以从Cloud Vision API获得。

这是另外一个例子:我需要确保有权使用数据集进行演示。这意味着它需要在公共领域实施,并拥有允许商业用途的公共许可证,或者包含发布图像所有权利的人(像我一样)拍摄的图像。在此过程中,我发现了两个方便的工具,用于通过许可证过滤数据集和图像:

CC搜索:在多个源中搜索图像,你可以按允许商业用途或修改的许可进行过滤。

Kaggle:可以找到各种数据集,这是我最喜欢的工具之一。你可以在"数据集"页面的下拉列表中按许可进行过滤。或者,你可以在"概述"页面上查看任何单个数据集的许可证:

请注意,有许多不同类型的创作共享许可证。名称中包含"NC"的任何内容(如"CC BY-NC-SA 4.0")都是非商业性的,因此你不能将这些数据集用于任何商业目的(企业云会议几乎与商业云会议一样商业化)。

在权衡了所有这些要求之后,我们确定了Leafsnap数据集,该数据集包含来自185种不同物种的30000多张树叶图像。

准备数据并训练模型

为了简单起见,我只使用了原始数据集中的10种叶子。缩小图像后,我准备将数据上传到AutoML Vision。有几种方法可以做到这一点:

将它们直接上传到云存储中,并创建一个CSV,其中图像的文件路径在一列中,相关的标签在另一列中。一旦我在GCS中获得了图像,我就编写了一个快速的Python脚本来生成CSV。

将图像放在带有标签名称的文件夹中并创建一个zip压缩包。上传压缩包时,AutoML将根据文件夹名称分配标签。

导入完所有图片后,你会在界面中看到它们:

训练模型就像按下按钮一样简单:

评估模型并生成预测

训练模型后,你可以查看一些常用的机器学习指标来评估其准确性。我最喜欢的是混淆矩阵,它显示了模型能够正确分类的测试集中的图像百分比。在理想情况下,可以在左上角看到一条强大的对角线,如下所示:

你可以单击任何方块以查看模型发现混淆的图像。接下来是最好的部分——对生成模型之前未见过的图像进行预测。

你可能已经注意到LeafSnap数据集中的叶子图像非常均匀:它们都是在白色实验室背景下拍摄的。由于这是整个"世界"我们的模型都经过了训练,我们不应期望它能够很好地分类具有繁杂背景的树叶图像。

然而,令人印象深刻的是,我发现该模型能够对"野外"的叶子图像进行分类,其中叶子的形状在图像中更加清晰地定义:

如果将更多变化的图像添加到训练数据集中,我可以期望对野外拍摄的叶子图像进行更高的准确度预测。

上面的屏幕截图显示了如何在AutoML UI中生成预测。但是你很可能想要构建一个动态生成训练模型预测的应用程序。这就是AutoML API的用武之地。以下是你对AutoML API的JSON请求中所需的全部内容:

以下是你使用curl向自定义模型发出请求的方法:

AutoML自然语言演示

来自Vision的相同数据集选择标准也适用于自然语言(NL)。我正在寻找一个特定于数据集,以至于你无法获取文本并通过Cloud NL API的内容分类方法运行它(在很多情况下,这种方法非常好)。我还需要按数据集许可证进行过滤。我在寻找自然语言(NL)数据集选项时做了一些有趣的实验,比如根据描述构建一个可以预测葡萄酒产地的模型,一个仅根据标题预测文章来源的模型,以及将文本消息分类为"垃圾邮件"或"非垃圾邮件"的模型。

对于演示,我们选择使用非盈利组织DonorsChoose提供的Kaggle数据集:

DoorSoSoCo将需要资源的教师与志愿者相匹配。他们目前有一个志愿者团队,可以人工筛选和分类每个提交,以便志愿者与他们关心的项目相匹配。这些类别特定于其应用程序(例如"实验室设备"、"美术用品"和"旅行"),因此通用的预先训练的API不起作用。 DonorsChoose发布了一个公共领域数据集,向Kaggle提供了100多万名教师的请求,以查看机器学习专家和数据科学家的社区是否可以为他们构建解决方案。我想看看AutoML是否有帮助。

准备数据并训练模型

由于AutoML NL在数据集中限制为100,000个示例,因此我编写了一个脚本来收集原始1M 以上数据集的子集,将其限制为9个类别。将文本数据上传到AutoML NL就像创建CSV一样简单,原始文本在一列中,相关类别在另一列中(你也可以构建每个文本输入带有多个标签的模型)。导入数据后,你将看到类似于AutoML Vision的内容:

为了训练模型,你只需按一下按钮!请注意,训练自然语言(NL)模型的时间目前比演示要长得多。我发现自然语言(NL)模型大约需要3到4个小时的训练(完成后你会收到一封电子邮件)。

评估模型并生成预测

为了评估单标签自然语言(NL)模型的准确性,我们还可以查看混淆矩阵:

在这里,我们还看到左上角有一个醒目的对角线,这意味着我们的模型正确地对大部分测试数据进行了分类。现在是生成对文本输入预测的时候了,其模型以前没见过:

在此示例中,我们的模型预测了正确的"实验室设备"类别,对此特定文本输入的置信度为98%:

我的学生需要为我们的小丑鱼水产养殖项目提供水族馆照明。

与AutoML Vision一样,我们可以访问自定义API端点以生成预测:

重要的是要注意,只有我和共享项目的开发人员可以访问此模型。这些模型的训练数据都不会用于改进Cloud ML API。

演示时间

一旦你构建了演示,可能会出现什么问题?其结果很多。开发人员产品的实时演示总是存在高风险,但我的团队非常信任他们。展示产品比展示幻灯片和产品功能更加真实。即使出现问题,这对开发人员来说也是真实的和相关的。

令我惊讶的是,我们的A/V团队在帮助我考虑每种可能类型的演示失败的备份计划时有多深入:

技术(AutoML)失败:如果预测请求失败怎么办?如果发生这种情况,会在单独的浏览器窗口中找到成功预测的屏幕截图。对于某些演示来说,备份屏幕记录是最好的措施。

硬件故障:如果正在演示的机器停止工作,可以采用第二台机器进行演示,并且A/V团队已准备好在必要时切换到它。不仅在备份机器上配置了演示,还在后台近乎实时地镜像屏幕上做的一切,这样如果不得不切换到这台机器上,可以立即进行演示。

人员失败:人类总会犯错,所以如果没有展示或提供演示,因此需要替补人员在后台准备进行展示。

训练自己的模型

如果你做到这一点,也许你对自己的AutoML模型会有一些想法,可能会想深入了解AutoML Vision、自然语言和翻译的文档。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69918097/viewspace-3154584/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-26

  • 博文量
    1470
  • 访问量
    11177