用深度学习战胜维度灾难

Defeating the Curse of Dimensionality with Deep Learning

约书亚·本吉奥 Yoshua Bengio · 深度学习公开课 · 2016-09-27 · 约 72 分钟 · 原视频 ↗

打开互动全文版(中英对照 + 朗读 + 问答)→

本期速览 · Overview

Yoshua Bengio 解释了深度学习如何通过组合模型和分布式表示来克服维度灾难。

Yoshua Bengio explains how deep learning overcomes the curse of dimensionality through compositional models and distributed representations.

要点 · TL;DR

核心观点 · Key points

反共识 · Contrarian takes

本期章节 · Chapters(共 27)

全文 · Full transcript(中英对照)

引言与新书发布 Introduction and Book Announcement

Yoshua

谢谢 Sammy。今天我要讲一些非常高层的东西,不是新算法。有些人已经知道我和 Ian Goodfellow、Aaron Courville 合著的那本书,现在 MIT 出版社已经开始预售了,我想你们可以在亚马逊之类的地方找到。实际发货大概在 12 月,希望赶上 NIPS。

Thank you, Sammy. So I'll tell you about some very high-level stuff today. No new algorithm. Some of you already know about the book that Ian Goodfellow, Aaron Courville, and I have written, and it's now in presale by MIT Press. I think you can find it on Amazon or something. And the actual shipping is going to be in December, hopefully, for NIPS.

Yoshua

我们之前已经听过这个故事了,至少这里好几个人说过,我想 Andrew 也提过。但思考一下那些对深度学习成功至关重要的要素是好的,广义上说,对机器学习成功、学习到我们想要达到人类水平表现的复杂任务也是如此。

So we've already heard that story, at least from several people here, at least from Andrew I think. But it's good to ponder a little bit some of these ingredients that seem to be important for deep learning to succeed, but in general for machine learning to succeed, to learn really complicated tasks of the kind we want to reach human-level performance.

Yoshua

所以如果一台机器要变得智能,它需要获取大量关于世界的信息。机器学习在 AI 领域的巨大成功已经表明,我们可以通过数据、通过示例来提供这些信息。但仔细想想,机器需要知道关于我们周围世界的海量信息。我们现在还不是这样做的,因为我们还无法训练那么大的模型,但总有一天会实现。因此,我们将需要比目前大得多的模型。

So if a machine is going to be intelligent, it's going to need to acquire a lot of information about the world. And the big success of machine learning for AI has been to show that we can provide that information through data, through examples. But really think about it, you know, that machine will need to know a huge amount of information about the world around us. This is not how we're doing it now because we're not able to train such big models, but it will come one day. And so we'll need models that are much bigger than the ones we currently have.

Yoshua

当然,这意味着机器学习算法要能表示复杂函数。这是神经网络的一个优点,但还有很多其他机器学习方法原则上也能表示非常灵活的形式,比如非参数方法、经典非参数方法或 SVM。但它们会缺少 0.4,可能还有 0.5,取决于方法。第三点,当然你需要足够的算力来训练和使用这些大模型。第五点说的是,仅仅能训练模型还不够,你还必须能从计算角度以合理高效的方式使用它。有些概率模型并非如此,其中的推理——也就是回答问题、让计算机做事情——可能是棘手的,然后你需要做一些近似,这些近似可能高效也可能不高效。

Of course, that means machine learning algorithms that can represent complicated functions. That's one good thing about neural nets, but there are many other machine learning approaches that allow you, in principle, to represent very flexible forms, like nonparametric methods, classical nonparametric methods, or SVMs. But they're going to be missing 0.4 and potentially 0.5, depending on the methods. Point 3, of course, you need enough computing power to train and use these big models. And point 5 just says that it's not enough to be able to train the model; you have to be able to use it in a reasonably efficient way from a computational perspective. This is not always the case with some probabilistic models, where inference—in other words, answering questions, having the computer do something—can be intractable, and then you need to do some approximations, which could be efficient or not.

Yoshua

现在我想重点讲的是第四点:我们如何克服维度灾难?换句话说,如果你对世界不做太多假设,实际上是不可能学习它的。所以我要讲一讲很多深度学习算法背后的假设,这些假设使得它们能够像我们过去几年在实践中看到的那样有效。

Now the point I really want to talk about is the fourth one: how do we defeat the curse of dimensionality? In other words, if you don't assume much about the world, it's actually impossible to learn about it. And so I'm going to tell you a bit about the assumptions that are behind a lot of deep learning algorithms, which make it possible to work as well as we are seeing in practice in the last few years.

战胜维度灾难 Defeating the Curse of Dimensionality

Yoshua

有什么问题吗?微软的 bug?好吧。那么我们如何绕过维度灾难?维度灾难是指我们想要建模的空间变量的配置数量呈指数级增长。我们观察到的所有变量可能取值的数量通常是指数级的,因为存在组合性质。如果每个像素可以取两个值,而你有一百万个像素,那么可能的图像数量就是 2 的一百万次方。所以打败指数函数的唯一方法是用另一个指数函数。因此,我们需要让我们的模型具有组合性。我们需要以这样的方式构建模型:它们可以表示看起来非常复杂的函数,但这些模型的参数数量必须相当少——相对于变量的配置数量而言。参数数量应该很少,我们可以通过将小片段组合在一起、将层组合在一起、或者将同一层上的单元组合在一起来实现。这本质上就是深度学习正在做的事情。

Something wrong? Microsoft bug? Okay. So how do we bypass the curse of dimensionality? The curse of dimensionality is about the exponentially large number of configurations of the space variables that we want to model. The number of values that all of the variables that we observe can take is going to be exponentially large in general, because there's a compositional nature. If each pixel can take two values and you've got a million pixels, then you've got two to the one million number of possible images. So the only way to beat an exponential is to use another exponential. So we need to make our models compositional. We need to build our models in such a way that they can represent functions that look very complicated, but yet these models need to have a reasonably small number of parameters—reasonably small in the sense compared to the number of configurations of the variables. The number of parameters should be small, and we can achieve that by composing little pieces together, composing layers together, or composing units on the same layer together. And that's essentially what's happening with deep learning.

Yoshua

所以实际上有两种组合。一种是同一层上的组合——这就是分布式表示的思想,我稍后会进一步解释。这就是当你学习词嵌入或图像嵌入时得到的东西,广义上的表示。另一种是拥有多层表示——这就是深度的概念。这里发生了另一种组合,而第一种是一种并行组合。我可以分别选择不同单元的值,然后它们一起表示指数级数量的可能配置。在第二种情况下,有一种顺序组合,我取一层的输出,以新的方式组合它们来构建下一层的特征,以此类推。

So you actually have two kinds of compositions. There's the composition happening on the same layer—this is the idea of distributed representations, which I'm going to try to explain a bit more. This is what you get when you learn embeddings for words or for images, representations in general. And then there's the idea of having multiple levels of representation—that's the notion of depth. And there, another kind of composition takes place, whereas the first one is a kind of parallel composition. I can choose the values of my different units separately, and then they together represent an exponentially large number of possible configurations. In the second case, there's a sequential composition, where I take the output of one level and combine them in new ways to build features for the next level, and so on.

Yoshua

所以深度学习之所以有效,是因为我们周围的世界通过做出这些假设能更好地建模。深度学习并不一定对所有机器学习问题都有效。事实上,如果我们考虑所有可能的工作分布,深度学习并不比其他方法更好。这基本上就是没有免费午餐定理所说的。我们非常幸运地生活在这个可以用组合来描述的世界里,这些算法才如此有效。理解这一点很重要。

Right, so the reason deep learning is working is because the world around us is better modeled by making these assumptions. It's not necessarily true that deep learning is going to work for any machine learning problem. In fact, if we consider the set of all possible distributions that we would like to work from, deep learning is no better than any other. And that's basically what the no free lunch theorem is saying. It's because we are incredibly lucky that we live in this world, which can be described by using composition, that these algorithms are working so well. This is important to really understand this.

分布式与非分布式表示 Distributed vs. Non-Distributed Representations

Yoshua

所以在我进一步讲分布式表示之前,我先说几句非分布式表示。如果你考虑像聚类、语言建模中的 n-gram、经典最近邻、高斯核 SVM、带局部核的经典非参数模型以及决策树——所有这些算法的工作方式实际上非常直接。如果你去掉花哨的东西,隐藏数学,试图理解发生了什么,它们会查看数据空间中的数据,将空间分割成区域,然后对每个区域使用不同的自由参数来找出正确的答案应该是什么。正确答案不一定是监督学习;即使是无监督任务,我认为也有一个正确答案——可能是密度之类的。

So before I go a bit more into distributed representations, let me say a few words about non-distributed representations. So if you're thinking about things like clustering, n-grams for language modeling, classical nearest neighbors, SVMs with Gaussian kernels, classical nonparametric models with local kernels, and decision trees—all these things, the way these algorithms really work is actually pretty straightforward. If you cut the crap and hide the math and try to understand what is going on, they look at the data in data space and they break that space into regions, and they're going to use different free parameters for each of those regions to figure out what the right answer should be. The right answer doesn't have to be supervised learning; even an unsupervised task, I think there's a right answer—it might be the density or something like that. Okay.

Yoshua

你可能认为这是解决问题的唯一方法:我们考虑所有情况,对每种情况都有一个答案,然后我们也许可以在见过的那些情况之间进行插值。问题在于,当有人提出一个不在我们见过的两个例子之间的新例子时——这需要我们进行外推,进行非平凡的泛化——这些算法就失败了。它们没有真正的方法在远离训练样本的地方说出有意义的东西。

