机器学习

机器学习难在哪?

机器学习已经被广泛应用,教程、文章、开源代码到处都是,有些时候只需要你对机器学习算法稍有了解就可以在实际中很好的应用。

但是机器学习还是非常难:
● 推动机器学习研究进步的科学本身很困难,需要创新、实验和坚持;
● 把已知的机器学习模型应用到实际工作中也是一件困难的事情;
● 市场上的机器学习工程师比普通的软件工程师也要昂贵一些。

困难并不是来自于数学,因为机器学习的相关实现并不要求很高的数学基础。困难来自于:

1、选择什么样的机器学习工具
这要求对每个算法和模型的优劣势都了如指掌,这个技能可以通过学过这些模型(课程、教程、Paper等)来获得。当然这类知识构建的困难是计算机所有领域都存在的,不仅仅是机器学习。

2、机器学习很难调试
这种困难表现在两方面:
1)算法不work;
2)算法work,但并未足够好。

机器学习独有的特征是:查找上面问题的原因是“指数”难度的。通常,机器学习算法的Debug都需要很长的时间,很多bug用小数据量很难重现,而且往往在迭代的后期才能出现。很少有算法可以一次成功,所以更多的时间花在调模型上。

指数级困难的调试
在标准的软件工程范畴中,当一个解决方案不如期望时,通常考虑两个方面的出错:算法和实现。

用以下简单的递归算法为例:

人工智能与机器学习:两者有何不同?

在过去几年,人工智能和机器学习频繁出现在技术新闻和各种网站上。两者常常被用作同义词,但许多专家认为它们存在微妙且重大的区别。

当然,专家们自己有时对于那些区别到底是什么也意见不一。

然而一般来说,有两点似乎很清楚:第一,人工智能(AI)这个术语的历史比机器学习(ML)更早;第二,大多数人认为机器学习是人工智能的一个子集。

最能清楚表示这种关系的图形之一来自英伟达公司的官方博客。它提供了一个很好的起点,有助于了解人工智能和机器学习之间的区别。

人工智能VS机器学习――首先,什么是人工智能?

计算机科学家对人工智能有诸多不同的定义,但究其核心,人工智能包括像人类那样来思考的机器。当然,很难确定机器是不是在“思考”。因此实际上,建造人工智能需要建造擅长处理人类擅长的那类工作的计算机系统。

创造像人类一样聪明的机器这个想法可以一直追溯到古希腊人,当时流传神创造自动机方面的神话。然而实际上,这个想法直到1950年才真正流行起来。

人工智能、机器学习、深度学习三者之间的同心圆关系

今年早些时候,当谷歌 DeepMind 团队的 AlphaGo 打败了李世石时,媒体就用人工智能、机器学习和深度学习这三个术语来描述 DeepMind 是如何取得胜利的。这三个名词都是 AlphaGo 大胜李世石的原因中的一部分,但是它们并不相同。下面我们就来解释一下。

人工智能
理解三者之间关系的最简便方法就是将它们视觉化为一组同心圆——首先是最大的部分人工智能——然后是后来兴旺的机器学习——最后是促使当下人工智能大爆发的深度学习——在最里层。

2

从萧条到繁荣

自从 1956 年几个计算机科学家在达特茅斯会议上聚集并开辟了人工智能这一领域,人工智能就进入了我们的想象,并在实验研究中进行着酝酿。在过去的几十年里,人工智能以及轮番被誉为人类文明取得最美好未来的关键,或者是作为一个头脑发烧的轻率概念被扔进了科技垃圾堆中。坦白说直到 2012 年,它就这样在二者之间交杂。

关于机器学习、深度学习和AI的完全初学者指南

遇见萨曼莎(Samantha)。她是你来自2025年的贴心助手。她可以帮你整理邮件、设置您的会议以及杂货订单。她会画画和写诗。她是你最好的朋友。她是电影《她》里的人工智能,这也是我们可以想象Siri会把我们的生活改变成怎样的动人。

现在,大小型高科技公司都在竞相使这成为现实。你看看新闻就会听说过这些行话:AI、机器学习、深度学习、神经网络、自然语言处理。

也许这一切都有点疑惑。因此,以下是关于这些概念的基本知识,以及它们之间是如何关联的。

什么是人工智能(AI)?

简单地说,AI是试图让计算机变得智能,甚至比人类更聪明。这是让电脑拥有类人类的行为、思维过程和推理能力。

