深度学习技巧

参考:https://mp.weixin.qq.com/s/AGlX6O4Brbm3kUvRMEE6TA

在设计和应用DNN到一个特定的问题上可能会遇到很多挑战。为了达到现实世界应用所需的性能标准,对数据准备,网络设计,训练和推断等各个阶段的正确设计和执行至关重要。

1、数据量

样本增强……· (水平和垂直旋转或翻转图像、改变图像的亮度和颜色、随机模糊图像、随机从图像裁剪补丁)

2、优化器

流行方法:

  • 随机梯度下降(SGD)+动量方法
  • Adam
  • RMSprop
  • Adadelta
    RMSprop,Adadelta和Adam被认为是自适应优化算法,因为它们会自动更新学习速率。使用SGD时,您必须手动选择学习率和动量参数,通常会随着时间的推移而降低学习率

在实践中,自适应优化器倾向于比SGD更快地收敛,然而,他们的最终表现通常稍差。SGD通常会达到更好的最小值,从而获得更好的最终准确性,但这可能需要比某些优化程序长得多的时间。它也更依赖于强大的初始化和学习速率衰减时间表,这在实践中可能非常困难。

因此,如果你需要一些快速的结果,或者只是想测试一个新的技术,选择自适应优化器。我发现Adam很容易使用,因为它对你选择完美的学习率并不是很敏感。如果您想获得绝对最佳的最终表现,请使用SGD + Momentum,并使用学习率,衰减和动量值来最大化表现

3、处理不平衡的数据

  • 在损失函数中使用类权重:本质上,代表性不足的类在损失函数中获得更高的权重,因此对该特定类的任何错误分类将导致损失函数中的非常高的误差。
  • 过度抽样:重复一些包含代表性不足的训练样例,有助于平衡分配。如果可用的数据很小,这最好。
  • 欠采样:您可以简单地跳过一些包含过度表示类的训练示例。如果可用数据非常大,这最好。
  • 数据增加为少数类:您可以综合创建更多的代表性不足的训练示例!例如,在前面检测致命武器的例子中,你可以改变属于具有致命武器的类别的视频的一些颜色和光照。

4、迁移学习

通过迁移学习,我们不需要太多的数据!这个想法是从一个以前在数百万图像上训练过的网络开始的,比如在ImageNet上预训练的ResNet。然后,我们将通过仅重新训练最后几个层并使其他层独立来微调ResNet模型。那样的话,我们正在将ResNet从数百万图像中学到的信息(图像特征)进行微调,以便我们可以将它应用于不同的任务。这是可能的,因为跨域的图像的特征信息通常非常相似,但是这些特征的分析可以根据应用而不同。

5、训练技巧

参考:https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247488330&idx=1&sn=d533b31de62e6e14acf53fe9c847e2dd&chksm=ec1ffeb3db6877a5581871b9264d98010317e641a75ebcf7a5c534c26522c1d613ed4bad0169&scene=0&xtrack=1#rd

猜你喜欢

转载自blog.csdn.net/weixin_44474718/article/details/92586565
今日推荐