And you might think that that's the only way of solving a problem: we consider all of the cases and we have an answer for each of the cases, and we can maybe interpolate between those cases that we've seen. The problem with this is somebody comes up with a new example which isn't in between two of the examples we've seen—something that requires us to extrapolate, something that's non-trivial generalization—and these algorithms just fail. They don't really have a recipe for saying something meaningful away from the training examples.

Yoshua

这里还有另一个有趣的事情,我希望你们在我展示下一张幻灯片之前记住,这里用红色标出:我们可以做一种简单的计数,将参数数量——可以学习的自由参数数量——与我们可以区分的数据空间中的区域数量联系起来。所以这里我们基本上在这两者之间有一个线性关系,对吧?

There's another interesting thing to note here, which I would like you to keep in mind before I show the next slide, which is in red here: we can do a kind of simple counting to relate the number of parameters—the number of free parameters that can be learned—and the number of regions in the data space that we can distinguish. So here we basically have a linear relationship between these two things, right?

分布式表示的指数级效率 Exponential efficiency of distributed representations

Yoshua

对于每个区域,我至少需要某种中心点,如果我要输出结果,我还会学习一组额外的参数来告诉我该区域的答案。因此参数数量与我能够区分的区域数量成线性增长。好消息是我可以使用任意函数,对吧?所以我可以任意划分空间,然后为每个区域输出我需要的结果。对于决策树,区域是通过坐标轴分割的,而这里更像是 K 近邻之类的方法。现在还有一个 bug……我不打算发送这个。希望这次能行。哦,我还有一个选项。抱歉。好了,这里是分布式表示解决一般机器学习问题的观点。我们有一个数据空间,想要划分它,但我们的划分方式不是通用的。我们以一种对数据做出假设的方式来划分,但它是组合式的,并且能让我们指数级地更高效。那么怎么做呢?在右边的图中,你看到的是通过半平面交集来划分输入空间的方式,这类似于神经网络第一层发生的事情。这里假设输入是二维的,所以我可以在这里画出来,我有三个二值隐藏单元 c1、c2、c3。因为它们都是二值的,你可以把它们看作小的二值分类器,而且因为只有一层网络,它们做的就是线性分类。所以这些彩色超平面就是每个单元的分类面。现在这三个比特可以取 8 个值,对吧?对应每个单元的开或关,而这些不同的比特配置实际上对应了 7 个区域,因为 8 个区域中有一个不可行。所以现在我们定义的区域数量对应所有半平面可能的交集。现在我们可以玩一个游戏:用多少参数得到多少区域。我们看到,如果增加维度(特征)和输入的数量,我们可以得到指数级数量的区域,即所有这些交集,对吧?这些交集的数量是指数级的,对应不同的二值配置,而参数数量却随单元数量线性增长。所以看起来我们能够表达一个函数。在此基础上,我可以想象你有一个线性分类器,对吧?那就是单隐藏层神经网络。所以参数数量只随特征数量线性增长,但网络能够给出不同答案的区域数量却呈指数级增长。这非常酷,原因在于它允许这些神经网络泛化,因为当我们学习每个特征时,我们可以泛化到从未见过的区域,因为我们单独学习了每个特征的足够信息。我将在接下来的几张幻灯片中给出一个例子。实际上,我们先来做这个。想想这些特征。输入是一个人的图像,把这些特征想象成:我有一个检测器说这个人戴眼镜,另一个单元检测性别是男是女,还有一个单元检测是否是儿童。当然你可以想象成百上千个这样的特征。好消息是,你可以想象单独学习每个特征检测器,这些小的分类器。实际上,你可以做得更好:你可以在输入和这些特征之间共享中间层。但即使是最坏的情况,假设我们单独训练它们,就像我之前展示的线性模型那样。每个检测器有一组独立的参数。所以如果有 n 个特征,每个需要大约 K 个参数,那么总共需要大约 nK 个参数,也需要大约 nK 个样本。从机器学习理论中你应该知道,如果有大约 P 个参数,就需要大约 P 个样本才能合理泛化。你可以通过正则化来减少有效自由度,但简单来说,需要的样本数量大约与自由参数数量相当,或者多十倍、百倍。所以现在我能表示的区域数量与所需样本数量之间的关系非常美妙,因为区域数量是 2 的(二值特征数量)次方。所以一个人可以戴眼镜或不戴,是男是女,是儿童与否,我可以有一百个这样的特征,我可能能够合理识别所有 2 的 100 次方种人的配置,尽管我显然没有见过所有这 2 的 100 次方种配置。为什么我能做到?因为模型可以独立地学习每个二值特征,也就是说,我不需要看到其他特征的所有可能配置就能知道戴眼镜的特征。即使我从未见过一个女性、儿童、胖乎乎、穿黄鞋的人,我也可以学习戴眼镜。我见过足够多戴眼镜的人,就能一般性地学习戴眼镜。我不需要看到其他特征的所有配置来学习一个特征。好了。这就是为什么这种方法有效:因为我们假设这些特征本身是有意义的,你不需要为每个区域(指数级数量的区域)都有数据,就能学习正确检测或发现这些中间特征的方法。我在这里补充一点。最近有一些实验确实表明这种情况正在发生,因为我提到的这些特征,不仅我假设它们存在,而且优化方法或训练过程能够发现它们,能够学习它们。这是 2012 年 MIT Oliva 实验室做的一个实验,他们训练了一个卷积网络来识别场所。网络的输出只是场所类型,比如这是海滩场景、办公室场景还是街道场景等等。但然后他们……

For each region I'm going to need at least something like some kind of center for the region, and maybe if I need to output something, I'll learn an extra set of parameters to tell me what the answer should be in that area. So the number of parameters grows linearly with the number of regions that I'm going to be able to distinguish. The good news is I can have any kind of function, right? So I can break up the space in any way I want, and then for each of those regions I can have any kind of output that I need. So for decision trees, the regions would be splitting across axes and so on, and for this it's more like k-nearest neighbor or something like that. Now another bug... I don't think I will send this. Hope works this time. Oh, I have another option. Sorry about this. Okay, so here's the point of view of distributed representations for solving the same general machine learning problem. We have a data space and we want to break it down, but we're going to break it down in a way that's not general. We're going to break it down in a way that makes assumptions about the data, but it's going to be compositional and it's going to allow us to be exponentially more efficient. So how are we going to do this? In the picture on the right, what you see is a way to break the input space by the intersection of half-planes, and this is the kind of thing you would have with what happens at the first layer of a neural net. So here imagine the input is 2-dimensional, so I can plot it here, and I have three binary hidden units c1, c2, c3. Because they're binary, you can think of them as little binary classifiers, and because it's only a one-layer net, you can think of what they're doing is a linear classification. So those colored hyperplanes here are the decision surfaces for each of them. Now these three bits can take eight values, right? Corresponding to whether each of them is on or off, and those different configurations of those bits correspond to actually seven regions here, because one of the eight regions is not feasible. So now you see that we're defining a number of regions which is corresponding to all of the possible intersections of the corresponding half-planes. And now we can play the game of how many regions do we get for how many parameters. What we see is that if we played the game of growing the number of dimensions (features) and also of inputs, we can get an exponentially large number of regions, which are all of these intersections, right? There's an exponential number of these intersections corresponding to different binary configurations, yet the number of parameters grows linearly with the number of units. So it looks like we're able to express a function. Then on top of that, I could imagine you have a linear classifier, right? That's the one-hidden-layer neural net. So the number of parameters grows just linearly with the number of features, but the number of regions that the network can really provide a different answer to grows exponentially. So this is very cool, and the reason it's very cool is that it allows those neural nets to generalize, because while we're learning about each of those features, we can generalize to regions we've never seen, because we've learned enough about each of those features separately. I'm going to give you an example of this in a couple of slides. Actually, let's do it first. So think about those features. The input is an image of a person, and think of those features as things like: I have a detector that says that the person wears glasses, and I have another unit that's detecting that the person is female or male, and I have another unit that detects that the person is a child or not. And you can imagine hundreds or thousands of these things, of course. So the good news is you could imagine learning about each of these feature detectors, these little classifiers, separately. In fact, you could do better than that: you could share intermediate layers between the input and those features. But let's take even the worst case and imagine we were to train those separately, which is the case in the linear model that I show before. We have a separate set of parameters for each of these detectors. So if I have n features, each of them needs order of K parameters, then I need order of nK parameters, and I need order of nK examples. And one thing you should know from machine learning theory is that if you have order of P parameters, you need order of P examples to do a reasonable job of generalization. You can get around that by regularizing and effectively having less degrees of freedom, but to keep things simple, you need about the same number of examples, or maybe a hundred times more or ten times more, as the number of really free parameters. So now the relationship between the number of regions that I can represent and the number of examples I need is quite nice, because the number of regions is going to be 2 to the number of features of these binary features. So a person could wear glasses or not, be female or male, child or not, and I could have a hundred of these things, and I could probably recognize reasonably well all of these 2 to the 100 configurations of people, even though I've obviously not seen all of those 2 to the 100 configurations. Why is it that I'm able to do that? I'm able to do that because the models can learn about each of these binary features kind of independently, in the sense that I don't need to see every possible configuration of the other features to know about wearing glasses. I can learn about wearing glasses even though I've never seen somebody who was a female and a child and chubby and had yellow shoes. I have seen enough examples of people wearing glasses, I can learn about wearing glasses in general. I don't need to see all of the configurations of the other features to learn about one feature. Okay. And so this is really why this thing works: because we're making assumptions about the data that those features are meaningful by themselves, and you don't need to actually have data for each of the regions, the exponential number of regions, in order to learn the proper way of detecting or discovering these intermediate features. Let me add something here. There were some experiments recently actually showing that this kind of thing is really happening, because the features I was talking about, not only I'm assuming that they exist, but the optimization methods or training procedures discover them, they can learn them. And this is an experiment that's been done in 2012 at Oliva's lab at MIT, where they trained a convolutional net to recognize places. So the outputs of the net are just the types of places, like is this a beach scene or an office scene or street scene and so on. But then the thing they've