有两种人工智能:

狭义的AI(弱AI):
这种AI只专注于一种狭义的任务。现在我们的身边已经处处都是弱AI了。它已经在国际象棋,电视竞赛节目《危险边缘》,还有最近的围棋比赛中击败了我们人类。

像Siri和Cortana这样的数字助手可以给我们提供天气信息以及在路上自动驾驶汽车。但是,它们有很大的局限性。自动驾驶汽车不会下国际象棋。Siri也无法读取和删除不重要的邮件。弱AI有一个狭隘的范围:它不能超越最先为其设置的功能。

【观点】机器学习未必就是人工智能?

也许把机器学习当作人工智能是个“美丽”的时代错误。人工智能强调的是“人工”创造的“智能”,机器学习是“机器”自主从数据中找出“知识”。当数据少和人能推导控制时,“人工”的特性比较明显,人们会认为机器学习是人工智能的一部分。这种智能“人工”的创造从1950年代到本世纪初尤其明显。没有数据,机器很难学习到充分的知识,人的知识便在智能的实现中起到关键作用。因而许多情况下机器学习是实现人工智能的重要辅助工具。

然而随着数据量,数据复杂度,和应用复杂度指数式增长,机器学习有望独立于人工智能。各种应用和各种数据有其自我特征和规律,将来可能建立机器学习科学,从而更加科学地实现机器学习,这可能也有人工参与应用这种科学和技术,并不能因此就把另外一个机器学习“世界”归为人工智能。就像物理世界有其规律,当人类社会发现物理定律,了解物理世界,进而利用物理定律改变世界,我们并不能就因此就说物理世界是人工创作的。

随着时间的推移,人工智能和机器学习的区别就会越来越明显,二者又相互促进。机器学习的发展很大程度上来自数据科学和应用的驱动,直接的表现又好像是人工智能的发展和成就,人工智能和数据科学的发展也是机器学习变的更科学有效。

科普篇:12个关键词,告诉你到底什么是机器学习

编者按:随着人工智能(AI)技术对各行各业有越来越深入的影响,我们也更多地在新闻或报告中听到“机器学习”、“深度学习”、“增强学习”、“神经网络”等词汇,对于非专业人士来说略为玄幻。这篇文章为读者梳理了包括这些在内的12个关键词,希望帮助读者更清晰地理解,这项人工智能技术的内涵和潜能。

1、 机器学习

汤姆·米歇尔教授任职于卡内基梅陇大学计算机学院、机器学习系,根据他在《机器学习》一书中的定义,机器学习是“研究如何打造可以根据经验自动改善的计算机程序”。机器学习在本质上来说是跨学科的,使用了计算机科学、统计学和人工智能以及其他学科的知识。机器学习研究的主要产物是算法,可以帮助基于经验的自动改善。这些算法可以在各个行业有广泛应用,包括计算机视觉、人工智能和数据挖掘。

2、 分类

分类的含义是,打造模型,将数据分类进入不同的类别。这些模型的打造方式,是输入一个训练数据库,其中有预先标记好的类别,供算法进行学习。然后,在模型中输入类别未经标记的数据库,让模型基于它从训练数据库中所学到的知识,来预测新数据的类别。

因为这类的算法需要明确的类别标记,因此,分类算是“监督学习”的一种形式。

3、 回归

德勤报告:2016年,认知技术会成为80%世界百强企业标配

德勤国际预测,至2016年末全球营收前一百的企业级软件公司中,有超过80家会将认知技术结合到它们的产品中,与前一年相比会有25%的提升,在2015年前一百名公司中已经有64家在发布的产品或服务中把认知技术作为亮点。到2020年,我们预计95%的前一百名公司会采用一到多个认知技术。

我们预计,在2016年,企业级软件市场中最重要的认知技术将会是:机器学习,自然语言处理和语音识别。

那我们是如何区别认知技术与人工智能(AI)的呢?我们认为后者是前者的源头。大众媒体将AI描绘成一个当计算机与人类一样聪明、甚至更聪明时出现的产物。当然,技术在进行原本由只能人类完成的专项工作时,表现得越来越好。图展示了2016年对商业和公共领域领导者们来说最先进的几种认知技术。

 语音识别-计算机视觉-机器学习-自然语言处理-优化-计划与安排-机器人-规则基系统

