前语 本文介绍了一系列可视化办法探究了神经丢失函数的结构,以及loss landscape对泛化的影响,提出了一种根据 “Filter Normalization” 的简略可视化办法。当运用这种归一化时,最小化的锐度与泛化差错有很高的相关性,这种展现的可视化成果十分明晰。

本文转载自极市平台

作者丨CV开发者都爱看的

欢迎关注大众号CV技能指南,专心于核算机视觉的技能总结、最新技能跟踪、经典论文解读、CV招聘信息。

核算机视觉入门1v3辅导班

本文目录

1 神经网络丢失函数散布可视化神器 (来自马里兰大学) 1 Loss landscape 论文解读 1.1 背景和动机 1.2 丢失函数可视化基础 1.3 Filter Normalization 1.4 可视化试验:Loss landscape 尖利,扁平的窘境 1.5 把以上可视化试验再用 Filter Normalization 办法做一遍 1.6 究竟什么使得神经网络可练习?一些 Loss Surfaces 非凸结构的发现

1 神经网络丢失函数散布可视化神器

论文名称:Visualizing the Loss Landscape of Neural Nets

论文地址

arxiv.org/pdf/1712.09…

1.1 背景和动机

练习一个神经网络,需求最小化一个高维非凸丢失函数——这一使命在理论上很难,但在实践中有时很简略。简略的梯度下降办法通常能够找到大局的最小值 (练习丢失为零或挨近零)。但是,这种较简略练习好一个网络的行为却并不普遍,神经网络的可练习性高度依赖于网络架构规划的挑选、优化器的挑选、变量初始化和各种因素。并且,这些挑选关于潜在的 loss landscape 的影响尚不清楚。

因而,本文从神经网络丢失函数散布可视化的角度,想研讨以下几个问题:

  1. 为什么咱们能够最小化高度非凸神经丢失函数?

  2. 为什么得到的最小值这个成果具有泛化性?

  3. 不同的神经网络网络架构怎么影响丢失函数散布 (loss landascape),以及练习的超参数参数怎么影响丢失函数散布?

详细而言,本文的奉献是:

  • 本文提出一种根据 “Filter Normalization” 的简略可视化办法。当运用这种归一化时,最小化的锐度与泛化差错有很高的相关性,这种展现的可视化成果十分明晰。

  • 本文观察到,当网络变得满足深时,神经网络的 loss landscape 会敏捷从挨近凸的状况过渡到高度紊乱的状况。这种从凸到混沌行为的改变伴跟着泛化差错的急剧下降,并终究导致整个网络可练习性的下降。

  • 本文观察到,残差衔接促进了 loss landscape 更加平整,并阻挠了向混沌行为的过渡,这有助于解说为什么残差衔接关于练习极深的网络是必要的。

  • 本文经过核算在部分极小值邻近 Hessian 矩阵的的最小 (最负) 特征值来定量丈量非凸性,并将成果可视化为 heatmap。

  • 本文研讨了 SGD 优化轨道的可视化,也解说了可视化这些轨道时呈现的困难。

1.2 丢失函数可视化基础

一般经过最小化 来练习神经网络。其间, 标明神经网络的参数, 函数 衡量神经网络对数据样本标签的预测程度, 为数据样本的个数。神经网络包括许多参数, 因而它们的丢失函数存在于一个十分高维的空间中。

一维的线性插值可视化办法

一种已有的1维的可视化办法是线性插值法 (Linear interpolation), 就是挑选两个参数向量 和 , 并沿衔接这两点的直线 制作丢失函数的值 。但是一维线性插值办法有几个缺陷。

首要,一维线性插值办法去可视化神经网络的非凸性 (non-convexities) 是很困难的,这就导致了丢失函数在最小化轨道上好像缺乏部分最小值。一些丢失函数具有非凸性,而这些非凸性与不同网络架构之间的泛化差异相关。并且,一维线性插值办法不考虑 Batch Normalization 或许网络中的不变性对称性。因而,由一维线性插值办法发生的插值成果或许具有误导性。

二维的线性插值可视化办法

为了运用二维的线性插值可视化办法, 咱们能够在图中挑选首要一个中心点 , 并挑选两个方向向量 和 。

然后, 在 1D (曲线) 情况下, 制作一个方式为 的函数, 或许在 2D (平面) 情况下, 制作一个方式为 的函数。但是, 由于二维绘图的核算担负, 这些办法通常只适合于在小区域中制作低分辨率图, 没有捕获丢失曲面杂乱的非凸性。

以上办法的问题

那么以上的一维,二维的线性插值可视化办法不好在哪了呢?虽然以上这两种在随机方向移动一个小距离,并制作函数值的绘图办法很简略,但它无法捕捉丢失函数的固有几何形状,并且不能用于比较两个不同的最小化器或两个不同的神经网络模型的几何形状。这是由于网络权重的份额不变性 (scale invariance) 。当运用 ReLU 非线性激活函数时,假如将网络中某一层的权重乘以10,并将下一层的权重除以10,网络输出将坚持不变。当运用 BN 时,同理也存在这种不变性。

那么网络权重的份额不变性 (scale invariance) 关于以上的一维,二维的线性插值可视化办法有哪些影响呢?

具有较大权重的神经网络或许具有滑润且缓慢改变的丢失函数:比方说,假如权重的幅值比1大得多,那么将权重扰动一个单位对网络性能的影响很小。但是假如权重远小于1,那么相同的单位扰动或许会发生很大的影响,使丢失函数对权重扰动显得适当灵敏。

1.3 Filter Normalization

根据以上一维和二维的线性插值可视化办法的缺陷,本文提出一种叫做 Filter Normalization 的可视化办法。这种办法的思想也是根据以上的一维,二维的线性插值可视化办法。

以上办法问题的核心其实就来自于 “单位扰动” ,即:

  • 关于权重幅值较大的神经网络而言,一个单位的扰动对它没啥效果,即使得 loss 的改动几乎能够忽略不计,那么它就更或许具有一个滑润且缓慢改变的 loss landscape。

  • 关于权重幅值较小的神经网络而言,一个单位的扰动对它会发生很大的影响,使得 loss 发生灾难性的改动,使得 loss landscape 对权重扰动显得适当灵敏。

那么为了克服这个难题, 本文作者提出一种滤波器归一化 (Filter Normalization) 的做法, 即:关于网络权重 , 和一个随机的高斯方向向量 , 然后作者将 中的每个滤波器归一化, 使其具有与 中相应滤波器相同的范数。换句话说, 进行替换, 如下式所示:

神经网络损失函数分布可视化神器

式中, 代表第 层, 第 个滤波器的高斯方向向量, 代表 Frobenius 范数。滤波器归一 化 (Filter Normalization) 并不局限于卷积 (Conv) 层, 也适用于全衔接 层 (适当于 卷 积)。

作者鄙人一节证明了经过滤波器归一化的图的锐度与泛化差错有很好的相关性,而没有滤波器归一化的图或许十分具有误导性。

1.4 可视化试验:Loss landscape 尖利,扁平的窘境

在上一节中,咱们说到有的神经网络具有滑润且缓慢改变的 loss landscape (称为 sharp minimizer),而有的具有剧烈改变的 loss landscape (称为 flat minimizer)。在本节中,将经过一些试验成果说明:sharp minimizer 和 flat minimizer 的泛化性有什么联系?

在这里呢,作者探讨了 sharp minimizer 和 flat minimizer 的区别。

详细而言,作者首要练习了一个 CIFAR-10 分类模型 (1个9层的 VGG 模型),运用了2种 Batch Size (8192 和 128)。定义 和 分别是运用小 Batch Size 和大 Batch Size 练习得到的神经网络参数。按照线性插值的做法,作者制作了中心参数练习和测验数据集上的丢失函数值,即:

神经网络损失函数分布可视化神器

​式中, 当 时, 其函数值是运用小 Batch Size 练习得到的丢失函数值; 当 时, 其函数值是运用大 Batch Size 练习得到的丢失函数值。

如下图 1(a) 所示, 在不运用权重衰减 weight decay 的情况下, 蓝色线是丢失函数值, 红色线是精度, 实线是练习曲线, 虚线是测验曲线。能够看到, 跟着 从0到1 (即模型参数 从 到 的 过程中), 能够看出小 batch 模型 的曲线很宽, 而大 batch 模型 的曲线很窄。

但是如下图 1(d) 所示, 在运用权重衰减 weight decay 的情况下, 情况则正好相反, 能够看出大 batch 模型 的曲线也变宽了。但是在以上一切试验中, 小 batch 模型 的泛化性一直都很好, 这说明曲线的锐度与模型的泛化性之间没有显着的相关性。

下图 1(b) 和 1(e) 标明运用 weight decay 或许禁用 weight decay 时练习过程中权值范数的改变。当禁用权值衰减时,权值范数在练习过程中不受约束地稳定增长。

下图 1(c) 和 1(f) 标明练习过程中权值散布直方图。能够看到,当大 Batch Size 运用零权重衰减时,得到的权重往往比小 Batch Size 的情况要小。而经过添加 weight decay 能够扭转这种影响。呈现这种规划上的差异的原因很简略:较小的 Batch Size 比大的 Batch Size 导致每个周期的权重更新更多,因而权重衰减的收缩效应 (它对权重的范数施加了赏罚) 更显着。

