大家好,感谢大家来到这次演讲。我非常荣幸地欢迎田渊栋博士作为特别嘉宾在今天为我们部门做报告。几年前我在Facebook Research工作时就认识了田博士,他对我个人来说是一位极具启发性的研究者。我记得与他有过许多富有洞察力的对话。目前,他是Facebook AI Research的研究科学家兼经理。此前,他还曾在Google自动驾驶汽车团队工作。他于2013年获得卡内基梅隆大学博士学位,并从上海交通大学获得学士学位,巧合的是那也是我母校。他的工作触及了人工智能的许多重要方面,包括深度强化学习、多智能体学习以及深度学习模型的理论分析。你们中的一些人可能听说过这个Open Go项目,他是该项目的首席科学家和工程师。今天他将与我们分享他近期关于通过教师-学生架构理解深度学习模型的工作,我非常期待在这方面了解更多。在此,让我们欢迎田渊栋博士,请全神贯注地聆听他的分享。田博士,请你开始吧。谢谢沙伦的介绍。

以这种对角线方式的基本顺序进行。因此,如果使用线性分类器进行分类,你根本没有机会将正样本和负样本完美分开。对吧?为了避免这种情况,我们可以训练一个神经网络,使得决策边界实际上是弯曲的,从而基本上可以用完美的准确率将正负样本分开。

早在上世纪八十年代,人们就已经证明了神经网络是通用近似器,这意味着对于任何你可以想象的任意函数,如果拥有一个具有指数级隐藏神经元的两层神经网络,那么就存在一组参数,使得该网络能够拟合任何函数。这是早已证明且人们长期知晓的事实。

然而,仅有表达能力是不够的,因为有很多其他模型也具有相同的表达能力。例如最简单的最近邻算法,K近邻或最近邻也是非常强大的机器学习模型。如果在整个空间中填充指数级的样本点,那么对于带有标签的新数据,你保证能获得有界误差。

这是一个非常平凡但有趣的陈述:你可以总是得到表现很好的模型,确保对新数据的有界误差。但这需要指数级的样本复杂度,这是无法实现的。因此我们对深度模型如此感兴趣,因为它们似乎能用大量而非指数级的数据极好地工作,并能泛化到新数据集。

在泛化方面,我们思考的不仅是表达能力,还想知道零训练误差是否导致过拟合,或者更多参数是否导致过拟合。你基本上想看看在已经训练得很好的情况下,在新数据集上能取得什么性能表现。

在泛化和表达能力之间,有一个中间问题称为优化。我们知道模型能取得很好的性能且具有很强的表达能力,但我们能否达到那个状态?从一个有趣的起点开始,算法通过直觉改变参数直到收敛到某个局部极小值。

你需要证明这个局部极小值是好的,它不会遭受梯度消失或爆炸等问题。这就是我们要理解的深度模型工作的三个不同方面:表达能力、优化和泛化。

解决这个问题的一个非常传统的方法是监督学习场景。所谓监督学习,是指你有一个数据集,这基本上是一组预先收集的数据,包含输入x_i和标签y_i。你利用输入和输出来训练网络,使网络的行为符合你的期望。

这样做的好处是设置非常简单,每个人都知道并理解这一点:收集数据,用样本标签标记它们,然后在该数据集上训练模型。这就是全部了。但在本次演讲中,我将讨论一个略有不同的设置,即教师-学生架构。

这种设置有所不同:我们移除数据集作为老师,而是用一个具有固定参数的教师网络或神谕网络来替代。之所以能做到这一点,是因为神经网络具有很强的表达能力。对于任何数据集,都存在一个教师网络能够复现标签。

如果这样的教师存在,我们就放置一个教师在旁边,然后观察在这种新设置下训练过程会发生什么。教师-学生架构的好处有三点,分别对应之前的三个方面。首先关于表达能力:我们知道这里有一个函数即教师网络。

如果学生模型足够复杂,比老师更复杂,那么肯定能找到最佳解决方案。这基本上解决了表达能力的问题,而且教师现在作为规则模型供学生学习。在研究优化时,我们不仅关注损失随时间如何下降,还关注学生内部动态如何根据教师的内部权重变化。

通过比较教师网络,我们可以研究非常精细的动态行为。这很好,因为现在我们有更多内容可看、更多东西可检查,而不仅仅是盯着损失函数的曲线。最后,我在接下来的几页中关注的是如何实现泛化。

在教师-学生设置中,一个好处是教师实际上控制了输入输出映射。如果学生不仅学习了教师的输出,而且学生的权重也专门化或与教师对齐,那么我们可以期望泛化能力会更好。

如果学生实际上学到了教师的本质,那么在输入相同数据集时,学生预计会给出与教师一致且相同的标签。这实际上是一种解决泛化问题的有趣方式,不同于传统基于数据集的泛化方法。

教师-学生架构有着悠久的历史,这并非新鲜事物。如果你查看历史,会发现早在1995年就已经出现了非常简单的学生-教师设置。但这些论文并非发表在机器学习期刊上,而是发表在了《物理评论》等物理学刊物上。

在这种情况下,我认为物理学家们实际上试图……

