用Grand Tour可视化神经网络

张开发
2026/4/14 0:12:49 15 分钟阅读

分享文章

用Grand Tour可视化神经网络
使用Grand Tour可视化神经网络Grand Tour实战演示。此可视化展示了一个神经网络在MNIST数据集上训练时其最终10维层的行为。通过这项技术可以观察到有趣的训练行为。例如网络在学习分类数字1和7时分别在训练周期14和21之后呈现出一种近乎不连续的方式。作者李明伟 (某机构)赵正则 (某机构)卡洛斯·沙伊德格 (某机构)发布日期2020年3月16日DOI10.23915/distill.00025Grand Tour 是一种经典的高维点云可视化技术它将高维数据集投影到二维平面。随着时间的推移Grand Tour 会平滑地动画其投影使得数据集的每一种可能视图最终都能呈现给观众。与 t-SNE 和 UMAP 等现代非线性投影方法不同Grand Tour 从根本上来说是一种线性方法。在本文中展示了如何利用 Grand Tour 的线性特性来实现一些对于可视化神经网络行为特别有用的能力。具体来说呈现了三个有趣的用例可视化网络权重变化时的训练过程、可视化数据流经网络时的层间行为以及可视化对抗样本是如何生成的以及它们是如何欺骗神经网络的。引言深度神经网络在监督学习竞赛中常常能达到同类最佳的性能。不幸的是其决策过程以难以解释而闻名训练过程也常常难以调试。在本文中提出了一种可视化神经网络响应的方法该方法利用了深度神经网络的属性和Grand Tour的特性。值得注意的是提出的方法使我们能够更直接地推理数据变化与最终可视化结果变化之间的关系。正如将要展示的这种数据-视觉对应关系是所提出方法的核心特别是与 UMAP 和 t-SNE 等其他非线性投影方法相比。为了理解神经网络经常尝试观察它对输入样本真实的和合成的的作用。这类可视化有助于阐明神经网络对单个样本的激活模式但它们对于理解不同样本之间、网络训练过程中的不同状态之间或者样本数据如何流经单个网络的不同层之间的关系提供的见解可能较少。因此目标是为感兴趣的对象周围的环境提供可视化当前训练周期与下一个训练周期之间有什么区别随着图像被送入网络网络的分类是如何收敛或发散的线性方法具有吸引力因为它们特别容易推理。Grand Tour的工作原理是生成数据集的随机、平滑变化的旋转然后将数据投影到二维屏幕上这两个过程都是线性的。尽管深度神经网络显然不是线性过程但它们通常将其非线性限制在一小组操作中使我们仍然能够推理其行为。所提出的方法通过提供更多的一致性来更好地保留上下文应该能够知道如果数据以特定方式不同可视化将如何变化。工作示例为了说明将要介绍的技术我们使用三个常见的图像分类数据集训练了深度神经网络模型MNIST、fashion-MNIST和CIFAR-10。虽然我们的架构比当前的深度神经网络更简单、更小但它仍然能代表现代网络并且足够复杂足以展示我们提出的技术和典型方法的缺点。下图展示了本文中将使用的神经网络的简单功能图。该神经网络由一系列线性层卷积层和全连接层、最大池化层、ReLU层组成最后是一个Softmax层。即使神经网络能够实现令人难以置信的分类能力但在底层它们实际上只是相对简单函数的流水线。对于图像输入是灰度图像的标量值二维数组或彩色图像的RGB三元组。当需要时总可以将二维数组展平为一个等价的 (w⋅h⋅c) 维向量。类似地任何复合函数之后的中间值或一层之后的神经元激活也可以被视为 R^n 中的向量其中 n 是该层神经元的数量。例如softmax 可以被视为一个10维向量其值为正实数且总和为1。这种神经网络中数据的向量视角不仅允许以数学上紧凑的形式表示复杂数据而且还提示了如何以更好的方式对其进行可视化。大多数简单函数分为两类它们要么是输入的线性变换如全连接层或卷积层要么是相对简单的、按分量工作的非线性函数如 sigmoid 激活或 ReLU 激活。某些操作特别是最大池化和 softmax不属于这两类。稍后将回到这一点。上图帮助我们一次查看单个图像然而它没有提供足够的上下文来理解层与层之间、不同样本之间或不同类别标签之间的关系。为此研究人员经常转向更复杂的可视化。使用可视化理解深度神经网络首先考虑可视化深度神经网络训练过程的问题。在训练神经网络时我们优化函数中的参数以最小化一个标量损失函数通常通过某种形式的梯度下降。我们希望损失不断减少因此监控整个训练和测试损失在训练轮次或“周期”中的历史记录以确保损失随时间减少。下图显示了 MNIST 分类器的训练损失线图。虽然其总体趋势符合预期损失稳步下降但我们在第14和21个周期左右看到了一些奇怪的现象曲线在再次下降之前几乎变平。发生了什么是什么原因造成的如果按真实标签/类别将输入样本分开并像上图那样绘制每个类别的损失我们会看到两次下降是由类别 1 和 7 引起的模型在训练过程中的不同时间学习不同的类别。尽管网络很早就学会了识别数字 0、2、3、4、5、6、8 和 9但直到第14个周期才开始成功识别数字 1直到第21个周期才开始识别数字 7。如果我们事先知道要寻找特定类别的错误率那么这张图效果很好。但是如果我们真的不知道要寻找什么呢在这种情况下可以考虑同时查看所有样本的神经元激活例如在最后的 softmax 层的可视化以寻找诸如类别特定行为之类的模式以及其他模式。如果该层只有两个神经元一个简单的二维散点图就可以。然而示例数据集的 softmax 层中的点是10维的在更大规模的分类问题中这个数字可能大得多。我们需要要么一次显示两个维度随着可能图表数量呈二次方增长这无法很好地扩展要么使用降维将数据映射到二维空间并在单个图表中显示它们。最先进的降维是非线性的诸如 t-SNE 和 UMAP 等现代降维技术能够实现令人印象深刻的汇总能力提供二维图像其中相似的点往往非常有效地聚集在一起。然而这些方法并不特别擅长在精细尺度上理解神经元激活的行为。考虑前面提到的关于 MNIST 分类器对数字 1 和 7 具有不同学习率的有趣特征网络直到第14个周期才学会识别数字 1直到第21个周期才学会识别数字 7。我们计算了所描述现象发生时期的 t-SNE、动态 t-SNE 和 UMAP 投影。现在考虑在训练期间识别这种特定类别行为的任务。提醒一下在这种情况下奇怪的行为发生在数字 1 和 7 上分别在第14和21个周期左右。虽然这种行为并非特别微妙——数字从错误分类变为正确分类——但在下面的任何图中都很难注意到。只有在仔细检查时才能注意到例如在 UMAP 图中在第13个周期聚集在底部的数字 1 在第14个周期变成了一个新的触手状特征。非线性嵌入无法阐明这种现象的一个原因是对于数据的特定变化它们违背了数据-视觉对应原则。更具体地说该原则指出特定的可视化任务应被建模为改变数据的函数可视化将此变化从数据传递到视觉我们可以研究可视化变化易于感知的程度。理想情况下我们希望数据和视觉的变化在幅度上匹配视觉上几乎不可察觉的变化应归因于尽可能小的数据变化而视觉上的显著变化应反映数据上的重大变化。在这里仅在数据的一个子集例如从第13到14个周期的所有数字 1 点发生了重大变化但可视化中的所有点都发生了剧烈移动。对于 UMAP 和 t-SNE每个单点的位置都非平凡地依赖于此类嵌入算法中的整个数据分布。这种特性对于可视化来说并不理想因为它不满足数据-视觉对应关系使得难以从可视化中的变化推断数据中的潜在变化。具有非凸目标的非线性嵌入也往往对初始条件敏感。例如在 MNIST 中尽管神经网络在第30个周期开始稳定但 t-SNE 和 UMAP 在第30、31和32个周期之间实际上一直到99个周期仍然生成截然不同的投影。时间正则化技术如动态 t-SNE缓解了这些一致性问题但仍然存在其他可解释性问题。现在考虑另一个任务识别神经网络容易混淆的类别。对于这个例子我们将使用 Fashion-MNIST 数据集和分类器并考虑凉鞋、运动鞋和踝靴之间的混淆。如果我们事先知道这三个类别很可能混淆分类器那么我们可以直接设计一个合适的线性投影如下图所示我们使用 Grand Tour 和稍后将描述的直接操纵技术找到了这个特定的投影。这种情况下的模式非常显著形成了一个三角形。相比之下t-SNE 错误地将类别集群分开了可能是因为超参数选择不当。UMAP 成功地分离了这三个类别但即使在这种情况下也无法区分第5和第10个周期中分类器的三向混淆在线性方法中通过三角形中心附近点的存在来体现与后期周期中的多组双向混淆通过“空”中心来证明。当有机会时我们应该更倾向于那些数据变化能产生可预测、视觉上显著结果变化的方法而线性降维通常具有这种属性。在这里我们重新审视上述线性投影在一个用户可以轻松浏览不同训练周期的界面中。此外我们引入了另一种仅有线性方法才能实现的有用能力直接操纵。从 n 维到 2 维的每个线性投影都可以由 n 个二维向量表示这些向量具有直观的解释它们是 n 维空间中的 n 个规范基向量将被投影到的向量。在投影最终分类层的上下文中这特别容易解释它们是以 100% 的置信度被分类到任何一个特定类别的输入的目标位置。如果为用户提供通过拖拽用户界面句柄来更改这些向量的能力那么用户可以直观地设置新的线性投影。这种设置提供了额外的良好特性可以解释前面插图中的显著模式。例如因为投影是线性的并且分类层中向量的系数之和为 1所以在两个类别之间具有一半置信度的分类输出被投影到位于两个类别句柄中间位置的向量。从这个线性投影中我们可以轻松地识别出数字 1 在第 14 个周期和数字 7 在第 21 个周期的学习情况。这种特殊属性在下面的 Fashion-MNIST 示例中得到了清晰的说明。该模型混淆了凉鞋、运动鞋和踝靴因为数据点在 softmax 层中形成了一个三角形形状。这个线性投影清晰地显示了模型对凉鞋、运动鞋和踝靴的混淆。类似地这个投影显示了关于套头衫、外套和衬衫的真实三向混淆。衬衫也与T恤/上衣混淆。这两个投影都是通过直接操纵找到的。落在类别之间的样本表明模型难以区分这两类例如凉鞋与运动鞋以及运动鞋与踝靴。但请注意凉鞋与踝靴之间这种情况发生得不多没有多少样本落在这两类之间。此外大多数数据点被投影到靠近三角形边缘的位置。这告诉我们大多数混淆发生在三个类别中的两个之间它们实际上是双向混淆。在同一个数据集中我们还可以看到套头衫、外套和衬衫填充了一个三角形平面。这与凉鞋-运动鞋-踝靴的情况不同因为样本不仅落在三角形的边界上还落在其内部这是一个真正的三向混淆。类似地在 CIFAR-10 数据集中我们可以看到狗和猫、飞机和船之间的混淆。CIFAR-10 中的混合模式不如 Fashion-MNIST 中清晰因为有更多的样本被错误分类。这个线性投影清晰地显示了模型对猫和狗的混淆。类似地这个投影显示了关于飞机和船的混淆。这两个投影都是通过直接操纵找到的。Grand Tour在上一节中我们利用了知道要可视化哪些类别的优势。这意味着为手头的特定任务设计线性投影很容易。但是如果我们事先不知道要选择哪个投影因为我们不太清楚要寻找什么呢主成分分析是典型的线性降维方法它选择投影数据以尽可能保留最大的方差。然而softmax 层中的数据分布通常在许多轴向上具有相似的方差因为每个轴都围绕类向量集中了相似数量的样本。因此尽管 PCA 投影在训练周期中是可解释且一致的但 softmax 激活的前两个主成分并不比第三个好多少。那么我们应该选择哪一个呢我们建议不使用 PCA而是使用一种称为 Grand Tour 的技术通过平滑地动画随机投影来可视化这些数据。从一个随机速度开始它在高维空间中平滑地围绕原点旋转数据点然后将其投影到 2D 进行显示。以下是 Grand Tour 在一些低维对象上的作用示例在正方形上Grand Tour 以恒定角速度旋转它。在立方体上Grand Tour 在 3D 中旋转它其 2D 投影让我们看到立方体的每一个面。在 4D 立方体超立方体上旋转发生在 4D 中2D 视图显示了每一种可能的投影。Softmax 层的 Grand Tour首先看 softmax 层的 Grand Tour。Softmax 层相对容易理解因为它的轴具有很强的语义。如前所述第 i 个轴对应于网络预测给定输入属于第 i 个类的置信度。Softmax 层的 Grand Tour 让我们能够定性评估模型的性能。在本文的特定案例中由于我们对三个数据集使用了可比较的架构这也允许我们衡量每个数据集分类的相对难度。我们可以看到对于 MNIST 数据集数据点的分类最自信数字靠近 softmax 空间十个角点之一。对于 Fashion-MNIST 或 CIFAR-10分离不那么清晰更多的点出现在内部。训练动态的 Grand Tour线性投影方法自然地给出了一个独立于输入点的公式允许我们在数据变化时保持投影固定。回顾我们的工作示例我们对每个神经网络进行了 99 个周期的训练并记录了训练和测试样本子集上神经元激活的完整历史。然后我们可以使用 Grand Tour 来可视化这些网络的实际训练过程。开始时当神经网络被随机初始化时所有样本都位于 softmax 空间的中心附近每个类别的权重相等。通过训练样本移动到 softmax 空间中的类向量。Grand Tour 还让我们能够比较训练和测试数据的可视化从而定性评估过拟合。在 MNIST 数据集中测试图像在训练过程中的轨迹与训练集一致。数据点直接向其真实类别的角点移动所有类别在大约 50 个周期后稳定下来。另一方面在 CIFAR-10 中训练集和测试集之间存在不一致。测试集中的图像持续振荡而大多数来自训练集的图像收敛到相应的类别角点。在第 99 个周期我们可以清楚地看到这两个集合在分布上的差异。这表明模型过拟合了训练集因此不能很好地泛化到测试集。通过这种 CIFAR-10 视图测试集右中点的颜色比训练集左更加混合显示了训练过程中的过拟合。将 CIFAR-10 与 MNIST 或 fashion-MNIST 进行比较后者的训练集和测试集之间差异较小。层动态的 Grand Tour鉴于所提出的 Grand Tour 和轴直接操纵技术理论上我们可以单独可视化和操纵神经网络的任何中间层。然而这不是一个非常令人满意的方法原因有二就像我们在训练数据变化时保持投影固定一样我们希望当数据在神经网络的各层之间移动时“保持投影固定”。然而这并不简单。例如神经网络中的不同层具有不同的维度。如何将一层的旋转与另一层的旋转连接起来Softmax 层中的类“轴句柄”很方便但这仅当层的维度相对较小时才实用。例如对于数百个维度会有太多的轴句柄无法自然交互。此外隐藏层没有像 softmax 层那样清晰的语义因此操纵它们不会那么直观。为了解决第一个问题我们需要更仔细地关注层转换其给定数据的方式。为了了解线性变换如何以一种特别低效的方式被可视化考虑以下非常简单的权重由矩阵 A 表示它接收一个2维隐藏层 k 并产生另一个2维层 k1 的激活。该权重只是将 2D 中的两个激活取反。想象一下我们希望可视化数据在各层之间移动时网络的行为。一种插值此动作的源 x0 和目标 x1 A(x0) -x0 的方法是通过简单的线性插值。实际上这种策略将线性投影系数从一层复用到下一层。这是一个很自然的想法因为它们具有相同的维度。但是请注意以下内容A 给出的变换是数据的简单旋转。层 k1 的每一个线性变换都可以简单地编码为层 k 的线性变换只要该变换对条目的负值进行操作。此外由于 Grand Tour 本身内置了旋转对于每一个给出层 k 的某个图像的配置通过考虑 A 的作用存在一个不同的配置可以为层 k1 产生相同的图像。实际上天真的插值违背了数据-视觉对应原则数据的一个简单变化2D 中的取反/180度旋转导致了可视化的剧烈变化所有点穿过原点。这一观察指向了一个更通用的策略在设计可视化时我们应该尽可能明确我们试图在可视化中捕捉输入的哪些部分或过程的哪些部分。我们应该寻求明确阐述哪些是纯粹的表示性伪影应该丢弃哪些是应该从表示中提取的真实特征。在这里我们声称神经网络线性变换中的旋转因子远不如其他因子如缩放和非线性重要。正如将要展示的Grand Tour 在这种情况下特别有吸引力因为它可以设计成对数据旋转保持不变。因此神经网络线性变换中的旋转分量将被明确地隐藏起来。具体来说我们通过利用线性代数的中心定理来实现这一点。奇异值分解定理表明任何线性变换都可以分解为一系列非常简单的操作一个旋转、一个缩放和另一个旋转。将矩阵 A 应用于向量 x 等价于应用这些简单操作xA x U Σ V^T。但请记住Grand Tour 的工作原理是旋转数据集然后将其投影到 2D。结合起来这两个事实意味着就 Grand Tour 而言可视化向量 x 与可视化 xU 相同可视化向量 xUΣV^T 与可视化 xUΣ 相同。这意味着 Grand Tour 所见的任何线性变换都等价于 xU 和 xUΣ 之间的转换——一个简单的按坐标缩放。这明确地说明任何线性操作其矩阵在标准基中表示都是在两侧使用适当选择的标准正交基的缩放操作。因此Grand Tour 提供了一种自然、优雅且计算高效的方法来对齐由全连接线性层分隔的激活的可视化。在以下部分为了减少在基于 Web 的演示中传输的数据量将数据点数量减少到 500周期减少到 50。有了现成的线性代数结构现在我们能够将行为和模式从 softmax 追溯到更早的层。例如在 fashion-MNIST 中我们在 softmax 层观察到鞋子凉鞋、运动鞋和踝靴作为一个组与其他所有类别的分离。追溯到更早的层我们可以看到这种分离早在第5层就发生了通过层对齐从这个视图很容易看到鞋子的早期分离。对抗动态的 Grand Tour作为最后一个应用场景展示了 Grand Tour 如何阐明对抗样本在被神经网络处理时的行为。为了说明我们使用 MNIST 数据集并对 89 个数字 8 的样本添加对抗性扰动以欺骗网络使其认为它们是 0。之前我们要么动画训练动态要么动画层动态。现在固定一个训练良好的神经网络并可视化对抗样本的训练过程因为它们本身通常是通过优化过程生成的。这里使用了快速梯度符号法。同样因为 Grand Tour 是一种线性方法对抗样本随时间的位置变化可以忠实地归因于神经网络感知图像方式的变化而不是可视化的潜在伪影。让我们研究一下对抗样本是如何演化以欺骗网络的从这个 softmax 视图我们可以看到对抗样本是如何从 8 演变成 0 的。然而在相应的 pre-softmax 中这些对抗样本停在两个类别的决策边界附近。将数据显示为图像可以看到每一步生成的实际图像或者显示为按标签着色的点。通过这种对抗性训练网络最终以高置信度声称给定的输入都是 0。如果我们停留在 softmax 层并在图中滑动对抗训练步骤可以看到对抗样本从类别 8 的高分移动到类别 0 的高分。尽管所有对抗样本最终都被分类为目标类别数字 0但其中一些绕道到了靠近空间质心的地方大约在第 25 个周期然后向目标移动。比较两组图像的实际图像我们看到那些“绕道”的图像往往噪声更大。然而更有趣的是中间层发生的事情。例如在 pre-softmax 中我们看到这些伪造的 0 与真实的 0 行为不同它们更靠近两个类别的决策边界并自己形成一个平面。讨论Grand Tour 的局限性早期我们将几种最先进的降维技术与 Grand Tour 进行了比较表明非线性方法在理解神经网络行为方面不具备 Grand Tour 那样多的理想特性。然而最先进的非线性方法有其自身的优势。每当几何形状是关注点时比如理解 softmax 层中的多向混淆线性方法更易于解释因为它们在投影中保留了数据的某些几何结构。当拓扑是主要关注点时例如我们希望聚类数据或需要为对几何不那么敏感的下游模型进行降维我们可能会选择 UMAP 或 t-SNE 等非线性方法因为它们在投影数据方面具有更多自由度并且通常能更好地利用可用的较少维度。动画和直接操纵的力量在比较线性投影与非线性降维时我们使用了小倍数图表来对比训练周期和降维方法。而 Grand Tour 则使用单个动画视图。在比较小倍数和动画时文献中除了特定设置如动态图绘制或担心小倍数和动画图之间的内容不可比之外对于哪个更好并没有普遍共识。无论这些担忧如何在我们的场景中动画的使用源于直接操纵以及 Grand Tour 运作所需的连续旋转存在。非序列模型在我们的工作中我们使用的模型是纯“序列”的即层可以按数字顺序排列并且第 n1 层的激活仅仅是第 n 层激活的函数。然而在最近的深度神经网络架构中通常具有非序列部分例如高速路分支或用于不同任务的专用分支。使用我们的技术可以可视化每个此类分支上的神经元激活但需要额外的研究来直接整合多个分支。扩展到更大的模型现代架构也很宽泛。特别是当涉及卷积层时如果我们将这些层视为作用于展平的多通道图像的大型稀疏矩阵可能会遇到可扩展性问题。为了简单起见在本文中我们通过写出其显式矩阵表示来蛮力计算此类卷积层的对齐。然而多通道二维卷积的奇异值分解可以高效计算然后可以直接用于对齐如前所述。技术细节本节介绍了实现轴句柄和数据点直接操纵以及实现层转换投影一致性技术所需的技术细节。符号在本节中符号约定是数据点表示为行向量。整个数据集布局为一个矩阵其中每行是一个数据点每列代表一个不同的特征/维度。因此当对数据应用线性变换时行向量以及整个数据矩阵左乘变换矩阵。这有一个额外的好处当链式应用矩阵乘法时公式从左到右阅读并与交换图对齐。直接操纵前面呈现的直接操纵为用户提供了对数据点可能投影的显式控制。提供了两种模式直接操纵类轴“轴模式”或通过其质心直接操纵一组数据点“数据点模式”。根据维度和轴语义可能会偏好一种模式而不是另一种。将会看到轴模式是数据点模式的特例因为可以将轴句柄视为数据集中一个特定的“虚构”点。由于其简单性将首先介绍轴模式。轴模式直接操纵的隐含语义是当用户拖拽一个UI元素在这种情况下是轴句柄时他们向系统发出信号希望相应的数据点被投影到UI元素被拖放到的位置而不是它被拖拽离开的位置。在我们的案例中整体投影是一个旋转最初由 Grand Tour 确定而任意的用户操纵可能不一定产生一个也是旋转的新投影。因此目标是找到一个新的旋转既满足用户请求又接近 Grand Tour 投影的先前状态以便结果状态满足用户请求。简而言之当用户将第 i 个轴句柄拖拽 (dx, dy) 时我们将它们加到 Grand Tour 矩阵的第 i 行的前两个条目上然后对新矩阵的行执行 Gram-Schmidt 正交归一化。在详细探讨其工作原理之前先形式化 Grand Tour 在规范基向量 e_i 上的过程。如下图所示e_i 经过一个正交的 Grand Tour 矩阵 GT产生其自身的旋转版本 e_i~。然后π2 是一个只保留 e_i~ 的前两个条目并给出要在图中显示的句柄的2D坐标 (x_i, y_i) 的函数。当用户在屏幕画布上拖拽一个轴句柄时他们在 xy 平面上引发了一个增量变化 Δ (dx, dy)。句柄的坐标变为(x_i^(new), y_i^(new)) : (x_i dx, y_i dy)。注意x_i 和 y_i 是轴句柄在 Grand Tour 旋转后在高维空间中的前两个坐标因此 (x_i, y_i) 上的增量变化在 e_i~ 上引发了一个增量变化 Δ~ : (dx, dy, 0, 0, …)e_i~ → e_i~ Δ~。为了找到尊重此变化的邻近 Grand Tour 旋转首先注意 e_i~ 正是正交 Grand Tour 矩阵 GT 的第 i 行。自然地我们希望新矩阵是原始 GT其第 i 行被 e_i~ Δ~ 替换即应分别将 dx 和 dy 加到 GT 的第 (i,1) 个条目和第 (i,2) 个条目上。然而对于任意的 (dx, dy)GT~ 不是正交的。为了找到一个近似于 GT~ 的正交矩阵我们对 GT~ 的行应用 Gram-Schmidt 正交归一化在 Gram-Schmidt 过程中首先考虑第 i 行GT^(new) : GramSchmidt(GT~)。请注意第 i 行在 Gram-Schmidt 期间被归一化为单位向量因此句柄的结果位置是 e_i~^(new) normalize(e_i~ Δ~)这可能与 e_i~ Δ~ 不完全相同。然而对于任何 Δ~差异的范数上限为 ||Δ~||。数据点模式现在解释如何直接操纵数据点。从技术上讲此方法一次只考虑一个点。对于一组点我们计算它们的质心并用此方法直接操纵这一个点。更仔细地思考轴模式的过程可以知道如何拖拽任意单个点。回想一下在轴模式中我们将用户的操纵 Δ~ : (dx, dy, 0, 0, …) 加到第 i 个轴句柄的位置 e_i~ 上。这在 Grand Tour 矩阵 GT 的第 i 行引发了一个增量变化。接着作为 Gram-Schmidt 的第一步我们归一化了这一行GT_i^(new) : normalize(GT~_i) normalize(e_i~ Δ~)。这两个步骤使轴句柄从 e_i~ 移动到 e_i~^(new) : normalize(e_i~ Δ~)。观察这种移动的几何形状对 e_i~ 进行“加增量然后归一化”等价于从 e_i~ 向 e_i~^(new) 的旋转如下图所示。这种几何解释可以直接推广到任何任意数据点。该图显示了 3D 情况但在更高维空间中基本相同因为 e_i~ 和 e_iΔ两个向量只张成一个2维子空间。现在我们对直接操纵有了一个很好的几何直觉拖拽一个点会在高维空间中引发一个简单的旋转。这种直觉正是我们实现对任意数据点进行直接操纵的方式具体说明如下。将此观察从轴句柄推广到任意数据点我们希望找到将选定数据点子集的质心 c~ 移动到 c~^(new) : (c~ Δ~) * ||c~|| / ||c~ Δ~|| 的旋转。首先旋转角度可以通过它们的余弦相似度找到。接下来为了找到旋转的矩阵形式我们需要一个方便的基。设 Q 是一个标准正交基变换矩阵其前两行构成2维子空间 span(c~, c~^(new))。例如我们可以让它的第一行是 normalize(c~)第二行是其在 span(c~, c~^(new)) 中的正交补 normalize(c~_⊥^(new))其余行完成整个空间。利用 Q我们可以找到将平面 span(c~, c~^(new)) 旋转角度 θ 的矩阵。新的 Grand Tour 矩阵是原始 GT 与 ρ 的矩阵乘积GT^(new) : GT ⋅ ρ。现在我们应该能看到轴模式和数据点模式之间的联系。在数据点模式中可以通过 Gram-Schmidt 找到 Q。在轴模式中第 i 行优先的 Gram-Schmidt 将旋转和基变换合并为一步。层转换ReLU 层当第 l 层是 ReLU 函数时输出激活是 X^l ReLU(X^{l-1})。由于 ReLU 不改变维度并且函数是逐坐标进行的我们可以通过简单的线性插值来动画过渡对于时间参数 t∈[0,1]X^{(l-1)→l}(t) : (1-t) X^{l-1} t X^l。线性层线性层之间的过渡看起来可能很复杂但正如将要展示的这是由于在过渡两侧选择了不匹配的基所致。如果 X^l X^{l-1} M其中 M∈R^{m×n} 是线性变换的矩阵那么它有奇异值分解M U Σ V^T。对于任意的 U 和 VTX{l-1} 上的变换是旋转 (U)、缩放 (Σ) 和另一次旋转 (V^T) 的组合这可能看起来很复杂。然而考虑将层 X^l 的 Grand Tour 视图与层 X^{l1} 的视图相关联的问题。Grand Tour 有一个代表数据集当前旋转的单一参数。由于我们的目标是保持过渡一致我们注意到 U 和 V^T 基本上没有意义——它们只是对视图的旋转可以通过更改任一层的 Grand Tour 旋转参数来精确“抵消”。因此我们不展示 M而是寻求过渡只动画 Σ 的效果。Σ 是按坐标的缩放因此我们可以在适当的基变换后像 ReLU 一样对其进行动画。给定 X^l X^{l-1} U Σ V^T我们有 (X^l V) (X^{l-1} U) Σ。对于时间参数 t∈[0,1]X^{(l-1)→l}(t) : (1-t)(X^{l-1}U) t(X^l V) (1-t)(X^{l-1}U) t(X^{l-1} U Σ)。卷积层卷积层可以表示为特殊的线性层。通过改变表示可以像上一节那样动画卷积层。对于2D卷积这种表示改变涉及展平输入和输出并将核模式重复成一个稀疏矩阵 M∈R^{m×n}其中 m 和 n 分别是输入和输出的维度。这种表示改变仅适用于小维度例如最多1000因为我们需要为线性层求解 SVD。然而多通道2D卷积的奇异值分解可以高效计算然后可以直接用于对齐。最大池化层动画最大池化层并不简单因为最大池化既不是线性的也不是按坐标的。我们将其替换为平均池化并按平均值与最大值的比率进行缩放。我们计算平均池化的矩阵形式并使用其 SVD 来对齐该层之前和之后的视图。在功能上我们的操作与最大池化具有等效结果但这会引入意想不到的伪影。结论尽管 t-SNE 和 UMAP 功能强大但它们常常无法提供所需的对应关系而这些对应关系令人惊讶的是可能来自像 Grand Tour 这样相对简单的方法。我们提出的 Grand Tour 方法在用户可以直接操纵或期望直接操纵时特别有用。相信有可能设计出兼顾两者优点的方法使用非线性降维来创建激活层的中间、相对低维的表示并使用 Grand Tour 和直接操纵来计算最终投影。致谢用于 js/lib/webgl_utils/ 下的 WebGL 实用代码改编自 Angel 的计算机图形学书籍补充材料。讨论与评审评审1 - 匿名评审2 - 匿名评审3 - 匿名参考文献原始参考文献列表略FINISHED更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手或者 我的个人博客 https://blog.qife122.com/对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享

更多文章