神经网络的可解释性与组合性 Interpretability and Compositionality in Neural Networks

Yoshua

他们让人们分析隐藏单元,试图弄清楚每个隐藏单元在做什么,结果发现有很大比例的单元,人类可以找到相当明显的解释。例如,他们看到一些单元对不同类型的人、动物、建筑物、幼苗、桌子、灯光等有反应。所以,这些神经网络确实在发现语义特征。它们是语义的,因为人们可以给它们命名,作为达到最终转录场景目标的中间特征。它们能泛化的原因是,你可以用指数级数量的方式组合这些特征。你可以有一个场景,里面有桌子、不同的灯光、一些人,也许还有一只宠物,你可以对这些组合说出有意义的东西,因为网络学会了所有这些特征,而不必看到所有可能的配置。我不知道我的解释是否清楚,但现在是你们提问的机会。

They ask people to analyze the hidden units to try to figure out what each hidden unit was doing, and they found that there's a large proportion of units that humans can find a pretty obvious interpretation for. For example, they see units that respond to different kinds of people, animals, buildings, seedlings, tables, lighting, and so on. So it seems that these neural nets are discovering semantic features. They are semantic because people can name them as intermediate features used to reach the final goal of transcribing scenes. The reason they generalize is that you can combine those features in an exponentially large number of ways. You could have a scene with a table, different lighting, some people, maybe a pet, and you can say something meaningful about the combinations because the network learns all these features without having to see all possible configurations. I don't know if my explanation makes sense, but now is your chance to ask me a question.

Host

我们不能用一组决策树做同样的事情吗?

Can't we do the same thing with a set of decision trees?

Yoshua

是的,事实上,这就是为什么随机森林或装袋树比单棵树效果更好的原因之一。森林或装袋树比单棵树深一层,但它们仍然没有神经网络那样的分布式特性。通常,它们不是联合训练的。提升树在某种程度上是贪婪训练的,但确实如此。

Yes, in fact, this is one reason why forests work better or bagged trees work better than single trees. Forests or bagged trees are one level deeper than a single tree, but they still don't have as much of a distributed aspect as neural nets. Usually, they are not trained jointly. Boosted trees are trained to some extent in a greedy way, but yes.

Host

有没有神经网络在非组合性数据上表现良好的情况?

Are there cases where neural networks work well on non-compositional data?

Yoshua

我不理解这个问题。你说的非组合性是什么意思?组合性在我们周围无处不在。我认为没有神经网络在数据缺乏某种组合结构时还能真正表现良好的例子。但如果你能想到一个例子,我很乐意听听。

I don't understand the question. What do you mean by non-compositional? Compositionality is everywhere around us. I don't think there are examples of neural nets that really work well where the data doesn't have some kind of compositional structure. But if you come up with an example, I'd like to hear about it.

Host

我们能从图模型的角度来思考这个问题吗,比如生成图像?

Can we think about this in graphical model terms, like generating an image?

Yoshua

是的,这样想更容易。如果你考虑生成一张图像,你会考虑潜在因素,比如哪些物体、它们在哪里、它们的身份、大小。这些是独立因素,你可以用有趣的方式组合它们。如果你使用图形引擎,你可以精确地看到它们如何组合。用这种组合结构来表示联合分布,比直接在像素空间工作要容易得多,而像素空间是经典非参数方法会做的,而且行不通。但看看我们现在最好的图像生成模型,比如 GAN 或 VAE,它们比几年前机器学习领域人们能想象到的任何东西都要好得多。

Yes, it's easier to think about it that way. If you think about generating an image, you consider underlying factors like which objects, where they are, their identity, their size. These are independent factors that you compose together in interesting ways. If you use a graphics engine, you can see exactly how they combine. It's much easier to represent that joint distribution using this compositional structure than working directly in pixel space, which is what you would do with a classical nonparametric method, and it wouldn't work. But if you look at our best generative models for images now, like GANs or VAEs, they are amazingly better than anything people could dream up just a few years ago in machine learning.

深度与表达力的理论结果 Theoretical Results on Depth and Expressivity

Yoshua

让我继续讲,因为还有其他话题。这些都有点粗略,但有些人已经对这些想法做了数学研究。例如,两年前在 ICLR 上有一个结果,我们研究了单层情况,使用 ReLU 激活函数。我们发现网络计算的是一个分段线性函数。量化函数丰富性的一种方法是计算输入到输出函数有多少个分段。结果发现,分段数量在输入数量上是指数级的:单元数的输入数次方。所以对于分布式表示,指数效应出现了。我们还研究了深度。早期的理论说单层足以表示任何函数,但那个理论没有指定你需要多少单元。实际上,你可能需要特别多的单元。几个结果表明,有些函数可以用很少的参数非常高效地表示,如果你允许网络足够深的话。在所有函数中,有一小部分恰好很容易用深度网络表示。如果你试图用浅层网络表示这些函数,你需要指数级的参数和样本。但我们非常幸运,我们想学习的函数具有这种性质。这并不奇怪;我们到处都在使用组合性和深度。当我们写计算机程序时,我们不会只有一个主函数;我们有函数调用函数。我们能够对单层情况展示类似的结果:随着深度增加,深度 ReLU 网络的分段线性函数的分段数量随深度指数增长。所以单层已经是指数级的了,但更深的网络会带来更大的指数增长。

Let me move on because there are other things to talk about. This is all kind of hand-wavy, but some people have done math around these ideas. For example, there is a result from two years ago at ICLR where we studied the single-layer case with rectifiers (ReLUs). We found that the network computes a piecewise linear function. One way to quantify the richness of the function is to count how many pieces the input-to-output function has. It turns out that it is exponential in the number of inputs: the number of units to the power of the number of inputs. So for a distributed representation, there is an exponential kicking in. We also studied depth. Earlier theory says a single layer is sufficient to represent any function, but that theory doesn't specify how many units you might need. In fact, you might need an especially large number of units. Several results show that there are functions that can be represented very efficiently with few parameters if you allow the network to be deep enough. Out of all functions, there is a very small fraction that happen to be very easy to represent with a deep network. If you try to represent these functions with a shallow network, you need an exponential number of parameters and examples. But we are incredibly lucky that the functions we want to learn have this property. It's not surprising; we use compositionality and depth everywhere. When we write a computer program, we don't have a single main; we have functions that call functions. We were able to show similar things for the single-layer case: as you increase depth for deep ReLU networks, the number of pieces in the piecewise linear function grows exponentially with depth. So it's already exponentially large with a single layer, but it gets even more exponential with a deeper net.

训练神经网络与局部极小值 Training Neural Networks and Local Minima

Yoshua

我想提到的另一个话题,非常基础性的,是我们究竟如何能够训练这些神经网络。在 90 年代,许多人决定不再研究神经网络,因为有理论结果表明,神经网络的训练目标中存在指数级数量的局部极小值。换句话说,我们想学习的函数有很多坑,如果我们从一个随机起点开始,找到对应良好代价的最佳点的概率有多大?这是促使人们在 90 年代和 2000 年代涌入一个非常大的机器学习研究领域的动机之一,该领域基于需要凸优化来训练的算法。因为如果我们能做凸优化,就消除了这个问题。如果目标函数在参数上是凸的,那么我们知道只有一个全局最小值。让我给你看一张图。在右上角,如果你画一个随机的……

Another topic I want to mention, which is very much in the foundations, is how we are able to train these neural nets in the first place. In the 90s, many people decided not to do any more research on neural nets because there were theoretical results showing that there are an exponentially large number of local minima in the training objective of a neural net. In other words, the function we want to learn has many holes, and if we start at a random place, what's the chance we will find the best one that corresponds to a good cost? That was one motivation for people who flocked into a very large area of research in machine learning in the 90s and 2000s based on algorithms that require convex optimization to train. Because if we can do convex optimization, we eliminate this problem. If the objective function is convex in the parameters, then we know there is a single global minimum. Let me show you a picture. On the right-hand top, if you draw a random...

高维优化景观 Optimization landscape in high dimensions

Yoshua

在一维、二维或三维空间中,比如这里,这是一个二维的随机平滑函数。你会看到它有很多起伏。这是一个局部最小值。但好消息是,在高维空间中情况完全不同。那么这里的维度是什么?我们讨论的是模型的参数,纵轴是我们试图最小化的代价。在高维空间中,当我们试图优化时,遇到的不是大量的局部最小值,而是大量的鞍点。鞍点就像右下角那个二维的东西。你有两个参数,y 轴是你想最小化的代价。在鞍点处,你看到有些维度或方向上目标函数呈现最小值,所以有一条曲线向上弯曲,而在其他方向上它向下弯曲。所以鞍点在某些方向上是极小值,在其他方向上是极大值。这很有趣,因为尽管这些点(比如鞍点等)原则上可能让你陷入困境,如果你恰好处于鞍点,你不会移动,但如果你稍微偏离一点,你就会沿着鞍点下降。所以我们在另一篇论文中的工作,以及纽约大学 Tremonika 和 Yann LeCun 合作者的其他工作表明,实际上在高维空间中,不仅鞍点比局部最小值更多,而且局部最小值是好的。让我试着解释一下我的意思。

Function in 1D or 2D or 3D, like here, this is a kind of a random smooth function in 2D. You see that it is going to have many ups and downs. This is a local minimum. But the good news is that in high dimension it's a totally different story. So what are the dimensions here? We're talking about the parameters of the model, and the vertical axis is the cost we're trying to minimize. What happens in high dimension is that instead of having a huge number of local minima on our way when we're trying to optimize, what we encounter instead is a huge number of saddle points. A saddle point is like the thing on the bottom right in 2D. So you have two parameters and the y-axis is the cost you want to minimize. What you see in a saddle point is that you have dimensions or directions where the objective function draws a minimum, so there's a curve that curves up, and in other directions it curves down. So a saddle point has both a minimum in some direction and a maximum in other directions. This is interesting because even though these points, like saddle points and many more, are places where you could get stuck in principle, if you're exactly at the saddle point you don't move, but if you move a little bit away from it, you will go down the saddle. So what our work in another paper, other work from NYU, Tremonika and collaborators of Yann LeCun showed, is that actually in very high dimension, not only is the issue more saddle points than local minima, but the local minima are good. Let me try to explain what I mean by this.

Yoshua

让我先给你们看一个纽约大学团队的实验。他们做了一个实验,逐渐改变神经网络的规模,然后观察那些看起来像局部最小值的东西,但它们可能是训练中能达到的最低鞍点。你们看到的是他们从不同初始化训练中得到的误差分布。当网络很小时,比如右边的粉色,根据初始点的不同,你会得到分布很广的代价,而且这些代价相当高。如果你增加网络的规模,你会发现所有局部最小值都集中在一个特定的代价附近,所以你不会得到小网络时那些糟糕的局部最小值;它们都相当不错。如果你进一步增加网络规模,比如这是一个单隐藏层网络,并不复杂,这种现象会更加明显。换句话说,它们都收敛到类似的代价。让我试着解释一下这是怎么回事。

Let me show you actually first an experiment from the NYU guys. They did an experiment where they gradually change the size of the neural net, and they look at what looks like local minima, but they could be saddle points that are the lowest that they could obtain by training. What you're looking at is a distribution of errors they get from different initialization of their training. What happens is that when the network is small, like the pink here on the right, there's a widespread distribution of cost that you can get depending on where you start, and they're pretty high. If you increase the size of the network, it's like all of the local minima that you find concentrate around a particular cost, so you don't get any of these bad local minima that you would get with a small network; they're all kind of pretty good. If you increase even more the size of network, this is like a single hidden layer network, not very complicated, this phenomenon increases even more. In other words, they all kind of converge to the same kind of cost. Let me try to explain what's going on.

Yoshua

如果我们回到鞍点的图像,但不是在二维中,想象你在百万维空间中。事实上,如今人们有十亿维的网络,我确信 Andrew 有更大的,我不确定。那么在这个非常高维的参数空间中,如果事情不是真的对你很不利,如果你想象问题设置中有一点随机性,而且似乎确实如此,那么要得到一个真正的局部最小值,你需要所有十亿个方向上的曲率都向上。所以如果这个事件发生的概率是某个值,即所有这些特定方向都向上弯曲,那么所有方向都向上弯曲的概率会呈指数级小。我们通过实验验证了这一点。你在左下角看到的是训练误差作为临界点指数的函数,这个指数就是向下弯曲的方向的比例。所以 0%意味着局部最小值,100%是局部最大值,中间的任何值都是鞍点。我们发现,随着训练的进行,我们接近一堆鞍点,其中没有一个是局部最小值,否则我们就会卡住。事实上,我们从未遇到局部最小值,直到我们达到能够获得的最低代价。此外,有理论表明,局部最小值实际上在代价上接近全局最小值;它们会高于全局最小值,并集中在一个略高于全局最小值的带状区域内,而且维度越大,这一点越成立。所以回到我的类比,在某个点上你当然会遇到局部最小值,尽管在中间时不太可能;当你接近底部时,你无法再降低,所以它必须在所有方向上上升。但这算是好消息,我认为。

If we go back to the picture of the saddle point, but instead of being in 2D, imagine you are in a million dimensions. In fact, people have billion-dimensional networks these days, and I'm sure Andrew has even bigger ones, I'm not sure. So what happens in this very high dimensional space of parameters is that if things are not really bad for you, if you imagine a little bit of randomness in the way the problem is set up, and it seems to be the case, in order to have a true local minimum you need to have the curvature going up like this in all the billion directions. So if there is a certain probability of this event happening, that all these particular directions are curving up, the probability that all of them curve up becomes exponentially small. We tested that experimentally. What you see in the bottom left is a curve that shows the training error as a function of what's called the index of the critical point, which is just the fraction of the directions which are curving down. So 0% would mean it's a local minimum, 100% would be a local maximum, and anything in between is a saddle point. What we find is that as training progresses, we go close to a bunch of saddle points, and none of them are local minima, otherwise we would be stuck. In fact, we never encounter local minima until we reach the lowest possible cost that we were able to get. In addition, there is a theory suggesting that the local minima will actually be close in cost to the global minimum; they will be above and they will concentrate in a little band above the global minimum, but that band of local minima will be close to the global minimum, and the larger the dimension, the more this is going to be true. So as you go back to my analogy, at some point of course you will get local minima even though it's unlikely when you're in the middle; when you get close to the bottom, well you can't go lower, so it has to rise up in all the directions. But that's kind of good news, I think.

Yoshua

尽管如此,我并不认为神经网络的优化问题已经解决。仍然有很多情况我们会陷入困境,我们仍然不了解损失曲面的样子。Ian Goodfellow 那组漂亮的实验帮助我们稍微可视化了情况,但我认为神经网络优化的一个开放问题是,我们不知道损失曲面实际长什么样。当然,这很难可视化,因为它是非常高维的。但例如,我们不知道那些鞍点到底是什么样子。当我们实际测量这些点附近的梯度时,当我们接近这些鞍点时,梯度并不接近零,所以我们从未真正到达平坦的地方。这可能是因为我们使用 SGD,它有点悬浮在事物之上。可能存在条件数问题,或者即使你处于鞍点,你也可能被困住,尽管它不是局部最小值,因为在许多方向上它仍然在上升。也许 95%的方向是上升的,而其他方向很难到达,因为某些方向的曲率远大于其他方向,这就是传统的病态条件问题。我们不知道到底是什么让某些网络难以训练。通常,卷积网络很容易训练,但当你进入机器翻译甚至更糟糕的推理任务(比如图灵机之类的东西)时,训练这些东西变得非常非常困难,人们不得不使用各种技巧,比如课程学习,这些本质上都是优化技巧,使优化更容易。所以我不想告诉你神经网络的优化问题很容易,已经解决了,我们不需要担心。但它比 90 年代人们想象的要容易得多,也少了很多担忧。

In spite of this, I don't think that the optimization problem of neural nets is solved. There are still many cases where we find ourselves to be stuck, and we still don't understand what the landscape looks like. This set of beautiful experiments by Ian Goodfellow help us visualize a bit what's going on, but I think one of the open problems of optimization for neural nets is we don't know what the landscape actually looks like. It's hard to visualize, of course, because it's very high dimensional. But for example, we don't know what those saddle points really look like. When we actually measure the gradient near those, when we're approaching those saddle points, it's not close to zero, so we never go to actually flat places. This may be due to the fact that we're using SGD and it's kind of hovering above things. There might be conditioning issues, or even if you are at a saddle point, you might be stuck even though it's not a local minimum because in many directions it's still going up. Maybe 95% of the directions are going up, and the other directions are hard to reach because simply there's a lot more curvature in some directions than others, and that's the traditional ill-conditioning problem. We don't know exactly what's making it hard to train in some networks. Usually, convolutional networks are pretty easy to train, but when you go into things like machine translation or even worse reasoning tasks like with Turing machines and things like that, it gets really, really hard to train these things, and people have to use all kinds of tricks like curriculum learning, which are essentially optimization tricks to make the optimization easier. So I don't want to tell you that the optimization problem of neural nets is easy, it's done, we don't need to worry about it. But it's much easier and less of a concern than what people thought in the 90s.

Yoshua

好的,那么她学习了吗?我的意思是深度学习正在从模式识别转向更复杂的任务,例如包括推理以及将深度学习与……结合。

Okay, so was she learning? I mean deep learning is moving out of pattern recognition and into more complicated tasks, for example including reasoning and combining deep learning with...

注意力与长期依赖记忆 Attention and Memory for Long-Term Dependencies

Yoshua

强化学习、规划等等。你们听说过注意力机制——它是许多任务中非常有用的工具之一。我们提出的注意力机制,并不是像通常理解的视觉空间中的注意力那样关注外部世界,而是内部注意力,即在已构建的表征空间中的注意力。这就是我们在机器翻译中所做的,而且非常成功,正如 Quoc 所说。所以我不打算展示那些图片了,等等。另一个我从读博开始就一直研究的挑战是循环网络中的长期依赖问题。虽然我们取得了很大进展,但这仍然是一个我们尚未完全攻克的难题,它与我之前提到的优化问题有关,但是一种非常特殊的优化问题。我们用来使信息和梯度传播更容易的一些想法包括使用跨时间的跳跃连接、使用多时间尺度。我的实验室和其他小组在这方面有一些近期工作。甚至注意力机制本身也可以被视为帮助处理长期依赖的一种方式。理解这一点的方法是,把注意力放置的位置视为状态的一部分。想象你有一个循环网络,它有两种状态:一种是通常的循环网络状态,另一种是记忆的内容。Quoc 告诉过你们关于记忆网络和神经图灵机,完整的状态实际上包含了所有这些。现在我们可以从那个记忆中读取或写入——那个小循环网络能够做到这一点。所以,有些记忆元素不会随时间改变;它们可能只被写入一次,存储在那里的信息可以保留任意长时间,因为它们不会被覆盖。这意味着,如果你考虑通过那些单元反向传播的梯度,它们几乎可以不受阻碍地传播,没有梯度消失问题。所以,这种用记忆解决长期依赖问题的观点,我认为可能非常有用。

