为什么我的训练损失会在一个纪元后收敛

时间:2019-08-06 08:01:17

标签: tensorflow keras neural-network deep-learning autoencoder

我正在尝试使用自动编码器进行异常检测,并且训练损失似乎在第二个时期后迅速减少,并迅速收敛,而我的验证损失却缓慢减少。该模型的效果不是很好,我认为这可能是问题所在。

我的数据集具有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

0 个答案:

没有答案