Two big challenges in machine learning

 

红色是我翻译的部分,绿色是我加的注释。

 

Two big challenges 
in machine learning

机器学习的两大挑战

LÉON BOTTOU
FACEBOOK AI RESEARCH ICML 2015 - LILLE

——————————————————————————————————————

 

2015年的机器学习

1.一条已建立的学术圈的金科玉律

  1.1 机器学习吸引很多聪明的学生

2.无处不在的应用

   2.1 遍布整个因特网

   2.2 有时应用于真实世界

3.巨大的投入

4.巨大的回报

———————————————————————————————————————

 

2015年的机器学习

1.逐渐增多的目标

2.一种新的挑战

———————————————————————————————————————

 

一种新的挑战

1.机器学习分解了软件工程

  1.1 向我们影响世界的应用提出了挑战

2.我们的实验模式快到达了它的极限

  2.1 向我们的科学进展提出了挑战

3.是一种解决方法的要素

——————————————————————————————————————

 

机器学习分解了软件工程

——————————————————————————————————————

 

设计复杂的人工制品

1.以最小的螺丝钉为单位统计零件

  1.1 汽车约30,000个零件

  1.2 飞机约3,000,000个零件

2.规格和复制

  2.1 每个螺丝钉的合金和螺纹不是工程师设计的。标准的螺丝钉是用已知的规格(大小,长度,重量等等)制定的。

  (工程师设计的是规格,是接口,是需求,而不是实现细节)

  2.2 很多零件和很多组装都是完全相同的。

——————————————————————————————————————

 

工程中的抽象

1.思考规格而不是细节。

  1.1 是零件规格而不是零件细节。

  1.2 是组装规格而不是组装细节。

2.抽象泄露!有时我们需要看得更深入一些。

  2.1 例子:发动机制冷系统的组装可能有复杂的热惯性。

  2.2 例子:全球资源分配(代价,重量等等)。

抽象漏洞限制了我们能够建立的模型的复杂性。

(有漏洞的抽象表明对任何重要事情的抽象都是有漏洞的,抽象漏洞带来的典型问题是忽视漏洞,虽然抽象不能做得很完美,但不做抽象可能情况更坏,我们要知道抽象的基本原理,尽量避免掉入漏洞中,即使有些漏洞无法避免,我们也应该把漏洞铭记于心。)

——————————————————————————————————————

 

数学和逻辑的抽象

1.纯数学和逻辑的抽象

  1.1 当我们使用一个定理时,我们不需要再证明一次。

  1.2 数学抽象不会泄露。

2.理论上,计算机程序和数学证明类似

  2.1 用契约去设计——了解模块的说明书。

  2.2 实际上,计算机程序存在漏洞(但是很少)。

——————————————————————————————————————

 

计算机程序

1.和逻辑越接近的人工制品越复杂

  1.1 汽车约30,000个零件

  1.2 飞机约3,000,000个零件

  1.3 处理器约3,000,000,000个晶体管

  (注意:计数包括相同的零件和组装)

  1.4 MS Office约40,000,000行代码

  1.5 Facebook约60,000,000行代码

  1.6 Debian约400,000,000行代码

  (注意:不同的度量标准:代码几乎没有完全相同的)

——————————————————————————————————————

 

程序设计(传统程序指令编写)VS 学习(机器学习)

(传统程序指令编写通常让计算机显得呆板而精确(填鸭式),需要明确告诉计算机每一步要做什么,计算机只能机械地做重复动作,不会变通,也不会出错,最坏的情况也就是回答不知道。例如你告诉它苹果可以吃,橘子可以吃,它就能非常耐心地回答别人苹果可以吃,橘子可以吃,如果变一下,问它西红柿可以吃吗,它就傻了。而机器学习通常让计算机显得灵活而有偏(放羊式),告诉它一点基本知识,然后让它举一反三,你告诉它苹果可以吃,橘子可以吃,它也许能回答出西红柿可以吃(hit),也许回答错了(学偏了))。

1.计算的两个概念

  1.1 数字计算机(一套程序指令)无处不在。

  1.2 程序设计让我们更容易利用别人的工作。

——————————————————————————————————————

 

程序设计 VS 学习

