机器学习是如何运作的?谷歌来告诉你

2015/11/13 · IT技术 · Google, 机器学习

分享到: 3
  • MongoDB 在线讲座之如何测试、调整及监控MongoDB性能
  • 走进大数据之storm流式计算基础
  • Premiere魔术——图片变电影
  • CSS深入理解之vertical-align
本文由 伯乐在线 - 至秦 翻译,toolate 校稿。未经许可,禁止转载!
英文出处:Danny Sullivan。欢迎加入翻译组。

最近媒体报道谷歌正在利用机器学习帮助处理搜索结果,这引发了人们对于这一人工智能领域的兴趣和疑问。什么是“机器学习”,机器是如何自学的呢?这里有一些 Google 内部关于机器学习的背景介绍。

昨天 Google 为科技记者举办了一场活动 —— “机器学习的入门课程”。我就是其中一位与会者。尽管宣传上说只是一些介绍,但对我和其他一些记者而言,里面的内容有相当的技术含量,难以消化。

例如,当一个演讲者告诉我们机器学习中的数学是“容易的”,而且还在同一句话里提到了微积分。我不得不说,和外行相比,他们对于“容易”有着完全不同的理解。

然而,我还是对机器学习的过程和组成有了进一步的理解,涉及机器(计算机)如何学会自学,去识别物体、文字、口语词汇和其他的东西。下面是我记录的要点。

机器学习的组成

机器学习系统由三个主要部分组成,包括:

  • 模型:用来预测或识别的系统。
  • 参数:模型做决定所使用的信号或因素。
  • 学习器:这个系统通过检查预测和实际输出的差异来调整参数,再对模型进行调整。

现在让我把昨天 Greg Corrado 讨论的东西转换成现实世界的一个实际问题。Greg Coorado 是 Goolge 的一位资深研究科学家,也是公司深度学习团队的共同创始人。

想象你自己是一位老师。你想确认如果学生要在考试中取得好成绩,最优的学习时间会是多少。你向机器学习求助以便找到一个解决方案。是的,对于这个问题而言,可能有点大材小用。但这是一个非常简单的说明。

构造模型

一切都要从模型开始,机器学习用它来进行预测。至少在这个特定的例子中,系统最初的模型必须由人类提供。在我们的例子中,老师可以告诉机器学习模型进行这样的假设,即学习 5 个小时就可以取得好成绩。

模型本身借助参数进行计算。这个例子中,参数是学习时间和取得的分数。假设参数像下面这样:

  • 0 小时 = 50% 分数
  • 1 小时 = 60% 分数
  • 2 小时 = 70% 分数
  • 3 小时 = 80% 分数
  • 4 小时 = 90% 分数
  • 5 小时 = 满分

实际上机器学习系统使用一个数学方程式来表示上述模型,事实上形成了一条预期的趋势线。这个是昨天讲座的一个例子:

提供最初的输入

现在模型已经确定了,需要输入实际的信息了。比如我们的老师可能会输入不同学生的 4 个分数,以及他们学习的小时数。

在这个例子中,结果是这些分数和模型不匹配。有的分数在预测趋势线的上面,有的在下面:

现在该轮到机器学习中的学习器了!

学习器进行学习

那些输入分数的集合?这些输入机器学习系统的数据通常被称为“训练集”或者“训练数据”,因为系统中的学习器借助它们训练自己,以便生成一个更好的模型。

学习器查看这些分数,看它们距离模型有多远。它利用更多的数学知识来调整最初的假设。比如,上面的列表很可能被替换成这样:

  • 0 小时 = 45% 分数
  • 1 小时 = 55% 分数
  • 2 小时 = 65% 分数
  • 3 小时 = 75% 分数
  • 4 小时 = 85% 分数
  • 5 小时 = 95% 分数
  • 6小时 = 满分

新的预测被重新调整了,取得满分需要更多的学习时间。

这只是流程的一个例子,当然这个例子完全是虚构的。最重要的收获就是理解学习部分对参数进行微调,并改善模型。我稍后再讨论这一点。

清洗并重复

现在输入一个新的分数集和时间,系统重新运行。这些实际的分数和学习部分修改后的模型做比较。如果成功,这些分数会很接近预测结果:

但是还不够完美。所以学习器再一次调整参数,重构模型。另外一组测试数据被输入进去。重新比较,学习器再一次调整模型。

这个循环过程会一直重复,直至得到一个最终的模型,它可以真的根据学习的小时数预测出取得的分数。

