(待补充)图像预处理——对比度归一化 & 数据增强

  本博客主要内容为图书《深度学习》的学习笔记,因此在全文中对它们多次引用。初出茅庐,学艺不精,有不足之处还望大家不吝赐教。

  欢迎大家在评论区多多留言互动~~~~

一、计算机视觉的主要任务

  计算机视觉的主要任务可以分为三类:一种是复现人的视觉能力,如图像分类、识别人脸,主要体现在对于对象的识别或者某种形式的检测;另一种是创造全新的视觉能力,如从视频中可视物体的振动中识别相应的声波 (Davis et al., 2014);最后是利用生成模型进行图像合成,更经常被使用的领域是图像恢复,即修复图像中的缺陷或从图像中移除对象这样的计算机视觉任务。

二、图像预处理

  利用神经网络进行关于图像的深度学习与其他领域的最大区别在于,计算机视觉通常只需要较少的图像预处理工作,具体集中在两个方面,及对比度归一化与数据增强两个方面。

  在一些例子中,我们不需要去除方差带来的变化,在这类图像中我们只需要使它们的像素都在相同并且合理的范围内,比如[0; 1] 或者[-1; 1]。其次要考虑减少数据的变化量,减少数据中的变化量既能够减少泛化误差,也能够减小拟合训练集所需模型的大小。更简单的任务可以通过更小的模型来解决,而更简单的解决方案泛化能力一般更好。当使用大型数据集和大型模型训练时,这种预处理通常是不必要的,并且最好只是让模型学习哪些变化性应该保留。例如,用于分类ImageNet 的AlexNet 系统仅具有一个预处理步骤:对每个像素减去训练样本的平均值(Krizhevsky et al., 2012b)。

2.1 对比度归一化

  对比度是一种针对单张图像而定义的概念。在深度学习中对比度通常指的是图像或图像区域中像素的标准差,用来衡量图像中亮像素和暗像素之间差异的大小。假设我们有一个张量表示的图像 XRr×c×3 X 2 Rrc3,其中 Xi,j,1 表示第i 行第j 列红色的强度, Xi,j,2 对应的是绿色的强度, Xi,j,3 对应的是蓝色的强度。然后整个图像的对比度可以表示如下:

(待补充)图像预处理——对比度归一化 & 数据增强_第1张图片

其中 X¯¯¯ 代表整个图片的平均强度,满足

2.1.1 全局对比度归一化

  全局对比度归一化(Global contrast normalization, GCN)旨在通过从每个图像中减去其平均值,然后重新缩放其使得其像素上的标准差等于某个常数s 来防止图像具有变化的对比度。(其中 s 的作用可以这样理解,就像高中数学所讲授的内容,如果 X 的方差为 a 的话,那么 2X 的方差为 2a ,所以可以通过乘以常数s 来指定对比度归一化后的方差)。但是在除以方差的过程中个要避免分母为零(即方差为 0 的个像素强度相等的图像)和方差很小(几乎不包含任何信息的图像),所以需要们引入一个小的正的正则化参数 λ 来平衡估计的标准差;或者我们至少可以约束分母使其大于等于ϵ。所以给定一个输入图像X,全局对比度归一化产生输出图像X′,定义为

对于上面的三个参数,其中尺度参数 s 通常可以设置为1(如Coates et al. (2011) 所采用的),或选择使所有样本上每个像素的标准差接近1(如Goodfellow et al. (2013c) 所采用的)。而对于参数 λ 和 ϵ 的选择则需要根据情况讨论。如果从大图像中剪切感兴趣的对象所组成的数据集不可能包含任何强度几乎恒定的图像。在这些情况下,通过设置 λ = 0 来忽略小分母问题是安全的,并且在非常罕见的情况下为了避免除以0,通过将ϵ 设置为一个非常小的值比如说 108 。这也是Goodfellow et al. (2013c) 在CIFAR-10 数据集上所使用的方法。随机剪裁的小图像更可能具有几乎恒定的强度,使得激进的正则化更有用。在处理从CIFAR-10 数据中随机选择的小区域时,Coates et al. (2011) 使用ϵ = 0; λ = 10。
  观察到 L2 范数与标准差成比例,所以可以把 GCN 理解成到球壳的一种映射,如图1所示

(待补充)图像预处理——对比度归一化 & 数据增强_第2张图片

再上图中GCN 将样本投影到一个球上。(左) 原始的输入数据可能拥有任意的范数。(中) λ = 0 时候的GCN 可以完美地将所有的非零样本投影到球上。这里我们令s = 1,ϵ = 108 。由于我们使用的GCN 是基于归一化标准差而不是 L2 范数,所得到的球并不是单位球。(右) λ > 0 的正则化GCN 将样本投影到球上,但是并没有完全地丢弃其范数中变化。s 和ϵ 的取值与之前一样。
  这可能是一个有用的属性,因为神经网络往往更好地响应空间方向,而不是精确的位置。响应相同方向上的多个距离需要具有共线权重向量但具有不同偏置的隐藏单元。这样的情况对于学习算法来说可能是困难的。此外,许多浅层的图模型把多个分离的模式表示在一条线上会出现问题。GCN 采用一个样本一个方向1而不是不同的方向和距离来避免这些问题。
  当然GCN也有着自己的 局限性,全局对比度归一化常常不能突出我们想要突出的图像特征,例如边缘和角。如果我们有一个场景,包含了一个大的黑暗区域和一个大的明亮的区域(例如一个城市广场有一半的区域处于建筑物的阴影之中),则全局对比度归一化将确保暗区域的亮度与亮区域的亮度之间存在大的差异。然而,它不能确保暗区内的边缘突出。

你可能感兴趣的:(《深度学习》读书笔记)