Reinforcement learning, planning, and things like that. You've heard about attention—that's one of the tools that is really, really useful for many of these tasks. We've sort of come up with attention mechanisms as a way to focus, not on what's going on in the outside world like we usually think of attention in the visual space, but internal attention, right, in the space of representations that have been built. So that's what we do here in machine translation, and it's been extremely successful, as Quoc said. So I'm not going to show you any of these pictures, blah blah. Another challenge that I've been working on since I was a baby researcher as a PhD student is long-term dependencies in recurrent nets. Although we've made a lot of progress, this is still something that we haven't completely cracked, and it's connected to the optimization problem that I told you before, but it's a very particular kind of optimization problem. Some of the ideas that we've used to try to make the propagation of information and gradients easier include using skip connections over time, using multiple time scales. There's some recent work in this direction from my lab and other groups. Even the attention mechanism itself can be thought of as a way to help deal with long-term dependencies. The way to see this is to think of the place on which we're putting attention as part of the state. So imagine you have a recurrent net and it has two kinds of state: it has the usual recurrent net state, but it has the content of the memory. Quoc told you about memory nets and neural Turing machines, and the full state really includes all of these things. Now we are able to read or write from that memory—the little recurrent net is able to do that. So what happens is that there are memory elements which don't change over time; maybe they're written once, and the information stored there can stay for as much time as you want because they're not going to be overwritten. That means that if you consider the gradients backpropagated through those cells, they can go pretty much unhampered, and there's no vanishing gradient problem. So this view of the problem of long-term dependencies with memory, I think, could be very useful.

无监督学习的挑战 The Challenge of Unsupervised Learning

Yoshua

好了。在演讲的最后部分,我想告诉你们我认为我们面临的最大挑战,那就是无监督学习。在我继续讲无监督学习之前,关于注意力和记忆有什么问题吗?好的。那么我们为什么关心无监督学习?它目前效果不太好——实际上,它比以前好多了,但仍然不是你在工业产品中能看到的东西,至少不是以明显的方式。有一些不那么明显的方式,无监督学习已经非常成功了。例如,当你用 word2vec 或任何其他模型训练词嵌入,并用它来预训练,就像我们在机器翻译系统或其他 NLP 任务中所做的那样,你就是在利用无监督学习。即使你训练一个语言模型,然后把它嵌入到其他东西中,或者用它来预训练,你也是在无监督学习。但我认为无监督学习的潜力和重要性通常被低估了。那么我们为什么关心它?首先,无监督学习的理念是,我们可以从大量未标记的数据中学习,这些数据没有被人类整理过,而我们有很多这样的数据。人类非常擅长从未标记的数据中学习。我有一个经常使用的例子,它非常清楚地说明了这一点:例如,儿童可以学习关于世界的各种知识,尽管没有成年人告诉他们任何事情,直到很久以后,那时已经太晚了。物理学,你知道,一个两三岁的孩子理解物理学。如果她有一个球,她知道当她扔下球时会发生什么。她知道液体如何表现。她知道关于物体和普通牛顿物理学的各种知识,尽管她没有明确的方程和用语言描述它们的方式。但她能预测接下来会发生什么。而父母不会告诉孩子‘力等于质量乘以加速度’,对吧?所以这纯粹是无监督的,而且非常强大。我们现在甚至还没有做到这一点。我们没有能够理解儿童所能理解的物理学的计算机。所以这似乎是人类拥有的一项技能,对人类理解周围世界非常重要,但我们还没有真正成功地将它赋予机器。让我告诉你们与此相关的其他原因,为什么无监督学习有用。当你做监督学习时,训练系统的方式基本上是专注于一个特定任务:这里有输入变量,这里有一个输出变量,我希望你根据输入预测它。你学习的是 P(Y|X)。但如果你做无监督学习,你基本上是在学习关于你观察到的数据可能被问到的所有问题。所以不是你知道有 X1、X2、X3 和 Y;一切都是 X,你可以根据任何其他 X 预测任何一个 X。如果我给你一张图片,并隐藏了它的一部分,你可以猜出缺失的部分。如果我隐藏了标题,你可以根据图像生成标题。如果我隐藏了图像,给你标题,你可以猜出图像会是什么,或者画出它,或者从例子中找出哪个最合适。所以当你捕获了它们之间的联合分布时,你可以回答关于数据的任何问题。这可能很有用。无监督学习被用于的另一个实际用途——事实上,这就是整个深度学习开始的方式——是它可以被用作正则化器。因为除了告诉我们的模型我们想要根据 X 预测 Y 之外,我们还在说:找到 X 的表征,既能预测 Y,又能以某种方式捕获关于 X 分布的一些信息,即 X 的主要因素、解释性因素。这再次对数据做出了一个假设。所以如果这个假设成立,我们可以将其用作正则化器。本质上,这个假设是,我们试图预测的因子 Y 是解释 X 的因子之一,通过做无监督学习来发现解释 X 的因子,我们将在其他因子中挑选 Y,这样监督学习就会容易得多。当然,这也是迁移学习有效的原因,因为存在解释一系列任务输入的潜在因子,而可能不同的因子子集解释每个任务。

All right. In the last part of my presentation, I want to tell you about what I think is the biggest challenge ahead of us, which is unsupervised learning. Any question about attention and memory before I move on to unsupervised learning? Okay. So why do we care about unsupervised learning? It's not working well—actually, it's working a lot better than it was, but it's still not something you find in industrial products, at least not in an obvious way. There are less obvious ways where unsupervised learning is already extremely successful. For example, when you train word embeddings with word2vec or any other model and you use that to pre-train, like we did our machine translation systems or other kinds of NLP tasks, you're exploiting unsupervised learning. Even when you train a language model that you're going to stick in some other thing or pre-train something with that, you're also doing unsupervised learning. But I think the potential and the importance of unsupervised learning is usually underrated. So why do we care? First of all, the idea of unsupervised learning is that we can learn something from large quantities of unlabeled data that humans have not curated, and we have lots of that. Humans are very good at learning from unlabeled data. I have an example that I use often that makes it very clear: for example, children can learn all kinds of things about the world even though no adult ever tells them anything about it until much later, when it's too late. Physics, so you know, a two or three year old understands physics. If she has a ball, she knows what's going to happen when she drops the ball. She knows how liquids behave. She knows all kinds of things about objects and ordinary Newtonian physics, even though she doesn't have explicit equations and a way to describe them with words. But she can predict what's going to happen next. And the parents don't tell the children 'force equals mass times acceleration,' right? So this is purely unsupervised, and it's very powerful. We don't even have that right now. We don't have computers that can understand the kinds of physics that children can understand. So it looks like it's a skill that humans have and that's very important for humans to make sense of the world around us, but we haven't really yet succeeded to put it in machines. Let me tell you other reasons that are connected to this why unsupervised learning is useful. When you do supervised learning, essentially the way you train your system is you focus on a particular task: here are the input variables, and here is an output variable that I would like you to predict given the input. You're learning P(Y|X). But if you're doing unsupervised learning, essentially you're learning about all the possible questions that could be asked about the data you observe. So it's not that you know there's X1, X2, X3, and Y; everything is an X, and you can predict any of the X given any of the other X. If I give you a picture and I hide a part of it, you can guess what's missing. If I hide the caption, you can generate the caption given the image. If I hide the image and I give you the caption, you can guess what the image would be, or draw it, or figure out from examples which one is the most appropriate. So you can answer any questions about the data when you have captured the joint distribution between them. That could be useful. Another practical thing that unsupervised learning has been used for—in fact, this is how the whole deep learning thing started—is that it could be used as a regularizer. Because in addition to telling our model that we want to predict Y given X, we're saying: find representations of X that both predict Y and somehow capture something about the distribution of X, the leading factors, the explanatory factors of X. This again is making an assumption about the data. So we can use that as a regularizer if the assumption is valid. Essentially, the assumption is that the factor Y that we're trying to predict is one of the factors that explain X, and by doing unsupervised learning to discover factors that explain X, we're going to pick Y among the other factors, and so it's going to be much easier to do supervised learning. Of course, this is also the reason why transfer learning works, because there are underlying factors that explain the inputs for a bunch of tasks, and maybe a different subset of factors explain each task.

多任务学习与无监督学习 Multi-task learning and unsupervised learning

Yoshua

一组因素与某个任务相关,另一组因素与另一个任务相关。但如果这些因素有重叠,那么多任务学习就可能产生协同效应。所以多任务学习之所以有效,是因为无监督学习有效——存在一些能够解释数据的表征和因素,这些表征和因素对我们感兴趣的监督学习任务也有用,并且同样可以用于领域自适应。

Relevant for one task and another subset of factors is relevant for another task. But if these factors overlap, then there's a potential for synergy by doing multi-task learning. So the reason multi-task learning is working is because unsupervised learning is working, because there are representations and factors that explain the data that can be useful for our supervised learning tasks of interest, and that also could be used for domain adaptation for the same reason.

Yoshua

关于无监督学习,人们谈论得不多的一点——我认为这也是我们早期用堆叠自编码器和 RBM 取得成功的一部分原因——是它实际上可以让训练深度网络的优化问题变得更容易。因为如果你要训练一堆 RBM 或自编码器(我不是说这是正确的方法,但它体现了无监督学习的一些精神),很多学习可以在局部完成。你试图提取一些信息,发现一些依赖关系,这是局部的。一旦你有了稍微好一点的表征,就可以再次调整它,以提取更好、更独立的特征。所以从某种意义上说,如果网络非常深,优化问题可能会更容易。

Another thing that people don't talk about as much about unsupervised learning, and I think it was part of the initial success that we had with stacking auto-encoders and RBMs, is that you can actually make the optimization problem of training deep nets easier. Because if you're going to train a bunch of RBMs or a bunch of auto-encoders—and I'm not saying this is the right way of doing it, but it captures some of the spirit of what unsupervised learning does—a lot of the learning can be done locally. You're trying to extract some information, you're trying to discover some dependencies; that's a local thing. Once you have a slightly better representation, we can again tweak it to extract better, more independence or something of that. So there's a sense in which the optimization problem might be easier if you have a very deep net.

Yoshua

即使我们的最终目标是做监督学习,我们也应该关心无监督学习的另一个原因是:有时输出变量很复杂,它们是组合性的,具有联合分布。例如在机器翻译中,输出是一个句子;句子是一组词,在给定另一种语言输入的情况下,这些词具有复杂的联合分布。事实证明,我们通过探索无监督学习(本质上就是捕捉联合分布)发现的许多东西,常常可以用来处理这些结构化输出问题——即多个输出构成一个组合的、复杂的分布。

Another reason why we should care about unsupervised learning, even if our ultimate goal is to do supervised learning, is because sometimes the output variables are complicated; they are compositional, they have a joint distribution. So in machine translation, which we talked about, the output is a sentence; the sentence is a set of words that have a complicated joint distribution given the input in the other language. And it turns out that many of the things we discover by exploring unsupervised learning—which is essentially about capturing joint distributions—can be often used to deal with these structured output problems where you have many outputs that form a compositional, complicated distribution.

基于模型强化学习与自动驾驶的无监督学习 Unsupervised learning for model-based RL and self-driving cars

Yoshua

我认为无监督学习对 AI 还有另一个必要性:基于模型的强化学习。我想我为此准备了另一张幻灯片。想想自动驾驶汽车,这是当下非常热门的话题。我是如何学会不能做某些会害死自己的方向盘操作的?开车时,我从未经历过那些会让我丧命的状态,也绝不可能反复尝试一千次来学习如何避免。所以监督学习,或者说传统的强化学习(如策略学习、演员-评论家等)是行不通的,因为我需要对永远不会遇到的情况进行泛化——因为一旦遇到,我就死了。这些是危险状态,我需要泛化它们,但无法获得足够的数据。我相信很多机器学习应用都会遇到这种情况。我记得几十年前,我从一个核电站拿到一些数据,他们想预测何时会爆炸以避免它。我问:有多少爆炸数据?答案是零,对吧?所以你看,有时监督学习很难,因为你想要的数据根本得不到——那些数据来自极其罕见的情况。

There's another reason why unsupervised learning, I think, is going to be really necessary for AI: model-based reinforcement learning. So I think I have another slide just for this. Let's think about self-driving cars, a very popular topic these days. How did I learn that I shouldn't do some things with the wheel that will kill myself? When I'm driving, because I haven't experienced these states where I get killed, and I simply haven't done it a thousand times to learn how to avoid it. So supervised learning, or rather traditional reinforcement learning like policy learning or actor-critic or things like that, won't work because I need to generalize about situations that I'm never going to encounter, because otherwise if I did, I would die. So these are dangerous states that I need to generalize about, but I can't have enough data for them. And I'm sure there are lots of machine learning applications where we would be in that situation. I remember a couple of decades ago, I got some data from a nuclear plant, and they wanted to predict when it's gonna blow up to avoid it. So I said, how many? Yeah, it's at zero, right? So you see, sometimes it's hard to do supervised learning because the data you would like to have, you can't have. It's data from situations that are very rare.

Yoshua

我们如何解决这个问题?我能看到的唯一解决方案是:我们充分学习世界,从而能够预测事情会如何发展。比如开车时,我拥有一种关于物理和汽车行为的心理模型。我能推断出,如果此时右转,我会撞上墙,后果很严重。我不需要真的经历才知道那很糟糕;我可以在脑海中模拟会发生什么。所以我需要一种生成模型,来预测如果我采取某些行动,世界会如何演变。而无监督学习正是做这件事的理想方法。当然,这很难,因为我们需要训练模型捕捉世界的许多方面,以便在那些从未见过数据的情况下也能正确泛化。这就是我认为强化学习需要更多研究的原因之一。

How can we possibly solve this problem? Well, the only solution I can see is that we learn enough about the world that we can predict how things would unfold. Right, when I'm driving, I have a kind of mental model of physics and how cars behave. I can figure out that if I turn right at this point, I'm going to end up on the wall and it's going to be very bad for me. I don't need to actually experience that to know it's bad; I can make a mental simulation of what would happen. So I need a kind of generative model of how the world would unfold if I do such and such actions. And unsupervised learning is sort of the ideal thing to do that. But of course, it's going to be hard because we're going to have to train models that capture a lot of aspects of the world in order to be able to learn to generalize properly in those situations, even though they don't see any data of it. So that's one reason why I think reinforcement learning needs to be worked on more.

信用分配与反向传播对强化学习的启发 Credit assignment and backprop inspiration for RL

Yoshua

我有一点想法:我认为做深度学习的人可以与做强化学习的人合作,而不仅仅是提供一个黑箱供他们在常规算法中使用。我认为我们在监督深度学习(或者说深度学习)中所做的一些事情,可以用于重新思考强化学习。举个例子:我非常喜欢思考信用分配问题。换句话说,不同的机器学习算法如何确定隐藏单元应该做什么,中间计算或中间动作应该是什么?这就是信用分配的核心。而反向传播是我们目前进行信用分配的最佳方法。它告诉某个中间层的参数应该改变,以便让更后面的代价(如果是循环网络,可能是一百步之后)降低。所以我们可以从反向传播中汲取灵感,用它来改进强化学习。

I have a little thing here: I think people who have been doing deep learning can collaborate with people who are doing reinforcement learning, and not just by providing a black box that they can use in their usual algorithms. I think there are things that we do in supervised deep learning, or rather in deep learning, that can be useful in sort of rethinking reinforcement learning. So one example: one thing I really like to think about is credit assignment. In other words, how do different machine learning algorithms figure out what the hidden units are supposed to do, what the intermediate computations or the intermediate actions should be? This is what credit assignment is about. And backprop is the best recipe we currently have for doing credit assignment. It tells the parameters of some intermediary should change so that the cost much later—hundred steps later if it's a recurrent net—should be reduced. So we could probably use some inspiration from backprop and how it's used to improve reinforcement learning.

Yoshua

其中一个线索是:当我们做监督反向传播时,我们并不预测期望损失然后最小化它(期望是对正确类别的不同实现取平均)。我们不这么做。但人们在强化学习中正是这样做的:他们学习一个评论家或 Q 函数,即未来奖励或未来损失的期望值(在我们的情况下,可能是给定输入时正确答案的负对数概率),然后通过它反向传播或用它来估计动作的梯度。相反,在监督学习中,我们进行信用分配时,使用的是这个 X 实际发生的那个正确类别的具体观测值。我们有 X,有 Y,我们用 Y 来调整我们的预测或动作。所以看起来强化学习也应该这样做。事实上,我们有一篇关于序列预测的论文就是类似的想法。这类工作处于结构化输出、强化学习和监督学习的交叉点。所以我认为,改变强化学习领域几十年来固有的思维框架有很大的潜在收益。强化学习领域的人,我的意思是,他们看待世界的方式与做神经网络的人不同。

One such cue is how, when we do supervised backprop, we don't predict the expected loss that we're going to have and then try to minimize it, where the expectation would be over the different realizations of the correct class. That's not what we do. But this is what people do in RL: they learn a critic or a Q-function, which is the expected value of the future reward or the future loss—in our case, that might be minus log probability of the correct answer given the input—and then they backprop through it or use it to estimate the gradient on the actions. Instead, when we do supervised learning, we do credit assignment where we use the particular observations of the correct class that actually happened for this X. Right, we have X, we have Y, and we use the Y to figure out how to change our prediction or action. So it looks like this is something that should be done for RL. And in fact, we have a paper on something like this for sequence prediction. This is the kind of work which is at the intersection of dealing with structured outputs, reinforcement learning, and supervised learning. So I think there's a lot of potential benefit of changing the frame of thinking that people in RL have had for many decades. People in RL, I mean, not thinking about the world with the same eyes as people doing neural nets.

从符号 AI 到深度学习 From Symbolic AI to Deep Learning

Yoshua

他们一直以可枚举的离散状态来思考世界,并证明这些算法的定理,这些定理本质上依赖于收集足够的数据来覆盖所有可能的状态配置及其对奖励的相应影响。当你开始用神经网络和深度学习来思考时,处理问题的方式就非常非常不同了。

They've been thinking about the world in terms of discrete states that could be enumerated and proving theorems about these algorithms that depend on essentially collecting enough data to fill all the possible configurations of the state and their corresponding effects on the reward. When you start thinking in terms of neural nets and deep learning, the way to approach problems is very, very different.

理解世界的重要性 Why Understanding the World Matters

Yoshua

让我继续谈谈无监督学习以及它为何如此重要。如果你看看我们当前机器学习算法所犯的错误,你会发现我们的神经网络只是在作弊——它们用错误的线索来试图给出答案,有时有效,有时无效。那么,我们如何让我们的模型更聪明、犯更少的错误呢?唯一的解决方案是确保这些模型真正理解世界是如何运作的,至少达到人类的水平,以获得人类水平的准确性和性能。对于你试图解决的特定问题,可能并不需要这样做。所以,也许我们可以在不完全理解单词含义的情况下进行语音识别——这大概没问题。但对于其他任务,尤其是那些涉及语言的任务,我认为拥有真正理解世界运作方式的模型将变得非常重要。