1.程序设计有实在的优势

  Minsky and Papert,Perceptrons,1968.

2.评论

  这本书不是只讲感知机!被Minsky和Papert叫做"order-k perceptron"的感知机覆盖了大多数的机器学习模型,包括改变计算机视觉领域的卷积神经网络。

——————————————————————————————————————

 

连通性

1.这个形状是由一个连通的组件构成的吗?

Minsky和Papert证明了一个small-order感知机不能回答这个问题,但是一个简单的算法可以回答这个问题。

定理9.2:对于任意数字ε,存在一个2-符号的图灵机,它只需要使用少于(2+ε)log2 |R| 个正方形的磁带,就能证明在任何一个长方形数组R上的图形X的连通性。

这个算法实现了一个清楚的契约:证明连通性。

——————————————————————————————————————

 

我们容易看出下面的图形是连通的吗?

——————————————————————————————————————

 

什么对于我们来说是容易的?

我们容易运用定理9.2从理论上证明连通性,但是不容易辨认出老鼠形状和奶酪形状。

——————————————————————————————————————

 

为什么机器学习正如日中天?

因为“连通性”有清晰的数学说明,我们可以想象可证明的算法。

因为“老鼠”和“奶酪”没有这样的说明,我们不能想象可证明的算法。

我们必须依赖:

1.启发式说明(例如规则)

2.机器学习技术(大数据和强计算能力的影响:当数据量增大时,定义启发式说明变得更加艰难,训练学习系统变得更加有效。)

——————————————————————————————————————

 

程序设计 VS 机器学习

计算的两个概念。程序设计现在无处不在,机器学习如日中天。

——————————————————————————————————————

 

在大型软件系统中集成机器学习系统

机器学习系统必须和数字软件一起工作,因为数字计算机无处不在。

1.使用训练模型作为软件模块。

2.使用学习算法作为软件模块。

——————————————————————————————————————

 

将训练模型作为软件模块

DeepVisotron发现了1000多个对象类别,出错率为1%。

契约的性质是什么?

1.这不意味着对每幅图片扔一次骰子。

2.这句话指的是一个特定的测试集。当图像分布变化时,出错率也会发生变化。

——————————————————————————————————————

 

不牢固的契约

1.1 一个聪明的程序员创造性地使用了一个分类例程。

1.2 这个分类例程通过分类数据实现了这个契约(尽管有点奇怪)。

1.3 这个聪明的程序员的代码做了预期中的事情。

2.1 一个聪明的程序员创造性地使用了一个训练过的对象识别器。

2.2 这个对象识别器接收的数据(训练数据)和测试数据不像,输出结果也乱七八糟。

2.3 这个聪明的程序员的代码失效了。

2.4 收集新的数据,然后重新训练也许有用……也许没用!。

——————————————————————————————————————

 

将学习算法作为软件模块

例1:点击曲线

许多网站通过为点击概率建模来提供物品列表(搜索结果,推荐商品,广告……)。

——————————————————————————————————————

 

一个常见的点击模型

P(click | context, item, pos)=F(pos)*G(context, item)

(F表示“点击曲线”的位置影响,G表示“点击能力”的物品影响。)

为什么将位置影响和物品影响分开?

这种形式的点击概率允许一个贪婪的布置算法。

1.通过G(context, item)给物品排序。

2.用贪心算法将它们安放在最合适的位置上。

——————————————————————————————————————

 

一个常见的点击模型

1.为什么将位置影响和物品影响分开?

1.1 在拍卖理论结果中,这种形式的点击概率能够很好的工作。

1.2 估计F(pos)和G(context, item)的值是比较容易的事。

2.这个模型出错的情况是怎样的?

2.1 所有机器学习模型都是不正确的。

2.2 错误的模型设定只会削弱模型的表现。

2.3 事情是怎样变坏的?

——————————————————————————————————————

 

事情是怎样变坏的?

1.假设有两个环境C1和C2,和两个位置P1,P2。

2.假设真正的点击概率为P'(click | context, item, pos)=F'(context, pos)*G'(context, item)。

3.我们的模型估计中间的点击曲线F(pos)。

——————————————————————————————————————

 

