畅游人工智能之海--Keras教程之噪声层

畅游人工智能之海--Keras教程之噪声层

各位读者大家好,今天我们要一起来学习Keras的噪声层。在神经网络的研究和应用中,经常会出现噪声层的身影,许多正则化的方法通过向训练数据添加噪声来防止过拟合,提高神经网络的鲁棒性。下面让我们来一起看看Keras噪声层的类型。

GaussianNoise层
1
2
keras.layers.GaussianNoise(stddev #float,噪声分布的标准差
)

作用:

高斯分布即为正态分布,该网络层添加均值为0,标准差为stddev的高斯噪声。

这对缓解过拟合很有用 (你可以将其视为随机数据增强的一种形式)。 高斯噪声(GS)是对真实输入的腐蚀过程的自然选择。

由于它是一个正则化层,因此它只在训练时才被激活。

输入尺寸:

可以是任意的。 如果将该层作为模型的第一层,则需要指定 input_shape 参数 (整数元组,不包含样本数量的维度)。

输出尺寸:

与输入相同。

GaussianDropout层
1
2
keras.layers.GaussianDropout(rate #float,丢弃概率(与 Dropout 相同)。 这个乘性噪声的标准差为 sqrt(rate/(1 - rate))
)

功能:

添加均值为1,标准差为sqrt{frac{rate}{1-rate} }的高斯噪声。

由于它是一个正则化层,因此它只在训练时才被激活。

输入尺寸:

可以是任意的。 如果将该层作为模型的第一层,则需要指定 input_shape 参数 (整数元组,不包含样本数量的维度)。

输出尺寸:

与输入相同。

AlphaDropout层
1
2
3
4
keras.layers.AlphaDropout(rate, #float,丢弃概率(与 Dropout 相同)。 这个乘性噪声的标准差为 sqrt(rate/(1 - rate))
noise_shape=None,
seed=None #用作随机种子的Python整数
)

功能:

将 Alpha Dropout 应用到输入。

Alpha Dropout 是一种 Dropout, 删除一定比例的输入,使得输出的均值和方差与输入的均值和方差很接近,保持数据的自规范性, 以确保即使在 dropout 后也能实现自我归一化。 通过随机将激活设置为负饱和值, Alpha Dropout 非常适合按比例缩放的指数线性单元(SELU)。噪声的标准差为sqrt{frac{rate}{1-rate} }。

输入大小:

可以是任意的。 如果将该层作为模型的第一层,则需要指定 input_shape 参数 (整数元组,不包含样本数量的维度)。

输出大小:

与输入相同。

相信大家经过今天的学习,能够对噪声层层的类型和功能有一个清晰的认知,融合层是比较重要的网络层,虽然简单但很重要,它在解决神经网络过拟合方面有较为重要的作用,所以希望各位能亲手实践以对它有更好地认识,大家一起加油!