飞桨AI识虫竞赛直播讲解笔记(目标检测模型选择及调优等信息)


一、数据分析处理

数据增强方式:改亮度、对比度、饱和度,左右上下翻转,模糊,mixup(将多张图像融合在一张图像上)

二、模型设计与选择

  1. Yolo系列
  2. SSD
  3. Faster R-CNN系列(其中faster rcnn最经典)
  4. anchor-free方法,如cornerNet(直接找左上角和右下角的关键点来得知物体位置)

三、模型改进方法

1. backbone

A. 模型深度与宽度:ResNet block和Inception block
B. 并行连接高分辨率到低分辨率的特征图;重复用多尺度特征融合:HRNet

2. 特征融合

如FPN(特征金字塔)和ASPP(空洞卷积)

3. 损失

A. focal loss:参照Focal Loss for Dense Object Detection整体介绍及部分细节讲解
B. GIou:不用MSE、L1-smooth作为损失函数,而改用GIoU作为损失函数
I o U = A ∩ B A ∪ B IoU = \frac{A\cap B}{A\cup B} IoU=ABAB
G I o U = I o U − ∣ C \ ( A ∪ B ) ∣ ∣ C ∣ GIoU = IoU-\frac {|C\backslash (A\cup B)|}{|C|} GIoU=IoUCC\(AB)
L G I o U = 1 − G I o U L_{GIoU} = 1-GIoU LGIoU=1GIoU

四、注意事项

1. 防止梯度消失、梯度爆炸

A. 换激活函数 Relu→LRelu→PRelu
B. resnet block
C. BN
D. 梯度截断(clipping,防止梯度过大):
∥ g ^ ∥ > t h r e s h o l d 则 g ^ = t h r e s h o l d ∥ g ^ ∥ g ^ \lVert \hat{g}\rVert>threshold则\hat{g}=\frac{threshold}{\lVert\hat{g}\rVert}\hat{g} g^>thresholdg^=g^thresholdg^
E. 预训练+微调

# paddlepaddle代码
train_parameters = {
	...
	"pretrained": True, # 是否使用预训练模型
	"pretrained_dir": "data/data11251/ResNet50_pretrained", # 预训练模型地址
	...
}
def load_params(exe, program):
	...
	elif train_parameters['pretrained'] and os.path.exists(train_parameters['pretrained_dir']):
		logger.info('load params from pretrained model')
		def if_exist(var):
			return os.path.exists(os.path.join(train_parameters['pretrained_dir'], var_name))
		fluid io.load_vars(exe, train_parameters['pretrained_dir'], main_program=program, 
							predicate=if_exist)

2. 过拟合解决

A. 数据增强
B. 提前终止
在这里插入图片描述
C. 权重正则化(如L1、L2正则化)
D. dropout(还有dropConnect、dropblock)

3. 参数调优其他方法

A. 学习率
B. 训练轮数
C. 优化函数

4. 在线难例挖掘

五、后处理

模型融合、测试结果融合、根据实际任务改进

六、调优基本原则——快速试错

  1. 先用小数据训练预测再到大数据
  2. loss设计要合理
  3. 综合loss和准确率判断效果
  4. 确认网络学习充分
  5. 学习率设置合理
  6. 对比训练集和验证集(过拟合、训练是否够、是否需要early stop)

七、答疑

  1. batch size不能超过显存,一般越大越好,和学习率有相关性
  2. loss抖动大原因:脏数据、数据量大(网络未完全学习到)、学习率、网络结构等
  3. 看loss调参:loss不下降且震动,则调大学习率
  4. loss的最小量级根据loss function、具体任务、网络设置等判断

心得感受

学习新知识真开心
希望我能早日成为一个大佬吧(hhhhhhh)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值