在场景C1中,事情是怎样变坏的?

1.真正的位置影响比估计的要更加显著。

1.1 F(P1) < F'(C1,P1) => 过高估计了在位置P1的物品的点击能力。

1.2 F(P2) > F'(C1,P2) => 过低估计了在位置P2的物品的点击能力。

2.结合贪心安置算法。

2.1 重新训练以后,无论我们在P1位置上放置什么物品,它看起来的表现都比真实情况要好。因此,我们一直把它放在位置P1上。

2.2 重新训练以后,无论我们在P2位置上放置什么物品,它看起来的表现都比真实情况要坏。因此,我们一直把它放在位置P2上(或者不展现它)。

——————————————————————————————————————

 

在场景C1中,事情是怎样变坏的?

探究性问题。

新的适合场景C1的商品也许很难竞争过当前的获胜者。

——————————————————————————————————————

 

在场景C2中,事情是怎样变坏的?

1.真正的位置影响没有估计的那么显著。

1.1 F(P1) > F'(C2,P1) => 过低估计了在位置P1的物品的点击能力。

1.2 F(P2) < F'(C2,P2) => 过高估计了在位置P2的物品的点击能力。

2.结合贪心安置算法。

2.1 重新训练以后,无论我们在P1位置上放置什么物品,它看起来的表现都比真实情况要坏。因此,我们可能把它向下移到位置P2上。

2.2 重新训练以后,无论我们在P2位置上放置什么物品,它看起来的表现都比真实情况要好。因此,我们可能把它向上移到位置P1上。

——————————————————————————————————————

 

在场景C2中,事情是怎样变坏的?

这是一个昂贵的振荡器!

1.每当我们重新训练点击模型时,物品都会交换位置。

2.抑制震荡会导致C1场景的问题。

——————————————————————————————————————

 

机器学习反馈环

这是一个昂贵的振荡器!

1.“信息(信号)反馈环无处不在。”

   “它们是适应和学习的中心……”

2.为因果环找一个可能的办法

——————————————————————————————————————

 

例2:团队工作

1.红队拥有选择推荐内容的代码。

2.蓝队拥有为所有页面选择字体和颜色的代码。

——————————————————————————————————————

 

红队

红队知道强盗文学

1.有很多潜在的推荐可供选择。

2.红队代码可以只对在各自场景中经常出现的推荐物的点击概率建模。

3.因此,红队代码执行 ε-贪心 探索,展现一小部分的随机推荐物品。

4.尽管探索有代价,但是没有它,这个系统不能够发现很多相关的推荐物。

——————————————————————————————————————

 

蓝队

蓝队也知道机器学习。

1.蓝队的工作是强调用户喜欢的东西。

2.蓝队代码运行一个点击概率模型来辨认用户喜欢什么。

3.因此,点击概率模型很容易发现红队给出的有些推荐不是很好。

4.因此用较小的字体去展示这些推荐物。

——————————————————————————————————————

 

蓝队

所有的探究性物品用一种非常小的字体呈现=>它们接受更少的点击。

——————————————————————————————————————

 

红队

红队非常满意!

1.探索性交易分析表明这个不会有多大改善。

=>这种做法稳定地削弱了探索的水平!

2.当他们尝试在这个点击模型中添加新特征时,随机测试表明性能下降了。

=>这令人惊讶,但似乎他们这才开始让模型朝对的方向发展了!

上面说的两点都是错的!

——————————————————————————————————————

 

注意

“两个队的管理者应该更加留心了。”

“软件设计师应该更加留心了。”

——————————————————————————————————————

 

第一部分总结

在大型软件系统中的机器学习

1.将训练模型作为软件模块

->有问题的,因为训练模型提供弱契约。

2.将机器学习算法作为软件模块

->有问题的,因为机器学习算法的输出依赖于训练数据,而训练数据又依赖于其它各个模块。

考虑这些难点能够节省数十亿……

——————————————————————————————————————

 

我们的实验范式正在逼近它的极限

——————————————————————————————————————

 

Minsky and Papert 1968, F.A.Q.

13.5 为什么证明定理?

为什么要证明复杂的定理?你难道不能够就拿个感知机,看它能否识别出连通性问题?

