我不确定使用宽度偏移和高度偏移来理解增强数据的使用。
假设我的图像数据有限,我想使用 Keras 的 ImageDataGenerator 创建新数据。为了在图像之间进行分类,我使用 CNN。由于 CNN 是平移不变的,那么来自 keras 的平移转换不是没用的,因为这些转换不会产生新的图像吗?(我知道生成器会创建新图像,但 CNN 不会从图片中学习新特征,反而可能导致过度拟合?)
我不确定使用宽度偏移和高度偏移来理解增强数据的使用。
假设我的图像数据有限,我想使用 Keras 的 ImageDataGenerator 创建新数据。为了在图像之间进行分类,我使用 CNN。由于 CNN 是平移不变的,那么来自 keras 的平移转换不是没用的,因为这些转换不会产生新的图像吗?(我知道生成器会创建新图像,但 CNN 不会从图片中学习新特征,反而可能导致过度拟合?)
由于 CNN 是平移不变的,那么 Keras 的平移转换不是没用的,因为这些转换不会产生新的图像吗?
翻译不变性意味着如果我们翻译输入,CNN 仍然能够检测到输入所属的类别。平移不变性是池化操作的结果。在池化操作中,我们将卷积网络在某个位置的输出替换为附近输出的汇总统计信息,例如 Max Pooling 情况下的最大值。与最大池化的情况一样,我们将输出替换为最大值,因此即使我们稍微调整输入,也不会影响大多数池化输出的值。
最大池化的主要问题是网络无法学习不同特征之间的空间关系,因此如果所有特征相对于彼此出现在错误的位置,则会给出误报。这发生在我们需要位置的图像分割等案例中。
因此,数据增强可以方便地处理图像中的严重失真,并在我们拥有较少图像时使模型对这些失真更加鲁棒。
参考: 平移不变性