理解事物时,人们尝试利用数学工具来深入探究深度神经网络的本质。然而在这种设定下,我们通常看不到ReLU(线性整流单元),因为ReLU是在深度学习时代兴起之后才被广泛采用的。因此,早期研究者们并不使用ReLU,而是主要采用高斯分布作为输入数据的基础假设。他们假定所有变量都遵循这一规律,并且认为输入的维度极高。在这种高维极限(zero dimension limit)的假设下研究者可以利用数学推导证明许多理论结论。

在这些早期模型中,分析通常仅局限于单层可训练参数层面。研究者使用非线性函数作为激活单元,例如高斯误差线性单元(GELU)等。之所以采用这种设定,是因为在高斯输入与非线性函数的组合下,数学上可以实现积分运算的解析解。拥有了解析解意味着研究者能够深入探讨教师-学生架构内部发生的各种细节机制,从而为理解模型行为提供理论依据。

这一系列研究得出的一个有趣结论是:教师网络与学生网络之间会出现“专业化”现象,即两者在功能或参数上产生分化。这是一个非常引人入胜的发现。然而,由于这些研究建立在极其强烈的假设基础之上(如高斯输入、无限样本等),研究者无法将理论进一步推演至更复杂的情况。因此,尽管结论有趣,但其适用范围受到了一定限制,难以直接解释现实世界中更复杂的深度学习现象。

随着时间的推移,到了2017或2018年左右,学术界开始重新审视并认识到教师-学生架构在分析深度学习动态过程中的巨大价值。大量论文尝试利用这种框架进行理论推导和分析,我也在这一趋势中参与了一些相关工作。其中一篇代表性论文便是我参与的成果之一,旨在利用该架构分析权重动态变化的过程。

在那篇论文中,由于输入被假定为高斯分布且存在诸多强假设,我们未能证明“专业化”现象的存在。但我们观察到了梯度下降过程中一个有趣的行为:梯度可以被分解为两个分量。一个是均值分量,假设不存在教师网络时的基准状态;另一个是非线性分量,源于价值门控机制。将这两者结合后,我们观察到两者之间产生了非常有趣的动态交互,甚至在某些情况下能证明其收敛于正确的权重参数。

此时人们可能会问:多层网络的情况又是怎样的?在教师-学生设定下,关于多层网络的深入研究相对较少,因为情况似乎过于复杂。然而有趣的是,如果教师网络和学生网络在L2范数上对齐且具有相同的深度,并且激活函数为ReLU时,我们会发现非常有趣的结果。这正是本次演讲想要重点讨论的案例之一:即使层间没有直接的监督信号,学生网络的神经元也会逐层与教师网络的对齐。

为了实现这一目标,我们首先需要明确“专业化”的定义。前文已多次提及该词,在这里,“专业化”被定义为:检查教师节点与学生节点的决策边界时,两者的边界应当彼此对齐。如果在输入空间中绘制这些边界,它们应该非常接近,而两者之间的夹角(如epsilon或theta)则用于量化这种对齐的程度。一旦定义明确,核心问题便转化为:能否定量证明在梯度较小的训练阶段,学生网络是否正在向教师网络学习?

如果这一结论成立,我们可以自然推断:较小的训练误差将导致极佳的泛化能力。这表明学生网络不仅从输出端学习教师,还通过权重结构进行学习。当教师的权重与学生一致时,我们预期两者执行相同的操作。接下来介绍演讲中使用的符号表示:设有第l-1层和第l层,每层分别包含n_{l-1}和n_l个节点。这两层之间的权重称为w_l。

对于每个神经元,我们可以将其激活值整合为一个向量,同时将其反向传播的梯度整合为另一个向量。权重更新规则简单地表示为输入激活f与向下梯度g的外积。若对输入x求导并取期望值,即可得到权重的梯度。对于随机梯度下降(SGD)和批量梯度下降(GD),唯一区别在于前者基于单个批次计算,后者基于整个数据集。

我们发现一个简单而重要的引理:在该设定下,学生网络的梯度可以表示为教师激活与学生激活的线性组合。这一引理至关重要,也是后续第二篇论文的基础。基于此表示方法,我们可以证明许多有趣的结果。接下来将探讨由此得出的结论:首先是一个演示性案例,假设仅有一个两层网络,梯度为零且样本无限。

在证明任何理论之前,我习惯先进行实证实验以展示对齐现象确实发生。实验中,粗实线代表固定的教师决策边界,虚线代表在训练过程中可移动的学生网络边界。随着传输过程的开始,我们可以清晰地观察到所有学生网络的决策边界逐渐与教师网络的对齐,直观地验证了前述理论预测的有效性。

边界开始与教师的边界对齐。因此,当模型收敛时,你会看到教师和学生之间非常清晰的对齐模式。我们观察到有两种不同类型的学生节点:一种是真正与教师对齐的学生节点,就像橙色或棕色的那些;另一种是不与任何教师权重对齐的其他学生节点。有趣的是,这些未对齐或称为“非专业化”的学生节点,其输出权重实际上非常小甚至为零。这在两层设置中是可以证明的。

