前情概要
之前的第一版直接使用fastai提供的方法,过拟合问题比较严重,所以寻求了一下改进方法。
CostFunction
经过几次测试,将CostFunction改为了
loss_func=FocalLossFlat(gamma=5)
从fastai官方文档中的CostFunction中看到了它,论文没有看,体感这个gamma应该是个超参数。经过测试gamma的值越大对w和b的惩罚越大,当gamma的值取10左右时产生梯度消失。gamma的默认值为1,针对这个数据集gamma取2-6的效果比较好,有效降低了过拟合的程度。
取一个10epoch的结果为例
valid_loss略高于train_loss,accuracy在直接训练的情况下可以达到0.8左右。
最好成绩(20%测试集):
K折交叉验证
取5次重复每次随机取80%作训练集,80%作测试集。每个leaner跑100epoch。
由于尚不清楚fastai中learner训练好的参数如何保存为矩阵等形式,所以使用每个learner单独预测并把结果取平均。
最好成绩: