对比度归一化

科技工作者之家 2020-11-17

在深度学习中,对比度通常指的是图像或图像区域中像素的标准差。对比度归一化包括全局对比度归一化和局部对比度归一化,是深度学习中常用的一种数据预处理方法,用以减少数据中的变化量从而减少泛化误差和拟合训练集所需模型的大小。

预处理由于原始输入往往以深度学习架构难以表示的形式出现,需要许多杂精细的预处理。 计算机视觉通常只需要相对少的这种预处理。图像应该被标准化,从而使得它们的像素都在相同并且合理的范围内,比如 或者,将中的图像与 中的图像混合通常会导致失败。将图像格式化为具有相同的比例严格上说是一种必要的预处理。

将每个样本置于更规范的形式,减少模型需要考虑的变化量。减少数据中的变化量既能够减少泛化误差,也能够减小拟合训练集所需模型的大小。更简单的任务可以通过更小的模型来解决,而更简单的解决方案泛化能力一般更好。这种类型的预处理通常被设计为去除输入数据中的某种可变性,这对于人工设计者来说是容易描述的,并且人工设计者能够保证不受到任务影响。当使用大型数据集和大型模型训练时,这种预处理通常是不必要的,并且最好只是让模型学习哪些变化性应该保留。例如,用于分类 ImageNet 的 AlexNet 系统仅具有一个预处理步骤:对每个像素减去训练样本的平均值。1

对比度表示在许多任务中,对比度是能够安全移除的最为明显的变化源之一。简单地说,对比度指的是图像中亮像素和暗像素之间差异的大小。量化图像对比度有许多方式。在深度学习中,对比度通常指的是图像或图像区域中像素的标准差。假设我们有一个张量表示图像 ,其中, 表示第i行第j列红色的强度, 对应的是绿色的强度, 对应的是蓝色的强度。然后整张图像的对比度可以表示如下:1

其中, 是整张图像的平均强度,满足

全局对比度归一化全局对比度归一化(Global contrast normalization, GCN)旨在通过从每个图像中减去其平均值,然后重新缩放其使得其像素上的标准差等于某个常数 来防止图像具有变化的对比度。这种方法非常复杂,因为没有缩放因子可以改变零对比度图像(所有像素都具有相等强度的图像)的对比度。具有非常低但非零对比度的图像通常几乎没有信息内容。在这种情况下除以真实标准差通常仅能放大传感器噪声或压缩伪像。这种现象启发我们引入一个小的正的正则化参数 来平衡估计的标准差。或者,我们至少可以约束分母使其大于等于 。给定一个输入图像,全局对比度归一化产生输出图像 ,定义为

从大图像中剪切感兴趣的对象所组成的数据集不可能包含任何强度几乎恒定的图像。在这些情况下,通过设置 来忽略小分母问题是安全的,并且在非常罕见的情况下为了避免除以 0,通过将 设置为一个非常小的值比如说 。随机剪裁的小图像更可能具有几乎恒定的强度,使得激进的正则化更有用。

尺度参数 通常可以设置为 1,或选择使所有样本上每个像素的标准差接近 1。

上式中的标准差仅仅是对图像L2 范数的重新缩放(假设图像的平均值已经被移除)。我们更偏向于根据标准差而不是 L2 范数来定义 GCN,因为标准差包括除以像素数量这一步,从而基于标准差的 GCN 能够使用与图像大小无关的固定的 s。然而,观察到 L2 范数与标准差成比例,这符合我们的直觉。我们可以把 GCN 理解成到球壳的一种映射。如图1所示。在图1中,左边是原始的输入数据可能拥有任意的范数; 中间是 时候的 GCN 可以将所有的非零样本投影到球上,这里令 ,由于使用的 GCN 是基于归一化标准差而不是 L2 范数,所得到的球并不是单位球;右边是 的正则化 GCN 将样本投影到球上,但是并没有完全地丢弃其范数中变化, 的取值与之前一样。

这可能是一个有用的属性,因为神经网络往往更好地响应空间方向,而不是精确的位置。响应相同方向上的多个距离需要具有共线权重向量但具有不同偏置的隐藏单元。这样的情况对于学习算法来说可能是困难的。此外,许多浅层的图模型把多个分离的模式表示在一条线上会出现问题。 GCN 采用一个样本一个方向而不是不同的方向和距离来避免这些问题。

与直觉相反的是,存在被称为 sphering(sphering)的预处理操作,并且它不同于 GCN。 sphering 并不会使数据位于球形壳上,而是将主成分重新缩放以具有相等方差,使得 PCA 使用的多变量正态分布具有球形等高线。 sphering 通常被称为白化(whitening)。1

局部对比度归一化全局对比度归一化常常不能突出我们想要突出的图像特征,例如边缘和角。如果我们有一个场景,包含了一个大的黑暗区域和一个大的明亮的区域(例如一个城市广场有一半的区域处于建筑物的阴影之中),则全局对比度归一化将确保暗区域的亮度与亮区域的亮度之间存在大的差异。然而,它不能确保暗区内的边缘突出。

这催生了局部对比度归一化(local contrast normalization, LCN)。局部对比度归一化确保对比度在每个小窗口上被归一化,而不是作为整体在图像上被归一化。关于局部对比度归一化和全局对比度归一化的比较可以参考图2 。如图2所示,直观上说,全局对比度归一化的效果很巧妙,它使得所有的图片的尺度都差不多,这减轻了学习算法处理多个尺度的负担。局部对比度归一化更多地改变了图像,丢弃了所有相同强度的区域这使,得模型能够只关注于边缘。较好的纹理区域,如第二行的屋子,可能会由于归一化核的过高带宽而丢失一些细节。

局部对比度归一化的各种定义都是可行的。在所有情况下,我们可以通过减去邻近像素的平均值并除以邻近像素的标准差来修改每个像素。在一些情况下,要计算以当前要修改的像素为中心的矩形窗口中所有像素的平均值和标准差 。在其他情况下,使用的则是以要修改的像素为中心的高斯权重的加权平均和加权标准差。在彩色图像的情况下,一些策略单独处理不同的颜色通道,而其他策略组合来自不同通道的信息以使每个像素归一化。

局部对比度归一化通常可以通过使用可分离卷积来计算特征映射的局部平均值和局部标准差,然后在不同的特征映射上使用逐元素的减法和除法。局部对比度归一化是可微分的操作,并且还可以作为一种非线性作用应用于网络隐藏层,以及应用于输入的预处理操作。与全局对比度归一化一样,我们通常需要正则化局部对比度归一化来避免出现除以零的情况。事实上,因为局部对比度归一化通常作用于较小的窗口,所以正则化更加重要。较小的窗口更可能包含彼此几乎相同的值,因此更可能具有零标准差1。

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。