这里用另一种方式展示这种行为:绘制一个图表,横轴是学生节点与其最佳相关教师之间的归一化相关性,纵轴是该学生节点的输出权重。我们会看到一个L形分布。所谓“L形”是指:如果学生节点与教师高度对齐,我们会看到很强的垂直线,表明存在非零的输出权重;反之,如果学生不与任何教师对齐,则其输出权重的范数很小甚至为零。

这是一个非常有趣的现象,即使学生网络比教师网络更大,这种现象依然普遍存在。人们可能会问如何证明这一点?我们的假设是数据集的要求相当宽松:不施加如高斯输入等限制性很强的参数化假设,而是允许任意无限数据集。唯一的限制是数据必须是满秩的(即不能是低秩或低维数据),但这将在演讲第三部分解决。

我们有一篇新论文已提交至NeurIPS(SNS)。另一个假设也不强:首先要求教师节点是区分的,即所有教师节点指向不同方向。这其实是一个平凡假设,因为如果两个教师完全对齐,可以合并为一个节点。第二个假设是教师的价值边界在数据集中可见:即我们需要能在数据中看到该节点的决策面,否则无法判断其是否存在。

此外还有一个技术定义“观测”:即学生节点在训练过程中能感知到教师的边界。基于这些合理假设,我们可以得出结论:如果某区域内所有数据的梯度为零(即第一层每个样本的输入梯度均为零),且教师节点j被学生节点k观测到,那么可以证明教师j至少与另一个学生节点k'对齐。注意k和k'可能不同,但只要被观测到即可证明这种对齐关系存在。

这一定理描绘了训练结束后的状态:如果学生比教师宽、深度相同,并使用L2范数收敛训练,那么每个教师节点至少对应一个对齐的学生节点。可能存在多个学生节点对齐同一个教师(即“一对多”),但也存在一些未专业化的学生节点。

这些未专业化节点的输出权重在特定条件下趋近于零,这解释了为何原始2D示例中存在未专业化神经元。这也是理论解释训练后手动剪枝可行性的机制:由于输出权重为零,移除这些神经元不会改变数据输出。

那么多层网络情况如何?同样的逻辑可应用于深层网络,因为引理一非常通用。只要隐藏层深度相同,即可证明最底层也具有此性质。区别在于系数alpha和beta变为分段常数,需按区域应用相同逻辑。实验显示,从第一层到第四层均能观察到这种L形曲线现象。

人们可能会问这些结论有何用处?我们可以用此图景解释许多有趣的现象,例如:为什么通过不同方法获得的深度神经网络解可以用曲线连接,却无法用直线连接?这是一个令人困惑的行为。

如果将两个低损失解(视为有效解)用直线直接连接,中间会经历高损失区域再回到低损失。但若通过曲线轨迹连接,可以确保轨迹上每一点都保持零误差(或低损失),从而解释了优化景观中的连通性特征。

损失函数是一个很有趣的现象,人们并不真正知道如何解释它。然而,随着今年学生的研究进展,这其实很容易解释。这就是其中一种解释方式。我的意思是,因为每次你训练模型时,模型都会找到一个解。这个解在专业化神经元和非专业化神经元的排列上可能有所不同,对吧?这种洗牌实际上创造了指数级数量的局部极小值,而每一个其实都非常有用,且每个本身都是一个很好的解。

但是如果你想连接这两个解,你就必须按顺序经过这三个步骤,以找到一条始终具有低损失值的曲线,同时能够将所有这些解连接在一起。这实际上是一个构造过程,你可以确保这条曲线在做你想要的事情。想法很简单。假设你有三个神经元,在这三个神经元中,非专业化权重 w 和最优权重 w* 的顺序是不同的。

因此你不能直接从解一开始直接走到解二,因为如果你这样做,最终会得到一个新的网络,使得这三个权重都不再专业化或不对齐任何教师,且损失不为零。你实际上会看到这就是为什么你会在这里看到一个凸起的原因。但如果你走这条线段,首先将这个非专业化权重转换为 w1*。这是可能的,因为它的输出扇出权重为零。

所以如果你将其转换,什么都不会改变,因为输出不受这个权重的影响。一旦它变成 w1*,你就可以基本上移动这些质量块,从 v1 到 v3。v3 基本上是最终权重,对吧?移动这两个质量块是可以的,因为这两个权重的方向是一致的。所以如果你将其中一些权重从一个移动到另一个,这也不会改变神经网络的输出。

一旦你实现了这一点,你就可以进入最后一步,你可以基本上将 w1* 改变为任何种类的非专业化方向。因为输出的扇出权重为零,所以你在权重中做的任何事情都不会反映在学生网络的输出上。因此这也是一个零损失曲线。如果你做这三个步骤,那么你实际上找到了一条连接两个解的曲线。这是另一个有趣的构造,自然也是教师-学生专业化理论的结论。

我们还讨论了一个更现实的情况,它仍然是两层网络,但与其具有零梯度,不如说我们有一个小梯度和有限的样本。这基本上变得更加现实。在这种情况下,我将省略所有细节,因为证明有点复杂。但我直接转向两层网络的复杂性分析。结果表明,你实际上可以为两层网络实现多项式复杂度。

