本着实事求是的态度总没有错。我们的目标就是用网络模型做出更好的预测效果,所以能实现这个目标的方法都是好方法。
以下列举了一些迭代次数判断的方法:
01 当loss值收敛时结束迭代
深度学习的一个关键原理就是比较学习结果和样本标签之间的差距。理论上差距越小,表明学习的效果越好。这个差距就是loss值。
Loss值不可能变为0,只能无限逼近0。所以通过脚趾都能想到,当loss值无法变小的时候,这称为收敛,就是学习结束之时。
02 使用验证集来检验训练成果
深度学习常常会遇到一个问题——过拟合。训练的时候学习效果很好,但是拿到其它地方测试发现效果就不行了。
就是说,并不一定是学习效果最好的时候才停止。那如何来判断停止的时机呢?
有学者提出了验证集。
就是说,把训练集分为2部分,比如70%用来训练,30%用来验证。就像下面的代码。
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state=seed)
然后在训练时加入验证的参数,就像这样:
autoencoder.fit(train_data, train_data,
epochs=50,
batch_size=128,
shuffle=True,
validation_data=(noisy_imgs, data_test)
)
然后就是观察验证曲线,什么时候验证的loss值最小,就选那一次的训练模型进行测试应用。