神经网络权重可视化技术解析

本文深入探讨了神经网络权重的可视化技术,包括权重与激活的区别、隐藏层权重研究的挑战、通过特征可视化实现权重语境化等方法,并介绍了扩展权重处理间接交互等高级技术。

神经网络权重可视化技术解析

引言

理解神经网络的问题有点类似于逆向工程一个大型编译后的计算机程序。在这个类比中,神经网络的权重就是编译后的汇编指令。权重是我们最终想要理解的根本:这一系列卷积和矩阵乘法如何产生模型行为?

研究人工神经网络与神经科学有很多共同点。现代神经科学的一个主要努力是绘制生物神经网络的连接组:哪些神经元连接到哪些神经元。然而,这些连接只能告诉神经科学家哪些权重是非零的。获取权重——知道一个连接是兴奋还是抑制,以及程度如何——将是一个重要的进一步步骤。

令人惊讶的是,我们实际上很少关注神经网络的权重。当然也有一些例外。研究人员经常展示视觉模型第一层权重的图片(这些直接连接到RGB通道,因此很容易理解为图像)。在某些工作中,尤其是历史上,我们看到研究人员手工推理玩具神经网络的权重。我们也经常看到研究人员讨论权重的聚合统计。但实际上查看神经网络除第一层以外的权重是相当罕见的。

可视化激活、权重和归因的区别

在本文中,我们专注于可视化权重。但人们经常可视化激活、归因、梯度等。我们应该如何思考可视化这些不同对象的含义?

  • 激活:我们通常认为这些是网络"看到"的内容。如果理解神经网络就像逆向编译计算机程序,那么神经元就是变量,激活就是这些变量的值。

  • 权重:我们通常认为这些是神经网络如何从上一层计算下一层的方式。在逆向工程类比中,这些是编译后的汇编指令。

  • 归因:归因试图告诉我们一个神经元在多大程度上影响了后面的神经元。我们经常认为这是神经元"为什么"被激活。我们需要小心归因,因为它们是建立在神经网络之上的人为定义对象,而不是基本对象。

研究隐藏层权重的非平凡性

我们认为,理解神经网络权重有三个主要障碍:

  1. 缺乏语境化:研究人员经常可视化第一层的权重,因为它们与我们理解的RGB值相关联。这种联系使第一层的权重有意义。但默认情况下,隐藏层之间的权重是没有意义的:如果对源或目标一无所知,我们如何理解它们?

  2. 间接交互:有时,有意义的权重交互发生在神经网络中字面上不相邻的神经元之间。例如,在残差网络中,一个神经元的输出可以通过加法残差流传递,并与网络中更晚的神经元线性交互。在其他情况下,神经元可能通过中间神经元交互而没有显著的非线性交互。

  3. 维度和规模:神经网络有很多神经元。这些神经元连接到许多其他神经元。有大量数据需要显示!我们如何将其减少到人类规模的信息量?

通过特征可视化实现权重语境化

当然,在真空中查看权重并不有趣。为了真正理解发生了什么,我们需要在网络的更广泛背景下语境化权重。语境化的挑战是理解神经网络时反复出现的挑战:我们可以轻松观察每个激活、每个权重和每个梯度;挑战在于确定这些值代表什么。

回想一下,两个卷积层之间的权重是一个四维数组,形状为: [相对x位置,相对y位置,输入通道,输出通道] 如果我们固定输入通道和输出通道,我们得到一个可以传统数据可视化呈现的2D数组。假设我们知道我们感兴趣的神经元,所以我们有输出通道。我们可以选择对我们输出通道具有高幅度权重的输入通道。

但输入代表什么?输出呢?

关键技巧是像特征可视化(或对神经元的更深入研究)这样的技术可以帮助我们理解输入和输出神经元代表什么,从而语境化图表。特征可视化特别有吸引力,因为它们是自动的,并且产生一个通常对神经元非常信息丰富的单一图像。因此,我们经常在权重图中将神经元表示为特征可视化。

处理间接交互

正如我们前面提到的,有时有意义的权重交互发生在神经网络中字面上不相邻的神经元之间,或者权重没有直接表示在单个权重张量中。一些例子:

  • 在残差网络中,一个神经元的输出可以通过加法残差流传递,并与网络中更晚的神经元线性交互。
  • 在可分离卷积中,权重存储为两个或更多因子,需要扩展以链接神经元。
  • 在瓶颈架构中,瓶颈中的神经元可能主要是前一层的神经元的低秩投影。
  • 中间层的行为根本不引入太多非线性行为,使非相邻层中的两个神经元具有显著的线性交互。

因此,我们经常使用"扩展权重"——即相邻权重矩阵相乘的结果,可能忽略非线性。我们通常通过在我们的模型中获取梯度来实现扩展权重,忽略或用最接近的线性操作替换所有非线性操作。

维度和规模

到目前为止,我们已经解决了语境化和间接交互的挑战。但对我们第三个维度

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计