结论是这样的:如果你有一个小梯度,也就是说你已经训练了梯度使其变得超级小,小于某个常数乘以 epsilon。那么实现 epsilon 对齐所需的数据集总和复杂度基本上与教师学生类别中神经元数量的多项式成正比,也与维度成二次方关系,并与 epsilon 成反比等。

但这实际上需要某种附加条件,称为增强(augmentation)。你需要在每个数据集周围做一些增强处理,然后在所有增强数据上进行训练以实现这一点。好吧,这里我只谈论直觉。那么我们从这个梯度条件中可以学到什么教训呢?我们可以学到的一个教训是,你实际上在这里有一个分母 alpha。

Alpha 实际上是这两层中输出扇出权重的内积。这基本上意味着强大的教师学习得更快。如果你有一个强大的教师,这意味着这些权重的大小更大。如果这个值越大,那么这项也会变得越大。所以如果这项变大,你实际上会看到梯度条件变得更加宽松。

为什么?因为这种贡献变得松散,这意味着如果梯度一直降到零,并且梯度一直降到这里,强大的教师已经开始专业化。对于相同的 epsilon 对齐标准,但对于其他较弱的学生节点来说,这些 alpha 变得超级小。在这种情况下,对于同一条曲线而言,较弱的学生节点必须等到训练变得非常精确时才会开始专业化。

这里有一个有趣的演示,展示了这些事物是如何工作的。在这种情况下,你可以构造一个教师,使得教师的输出扇出权重满足幂律分布。权重的幅度与 j 的 p 次方成反比,p 是一种可调参数。j 是教师的索引。

这基本上意味着第一个教师节点在幅度上具有最高的输出扇出权重,而索引较低的教师节点则具有较低的输出扇出权重。如果你看到 p 是零点五,这意味着一切都均衡了。因为 p 越大,强教师节点和弱教师节点之间的极化就越明显。如果 t(这里指 p)较小,那么一切都会很快收敛到他们的教师节点,归一化相关性非常快地达到一点零。

但是如果你将 p 调整到更大的数字,这意味着弱教师和强教师之间存在强烈的极化。那么学生训练就变得非常有趣了。对于一些老师来说,对齐相当强烈;他们很容易学习,但对于某些教师来说却超级难学,需要花费永远的时间才能到达目的地。这实际上是你从证明中可以看到的结论。

学习来自于证明。你实际上可以展示数据增强确实很重要,因为你可以进行两种不同的增强:一种称为“教师噪声增强”,另一种称为“教师感知增强”。在这两种情况下,增强的方向是不同的。前者基本上表示增强的方向独立于教师的权重方向;而后者则表示增强必须与教师的权重重合。因此,在这种情况下,理论界限实际上变得更好了。随着教师网络变宽,你会发现界限变得更加严格,同时某些容量变为线性关系。这里的经验结果证实了这一点确实成立。

如果你使用教师感知数据集来训练模型,你会发现这种增强方式的评估损失非常低;而如果是普通的噪声增强,其评估损失则非常高。普通增强的曲线是从很高的损失开始逐渐下降的,这是随着样本量增加时常见的正常现象。但如果数据以特定方式排列(即教师感知增强),评估集上的损失会非常低。

问:关于这种增强,我想问一下你是如何定义它的,以便在权重空间中强制实现与教师模型的对齐? 答:基本上,“教师感知增强”有点像是一种作弊版本的增强。也就是说,增强的方向与教师的权重对齐了。 问:所以假设在训练模型之前你已经知道了教师模型的权重,然后利用这些权重来对齐并增强数据? 答:是的。这不同于标准的增强方式,完全正确。

这就是为什么我们能得到更低的界限的原因:我们在进行数据增强时,所有轴对齐的方向都依赖于教师的权重。这就是为什么我们拥有更紧的界限(worse bound)。此外,你可以使用相同的分析来证明小梯度条件以及复杂度问题。由于Q实际上是高维多层设置中超平面的数量边界,这通常是指数级的。因此你需要用指数复杂度来解决这个问题。

我们也尝试在CIFAR-10上重复同样的实验,发现如果学生网络越来越宽,这种对齐效果实际上会变得更好。这基本上证明了这一情况是成立的。这是演讲的第一部分。接下来,我将谈论一项关于利用这种教师-学生架构来理解自监督学习的最新工作。这是一项非常有趣的研究,我们将对此稍作探讨。

这项工作的基本思路是稍微转换一下视角:暂时忘掉教师-学生架构,转而更多地关注学生的自监督学习。我们发现自监督学习的结构与之前的设定非常相似。那么,自监督学习是如何工作的呢?在这种框架下,你有一个数据集,从中抽取一张图像。这张图像经过两种不同的数据增强处理。

所谓的数据增强基本上是指:给定输入x,采样出两个点x1和x2。这两个点被送入同一个网络(有时是一个带有预测器的单一网络)。一旦这两张图像进入网络,它们会产生两个不同的输出。然后你计算这些输出的某种损失函数,从而帮助学习更好的数据表示。

