抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

机器学习无忧入门指南

2020 年 9 月 15 日

机器学习无忧入门指南

构建由 AI 驱动的应用程序可能是一件痛苦的事。对此我深有感触。我曾忍受了很多痛苦,因为使用这一技术所付出的代价往往是值得的。正如他们所说的,果汁值得一榨。


令人欣慰的是,过去五年,得益于用户友好型的工具,利用机器学习技术进行开发已经变得更加容易。如今,我发现自己花在构建和调优机器学习模型上的时间很少,更多的时间被用于传统的应用程序开发。


在本文中,我将为您介绍一些我所喜爱的无忧 Google Cloud AI 工具,并且分享快速构建由 AI 驱动的应用程序的小窍门。让我们开始吧。


使用预训练的模型

机器学习项目最缓慢、最令人不快的部分之一就是采集标注的训练数据 —— 机器学习算法就是从标注的样本中学习。


但是对于许多常见用例,您无需这样做。不必从头开始构建自己的模型,而是可以充分利用由他人构建、优化并维护的预训练模型。Google Cloud 的 AI API 就是一个例子。


Cloud AI API 允许您将机器学习用于:


  • 转录音频和视频文件

  • 从文档读取文本

  • 解析结构化文档,例如,表单和发票

  • 检测图片中的面部、情绪和物体

  • 检测图像/视频中露骨的内容

  • 还有更多


支持这些 API 的机器学习模型与许多 Google 应用程序(例如,Photos)中所使用的类似。它们基于海量数据集训练而来,而且往往非常准确!例如,当我使用 Video Intelligence API 分析我的家庭录像时,它能够检测各种特定的标注,例如,“新娘婚前派对”、“婚礼”、“击球游戏”甚至“婴儿微笑”等。


更重要的是,Cloud AI API 是在云中运行。不过,如果您需要免费的离线解决方案,TensorFlow.js 和 ML Kit 可提供一系列经过预训练的模型,您可以直接在浏览器或者移动设备中运行。在 TensorFlow Hub 中甚至还有更大规模预训练的 TensorFlow 模型。


采用 AutoML 轻松定制模型

尽管您可以为许多用例找到预训练的模型,但有时您需要构建真正定制的东西。您也许要构建一个能够分析 X 光之类的医学扫描的模型以检测疾病的存在。也许您要从装配线上的物料中对小部件进行分类,或者在向您的客户发送目录时,预测哪些客户最可能采购。


为此,您需要构建定制模型。AutoML 是一个 Google Cloud AI 工具,能够让定制流程尽可能轻松无忧。它允许您基于自己的数据对定制模型进行训练,您甚至不必编写代码来进行此操作(除非您非要这样做)。


在下图中,您可以看到我如何使用 AutoML Vision 来训练一个检测电路板中损坏的元件的模型。针对标签数据的界面是拖放式操作的,对模型的训练极其简便,只需点击“Train New Model”(训练新模型)按钮。当模型完成训练时,您可以在“Evaluate”(评估)选项卡对其质量进行评估,并查看哪里存在错误。


它适用于图像 (AutoML Vision)、视频 (AutoML Video)、语言(AutoML Natural Language 和 AutoML Translation)以及文档和表列数据 (AutoML Tables),就如同您在数据库或电子表格可能看到的那样。



尽管 AutoML 界面很简单,但其生成的模型往往质量非常高。AutoML 能够在后台训练不同的模型(例如,神经网络),对比不同的架构和参数并选择最准确的组合。


在您的应用程序中使用 AutoML 模型非常简单。您既可以让 Google 为您在 Cloud 中托管模型并通过标准 REST API 或客户端库(Python、Go、Node、Java 等)来访问它,也可以将模型导出至 TensorFlow,这样,您就能够以离线方式使用它。


因此,或多或少,使模型训练变得简便易行。不过,您从哪里能得到一个大的训练数据集呢?


无需标注您自己的数据

我是说真的。


当我开始一个 ML 项目时,首先会检查以了解是否已经存在可满足我需求的预训练模型。


如果不存在,对于数据集,我要问自己相同的问题。Kaggle(一个数据集托管和竞赛网站)中几乎存在您可能想象到的任何类型的数据集。从关于新冠病毒 (COVID-19) 的推文、Chipotle 位置列表到一系列假新闻文章,您通常可以在 Kaggle 上找到至少一些将让您针对您的问题进行概念验证模型训练的数据集。Google Dataset Search 也是一个有用的数据集查找工具,可同时查询 Kaggle 和其他来源。



当然,有时您必须对自己的数据进行标注。不过,在聘用数以百计的实习生之前,要考虑使用 Google 的 Data Labeling Service。要使用此工具,您要说明您希望如何对您的数据进行标注,然后 Google 会将数据发送至人工标注者团队。所得到的标注数据集可直接插入 AutoML 或者其他 AI 平台模型以供训练。