神经网络损失函数分布可视化神器

图1:不同 Batch Size 线性插值的可视化成果:(a) 和 (d) 是按照线性插值的做法,制作中心参数练习和测验数据集上的丢失函数值。(b) 和 (e) 标明运用 weight decay 或许禁用 weight decay 时练习过程中权值范数的改变。(c) 和 (f) 标明练习过程中权值散布直方图

1.5 把以上可视化试验再用 Filter Normalization 办法做一遍

在上一节中,作者标明:运用传统的一维线性插值办法得到的结论是:sharp minimizer 和 flat minimizer 的泛化性没什么联系。 在本末节中,作者把以上可视化试验再用 Filter Normalization 办法做一遍。如下图2所示,可视化成果仍然显现了小 Batch Size 和大 Batch Size 最小值之间的锐度差异,但这些差异比在非归一化图中呈现的差异要微妙得多。

作者还运用两个随机方向和等高线图来可视化这些成果。用小 Batch Size 和非零权重衰减取得的权重比锋利的大 Batch Size 最小化具有更宽的概括。现在咱们看到曲线的锐度与模型的泛化性之间很好地相关。大 Batch Size 发生视觉上更尖利的最小值 (虽然不是很显着),但测验差错更高。

神经网络损失函数分布可视化神器

图2:不同 Batch Size 运用滤波器归一化 1D 和 2D 的可视化成果

1.6 究竟什么使得神经网络可练习?一些 Loss Surfaces 非凸结构的发现

大量经验标明,好像有些神经结构比其他的更简略最小化。例如,运用 Skip Connection,ResNet 使得咱们能够练习十分深的神经网络结构,而没有 Skip Connection 的相同的神经网络结构是不行练习的。并且,一个网络是否能够得到杰出的练习很大程度上取决于练习开始时的初始参数。

作者运用可视化办法,对神经结构进行了实证研讨,以探究为什么丢失函数的非凸性在某些情况下好像是有问题的。希望答复以下问题:

  • 丢失函数是否具有明显的非凸性?

  • 假如非凸性存在,为什么它们在一切情况下都能够练习?

  • 为什么有些网络架构简略练习?

  • 为什么成果对初始化如此灵敏?

试验设置

作者考虑以下3种网络架构:

  1. ResNet20/56/110

  2. VGG-like 模型,没有残差衔接

  3. Wide ResNets

一切模型都在 CIFAR-10 数据集上运用 Nesterov 动量 SGD 练习,Batch Size 大小为128,权重衰减为0.0005,继续300个 Epochs。学习率初始化为 0.1,在第150、225和275个 Epoch 下降10倍。运用滤波器归一化的可视化办法,作者对架构怎么影响 loss landscape 进行了一些观察。

模型深度的影响

如下图3所示,能够看到,当不运用残差衔接时,网络深度对神经网络的 loss landscape 有明显的影响。比方当深度为20时,不运用残差衔接的 ResNet-20-NS 有较好的体现,这并不太令人惊奇,由于用于 ImageNet 的原始VGG 网络有19层,也能够有效地练习。但是,跟着网络深度的添加,VGG 类网络的丢失面自发地从 (近) 凸过渡到混沌。ResNet-56-NS 具有明显的非凸性和大区域,其间梯度方向 (与图中描绘的等高线正常) 不指向中心的最小值。并且,跟着向某些方向移动,丢失函数会变得十分大。ResNet-110-NS 显现出更显着的非凸性,当咱们在图中所示的各个方向移动时,它变得十分峻峭。

神经网络损失函数分布可视化神器

图3:Wide-ResNet-56 有残差衔接 (上) 和无残差衔接 (下) 的 loss landscape,k=2 意思是每层滤波器数量乘以2

有无残差衔接的影响

残差衔接对丢失函数的 loss landscape 有明显的影响。在上图3中能够看到,跟着深度的添加,残差衔接阻挠了向混沌行为的过渡。残差衔接的影响好像对深的网络架构最为重要。关于更浅的网络 (ResNet-20 和 ResNet-20-NS),残差衔接的影响不显着。如下图4所示是 ResNet-56 有无残差衔接的 loss landscape 比照,图5所示是 ResNet-110 无残差衔接和 DenseNet 121 层的 loss landscape 比照。

神经网络损失函数分布可视化神器

图4:ResNet-56 有无残差衔接的 loss landscape 比照

神经网络损失函数分布可视化神器

图5:ResNet-110 无残差衔接和 DenseNet 121 层的 loss landscape 比照

模型宽度的影响

为了比较每层卷积滤波器数量的影响,作者经过将每层的滤波器数量乘以 来比较更窄或许更宽的 ResNet 的影响。如下图6所示,能够看到更宽的模型的 loss landscape 更宽,即:增大网络宽度能够取得更宽更平整的 loss landscape。