这种框架非常有吸引力,因为不需要人工标签,只需要数据增强。一旦有了数据增强,它会自动告诉你哪些两张图像是相似的、哪些是不相似的,从而让你在没有标签的情况下训练出良好的表示。这非常有趣,人们已经尝试这个想法很久了。最近有两篇重要论文:一篇是Hinton团队的SimCLR,另一篇是DeepMind最近的BYOL。这两项工作在使用这种框架训练表示时都取得了极佳的性能。

为什么这很有趣?人们有很多疑问:首先,这看起来像魔法——为什么能通过这种方式学到好的表示?其次,神经网络、数据增强以及训练过程各自扮演什么角色?这三者交织在一起,让人摸不着头脑。人们报告了许多经验结果:稍微改变训练方式、网络结构或增加维度,效果就会变好,但我们不知道原因。

最近还有一个谜团:在特定设置下,BYOL甚至没有负样本对(negative pairs)。在这种设定中,我们要最大化来自不同输入的增强图像之间的距离;同时最小化来自相同输入的两张图像的表示距离。这提供了“这两者应相似、那两者不应相似”的约束条件。但BYOL似乎并不受此限制,它只使用正样本对而不使用负样本对,这令人困惑且依然有效。

我们已经看到这与教师-学生设定有相似之处:在教师-学生架构中,你有学生和教师,教师是固定的而学生是不固定的,你在随机梯度下降(SGD)下进行学习。但现在我们仍然有这种……

结构非常相似,都是双塔框架。这里既有在线网络也有目标网络,但唯一的区别在于这两个网络都在训练中,不像通常情况下一个固定而另一个在训练。此外还有数据增强。有趣的是,将这些要素结合在一起后,实际上形成了一个更优越的框架,并展现出自监督学习运作方式的有趣行为。首先分析的是 SimCLR 案例,这是一种标准的对比学习方法。数据基本从概率分布 P 中采样,并被增强为几对样本。它们都来自相同的数据源,但同时也从同一分布中采样不同的样本来进行增强。

这里的目标基本上是最小化正样本对表示之间的距离,并最大化负样本对表示之间的距离。F 代表网络最后一层的表示形式。这里省略了许多细节,例如为了获取表示通常会去掉最后几层,但我们仅使用最简单的情况进行分析。通过 E 和 C 进行的对比学习实际上同时执行这种最大化最小化操作。我们发现的一个有趣结果是,如果仅进行 SimCLR 训练,我们可以计算出每一层权重更新的解析形式。

这非常有趣,因为对于每个权重 W,你可以写出每次迭代中权重的确切变化量。这种确切的权重变化可以用协方差算子与向量化权重形式的矩阵乘积来表示,这是一个非常有趣的发现。该协方差算子可以根据论文中给出的公式解析计算。那么它是如何工作的呢?代码显示,它从权重初始化开始,这些初始化的权重会创建协方差算子,因为该算子是依赖于权重的。

一旦拥有这个始终是半正定(PSD)矩阵的协方差算子,就可以用它来更新 WL,使其变为 WLT 加一。然后我们更新这一部分并计算额外的协方差算子,如此循环往复。这在深度网络的每一层都会发生。通过这样做,我们实际上打开了黑盒,理解了网络中每层内部发生的事情。得出的直接结论是 PSD 矩阵的所有特征值均为正数,因此最强的特征向量将驱动权重沿着最有希望的方向增长。

但问题是这里全是数学推导,缺乏直觉。下一个问题是在协方差算子中什么是强特征向量?鉴于数据生成情况,我们可以观察到这一点。理解这点我们需要数据的生成模型,因此论文的第二部分旨在使用生成模型来理解协方差算子。我们试图构建整个自监督学习训练过程的内部机制。首先,自然生成数据集供你使用,但你不知道它们是如何生成的。

我们假设存在两个不同的变量:一个是 z 零,即类别或样本变量,它在增强后不会改变;另一个是 z 素,这是随增强而变化的可变变量。例如,如果数据增强是图像旋转,那么 z 素可以是图像中物体的角度。z 素会在旋转后改变;如果更改图像的旋转角度,每个物体整体的角度也会随之变化。因此 z 素会变成 z 素一或 z 素二,并被送入两个架构相同的网络中。

同一层在此工作,但 z 零在旋转过程中保持不变。z 零来自物体标签,因此增强后这一层级不会改变;即使经过增强,你看到的仍然是狗。这就是这里的两个 z 零设定。一旦拥有所有这些设置,就可以假设关于 z 零和 z 素生成模型的不同特定形式。你可以解析计算这个协方差矩阵,这里有一个简单的视觉案例:一维图像中有两个物体。

这两个物体在一维图像中移动和平移。如果 z 零等于一,意味着你感知的是第一个物体,它有两个“1”,这些“1”会四处移动形成某种模式,直到回到原位。如果 z 零等于二,则是第二个物体“010”,它也经历这种平移过程。在这种非常简单的解析形式下,你可以解析计算协方差算子 V 并得到解析解。

即时结论是:如果使用线性神经元并进行简单类型的训练,什么都学不到,因为协方差算子将精确为零。但如果使用值网络或 ReLU 神经元,它将尝试维持初始化状态并加以强化。如果某个神经元恰好排除了部分数据(如某些 x),它将继续排除这些数据,整个训练过程将强化这种排斥行为。