我们正在处理一个精确科学(如数学),还是一个经验科学(如物理)?

——————————————————————————————————————

 

基本的认识论

 

——————————————————————————————————————

 

基本的认识论-精确科学

精确科学

1.处理公理和定理。

2.公理既不是真的也不是假的。

(公理,是指依据人类理性的不证自明的基本事实,所以这句话的意思是公理不需要证明是对是错)

   定理一旦被证明就是真的。

   它们永远保持为真。

3.例子:

3.1 数学

3.2 理论计算机(例如算法,type理论,……)

(https://en.wikipedia.org/wiki/Type_theory)

3.3 理论物理(例如字符串理论)

——————————————————————————————————————

 

基本的认识论-实验科学

实验科学

1.处理事实和理论。

2.当事实可以被重复时,事实就是真的。

   当理论可以预测事实时,理论就是真的。

   新的事实会让之前认为是真的理论失效(K.Popper)。

3.例子:

3.1 物理,生物,……

3.2 社会科学,实验心理学,……

——————————————————————————————————————

 

基本的认识论-工程

工程

1.处理人工制品。

2.当人工制品工作时,一个声称是真的,(这个人工制品实现了一个契约)。

3.例子:

3.1 机械工程,……

3.2 原子核工程,……

3.3 计算机科学。

——————————————————————————————————————

 

机器学习是什么?

1.工程学科? 是的:存在大量的应用。

2.精确科学? 是的:统计或算法学习理论。

3.实验科学? 是的:论文通常是基于实验报告的。

以上说的都很好。

——————————————————————————————————————

 

机器学习是什么?

1.工程学科? 是的:存在大量的应用。

2.精确科学? 是的:统计或算法学习理论。

3.实验科学? 是的:大多数论文中都包含实验。

以上说的都很好……只要我们不把这三类弄混淆。

“我的软件工作得非常棒,因此我的理论是正确的”。

“这是NP完全问题,因此这个实验是错误的”。

(以上两个观点就属于把那三类弄混了的情况。)

——————————————————————————————————————

 

机器学习作为一门实验科学

1.有些问题的兴趣点没有一个清晰的说明。他们禁不起可证明算法的检验。

2.机器学习用大量的数据替代了缺失的说明。

3.数据的重要方面不能用简洁的数学申明来描述(否则我们就有了一个说明了!)

4.因此实验是必需的。

——————————————————————————————————————

 

机器学习作为一门实验科学

一个单一的实验范例驱动机器学习数十年的发展!

(1)留出测试样本。

(2)只用训练集估计f。禁止使用测试集合。

(3)用测试集衡量最终的性能。理想情况下,只用一次测试集。

——————————————————————————————————————

 

机器学习作为一门实验科学

一个单一的实验范例驱动机器学习数十年的发展!

这对于一门实验科学来说是不正常的!

物理学家,生物学家,实验心理学家,……,必须更加努力地去设计实验和解释他们的结果。

——————————————————————————————————————

 

数据来自哪里?

1.如何改善一个机器学习应用的性能?

1.1 得到更好的算法? +

1.2 得到更好的特征? +++

1.3 得到更好的数据? +++++

(数据是最重要的!)

2.数据收集是非常困难的工作

2.1 数据分布必须和操作条件相匹配。

2.2 依赖于手工对数据进行综合处理,以防得到有偏的数据。

——————————————————————————————————————

 

有偏数据集的影响

训练/测试在一个有偏倚的数据集上会得到一个不真实的结果。

——————————————————————————————————————

 

不断扩增的抱负:大数据

对于手工处理来说,数据太多了

因为数据收集工作自动化了,所以大数据诞生了。

没有人检查数据分布是否匹配系统的操作条件。

->所有的大规模数据集都是有偏的。

在大数据集上训练和测试会得到一个不真实的结果。

——————————————————————————————————————

 

不断扩增的抱负:人工智能

1.统计机器学习

1.1 在某个分布下,建立一个能工作得很棒的分类器。

2.人工智能中的机器学习

2.1 建立一个能够识别“概念”的分类器。

2.2 概念的存在独立于模式分布。

2.3 训练数据不可能覆盖所有可能的输入。

事实上,与在某一分布下表现良好的分类器比较,一个能识别“概念”的系统实现了一个更强的契约。

——————————————————————————————————————

 

概念不等于统计

例子:检测“打电话”的行动

——————————————————————————————————————

 

概念不等于统计

计算机视觉不是一个统计问题

 

——————————————————————————————————————

 

概念不等于统计

卷积网络被愚弄了。

——————————————————————————————————————

 

概念不等于统计

1.字幕的产生。

1.1 2014年,8篇独立的文章发表了。根据BLEU分数,部分系统甚至比人类的表现还好……

1.2 2015年1月他们相遇在伯克利。

1.3 评价是非常困难的一件事。

1.4 困难的例子:字幕的产生 VS 检索。

(上图中的字幕明显是错的。图中那句话的翻译是:在一些树中间,一群长颈鹿沿着街道走。)

——————————————————————————————————————

 

第二部分总结

到目前为止,训练和测试……

1.训练和测试是非常方便的实验范例

->它让实验变得更加容易,相比于其他科学而言。

->它在机器学习的快速发展中发挥重要作用。

2.这也许还不能够实现我们不断扩增的抱负(大数据,机器学习)

一个异常的结束?

考虑这些难点能够节省数十年……

——————————————————————————————————————

 

3 解决方案的要素

——————————————————————————————————————

 

机器学习方法所面临的挑战

一种新的类型的挑战

1.我们面临着技术挑战

2.这些都是机器学习方法面临的挑战

——————————————————————————————————————

 

机器学习发方法所面临的挑战

工程的方法

1.有很多关于软件工程方法的文献

2.机器学习工程方法到底是什么?

——————————————————————————————————————

 

机器学习发方法所面临的挑战

科学的方法

1.我们不能仅仅依赖于训练/测试实验

2.我们要理解更多与特别的实验相关的东西。

举一个问答式的例子:“BABI”任务(Bordes et al.,2015)

2.1 问题要求结合一个或两个或多个构造函数。

2.2 问题要求空间或时间的论证。

2.3 等等。

3.在其他实验科学中,什么是最好的实践?。

——————————————————————————————————————

 

机器学习发方法所面临的挑战

一个建设性的提议

1.机器学习论文很少展示他们方法的限制。

-因为害怕评审员会利用这一点来反驳他们的工作。

2.评审员应该要求作者讨论这些限制条件。

-如果作者阐明了实验中的这些限制,评审员应该给他们的文章加分。

-这将使得论文更加有益。

-因此将促进科学的发展。

——————————————————————————————————————

 

使用更强契约的机器学习

如何更好的抵抗分布变化呢?

优化覆盖度的测量而不是平均准确性的测量。

-Selective classification (El Yaniv's,...)

-KWIK (Li & Littman)

-Conformal learning (Vovk,...)

当数据是Zipf分布时,存在非常有趣的性质……

——————————————————————————————————————

 

使用更强契约的机器学习

——————————————————————————————————————

 

使用更强契约的机器学习

——————————————————————————————————————

 

怎么将别人的工作打包?

1.数字计算机:“软件”

2.学习机器:

2.1 将训练模块作为一个软件部件?

不行,因为训练部件只提供“弱契约”。

2.2 训练软件?

可行,如果你能得到训练数据,并复制装备。

最近的例子:AlexNet。

2.3 根据特定任务训练的特征?

可行,几乎可以说是很好。

——————————————————————————————————————

 

例子:人脸识别

1.有趣的任务:“识别出100万个人的脸。”

1.1 我们可以获得多少张被标记的图像?

2.附加的任务:“这些脸属于同一个人吗?”

2.1 同一张图片上的两个脸通常属于不同的人。

2.2 连续帧中的两个脸通常属于同一个人。

——————————————————————————————————————

 

例子:自然语言处理标记

——————————————————————————————————————

 

例子:物体识别

——————————————————————————————————————

 

例子:物体识别

——————————————————————————————————————

 

结论

机器学习方法面临的两大挑战

1.机器学习分解了软件工程

  1.1 向我们影响世界的应用提出了挑战

2.我们的实验范式快到达了它的极限

  2.1 向我们科学进展的速度提出了挑战

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值