从模型到可用应用程序

很多时候,构建(或者找到)一个有效的机器学习模型并不是一个项目的棘手部分。它使您的团队中的其他人能够将该模型用于他们自己的数据。在 Google Cloud AI 中我们频繁面对这一问题,这就是我们决定在我们的 API 产品页添加交互式演示以使您能够上传我们的 API 并快速尝试的原因所在。



我们将此演示添加到 Vision 产品页,这样,人们就能够轻松地基于自己的数据对我们的模型进行测试。


领导一个成功的机器学习项目通常要能够快速构建原型。为此,我有一些值得信赖的工具和架构:


  • 将 ML 添加到 Google Sheets。*G Suite 应用程序(例如,Sheets、Docs 和 Forms )易于通过 Apps Script 框架使用 JavaScript 进行扩展。例如,您可以构建一个文本分类模型,每次当您在 Google Sheet 中添加一行时运行该模型。您也可以构建一个 Google Form,让您能够上传图像、利用 ML 模型对它们进行分析,然后将结果写入 Google Sheet。

  • Google Cloud Storage + Cloud Functions Duo。大部分的 ML 项目是数据输入,数据输出的。您上传一些输入数据 —— 图像、视频、音频录音、文本段等 —— 模型基于输入数据运行预测(“输出数据”)。对这类项目进行原型化的一个很好的方法是采用 Cloud Storage 和 Cloud Functions。Cloud Storage 就如同云中的文件夹:存储所有格式数据的位置。Cloud Functions 是一个无需专门的服务器即可在云中运行代码块的工具。通过让上传到 Cloud Storage 的文件“触发”要运行的云函数,您可以将二者配置为一起工作。

  • 我最近在构建文档 AI 流水线时使用了这个设置:



当文档被上传到云存储桶时,它触发一个按类型分析文档并将其移至新的存储桶的云函数。触发新的云函数,使用自然语言 API 来分析文档文本。在此处可查看完整代码。


2020 年 9 月 15 日 18:50785

评论

发布
暂无评论
发现更多内容

Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践

Apache Pulsar

Apache 学习 开源 Apache Pulsar

应对高并发系统有没有通用的解决方案呢?

架构师修行之路

架构 高并发 异步

架构师训练营第 0 期 期末大作业

无名氏

我写了一个TypeScript虚拟机。

渔子长

Java typescript 前端 deno Node

Netty之旅三:Netty服务端启动源码分析,一梭子带走!

一枝花算不算浪漫

Netty

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

Java架构师迁哥

架构师训练营-第1周课后作业(1期)

阿甘

面试常考算法题之 Top K 问题

小齐本齐

数据结构 算法

LeetCode题解:206. 反转链表,双指针,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

哈哈,成为作者了

大海

百度大脑6.0重磅升级 不断进阶中的中国AI底座实力尽显

脑极体

Week 13 命题作业

Jeremy

彻底理解JavaScript执行上下文

Walker

Java 前端 this指针 函数执行

金融企业敏捷转型大咖风采 | 中国出口信用保险公司的 DevOps 落地之道

Atlassian

项目管理 DevOps 敏捷 行业资讯 Atlassian

Clickhouse在大数据分析平台-留存分析上的应用

小小的一朵云

大数据

甲方日常 15

句子

工作 随笔杂谈 日常

架构师训练营-第1周学习总结(1期)

阿甘

UML

架构师训练营 - 大作业

张明森

介绍

剑心

学习

滴滴基于 Flink 的实时数仓建设实践

Apache Flink

flink

在Ubuntu 20.04 搭建 Django 开发环境 以及 快速构建一个简单的 Blog

Matrix Chan

Python django 后端开发 Ubuntu20.04

@所有人 Flink Forward Asia 2020 向您发出议题征集邀请!

Apache Flink

flink

用Go-Guardian写一个Golang的可扩展的身份认证

朱亚光

go golang 微服务 身份认证

繁星计划将成为引领全球币值管理的带动计划!

InfoQ_967a83c6d0d7

oeasy 教您玩转 linux 010215 随机谚语 fortune

o

如何让知识图谱告诉你“故障根因”

华为云开发者社区

华为云 知识图谱 图谱

读书笔记之《普罗普:故事形态学》

AI代笔

两年Java开发经验赶上金九招聘季涨到23K,这究竟是怎么做到的?

Java架构师迁哥

Week 13 学习总结

Jeremy

USDT跑分承兑系统开发,区块链支付平台搭建

13823153121

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

小小的一朵云

大数据

Study Go: From Zero to Hero

Study Go: From Zero to Hero

机器学习无忧入门指南-InfoQ