神经翻译中的随机波动在整个过程中得以保持,并成为一种我们想要利用的真实特征。从这种解析形式中可以看到这种行为非常有趣。好的,这里有一个例子,我们也通过一个两层网络的示例继续推进。实际上,我们可以计算顶层和底层之间的协方差算子。记得这个协方差算子是逐层定义的,因此你可以为每一层计算它,并研究它们在训练期间如何相互影响。

这里有一个定理可以证明:如果满足某些条件,这两个算子在训练过程中会相互强化。我想深入细节,但主要思想基本上是这样的:你从训练开始,这些权重会稍微强一些。我们在进行训练时,这实际上会促使这些权重变得更强。随着这些权重的增强,下层网络中的协方差算子也会变大,从而加速训练过程。

这是一种有趣的行为,我们在单层网络中并没有真正看到过,但在两层网络中可以观察到这一点。最后,我们将此模型扩展到分层潜在树模型。在这些情况下,生成过程由分层潜在模型支配,而这种分层潜在模型可以非常深。在这种情况下,我们可以进行分析,看看协方差算子发生了什么变化,以及它如何从潜在模型中学习重要的信息。

结果表明,对于深度神经网络中的每个神经元,某些神经元会成为相应潜在变量的实例化。但由于时间有限,我们将跳过这部分内容。论文中有大量细节,最后我们使用相同的框架来分析 BYOL 设置。但在 BYOL 设置中,有趣的部分在于甚至没有负样本对。

然而,要使这种方法起作用的一个必要条件是:与目标网络相比,在线网络必须有一个额外的预测器层。在这种情况下,你只需要使用误差损失或归一化误差损失,而不需要使用负样本对,这仍然有效。这非常令人惊讶。那么为什么会出现这种情况?为什么它不会收敛到一个平凡解呢?

一个平凡的解是所有图像的表示都是常数,这样 L2 损失就会 trivially(平凡地)为零,导致没有任何学习发生。但实际上并非如此。因此,我们使用相同的框架进行分析,但基本上增加了一个归一化条件。之所以如此,是因为之前的实证结果已经表明:如果在这些层中添加批处理归一化(Batch Norm),模型就能工作。

但如果完全没有批处理归一化,即使使用随机梯度下降(SGD)进行训练整个模型也无法工作。因此,批处理归一化在确保模型正常工作方面起到了非常关键和重要的角色。那么原因是什么呢?我们基本上认为,如果有批处理归一化,我们就可以修正这种梯度偏差。

我们将批处理归一化建模为零均值归一化,这意味着经过该层后,反向传播的梯度必须具有零均值。有了这个条件,梯度的更新方式就会改变(权重更新也会相应变化)。这里有一些由于这种归一化而产生的修正项,我们可以计算出来。

我们看到经过这些修正后出现了三项。第一项基本上告诉你必须在同一批次内强制相似的表示,这一项会导致平凡解(因为你可以让所有东西都有相似表示),所以该项为零,不会发生什么。但剩下的两项变得很有趣。

特别是当存在预测器时,你可以证明这两项中的一项(正项)大于负项。这个正项恰好是一个近似的协方差算子,这就是为什么这种方法有效的关键原因。而负项是因为它是对于预测器的二阶项。如果预测器非常小(权重很小),那么这一项就会变得非常微小,你可以忽略它。

而剩下的那一项正是 SPS 中的关键项,这使得整个机制能够运作。好的,我们进行了一些分析和实证研究来验证这一点。正如我们所见,如果我们在 STL 数据集中不使用预测器,模型就无法工作,所有的 Top-1 准确率都像垃圾一样差。

即使你有预测器,你仍然需要批处理归一化(BN)。如果没有 BN,你会发现性能依然很差。EMA 加 EMA 稍微好一点,但仍然表现不佳。但如果加上 BN,突然之间性能变得相当不错(60/60%)。如果再加上 EMA(指数移动平均),通常性能会变得更好。

这证实了我们需要使用 BN,并且需要使用预测器,这是关键所在。我们也尝试分析批处理归一化的哪个部分真正起到了作用。因为在我们的分析中,我们只利用了这样一个事实:批处理归一化会对前向激活值和梯度进行零均值化处理。

那么,如果我们只对激活值进行零均值归一化会发生什么?结果显示,如果只这样做,性能就已经相当不错(64.8%)。当然,如果你同时添加针对均值和标准差的归一化与标准化,性能会更好。目前标准化的效果尚不清楚,我们仍在研究中。

有趣的是,如果你进行归一化但从不反向传播梯度归一化(即只向前零均值化,不处理梯度),你会发现一切变得非常糟糕。这表明梯度的归一化处理对于维持模型性能至关重要。

这与我们的分析在某种程度上是一致的,因此我们也对重新初始化的预测器进行了分析。我之所以想做这个实验,是因为在原始的BYOL论文中,人们认为预测器必须是最佳的才能使系统正常工作,但我们证明事实并非如此。因为你可以偶尔对预测器进行正则化处理,仍然能获得相当好的性能。这是我们实际得到的一些数据结果。