神经网络损失函数分布可视化神器

图6:Wide-ResNet-56 有残差衔接 (上) 和无残差衔接 (下) 的 loss landscape,k=2 意思是每层滤波器数量乘以2

网络初始化的影响

在图3中看到的一个有趣的性质是,网络的 loss landscape 好像都能够分成两种区域:一种是丢失函数值相对较低,loss landscape 的凸性很好;一种是丢失函数值相对较高,loss landscape 的凸性很差。这种混沌和凸区域的划分或许解说了杰出初始化战略的重要性。

假如一个神经网络模型的 loss landscape 很平整,那么初始化的方位很或许位于具有 “杰出体现” 的丢失函数区域,或许永久不会出于非凸的部分。相反,假如一个神经网络模型的 loss landscape 很峻峭,那么初始化的方位很或许由于梯度不足导致添加优化的难度。

图3和图6都标明,loss landscape 对泛化性有明显的影响。混沌,峻峭的 loss landscape (没有残差衔接的深度网络) 导致更糟糕的练习和测验差错,而更凸的景观具有更低的差错值。

总结

本文提出一种根据 “Filter Normalization” 的简略可视化办法。当运用这种归一化时,最小化的锐度与泛化差错有很高的相关性,这种展现的可视化成果十分明晰。本文观察到,当网络变得满足深时,神经网络的 loss landscape 会敏捷从挨近凸的状况过渡到高度紊乱的状况。这种从凸到混沌行为的改变伴跟着泛化差错的急剧下降,并终究导致整个网络可练习性的下降。本文观察到,残差衔接促进了 loss landscape 更加平整,并阻挠了向混沌行为的过渡,这有助于解说为什么残差衔接关于练习极深的网络是必要的。本文经过核算在部分极小值邻近 Hessian 矩阵的的最小 (最负) 特征值来定量丈量非凸性,并将成果可视化为 heatmap。本文研讨了 SGD 优化轨道的可视化,也解说了可视化这些轨道时呈现的困难。

欢迎关注大众号CV技能指南,专心于核算机视觉的技能总结、最新技能跟踪、经典论文解读、CV招聘信息。

【技能文档】《从零搭建pytorch模型教程》122页PDF下载

QQ沟通群:444129970。群内有大佬担任回答大家的日常学习、科研、代码问题。

模型部署沟通群:732145323。用于核算机视觉方面的模型部署、高性能核算、优化加快、技能学习等方面的沟通。

其它文章

深度理解变分自编码器(VAE) | 从入门到精通

核算机视觉入门1v3辅导班

核算机视觉沟通群

用于超大图像的练习战略:Patch Gradient Descent

CV小常识讨论与剖析(5)到底什么是Latent Space?

【免费送书活动】关于语义切割的亿点思考

新方案:从过错中学习,点云切割中的自我规范化层次语义标明

经典文章:Transformer是怎么进军点云学习范畴的?

CVPR 2023 Workshop | 首个大规划视频全景切割竞赛

怎么更好地应对下流小样本图像数据?不平衡数据集的建模的技巧和策

Transformer沟通群

经典文章:Transformer是怎么进军点云学习范畴的?

CVPR 2023 Workshop | 首个大规划视频全景切割竞赛

怎么更好地应对下流小样本图像数据?不平衡数据集的建模的技巧和策

U-Net在2022年相关研讨的论文推荐

用少于256KB内存完成边缘练习,开销不到PyTorch千分之一

PyTorch 2.0 重磅发布:一行代码提速 30%

Hinton 最新研讨:神经网络的未来是前向-前向算法

聊聊核算机视觉入门

FRNet:上下文感知的特征强化模块

DAMO-YOLO | 超越一切YOLO,兼顾模型速度与精度

《医学图像切割》综述,胪陈六大类100多个算法

怎么高效完成矩阵乘?万文长字带你从CUDA初学者的角度入门

近似乘法对卷积神经网络的影响

BT-Unet:医学图像切割的自监督学习结构

语义切割该怎么走下去?

轻量级模型规划与部署总结

从CVPR22动身,聊聊CAM是怎么激活咱们文章的热度!

入门必读系列(十六)经典CNN规划演变的关键总结:从VGGNet到EfficientNet

入门必读系列(十五)神经网络不work的原因总结

入门必读系列(十四)CV论文常见英语单词总结

入门必读系列(十三)高效阅读论文的办法

入门必读系列(十二)池化各要点与各办法总结

TensorRT教程(三)TensorRT的安装教程

TensorRT教程(一)初次介绍TensorRT

TensorRT教程(二)TensorRT进阶介绍