梯度下降法:如何避免机器学习失败

Google 的 Corrado 强调绝大多数的机器学习都是基于“梯度下降”或“梯度学习”的概念。也就是系统通过不断的微小调整直至得到正确的答案。

Corrado 喜欢把这比喻成从一个很陡峭的山峰下来。你不会想要跳下来或者跑下来,那样太危险了。你很可能会不小心掉下去。事实上你会很小心得一点点挪下去。

还记得我上面提到的“数学很简单”吗?很显然对于那些了解微积分和数学运算的人来说,涉及到的方程式真的很简单。

事实上现实的挑战是计算能力。要完成所有这些步骤,机器要花很长时间学习。但是计算机会更快更强大,机器学习之前被认为是不可能的,而现在已变得相当普遍了。

异想天开:识别猫

上面的例子非常简单。就像上面说的,一个老师利用机器学习预测考试分数实在是大材小用。但同样简单的系统可以用来做复杂的事情,比如识别猫的图片。

计算机不能像人类那样看东西。所以它们如何能够识别物体?就像 Google Photos 可以从我的照片中挑出很多物体一样:

机器学习可以做到这一点!还是同样的原理。你利用一些可能的因素构建了一个模型,这些因素可以帮助识别图像中的猫,比如颜色,形状等等。接下来你输入一个训练集,是一些有猫的图片,然后看这个模型工作的怎么样。

学习器进行调整,重复训练的循环。但识别猫和其它物体是很困难的。有很多参数可作为模型的一部分,甚至参数里还可以嵌套参数,这些参数被用来把图片转换成系统匹配物体的模式。

比如,最终系统是这样找到一只地毯上的猫:

这是一幅类似油画的图片,是利用 Google 发布的 DeepDream 代码做出来的,Google 进一步分享了机器学习系统是如何建立模式来识别物体。

The image is really an illustration of the type of patterns that the computer is looking for, when it identifies a cat, rather than being part of the actual learning process. But if the machine could really see, it’s a hint toward how it would actually do so.

这幅图事实上说明了,当计算机识别一只猫的时候,是在查找某种模式类型,而不是作为实际学习过程的一部分。但如果机器真的可以看到,这就提示了实际上它会如何做。

顺便说一下,从我们最初的例子发展到图像识别,模型已经不是人类而是机器创造出来的。它们自己尝试理解一个物体是什么,通过原始的颜色、形状和其他特性的组合来构建,然后利用训练数据进行优化。

识别活动

进一步加大难度,想象除了识别物体还要识别活动。Google 解释说要增加一些常识性的规定,而且人类还要引导机器学习过程,让它理解不同的物体如何出现在一个活动上。

比如考虑这个:

就像上面投影片里描述的,一个机器学习系统看到一个小孩、一个篮子和一个鸡蛋。但一个人类看到所有这些,会知道这是寻找复活节彩蛋的活动。

RankBrain的技术内幕呢?

所有这些机器学习是如何应用到 Rank Brain 上的?Google 并没有讨论这方面的技术细节。事实上在正式讨论中都没有提及,在演讲间歇中也没有披露什么新的消息(都是一些已经公开的信息)。(译者注:RankBrain,是 Google 研发的一套机器学习人工智能系统,用来帮助排序搜索结果。)详见《谷歌人工智能算法RankBrain运行原理解析》。

为什么?当然是竞争的考量。Google 分享了很多它如何利用机器学习的信息。甚至在其他领域分享了很多技术细节。但是它对将如何在搜索上应用机器学习讳莫如深,防止泄漏很多它认为重要和独特的信息。

想了解更多?

如果你想要进一步了解机器学习,可以参考 Google 相关研究的博客,这里还有一些共享的研究报告和下面一个最新的视频:

机器学习是如何运作的?谷歌来告诉你相关推荐

  1. 这 25 个开源机器学习项目,一般人我不告诉 Ta

    本文为 AI 研习社编译的技术博客,原标题 : 25 Open-Source Machine Learning Repos to Inspire Your Next Project 作者 | Khoa ...

  2. 给菜单拍张照,谷歌Lens告诉你什么最好吃,两百块安卓手机就能实现 | 谷歌I/O又有黑科技

    大数据文摘出品 作者:魏子敏.Aileen.周素云 进入餐厅,拿菜单,点开大众点评/美团/Yelp等美食app,然后来回比对图片和菜单再点菜,这已经成为了一名合格吃货探索新餐厅的固定流程. 而谷歌想要 ...

  3. CVPR 2020 | 用机器学习打造计数君,谷歌RepNet可自动计数视频重复片段

    选自Google AI Blog 机器之心编译 参与:Panda 你是否曾在看视频时呼唤过计数君?近日,谷歌和 DeepMind 公布的一篇 CVPR 2020 论文利用机器学习方法打造了一种机器计数 ...

  4. 关于人工智能-微软和谷歌没有告诉你的是什么

    点击英文原文链接 人工智能到底有多少是人工的,多少是手工的? 2018年9月,iFlytek,一家中国技术公司,人工智能的全球领导者(尤其是语音识别软件)在上海举行的技术会议上被指责将人工翻译伪装成机 ...

  5. 我在机器学习踩过的坑,现在告诉你怎么跳过去

    https://www.cnblogs.com/DicksonJYL/p/9569232.html 大家好,我是为人造的智能操碎了心的智能禅师. 最近很多读者问本禅师: 转行机器学习需要注意哪些事情呢 ...

  6. 解密谷歌机器学习忍者项目,如此培养人工智能人才

    解密谷歌机器学习忍者项目,如此培养人工智能人才 这不是武侠世界--她已经做到了.26岁的 Holgate 得到了第二条跆拳道黑带.这次是算法黑带.好几个星期 Holgate 都沉浸在一个程序中,这场比 ...

  7. 李飞飞发文发布谷歌云AutoML Vision平台,订制化的企业级机器学习模型不再是难题

    AI 科技评论按:谷歌云机器学习平台(Google Cloud AI)自从上线以来就以预训练的.可以直接调用的高效机器学习模型吸引了许多企业级用户在其上构建简单的机器学习应用.然而企业总是会有自己专属 ...

  8. 谷歌最新AI产品——AutoML Vision,可以自动设计机器学习模型

    今天凌晨时分,李飞飞通过一篇博客文章发布了谷歌最新AI产品--AutoML Vision,可以自动设计机器学习模型. 我很荣幸地宣布AutoML Vision面世.无需精通机器学习,每个人都能用这款A ...

  9. 我爱机器学习网机器学习类别文章汇总

    机器学习领域的几种主要学习方式 From Stumps to Trees to Forests KDD-2014 – The Biggest, Best, and Booming Data Scien ...

最新文章

  1. 【luogu P2919 [USACO08NOV]守护农场Guarding the Farm】 题解
  2. ecs 对比 本地服务器_ECS训练营Day03_SLB负载均衡实践 - 魔笔钨丝浣
  3. 转:YUM常用命令介绍
  4. 最佳调度问题pascal程序
  5. Windows服务安装卸载
  6. [福建集训2011][LOJ10111]相框
  7. [Flink]Flink DataStream API 概览
  8. 利用计算机指令清理垃圾,计算机Dos处理,编写一键清理系统垃圾的bat代码,小白都可以学...
  9. 自同构 黎曼度量 莫比乌斯变换
  10. 网页中插入Flash动画(.swf)代码和常用参数设置
  11. 实验吧——安全杂项之“Snake”详解
  12. BUUCTF-Crypto-Quoted-printable题解
  13. 最新解决方法This template did not produce a Java class or an interface
  14. python中内置数学函数详解和实例应用之三角函数_初级阶段(二)
  15. Mr. Ms. Mrs. Miss 的区别
  16. 鸿蒙和宙斯谁厉害,对抗达克赛德第一次入侵的旧神联盟去哪了
  17. Java 生鲜电商平台 - API 接口设计之 token、timestamp、sign 具体架构与实现
  18. 管理学30大经典理论
  19. python电路仿真001
  20. /opt/hbase/conf 中不能启动hbase_德州中天盛围挡喷淋厂房车间喷淋造雾机

热门文章

  1. django html5 关系,Django REST FrameWork中文教程5:关系和超链接API
  2. 递归 算例一(求一个简单嵌套字典的深度)
  3. python 面向对象(三)多继承
  4. 用ipython 写spark
  5. linux 可执行文件_linux中ELF二进制程序解析
  6. 递归行为时间复杂度估算
  7. 文巾解题455. 分发饼干
  8. 用Tableau画3D模型之四(放弃篇)
  9. 机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting
  10. uni app 调用网络打印机_前端工程师 | 原生小程序坑点:uni-app到底好用在哪里?...