这是演讲的第二部分,尝试使用教师-学生架构来分析自监督学习设置下发生的事情。我认为这是一项非常令人兴奋的工作,我们将继续深入研究,直到我们更好地理解这些机制。现在我们实际上可以看到训练过程中每一层内部发生了什么,这就像打开了黑盒一样。

最后,我想我还有大约十五分钟的时间,将简要谈谈使用教师-学生研究来理解对抗样本。这是我们最近提交给AIStats的一项新工作。对抗样本是深度神经网络中一种有趣的现象。那么,什么是“对抗样本”呢?

假设你有一个熊猫的图片,有趣的是,如果你添加一点点噪声——这种噪声非常小,人类肉眼几乎无法察觉,图片看起来仍然是熊猫。但是当你把这张图片输入到神经网络中时,它突然预测出一个非常糟糕且截然不同的标签,这被称为“对抗样本”。

更可怕的是,该模型对这个错误标签的置信度高达99.6%,表现得超级自信。主持人插话表示,考虑到可能有人需要离场或提问,建议暂停一下看看是否有观众问题。如果没有,我们可以继续利用剩余时间演讲。

田渊栋表示没关系,大家可以稍后提问或静音留言。主持人认为这次演讲内容非常丰富有趣。田渊栋决定快速覆盖剩余部分,并留出五分钟进行问答环节。

对抗样本是一个非常有趣的现象,同时也给深度学习带来了巨大的难题。特别是在自动驾驶领域,研究人员已经在停车标志上贴贴纸进行测试,发现以特定方式粘贴可以将“停止”标志伪装成限速45英里/小时的标志。

这非常可怕,因为系统完全失效了。我们甚至发现有人利用这些对抗图片赚钱,将其印在T恤上,从而使人脸识别系统无法识别面部。这是一个非常有趣的应用场景。

那么问题来了:为什么对抗样本会存在?我们该如何应对?有很多论文研究这个问题。其中一篇题为《对抗样本:不是漏洞而是特征》的论文提供了一个有趣的线索,解释了其存在的原因。

你可以上网查阅这篇论文。其中一个例子显示,如果你计算出一个对抗样本,并使用该对抗样本加上错误的标签作为训练数据,最终得到的网络在正确标签的数据集上反而能取得良好的准确率。

这很疯狂,因为对抗样本和错误标签通常被视为“坏”数据。如果将两个糟糕的东西结合起来训练,却能在合理的数据集上获得良好的性能,这听起来像是“垃圾进”,但实际上并非如此。

然而,如果使用教师-学生架构来思考,这其实很容易解释。在教师-学生设置中,我们假设数据集由一个教师网络表示。当我们计算对抗输入时,例如从x扰动得到x',并使用与x'关联的错误标签y'。

虽然x和y是错误的数据集和标签,但它们遵循教师与学生之间正确的映射关系。因此,使用这些配对来训练模型时,数据集仍然是有效的,我们仍然可以学习到一个在原始数据集中表现良好的学生网络。

受此启发,我们试图思考这其中的联系:能否利用学生专业化来解释为什么存在对抗样本?为此,我们扩展了之前的公式以回答这个问题。主要的改进在于,不再考虑全秩输入空间,而是关注低秩输入空间。

在低维输入空间中,我们仍然试图通过专业化过程来理解正在发生的事情主要的结论也是提交论文的第一部分是:理论上证明,如果输入数据驻留在一个小的子空间(低维子空间)中。

那么检查学生节点和教师节点的权重在该子空间上的投影,它们之间的差异非常小。这与之前的学生专业化论文一致。但是,如果将这两个向量投影到与输入数据子空间垂直的方向上,它们的角度差异可能会非常大。

这实际上为对抗样本打开了大门。因为对抗样本基本上位于该子空间之外,这些在子空间之外的对抗样本会触发教师和学生之间不同的响应,从而导致学生网络在处理数据时表现出截然不同的行为。

这超出了子空间范围。好吧,基于这些定理——我是说我没有明确写出定理,但我只是想阐述这个粗略的想法。因此,基于这些定理,我们实际上可以创建一个经验模型来描述在低维输入数据集下教师-学生架构的行为。所以这里有一个非常经验性的模型:我们说学生网络的权重等于教师网络,加上某种噪声项。现在有两种噪声,一种是噪声方向垂直于输入子空间;另一种是噪声方向基本上位于这个数据子空间中。于是另一个问题变成了:对抗训练是否通过消除这两种噪声来提高两种鲁棒准确率?所以我们实际上对此做了一些实验,我将省略细节。

我打算稍微展示一下这个结果。基本上,这显示了鲁棒准确率与对齐程度之间的一致性,以及 epsilon_in 和 epsilon_out(即经验模型中的两个参数)之间的关系。这里 at 代表对抗训练,st 代表标准训练。如果你观察发现,在对抗训练中,epsilon_in-epsilon_out 曲线远低于标准训练的情况,这表明对抗训练确实使这种对齐变得更好。同时你也看到对抗训练的鲁棒性更高。这基本上是一个有趣的观察,两者之间存在一致性。