Let me continue about unsupervised learning and why this is so important. If you look at the kinds of mistakes that our current machine learning algorithms make, you find that our neural nets are just cheating—they're using the wrong cues to try to produce the answers, and sometimes it works, sometimes it doesn't. So how can we make our models smarter and make fewer mistakes? The only solution is to make sure that those models really understand how the world works, at least at the level of humans, to get human-level accuracy and human-level performance. It may not be necessary to do this for a particular problem you're trying to solve. So maybe we can get away with doing speech recognition without really understanding the meaning of the words—probably that's going to be okay. But for other tasks, especially those involving language, I think having models that actually understand how the world ticks is going to be very, very important.

解耦变化因素 Disentangling Factors of Variation

Yoshua

那么,我们如何让机器理解世界是如何运作的呢?过去十年我经常谈论的一个想法是解耦变化因素。这与模式识别和计算机视觉中一个非常古老的概念——不变性——有关。不变性的思想是,我们希望计算或设计(最初是设计,现在是学习)图像中那些对我们不关心的因素保持不变的特征。例如,我们想做物体识别,所以我们不关心位置或方向。我们希望拥有平移不变、旋转不变、缩放不变等特征。这就是不变性的含义。但是,当你从事无监督学习,试图理解世界如何运作时,仅仅提取不变特征是不够的。我们真正想做的是提取所有解释数据的因素。所以,如果我们做语音识别,我们不仅要提取音素,还要弄清楚这是什么类型的声音,可能是谁的声音,什么样的录音条件,什么样的麦克风,是在车里还是在外面——所有这些你通常试图去除的信息,你实际上想要了解,这样你就能泛化到新的任务。例如,也许第二天我不会让你识别音素,而是识别谁在说话。更一般地说,如果我们能够解耦解释数据如何变化的因素,一切都会变得容易,特别是如果这些因素可以以独立的方式生成。为了生成数据,我们可以学习回答一个只依赖于一两个因素的问题,并基本上消除所有其他因素,因为我们已经将它们分开了。所以很多事情变得简单得多。

So how could we have machines that understand how the world works? One of the ideas that I've been talking a lot about in the last decade is that of disentangling factors of variation. This is related to a very old idea in pattern recognition and computer vision called invariance. The idea of invariance was that we would like to compute or design—initially design and now learn—features of the image that are invariant to the things we don't care about. For example, we want to do object recognition, so we don't care about position or orientation. We would like to have features that are translation invariant, rotation invariant, scaling invariant, etc. That's what invariance is about. But when you're in the business of doing unsupervised learning, trying to figure out how the world works, it's not good enough to extract invariant features. What we actually want to do is to extract all of the factors that explain the data. So if we're doing speech recognition, we want not only to extract the phonemes, but also to figure out what kind of voice that is, maybe who it is, what kind of recording conditions, what kind of microphone, is it in a car, is it outside—all that information which you're trying to get rid of normally, you actually want to learn about, so that you'll be able to generalize even to new tasks. For example, maybe the next day I'm not going to ask you to recognize phonemes but recognize who's speaking. More generally, if we're able to disentangle the factors that explain how the data varies, everything becomes easy, especially if those factors can be generated in an independent way. To generate the data, we can learn to answer a question that only depends on one or two factors and basically eliminate all the other ones because we've separated them. So a lot of things become much easier.

多级抽象 Multiple Levels of Abstraction

Yoshua

还有一个概念,即多层次抽象的概念,这当然是我们用深度学习所做工作的核心。这个想法是,我们可以拥有世界的表征、数据的表征,作为涉及因素或特征的描述,并且我们可以在多个层次上做到这一点,层次越抽象。所以,如果我在看一份文档,有像素层、笔画层、字符层、单词层,也许还有单个单词的含义层。我们实际上有系统可以从扫描文档中识别所有这些层次。当我们上升到更高层次时,我们不确定正确的层次是什么,但显然必须有含义的表征——不仅仅是单个单词,而是单词序列和整个段落:故事是什么?为什么以这种方式表征事物很重要?因为更高层次的抽象是更容易做事、更容易回答问题的表征。更语义化的层次意味着当信息以这种方式表征时,我们可以非常容易地对其采取行动。如果你考虑单词层,如果我提取了单词,检查文档中是否包含某个特定单词要比从像素层去做容易得多。如果我必须回答一个关于某人意图的复杂问题,在单词层工作是不够高的——不够抽象。我需要在更抽象的层次上工作,在这个层次上,同一个概念可能用许多不同类型的单词来表示,许多不同的句子可能表达相同的含义,而我希望能够捕捉到那个含义。

There's another notion, which is the notion of multiple levels of abstraction, which is of course at the heart of what we're trying to do with deep learning. The idea is that we can have representations of the world, representations of the data, as a description that involves factors or features, and we can do that at multiple levels, with more abstract levels. So if I'm looking at a document, there's the level of the pixels, the level of the strokes, the level of the characters, the level of the words, and maybe the level of the meaning of individual words. We actually have systems that will recognize from a scanned document all of these levels. When we go higher up, we're not sure what the right levels are, but clearly there must be representations of the meaning—not just of single words but of sequences of words and the whole paragraph: what's the story? And why is it important to represent things in that way? Because higher levels of abstraction are representations from which it is much easier to do things, to answer questions. The more semantic levels mean we can very easily act on the information when it's represented that way. If you think about the level of words, it's much easier to check whether a particular word is in the document if I have the words extracted than if I have to do it from the pixels. And if I have to answer a complicated question about the intention of the person, working at the level of words is not high enough—it's not abstract enough. I need to work at a more abstract level, in which maybe the same notion could be represented with many different types of words, where many different sentences could express the same meaning, and I want to be able to capture that meaning.

连接 AI 与神经科学 Bridging AI and Neuroscience

Yoshua

我最后一张幻灯片是关于我过去几年一直在研究的内容,它与无监督学习有关,但更广泛地涉及我们如何构建智能机器与人类或动物智能之间的关系。你可能知道,这最初是研究神经网络的关键动机之一。直觉是这样的:我们希望存在一些简单的关键原则来解释是什么让我们拥有智能,如果我们能发现这些原则,当然我们也能构建智能机器。这就是为什么神经网络最初受到我们从大脑中了解的事物的启发。我们不知道这是否正确,但如果正确,那就太好了。我的意思是,这将使理解大脑如何工作以及构建人工智能变得容易得多。所以,在试图弥合这一差距的过程中——因为目前我们最好的神经网络与大脑中发生的事情非常非常不同,从与神经科学家的交流中我们可以看出——特别是反向传播,尽管从机器学习的角度来看它非常强大,但完全不清楚这样的东西如何在大脑中实现。所以我一直在探索这一点,并试图看看我们如何泛化这些信用分配原则,以便也能进行无监督学习。我们取得了一些进展。几年前,我提出了一个叫做目标传播的想法,这是一种将反向传播泛化到为每一层传播目标的方法。当然,这个想法有很长的历史。最近,我们一直在研究如何在深度循环网络中实现梯度估计,这些网络执行一些计算,最终得到的参数更新对应于预测误差的梯度下降。

The last slide I have is something that I've been working on in the last couple of years, which is connected to unsupervised learning, but more generally to the relationship between how we can build intelligent machines and the intelligence of humans or animals. As you may know, this was one of the key motivations for doing neural nets in the first place. The intuition is this: we are hoping that there are a few simple key principles that explain what allows us to be intelligent, and that if we can discover these principles, of course we can also build machines that are intelligent. That's why neural nets were inspired by things we know from the brain in the first place. We don't know this is true, but if it is, then it's great. I mean, this would make it much easier to understand how brains work as well as building AI. So in trying to bridge this gap—because right now our best neural nets are very, very different from what's going on in brains, as far as we can tell by talking to neuroscientists—in particular, backprop, although it's kicking ass from a machine learning point of view, it's not clear at all how something like this would be implemented in brains. So I've been trying to explore that and also trying to see how we could generalize those credit assignment principles that would come out in order to also do unsupervised learning. We've made a little bit of progress. A couple of years ago, I came up with an idea called target prop, which is a way of generalizing backprop to propagating targets for each layer. Of course, this idea has a long history. More recently, we've been looking at ways to implement gradient estimation in deep recurrent networks that perform some computation that turn out to end up with parameter updates corresponding to gradient descent in the prediction error.

神经科学与机器学习 Neuroscience and Machine Learning

Yoshua

这看起来像是神经科学家一直在观察但尚未完全理解的现象,称为 STDP(脉冲时间依赖可塑性)。我没有时间深入探讨,但我认为将神经科学与机器学习和神经网络重新连接起来的整个领域,已经被机器学习社区有些遗忘了,因为我们都忙于构建自动驾驶汽车。但我认为从长远来看,这是一个非常令人兴奋的前景。

that looked like something that neuroscientists have been observing and don't completely understand called STDP spike timing-dependent plasticity. So I don't really have time to go into this, but I think this whole area of reconnecting neuroscience with machine learning and neural nets is something that has been kind of forgotten by the machine learning community because we're all so busy building self-driving cars. But I think over the long term, it's a very exciting prospect.

脑网络与深度网络 Brain Networks vs Deep Nets

Host

精彩的演讲。我的问题是关于复杂网络研究结果之间缺乏重叠,比如当他们研究大脑网络时。有很多论文讨论枢纽的出现,特别是关于神经元间网络度分布的论文。但当你观察深度网络中所谓神经元的度分布时,并没有看到枢纽行为的出现。那么你认为为什么会有这样的缺乏重叠?

Great talk. My question is regarding the lack of overlap between the results in the study of complex networks, like when they study the brain networks. There are a lot of publications that talk about the emergence of hubs, and especially a lot of publications on the degree distribution of the interneuron network. But when you look at the degree distribution of the so-called neurons in deep nets, you don't get to see the emergence of hub behavior. So why do you think there's such a lack of overlap?

Yoshua

