我正在尝试使用自动编码器进行异常检测,并且训练损失似乎在第二个时期后迅速减少,并迅速收敛,而我的验证损失却缓慢减少。该模型的效果不是很好,我认为这可能是问题所在。
我的数据集具有28个要素,其中包含约10万个样本。 200个为异常样本,其余为“正常”样本。我有98414个训练样本和450个验证样本。至于数据处理,我没有空值,我的要素在1到0之间缩放
这是我的模特
nb_epoch = 15
batch_size = 256
encoding_dim = 100
hidden_dim = int(encoding_dim / 2)
learning_rate = 1e-3
input_dim=28
input_layer = Input(shape=(input_dim, ))
encoder = Dense(18, activation="relu",activity_regularizer=regularizers.l2(learning_rate))(input_layer)
encoder = Dense(8, activation="relu")(encoder)
decoder = Dense(18, activation="relu")(encoder)
decoder = Dense(input_dim, activation="sigmoid")(decoder)
autoencoder = Model(inputs=input_layer, outputs=decoder)
autoencoder.summary()
这是我得到的结果:正如您看到的,我的训练损失在一个时期后收敛,而我的验证损失并没有减少那么多
训练98414个样本,验证456个样本 时代1/15
2s 18us / step-损耗:0.1183-acc:1.0161e-05-val_loss:0.1975-val_acc:0.3509
第2/15版
1s 15us / step-损耗:0.0402-acc:4.0645e-05-val_loss:0.1855-val_acc:0.8333
第3/15集 1s 15us / step-损失:0.0389-acc:0.0412-val_loss:0.1922-val_acc:0.8772
第4/15版
1s 15us / step-损耗:0.0255-acc:0.2232-val_loss:0.1818-val_acc:0.8860
第5/15版
2s 15us / step-损耗:0.0181-acc:0.3453-val_loss:0.1829-val_acc:0.0702
第6/15版
2s 20us / step-损耗:0.0149-acc:0.3852-val_loss:0.1817-val_acc:0.0351
第7/15版
2s 24us / step-损耗:0.0135-acc:0.4635-val_loss:0.1796-val_acc:0.0811
第8/15版
19us / step-损耗:0.0127-acc:0.4290-val_loss:0.1733-val_acc:0.1930
第9/15版
19us / step-损耗:0.0122-acc:0.3756-val_loss:0.1588-val_acc:0.5329
第10/15版
22us / step-损耗:0.0115-acc:0.3691-val_loss:0.1619-val_acc:0.6294
第11/15版
17us / step-损耗:0.0103-acc:0.3543-val_loss:0.1606-val_acc:0.8838
第12/15版
16us / step-损耗:0.0095-acc:0.3546-val_loss:0.1784-val_acc:0.8640
第13/15版
16us / step-损耗:0.0086-acc:0.3483-val_loss:0.1797-val_acc:0.8750
第14/15版
17us / step-损耗:0.0084-acc:0.3466-val_loss:0.1787-val_acc:0.8487
第15/15版
2s 17us / step-损耗:0.0083-acc:0.3459-val_loss:0.1748-val_acc:0.8728