Tricks

1.避免过拟合的方法

使用dropout。

增大训练数据集

在损失函数中添加正则项

数据增广

即对图片进行旋转、拉伸等操作来倍增样本数量。

Batch Normalization层

在每个卷积层或全连接层后面加入Batch Normalization层。

2.提升最终准确率的普遍方法

将多个模型的结果求平均值,作为最后的结果

我们可能为了更好的结果不断更改模型,但我们可以对这些模型的结果求平均值,便可以得到更好的结果,这是因为每个模型都各有千秋,都有自己的长处和不足。

使用pseudo lable

具体方法是:只将测试集或验证集的数据部分输入到网络之中进行预测,在把得到的lable和测试集或验证集的数据部分结合起来作为训练样本,并在训练时每个batch中只加入20%或30%pseudo训练样本。这个方法整个过程中测试集或验证集都作为未标记的数据,为什么能够有效呢,据说是学习了测试集的数据分布。

3.在样本集中我们可以得到哪些信息?

在进行一个任务之前,我们需要建立一个小的样本集来快速构建模型,那么我们可以从这个小的样本集中获得哪些信息呢?
1.我们可以得到合适的学习率
2.我们可以得到合适的数据增广方法。

技巧:

1.将Batch Normalization层放在网络的第一层就可以不用自己对输入数据进行预处理(减均值,除标准差),它会帮我们弄好。
2.在训练时,我们可以先将学习率设的很小,再慢慢增大,再慢慢减小。
3.由于卷积层的计算需要大量的时间,因此如果我们不需要关注卷积层的话,可以将卷积层的输出保存起来,这被称为预计算。