所以我想我们直接开始演讲。我认为人们已经意识到深度学习模型取得了巨大的实证成功。这包括在不同游戏中的成功,以及在视觉、语言和语音领域的成功。但是,深度学习模型中存在一个巨大的谜团。深度学习模型是如此……我的意思是,如果你问那些从事深度学习的人,他们会说:“哦,我只是拟合了一个非常大的非线性变换,从输入到输出,对吧?”然而,这种变换实际上是如何工作的,仍然是一个巨大的黑箱。因此,在演讲的第一部分,我将谈谈我们最近尝试理解深度学习训练的一些工作。
在我的观点中,要理解深度学习是如何工作的,有两个组成部分。首先是表达能力,即神经网络在表示数据方面的表达能力。我认为有一篇著名的论文表明,神经网络是通用近似器,你只需要一个隐藏层,但使用指数级数量的节点,就可以近似任何种类的任意分布。这是第一部分。这基本上给了我们信心,如果你的算法足够聪明,你实际上可以学习神经网络。
第二部分,即我们如何训练以及如何理解深度学习,是通过优化。在这里,我们基本上关注给定训练数据量的情况下,如何训练模型,使其达到非常小的训练误差。在这一部分,有不同的研究方向,例如研究梯度是消失还是爆炸,随机梯度下降(SGD)或梯度下降(GD)是否能达到全局最优,以及收敛速度有多快。最后,还有一个方向是,即使我们获得零训练误差或非常小的训练误差,我们要了解这些训练模型的泛化性质是什么。
这是深度学习中的主要问题之一。因为我们都知道,如果使用支持向量机(SVM)进行训练,或者使用提升算法(Boosting)等其他方法处理任意数据,你总是可以找到零训练误差的解。但问题是它的泛化能力如何。在这次演讲中,我将谈谈我们最近的一项工作。我们从监督学习开始,在这种学习中,你有一个数据集,网络基本上会取数据集的输入,并尝试输出一个点,使得这个点与来自数据集的标签y相似。
但是,我们实际上可以用学生-教师网络来替换这个数据集。假设你有一个教师网络,它具有固定的参数,这些固定参数基本上是一个黑箱,你无法访问它。而学生网络则试图从教师网络的输出中学习。我们之所以能做到这一点,从某种意义上说是因为网络的表达能力。因为你可以找到一个能很好地解释数据集的网络。那么,希望你可以用那个教师网络来替换数据集,并研究训练过程以及泛化性质。
人们可能会问,为什么我们要研究这种学生-教师设置?我认为从我刚才提到的三点来看,我们可以通过学生-教师设置回答其中三个问题。首先,从表达能力方面,我们知道存在一个能很好地解释数据的教师,这基本上为你提供了为什么教师-学生设置应该有效的理论基础。其次,如果你使用教师-学生设置,那么你可以通过比较学生神经元与教师神经元来研究非常精细的动态行为。这基本上为你在尝试学习时提供了额外信息,帮助我们寻找有趣的属性。
最后是内部泛化。如果我们能证明在训练后,学生实际上收敛到一个与教师对齐的解,那么这实际上会给你关于泛化的提示。因为如果学生不仅学习了教师的输出,还学习了教师的内在权重结构,那么我们可以预期,对于未知数据,教师和学生的输出将是相同的。这就是教师-学生设置的一个悠久历史。
早在1995年,Sard和Solla发表了一篇关于软委员会机器中在线学习的论文,他们已经研究过这种设置,但仅限于单层可训练参数的情况。在这种情况下,基本假设是将输入维度设为无穷大,这被称为热力学极限。在这些情况下,你会看到有趣的属性。例如,如果你进一步假设非线性之前的激活是高斯分布的,那么你实际上可以通过写出解析形式来解决问题。你可以以解析形式写下动态过程,这些动态过程可以为你提供关于教师和学生如何相互作用的深刻见解。
在某些情况下,学生的节点实际上可以专门化,被证明专门化于教师节点。但这种专门化基本上是通过局部线性化分析得出的。在这次演讲中,我将谈谈这项工作的扩展,这是我们最近一直在做的一项工作。在这里,我们不是使用单层教师,而是尝试使用多层教师以及多层学生。学生的网络在参数方面是过参数的,即它在每一层的参数都比教师网络多。我们仍然使用L2范数。
在这种分析中,我们只考虑有限输入维度,因此更现实。而且,这种分析应该适用于轻微过参数的情况,这里没有疯狂的优化。我们想要提出的主要问题是,对于这个过参数的学生网络,如果我们训练网络直到训练过程中达到非常小的梯度,这种非常小的梯度是否会给学生和教师之间带来对齐?如果这是真的,那么如果训练误差很小,这可能会导致良好的泛化。所以我们正试图朝这个方向再迈进一步。
在此之前,我将介绍一些非常简单的符号。这里有一些符号。我们有L1、L和L-1层,权重是W,基本上……
这两个权重矩阵之间的差异。通过将同一层不同层的激活向量累积在一起,我们得到激活向量和梯度向量。因此,我们拥有两个行向量,代表同一层的两个激活状态。基于所有这些符号,权重更新规则非常简单。它本质上是底层(第 l-1 层)的激活与从顶层发送下来的梯度之间的乘积,然后对输入 x 取期望。对于梯度下降法,期望是对整个数据集取的;而对于随机梯度下降法,期望是对一个批次(batch)取的。
为了进行分析,我们首先可以建立一个引理,该引理实际上确立了学生梯度与教师激活以及学生激活之间的关系。这一结论适用于任意深度的神经网络。你基本上可以从最顶层开始,然后从顶层一直到底层进行数学归纳法证明。这是一个有趣的观察,我们可以利用它来展示对齐现象的发生。
这里,A 和 B 是两个分段常数矩阵,f 和 f 分别表示激活函数,其中 f 是教师的激活,在整个训练过程中保持不变,而 f 是该层学生的激活,会在训练过程中发生变化。但整个这一关系在整个训练过程中都成立。
在此之后,我们可以证明在最低层教师和学生之间会出现对齐。但在得出这一结论之前,我们需要对不同的概念进行定义。首先,什么是“对齐”?最低层的对齐可以在输入空间中进行可视化。在这个输入空间中,每个点代表一个输入数据点。如果这两个权重是对齐的,基本上意味着它们指向的方向相同。或者说,在数学上,存在一个参数 gamma,使得 wj 等于 gamma 乘以 wk,其中 gamma 是一个正数。
这是一个非常简单的对齐定义。我们还需要一个“观测”的定义,这在接下来的几张幻灯片中是必要的。在观测的定义中,如果教师节点 j 被学生节点 k 观测到,这基本上意味着教师节点的边界与学生节点 k 的激活区域有非零交集。这是一个非常简单的定义。
接下来,我要讨论假设,即哪些假设会导致这一结论。第一个假设是:你有一个区域,该区域内有许多数据点。我们基本上假设该区域内有无限量的数据点。我们仍在研究有限数据样本的情况。你可以拥有任意大小的区域,不需要是矩形或凸区域,甚至可以是任意不连通的区域。但关键在于,为了证明有效,该区域必须具有内部空间。
你还需要对教师网络做出假设。显然,你无法重构任意教师。例如,如果所有相关节点在训练集中都“死亡”(即未激活),那么就不可能重构出 w1 和 w2*。这是不可能的。因此,我们需要做出以下两个假设:首先,在最低层,存在不同的教师节点,即它们指向不同的方向,没有完全重叠。这可以通过将所有相同的教师节点合并来 trivially 满足。
其次,教师的边界必须在数据集中可见。这意味着在数据集中,至少存在一部分区域位于教师的负侧,另一部分区域位于教师的正侧。在完成所有这些设置后,我们可以说:给定任何教师节点 j,只要它被观察者 k 观测到,那么必然存在一个与学生节点 k' 与之对齐。这基本上就是主要的论点。
这里是在损失层。如果梯度为零。目前我说梯度为零。人们可能会问,如果梯度很小呢?那会发生什么?我将在接下来的几张幻灯片中讨论这一点。但目前,让我们假设训练集中所有点的梯度为零,并且隐藏层所有输入的梯度也为零。如果在这种情况下,教师节点 j 被学生节点 k 观测到,那么它将实现对齐。
为什么会这样?这里有一个简单的证明概要。首先,由于观察者的输入梯度也为零,根据该引理,观察者的梯度实际上可以表示为教师激活的线性组合减去学生激活的线性组合。当我们考虑位于节点 k 激活区域内的点时,这一组合为零。
如果这是真的,那么由于向量是线性独立的(因为它们指向不同的方向),你可以证明它们彼此线性独立。这基本上意味着教师方向的系数必须为零。这意味着什么?这意味着如果教师的系数非零,必须有一个学生与教师配对,使得它们的组合系数为零。
由此,你可以看出为什么过投影(over-projection)有帮助,因为中间层有更多的节点,它们将充当更多的观察者。只要教师节点被一个学生观测到,该定理就会适用。有问题吗?是的,是的。正如我所提到的,目前它是无限的,即基于区域。是的,我们正在研究有限集合的情况。因为无限情况的证明是基于反证法的。如果这不是真的,那么区域内将存在一个具有更高梯度的数据点。好的,如果是有限的,那么……如果你愿意,我可以解释一下它是如何证明的,这样你可能能获得更深入的见解。我有三个……
幻灯片涉及有限集。如果你愿意,我认为这不会是指数级的,应该是多项式级别的。好的,所以我稍后会讨论这一点。如果大家对细节感兴趣,我会详细讲解。那么接下来会发生什么呢?这里有一些例子展示了这种情况。这是一个简单的二维环境和二维实验示例。这里有两条由粗线表示的教师网络,而由虚线表示的是一批初始的学生网络边界。经过几次迭代后,你会发现一批学生网络收敛到了教师网络,还有另外两个学生网络实际上与任何教师网络都不对齐,但有趣的是,它们的输出权重为零或非常小。
基本上,这展示了如果有一个学生网络与任何教师网络都不对齐会发生什么。在这个框架下这是可能的,因为我们只说对于每个教师网络,至少有一个学生网络会与它对齐。但是,确实存在一些学生网络不与任何教师网络对齐,它们可能与任何随机区域对齐。然而,我们也可以证明,对于这些未对齐的学生网络,它们对输出的贡献为零。
这是另一条曲线,展示了这种对齐情况。这里的每个节点代表一个学生节点,横轴基本上显示了该特定学生节点与其最佳相关教师节点的归一化相关性。纵轴显示了扇出权重的范数。你可以看到这是一个L形的曲线,这意味着学生节点要么与任何事物都不相关,但其扇出权重很小;要么学生节点与某些教师节点相关,且其扇出权重很大。
你可以用多种形状展示这一点,适用于多种过参数化情况。例如,10倍过参数化。你也可以在噪声情况下展示这一点。我认为这更贴近现实情况,因为如果你用有限的时间进行训练,那么在有限时间内你实际上不会得到零梯度。但在无限样本的情况下,你仍然可以看到这种近似对齐。
这种代理对齐是通过展示存在一个教师网络,且存在一个学生网络与该教师网络足够接近来体现的。它们之间的角度很小,数量级为 epsilon 的 1/d 次方,且偏置相对于 epsilon 也很小。如果 epsilon 很小,那么这两者都会趋近于零,从而实现完美对齐。如果大家对证明细节感兴趣,我会展示一些内容。
是的,因为这仅在下层对齐,而不在顶层对齐。所以在两层设置中确实如此,但在多层设置中,我还不确定。好的,我会继续。那么如何证明这一点呢?如果我们从噪声开始,大致思路如下:首先,这是无限样本的情况。如果 Wj 是某个方向,比如教师方向,那么如果该方向与其他某些方向对齐,那就没问题。
但假设 Wj 不与任何方向对齐,那么对于每个 wj',边界基本上会与 Wj 的 ReLU 边界的局部相交,且由于方向差异越大,交集越小,因此交集在体积上很小。假设没有方向与方向 j 对齐,那么这个交集基本上只占据该区域体积的一小部分。因此,至少存在一个节点远离所有这些小的区域。
这意味着有一个点位于节点 j 的边界内,但不在任何其他节点的边界内,并且距离它们很远。既然这是真的,那么你可以选择该区域内的三个邻近点,使得除了节点 j 之外的所有神经元,这三个点都位于同一侧。但这三个点除了靠近节点 j 的边界外,没有其他边界。你可以证明这在梯度大小上会产生矛盾。清楚了吗?
好的,这是第一点,关于有限样本情况。我认为我们还没有将其放入档案,但有一些非常简单的分析。在有限样本情况下,比如存在一个教师边界,你基本上在那里绘制样本,这些样本必须独立于教师,否则就是作弊。但如果样本数量较少,那么在该区域内会有样本。
这种样本数量与 eta 成反比。如果 eta 很小,样本量就会很大。但只要采样足够大,例如采样数量为 eta 的 -1/d 次方,那么在该区域内就会有常数数量的 n_eta。这是第一点。第二点是在该区域内,我基本上进行了旋转,使平面正对着你。
在该区域内,你会用到折扣论证。折扣论证基本上是说,如果在局部 ej 内有有限样本,且在该区域内,那么每个子区域覆盖的体积空间比例也很小。因此,如果你计算 nj'(每个小区域内的数据点数量)与接近局部 j 的总点数之比,这个数量在期望上与这两个体积的比率成正比。
如果有更多的样本,这个界限就会更紧,对吧?如果所有概率分布的总和小于零,就会存在像这样一个数据样本发生这种情况。人们可能会想知道,需要多少样本才能基本达到这个更紧的界限?我认为这基本上是很直观的。发生的事情是,你首先要把所有样本放在区域内,然后检查这两个“眼睛”之间的完整截面,里面有多少数据点?是的。因为这种区域有点像规则区域,所以无论你在哪里,如果你有足够数量的样本,所需的样本数量不是指数级的。它只在这个投影空间内。清楚了吗?我可能需要更多解释。我不确定。我的幻灯片快用完了,无法对此进行解释,但这是目前正在进行的持续工作。好吧,如果没有问题,我们就进入下一张幻灯片。
对于接下来的幻灯片,我们基本上使用相同的方法进行多层对齐。对于多层对齐,会发生的情况是,由于这个 lambda 1,我们想要通过相同的逻辑在最低层进行对齐。这里的唯一区别是,而不是拥有 alpha 和 beta,你拥有 alpha x 和 beta x。并且你有这两个,根据引理它们是分段常数,你可以对每个区域应用相同的逻辑。这基本上就是展示它的方法。但我将跳过细节,这是我们可以用四层神经网络进行的实验之一。
如果你有四层神经网络作为教师,四层网络作为学生,那么你可以在每一层画出这个图,对吧?对于最低层,这里发生的情况是,经过几个 epoch 后会出现一个 U 形曲线。这个 U 形曲线在最低层非常清晰。但是,一旦最低层发生这种 U 形曲线,那么在最后一层,即第二层中,你会看到这种 U 形曲线同时发生,但比最低层慢。好吧,通过这一点,我们可能可以解释一些现象,我们可以解释我们从之前的论文中观察到的一些现象。
这里看到的非常有趣的事情之一是,神经网络架构或你的神经网络解决方案中实际上存在一个非常有趣的拓扑结构。两个局部解不能通过直线连接。你会看到误差方面有一个跳跃,但它们将通过线段连接。这实际上是一个非常有趣的现象,你可以看到,但这里有一个基于结果给出的解释。例如,假设你有两个学生解。这两个解在对齐方面具有不同类型的排列。所以,如果你直接用一条直线将这两个解连接起来,那么你会看到性能方面,即误差方面,会出现一个隆起。
然而,如果你进行三段线性插值,那么你将拥有误差较小或始终较小的线段,因为这三个权重都是零。所以你可以基本上将这些权重的方向更改为任意方向,而不会改变任何损失函数。然后,因为在第二步中,第一个节点和第三个节点具有相同的方向 w one star,那么你可以实际上交换它们的输出权重,而不会改变任何损失函数。最后,你基本上可以将 W one star 更改为任意位置,任意方向,不与任何类型的教师对齐,而不改变损失函数。所以你基本上拥有这种三段结构,并且你将拥有一条始终具有零或非常小损失函数的路径。
好吧,第二部分是训练动态。但在这里,我将稍微快一点,因为我们还有另一个组件要讨论。首先,临界点看起来很不错,但我们能通过 SGD 训练实现吗?我认为答案并不容易。我们为此做了一些实验。首先,我想定义什么是强教师,什么是弱教师。对于两层设置中的强教师,我们说强教师是指扇出权重较大且较小的情况。对于弱教师,扇出权重较小。
有一些幻灯片展示了强教师和弱教师的训练动态。我们初始化教师,使得最终权重对于教师零较大,而对于教师四,最终权重的范数较小。所以你会看到,对于每个学生,他们都会冲向非常强的教师零。但是对于弱教师教师四,基本上在很长一段时间内,你不会看到很多群体相关性,直到后来,当教师最终有学生收敛到教师四时。这是有趣的动态,但我不打算展示,我不打算展示那里的理论,因为这里我们基本上使用半经验、半理论的方法来研究这里发生的事情。
好吧,让我找找。对于未来方向,有几件事。首先,对于训练动态,什么是更好地理解它的方法?在有限样本情况下,我将展示有限样本情况的初步步骤。但我们看起来可能可以写出误差界限,但这仍然是正在进行的工作。还有一些有趣的问题,比如这个框架如何解释对抗样本等。好吧,这是演讲的第一部分。有问题吗?
如果没有问题,我将进入演讲的第二部分。第二部分更多涉及强化学习方面。所以我们想要理解神经网络在优先搜索中扮演的角色。这是与我的一位实习生和 Lixin 的联合工作。他是斯坦福大学的数学教授。我们都知道 AlphaGo 系列在性能方面取得了巨大成功。在 AlphaGo 中,发生的事情是我们使用许多颜色树搜索与神经网络。我们基本上从蒙特卡洛树搜索开始,当前的树,然后每次
当你想要探索空间中的新区域时,首先会在起始点运行策略网络。策略网络基本上会告诉你所有动作的偏好。随后,你通过迭代执行迷你蒙特卡洛树搜索,直到找到节点,然后调用价值网络。价值网络会告诉你状态的价值,并将该价值反向传播以更新所有统计信息。
传统的蒙特卡洛树搜索通常不使用策略价值网络,而是从所有动作的均匀分布开始,并使用随机 rollout 一直进行到底以获取解决方案。为了获得结果,使用该结果作为值来反向传播所有权重。但在 AlphaGo 论文中,他们展示了如果在蒙特卡洛搜索中结合策略和价值网络,将显著提高机器人的强度。
可以想象,在给定相同数量的训练样本的情况下,样本效率和搜索效率也会得到提高。为了分析这一点,我们尝试使用简单的 A* 模型来分析这种行为。对于该模型,我们仍然保留树结构,但不是统计每个节点的访问次数,而是将所有未探索的节点放入优先队列。
每次扩展时,我们优先扩展某个节点,并基本使用价值模型来找出需要扩展的节点。其次,在决定扩展哪个节点后,我们使用策略模型以某种顺序扩展节点,并重复进行此类操作。
使用这些 A* 模型,我们可以展示:如果价值函数的噪声随着树越来越深而退化,那么为了达到最优动作所需的样本数量以及所需的神经网络调用次数将会受到限制。在某些意义上,这甚至是多项式级别而非指数级别。
这里的符号表示:你拥有这棵树,k 基本上是分支因子。这里假设所有节点的分支因子相同。v 基本上是状态的真实值。真实值是不可见的,而是使用神经网络来预测该真实值 v。
这个真实值 v 并不一定是 v*,因为如果你评估的节点不在最优路径上,该真实值 v 会更小,这个差距被称为 delta。在真实值 v 和神经网络预测的值之间也存在差距,这个差距被称为 x_d。我们假设这是一个在深度 d 处均值为零、标准差为 sigma_d 的独立同分布随机变量。
注意,x_d 在每次调用神经网络时实例化一次,之后在整个过程中保持固定。因此,你不能通过在特定节点多次调用价值网络来获取真实值,这是不允许的,在实际设置中也是如此。
关键点在于 sigma_d 实际上随深度衰减。那么问题就是它应该衰减多少才能获得良好的解决方案。这基本上是一种随机树模型。如果你只使用价值网络,你可以尝试通过访问最优搜索路径中的路径以及大量的开销来绑定期望样本复杂度。
这种开销是因为你高估了价值函数,即当前价值估计器高估了真实价值函数。这基本上是所有这些高估值的总和,跨越整棵树,我们希望绑定这个值。为此,我们基本假设存在两个常数,涉及两个神经网络模型。
首先,我们考虑常数差距模型,其中存在一条最优路径,该路径具有 eta,eta 是一个大于零的值,而对于其余区域,所有 v 都是零。另一种建模神经网络价值函数分布的方法是,从当前节点的 V* 开始,但对于所有非最优路径,我们尝试减去 delta,这种减法将在非最优路径中跟随。
基本上,你得到的越低,值就越小。这里是主要结论:如果你只使用价值网络,样本复杂度可以绑定在该数量上。对于 c,存在一个指数 k 的 c 次方。因此,对于 k 的 c 次方,c 必须满足该条件。
如果每一层的饱和衰减速度快于 d 的平方根,那么我们可以看到,实际上可以获得多项式样本容量,因为 c 将是一个固定数字,不依赖于 d。你也可以对生成模型做同样的事情。在这种情况下,你也会看到导致多项式时间复杂度的非常相似的条件。
我们还对这些噪声模型进行了一些实验。在常数差距下,我们表明该算法在两种不同的噪声下比原始迷你蒙特卡洛树搜索稍好。在生成模型上,你也可以做同样的事情。人们可能会问,如果我们添加策略网络会发生什么?
策略网络可以被视为一组不同的神经网络,假设策略基本上是一个 softmax,即选择采取什么动作的软版本。策略网络的好处是,你可以在一次网络调用中获得所有策略的值,而不是拥有 k 个不同的网络调用来获取所有这些状态点的值函数。
这里我们假设,在采取动作后,真实值与从当前状态预测的策略网络预测值之间仍然存在差距。因此,你可以做的是,既然你有这个策略……
网络PSA,你可以首先对其进行排序,使其按降序排列。然后,你基本上检查策略与第一个预测概率以及案例概率之间的差距。如果这两者之间存在足够大的差距,你就可以开始扩展了。因为你知道,超过这个阈值后,期望值将会非常非常小,而那个路径不太可能是正确的探索路径。因此,你可以做的不是以k项开头,而是用这个复杂的公式替换k项,该公式表明在某些情况下可以减少k的探索。我们还进行了实验,表明与PUCT相比,这种方法仍然有效,但差距实际上并不大。
因此,我们表明PUCT可能具有在此建模过程中未被建模的有趣特征。所以,我们仍然稍微好一点,但这是一种潜在的更好。关于未来的工作,首先,我们要重新加入这些访问计数。在这个框架中,这里发生的情况是,我们在每个节点上不使用任何访问计数。我们基本上只是替换新值。我们将每个节点的旧值替换为你在该树下探索到的新值。
此外,我们还希望在真实的游戏和环境中的测试它,看看这个新算法是否有效。好的,谢谢。这就是演讲内容。