语音识别-计算机视觉-机器学习-自然语言处理-优化-计划与安排-机器人-规则基系统

如何研究学习一个机器学习算法

机器学习算法都是一个个复杂的体系,需要通过研究来理解。学习算法的静态描述是一个好的开始,但是这并不足以使我们理解算法的行为,我们需要在动态中来理解算法。

机器学习算法的运行实验,会使你对于不同类型问题得出的实验结论,并对实验结论与算法参数两者的因果关系有一个直观认识。

在这篇文章中,你将会知道怎么研究学习一个机器学习算法。你将会学到5个简单步骤,你可以用来设计和完成你的第一个机器学习算法实验

你会发现机器学习实验不光是学者们的专利,你也可以;你也会知道实验是通往精通的必经之路,因为你可以从经验中学到因果关系的知识, 这是其它地方学不到的。

什么是研究机器学习算法

当研究一个机器学习算法的时候,你的目标是找到可得到好结果的机器算法行为,这些结果是可以推广到多个问题或者多个类型的问题上。

你通过对算法状态做系统研究来研究学习机器学习算法。这项工作通过设计和运行可控实验来完成

一旦你完成了一项实验,你可以对结论作出解释和提交。这些结论会让你得以管窥在算法变化中因果关系。这就是算法行为和你获得的结论间的关系。

怎样研究学习机器学习算法

在这一部分,我们将学到5个简单的步骤,你可以通过它来研究学习一个机器算法

1.选择一个算法

谷歌机器学习的43 条【黄金】法则!

1.对发布一个不含 ML 技术的产品,不要有顾虑
2.首先要设计和贯彻指标
3.在机器学习和复杂启发算法之间,选择前者
4.第一个模型要简单,把基础设施弄好
5.测试基础设施要与 ML 测试分开

6.复制流水线时当心数据遗落
7.把启发式(heuristics)变为特征,不然就对它们做外部处理
8.了解系统的时效性
9.在输出模型之前发现问题
10.于无声处听惊雷:注意没表现出来的故障

11.注意特征栏的维护者和文件
12.选择直接优化哪个目标时,不需要想太多
13.选择一个简单、可观察并且可归属(attributable)的指标来作为第一个目标
14.用可解释的模型开头,修补漏洞会更简单
15.用 policy layer(规则层)把垃圾信息过滤和质量排序分来

16.做好模型被推倒和重建的准备
17.直接以观察到的或报告的特征开始训练,而不是经过学习的特征
18.从不同的上下文环境中提取特征
19.尽量选择更具体的特征
20.以合理的方式组合、修改现有特征

21.通过线性模型学到的特征权重的数目,大致与数据量成正比
22.清理不需要的特征
23.你并不是一个典型的用户
24.版本之间存在对等差分(symmetric difference)
25.选择模型时,性能胜过预测能力

机器学习入门阶段易犯的 5 个错误

怎样进入机器学习领域没有定式。我们的学习方式都有些许不同,学习的目标也因人而异。 但一个共同的目标就是要能尽快上手。 如果这也是你的目标,那么这篇文章为你列举了程序员们在通往机器学习高手道路上常见的五种错误。

1. 将机器学习看得高不可攀

机器学习不过是另一堆技术的集合,你可以用它来解决复杂问题。这是一个飞速发展的领域,因此,机器学习的学术交流一般出现在学术期刊及研究生的课本里,让它看起来高不可攀又难于理解。

要想高效掌握机器学习,我们需要转变观念,从技术转到方法,由精确变为“足够好”,这也同样适用于程序员感兴趣的其它复杂技术。

2. 编写机器学习程序代码

由编码开始入门机器学习会很困难,因为你需要解决的问题从一个变成两个:了解一项技术以便你实现它以及对于给定问题如何应用该项技术。一次解决一个问题,并利用机器学习、统计分析环境以及算法库来学习如何将一项技术应用于某一问题,这样就会容易很多。这能让你对于若干算法进行相对快速的抽查和调整,而无需花上大量时间阅读研究论文中含糊的算法描述再将其编码。

实现一个算法可以作为一个单独的项目晚些再完成,比如作为一个练习或是等到原型系统需要投入运行时。一时只学一事,我建议从有 GUI 的机器学习框架开始入门,不论你是不是程序员。

同步内容
--电子创新网--
粤ICP备12070055号