提升神经网络

科技工作者之家  |   2020-11-17 18:13

提升神经网络是适用于深度学习的一种模型,主要包括以下几个方面:1)数据增强;2)图像预处理;3)网络的初始化。

数据增强如果原始图像数据集包含的训练图像有限,而对于深度网络一般需要大量的训练图像数据才能取得一个较好的性能,所以我们最好通过数据增强以提高性能。此外,数据增强成为训练深度网络时必须做的事情。

有许多方法可以进行数据增强,例如比较流行的水平翻转,随机修剪和光照、彩色变换。此外,也可以尝试多种不同处理的组合,例如,同时进行旋转和随机缩放。此外,您可以尝试将所有像素的饱和度和值(HSV彩色空间的S和V分量)提高到0.25和4倍之间的倍数(对于一个色块内的所有像素都相同),将这些值乘以系数0.7和1.4,并且向它们添加一个在[-0.1,0.1]范围内的值。此外,也可以添加一个[-0.1,0.1]的值在图像/块中所有像素的色调上(HSV的H分量)。1

网络的初始化(1)全零初始化

在理想情况下,通过适当的数据归一化,可以合理的预测大约一半的权重权重为正数,一半权重将为负数。假设一个合理的想法是可以将所有的初始权重设置为零,但是,这是一个错误的权重初始化方式。因为如果网络中的每个神经元计算相同的输出,那么它们在反向传播过程中也将计算相同的梯度,并进行完全相同的参数更新。换句话说,如果神经元的权重初始化为相同,则不存在不对称的来源。

(2)小随机数初始化

在ResNet网络中,就认为网络的权值是一个近似0但是不等于0的值,而且验证了该假设的合理性。所以,我们在网络中可以将这些神经元随机初始到非常接近于零的权值。权重的实现可以简单地表达为0.001*N(0,1),其中N(0,1)是均值为0,标准差为1的高斯分布。也可以使用均匀分布的初始化权值,这对最终的权值结果没有太大的影响。

(3)权值归一化

上述方案的一个问题是随机初始化神经元权值的输出分布的方差随着输入样本量而增加。通过实验证明,可以将每个神经元输出的方差归一化为1,通过将其权重向量按其输入数的平方根进行缩放。

正则化神经网络防止过拟合的方法有以下方法:

L2正则化是正则化最常用的形式之一,可以直接在损失函数中加上带有乘性偏置的所有权值w的平方和来实现。

L1正则化是正则化中相对常见的形式,在原始的代价函数后面加上一个L1正则化项,即所有权重w的绝对值的和,乘以λ/n。

最大范围限制,正则化的另一种形式是强制每个神经元的权重的绝对上限,并使用预测的梯度下降来强制约束。

Dropout是一个很简单的正则化技术,dropout策略是以一定的概率(dropout ratio)将隐层神经元的输入、输出设置为零。选中“dropped out”的隐层神经元在网络中既不参与前向传播,也不参与误差的反向传播,但是它的权重会保留下来。所以每次输入样本进行训练,该卷积神经网络就相当于采用了与先前不同的网络结构,但是不同网络结构之间的权重是共享的。

Batch Normalization是最近最为流行的防止过拟合的方法,他也有正则化的作用。BN是在卷积计算和激活函数中间进行规范化计算,逐层尺度归一,首先通过对相应的激活区域做规范化操作,使得输出信号各个维度服从均值为0,标准差为1的正态分布,最后通过缩放和平移(scale and shift)操作让批规范化计算输出的结果还原最初的输入特征,从而保证网络的容纳能力。2

本词条内容贡献者为:

李斌 - 副教授 - 西南大学