因此我们还尝试了仅使用 epsilon_in 和 epsilon_out 样本的对抗训练,结果有趣的是:如果使用仅包含 epsilon_in 的数据集,其表现甚至优于使用标准对抗训练。这是一个有趣的观察结果。此外我们比较了逻辑回归训练与标签训练,发现逻辑回归训练在学生和教师之间确实具有非常好的对齐性,而标签训练则不然。我们仍在思考和调查其中的原因。这里还有一堆更多的实验结果,我想这就是全部了。如果有更多问题请告诉我们,我们还有五六分钟回答问题时间。

太棒了,谢谢渊栋。这确实是非常令人印象深刻的研究工作。我觉得很多这项工作可以扩展成独立的演讲,并且与我们本学期在 CS 839 课程中涵盖的一些主题紧密相关,比如数据增强、少监督学习以及部署方面的鲁棒性问题。实际上,对于修读这门课的学生来说,两周后我们将深入探讨一些关于自监督学习的主题。我认为渊栋很好地概述了这些课题,现在让我们把提问环节开放给观众。

如果你脑海中还有任何遗留问题,我认为这是一个很好的提问机会。大家好,可能还在消化中。我有一个问题:我觉得这种教师-学生训练非常吸引人,我一直在从学生的角度思考这一学习过程中的动态变化。你展示的一张幻灯片让我印象深刻:那个 L 形曲线。对我来说,这似乎是一种“赢家通吃”的现象。是的,确实如此。我的问题是:在这个训练过程的早期,当你开始优化学生网络时,是什么决定了一些节点变得未专门化?

嗯哼。是的,我认为这是一个非常好的问题。我想我实际上省略了演讲中关于教师-学生训练动态的一部分内容,这部分尚未发表,但曾出现在档案版本之一中。在那部分里,我们分析了这种动态过程发生了什么。你会发现一种“赢家通吃”的行为模式。具体来说:初始化后,有些学生神经元恰好接近教师网络,而另一些则离得较远。当训练开始时,那些靠近教师的神经元会变得更加接近,这就像是一场竞赛。

离教师更近的神经元跑得更快,能更快地到达目标位置。这些神经元成为了“幸运儿”,它们实际上转换为了教师网络的状态。我还观察到其他行为:一些学生神经元在竞争专门化以匹配某个教师,但第一个学生表现更好并到达了目标;而第二个学生则将注意力转移到了另一个不同的教师身上。你会看到这种非常有趣的行为模式。

一旦神经元变得未专门化,这种情况在训练过程中会逆转吗?这真的取决于你如何训练模型。因为 SGD 中存在大量噪声,所以在训练中有可能某些未专门化的神经元会重新变得专门化。这当然是完全可能的。是的,很有趣。好了,大家还有更多问题吗?好的,我还有一个问题:在这种教师-学生的情况下,当你用这个教师替代数据时,是否存在诱导某种归纳偏差或教师在建模中产生误差的情况?如果是这样,你如何确保这些不会转移给学生,从而让学生更具鲁棒性或学得更好?

是的,我认为这是一个很棒的问题。我实际上在 ISS 论文中省略了一些内容,我们在其中分析了即使教师不完美时,教师与学生之间仍可能存在对齐的情况。例如:如果你有一个教师和一名学生,并且学生和训练之间存在一些误差 epsilon,这实际上可以模拟教师对数据进行建模但并非完全精确匹配数据的情况。在这种情况下,你仍然可以证明教师和学生会存在对齐关系,但是会有一个额外的项阻止完美的对齐。我明白了。

是的。另外人们可能会问的另一个问题是:如果你有一个……

是否存在多个能够解释数据的教师模型?这实际上是另一个问题,如果使用上述框架,也可以加以证明。结果表明,对于每一个能够充分解释数据的教师模型,你都可以使用该公式和定理来展示师生之间的对齐关系。这种对齐基本上会偏向于那些结构简单的教师模型,即其输出权重较强但数量较少的情况。这类似于数据存在一种假设,教师模型会偏向于该假设;但在拥有大量数据并训练更深层的模型后情况如何呢?随着模型变长,这些学生神经元最终会收敛到那个并非那么简单、但实际上能精确解释数据的教师模型上。

关于此点的另一个问题是:是否有办法捕捉或找到合适的教师,还是说它仅仅是对数据的一种简单表示?原则上,你可以对真实数据集训练一个过参数化的网络,然后移除大量神经元,剪枝掉这些部分,从而获得一个近似的教师模型。这是因为必须使用过参数化网络来训练模型,否则此方法行不通。因此,在学会更好的模型方面,过参数化非常重要。

但在对进行过参数化的模型进行训练后,你必须从教师中剪枝掉所有不相关的节点。剩下的那些便成为重要节点,并成为一个良好的、可供使用的教师模型。我明白了,非常感谢。好的,我想我们正好按时结束了。让我们再次感谢田渊栋博士在这里发表演讲并抽出时间与我们交流,谢谢田渊栋。好的。

是的,感谢大家的出席,也感谢 Sharon 邀请我演讲。很高兴来到这里,周四见各位。好的,再见。拜拜。谢谢。