我一直在研究异常检测问题,在该问题中,我需要将“街道”的图像视为异常。 “冰川”的图像将被视为非异常。重建图像的自动编码器如下:
self.__model_layers = [
keras.layers.Conv2D(16, kernel_size=(3, 3), strides=1, activation="relu", input_shape=input_shape),
keras.layers.Conv2D(32, kernel_size=(3, 3), strides=1, activation="relu"),
keras.layers.Conv2D(64, kernel_size=(3, 3), strides=1, activation="relu"),
keras.layers.Conv2DTranspose(32, kernel_size=(3, 3), strides=1, activation="relu"),
keras.layers.Conv2DTranspose(16, kernel_size=(3, 3), strides=1, activation="relu"),
keras.layers.Conv2DTranspose(1, kernel_size=(3, 3), strides=1),
]
self.__model = keras.Sequential(self.__model_layers)
self.__model.compile(
optimizer=keras.optimizers.Adam( lr=0.0001 ),
loss=keras.losses.mean_squared_error,
)
根据各种博客,当图像包含异常时,由于仅在非异常图像上进行训练,因此自动编码器必须提供较高的MSE值。但是事实并非如此。 模型在图像上的泛化效果更好,因此, MSE损失值相差不大。
如何使上述模型过拟合数据,以使异常图像上的MSE损失值更高?我应该包含哪些更改?