1.如果训练集上的loss很大时:
此时先不用考虑测试集的问题,因为本身训练的结果就不好;
可以考虑从以下两点出发:
1.模型的bias不合适,我们自定义的函数集太过简单,导致无论取哪一个函数用来训练的loss都比较差
解决方法:增加函数的灵活性,譬如增大参数个数,让更多的自变量来控制你的函数变化;也可以使用深度学习,用更多的神经元的layer来提高函数的灵活性;
2.优化器不够好,例如gradient descent就会陷入局部最优解问题而无法找到loss最优的函数,查看优化器章节有解决方法;
2.如果训练集上的loss很小时:
此时就应该考虑到测试集上的loss了,
如果测试集上的loss很小,说明机器学习很成功!
反之,如果测试集上的loss很大,可以考虑从以下两点出发:
1.过拟合,函数过分关注训练集的数据,想要在训练集上达到近乎完美的训练效果,导致在测试集上的loss不减反增,这时候应该增大训练数据集,简化function,或者说进行数据增强(合理的数据增强)
2,测试集和训练集相比出现了无法预测的巨大偏差,比如说训练集全是动物,而测试集却全是机车,理所当然这是无法有一个好的预测结果的。