我认为枢纽的故事可能没那么重要。首先,我确实认为要理解大脑,我们必须理解大脑中的学习。如果我们看看我们在机器学习和深度学习中的经验,虽然架构确实重要,但更重要的是让我们能够训练这些东西的一般原则。所以我认为对连接性的研究是有意义的;你不能有一个全连接的东西,并且有一种方式可以用少量跳数从任何地方到达任何地方是一个合理的想法。但我认为它并不能解释太多。核心问题是大脑如何学习复杂的事物,而且它比我们当前的机器做得更好,然而我们甚至不知道一种至少合理符合生物学的简单训练大脑的方法。

I think the hub story is maybe not that important. First of all, I really think that in order to understand the brain, we have to understand learning in the brain. And if we look at our experience in machine learning and deep learning, although the architecture does matter, what matters even more is the general principles that allow us to train these things. So I think the study of connectivity makes sense; you can't have a fully connected thing, and having a way to have a short number of hops to go from anywhere to anywhere is a reasonable idea. But I don't think it really explains that much. The central question is how does the brain learn complicated things, and it does it better than our current machines, yet we don't know even a simple way of training brains that at least fits the biology reasonably.

维度灾难 Curse of Dimensionality

Host

是否有任何现实世界的例子,其中维度灾难仍然是神经网络的问题?

Are there any real-world examples where the curse of dimensionality is still a problem for neural nets?

Yoshua

任何时候它不工作的时候。从泛化的角度来看,Andrew 昨天告诉我们,我们可以添加更多的数据和算力,对于某些问题这可能有效。但有时我们需要的数据量对于我们当前的技术来说太大了。我们还需要开发算法和架构,以便能够学习世界是如何组织的,从而以更强大的方式泛化。这是必要的,因为我们想要解决的任务涉及许多变量,这些变量有指数级的可能值,这本质上就是维度灾难。所以它几乎面临着我们周围所有的人工智能问题。

Anytime it doesn't work. From a generalization point of view, Andrew told us yesterday that we can just add more data and computing power, and for some problems this may work. But sometimes the amount of data you would need is just too large with our current techniques. We'll also need to develop the algorithms and the architectures to be able to learn about how the world is organized, so that we can generalize in much more powerful ways. That is needed because the kind of tasks we want to solve involve many variables that have an exponential number of possible values, and that's the curse of dimensionality essentially. So it's facing pretty much all of the AI problems around us.

多智能体强化学习与迁移学习 Multi-Agent RL and Transfer Learning

Host

关于多智能体强化学习的问题。如果你假设所有汽车永远无法预测所有可能的潜在事故,那么迁移学习之类的潜力如何?

Question on multi-agent reinforcement learning. If you assume all cars can never predict all possible potential accidents, what about the potential for transfer learning and things like that?

Yoshua

我举了一个人类学习开车的例子。我们也许可以利用数百万使用自动驾驶汽车的人,进行纠正,其中一些人发生事故,从而在没有真正解决难题的情况下取得一些进展。这可能会持续一段时间,我们应该这样做。我们绝对应该使用目前拥有的所有数据。如果你看看我们在语音识别或语言建模中使用的数据量,它远远超过任何人类一生中实际看到的数据。所以我们做错了什么,我们可以用更少的数据做得更好。婴儿和孩子们可以做到。

I was giving an example of a single human learning how to drive. We might be able to use the millions of people using self-driving cars, correcting and some of them making accidents, to actually make some progress without actually solving the hard problems. This is probably going to be doing for a while, and we should do it. We should definitely use all the data we have currently. If you look at the amount of data we're using for speech recognition or language modeling, it's hugely more than what any human actually sees in their lifetime. So we're doing something wrong, and we could do better with less data. Babies and kids can do it.

视频与序列数据 Video and Sequential Data

Host

如今有很多关于视频的工作,这主要是计算瓶颈。

There's quite a bit of work on video these days, it's mostly a computational bottleneck.

Yoshua

嗯,请记住我们几年前才刚开始做这个。我不认为这是一个根本性问题。如果我们能在静态图像上做得很好,同样的原则将允许我们处理序列。我们已经在做序列性的事情,例如,一个有趣的项目是用循环网络等进行语音合成,或者卷积网络等等。所以更像是我们不确定如何很好地训练它们,以及如何发现这些解释性因素等等。

Well, keep in mind we're doing this just a couple of years ago. I don't think it's a fundamental issue. If we're able to do it well on static images, the same principles will allow us to do sequences. We're already doing sequential things, for example, an interesting project is speech synthesis with recurrent nets and stuff like that, or convolutional nets whatever. So it's more like we're not sure how to train them well and how to discover these explanatory factors and so on.

人类与机器学习 Human vs Machine Learning

Host

我有一个可能非技术性的问题。我们已经看到了人类错误率与算法错误率在我们习惯的事情上的对比,比如图像识别、语音识别。是否有任何实验,我们尝试训练人类做我们不习惯的事情,同时训练机器?那么算法的能力如何?

I have a question maybe non-technical. We have seen the human error rates versus the algorithm error rates for things we are used to, like image recognition, speech recognition. Are there any experiments where we try to train humans for things we are not used to, and train the machine at the same time? So how capable are algorithms?

Yoshua

我不知道,但我确信目前在这种事情上人类会完胜机器。人类能够从很少的例子中学习新任务或新概念。我们知道,为了让机器做得同样好,它们只需要更多的常识,更多的关于世界的通用知识。这就是让人类能够从少量例子中快速学习的原因。

I don't know, but I'm sure the humans would beat the hell out of the machines for now for this kind of thing. Humans are able to learn a new task or new concepts from very few examples. And we know that in order for machines to do as well, they just need more sort of common sense, more general knowledge of the world. This is what allows humans to learn so quickly on a few examples.

参数空间中的局部极小值 Local Minima in Parameter Space

Host

你展示的实验数据显示,许多局部最小值或鞍点具有相似的性能。这些局部最小值在参数空间中是广泛分离的还是彼此接近的?

You presented experimental data showing that lots of local minima or saddle points have similar performance. Are these local minima widely separated in parameter space or are they close by?

Yoshua

这是个好问题。一个相关的问题是:一旦你声称网络有很多局部最小值,这是否意味着你可以压缩网络并用更少的参数表示它?也许可以。对于你的第一个问题,我们有一些可追溯到 2009 年的实验,我们试图在二维空间中可视化训练轨迹。这是一篇由我以前的博士生 Dumitru Erhan 作为第一作者的论文,我们想看看不同的轨迹取决于你从哪里开始,最终会到哪里。它们最终是在同一个地方还是都去了不同的地方?结果发现它们都去了不同的地方。所以局部最小值的数量远远大于我们尝试的轨迹数量,比如 500 或 1000。它大得多,以至于没有两个随机初始种子最终彼此接近。所以看起来有大量的局部最小值,这与存在指数级数量的理论一致。但好消息是,如果你有一个大型网络,它们在成本方面都是等价的。我不确定压缩。有很多方法可以压缩这些网络;有很多冗余。由于编号存在冗余,比如你可以翻转所有,把这个单元放在这里,等等。但我认为这不是重点。

That's a good question. A related question is: once you claim the network has lots of local minima, does that suggest you could compress the network and represent it with far fewer parameters? Maybe so. For your first question, we have some experiments dating from 2009 where we tried to visualize in 2D the trajectories of training. This is a paper first authored by Dumitru Erhan, a former PhD student with me, where we wanted to see how different trajectories end up depending on where you start. Do they end up in the same place or do they all go to a different place? It turns out they all go to a different place. So the number of local minima is much larger than the number of trajectories we tried, like 500 or a thousand. It's so much larger that no two random initial seeds end up near each other. So it looks like there's a huge number of local minima, which is in agreement with the theory that there's an exponential number of them. But the good news is they're all kind of equivalent in terms of cost if you have a large network. I'm not sure about compression. There are many ways to compress these networks; there's a lot of redundancy. There are redundancies due to the numbering, like you could flip all, take that unit put it here, and so on. But I don't think that's the main point.

数据效率与世界模型 Data efficiency and world models

Host

你会从中获得大量信息。我们讨论过深度学习的主要优势之一是它能处理大量数据。但你之前提到,我们还需要捕捉人类用少量数据工作的能力。我们之所以能用更少的数据工作,是因为我们首先从大量数据中学习了关于世界的一般知识,对吧?那么,我们如何调整神经网络,使其进入这种新的少数据范式呢?

You're going to gain a lot of bits from that. So we've talked about one of the main advantages of deep learning: it can work with lots of data. But you were mentioning before that we also need to capture the ability of humans to work with few data. The reason we're able to work with fewer data is because we have first learned from a lot of data about the general knowledge of the world, right? So how can we adapt neural networks to bring us to this new few-data paradigm?

Yoshua

我们必须在无监督学习上做得更好,那种真正能发现关于世界解释的学习。我是这么认为的。

We have to do a lot better at unsupervised learning, of the kind that really discovers explanations about the world. That's what I think.

结束语 Closing remarks

Host

再次感谢大家。在结束这次研讨会之前,先宣布一件事:你们可能还记得昨天卡尔邀请了所有女性参加一个非正式晚餐。就在我们结束后,外面马上开始。所以,在结束之前,我想感谢今天和昨天的所有演讲者。我想大家都欣赏他们的演讲。再次感谢大家,也感谢所有与会者。我觉得这是一个非常愉快的周末。希望你们喜欢。

Let's say thank you again. So before we stop this workshop, first an announcement: you might remember yesterday Carl invited all the women here for an informal dinner. It's going to be right outside right now after we close. So before we close, actually I'd like to thank all the speakers today and yesterday. I think everybody appreciated their talks. So thanks again all of you, and thanks to all the attendants. I think it was a very nice weekend. Hope you enjoyed.

互动版:逐字朗读 + 针对本期提问 →