一、概念介绍
分类网络结构是其他大多数任务的网络设计的基础,而特征图注意力(featuremap attention)和多路径表示(multi-path representation)对于视觉识别非常重要。ResNeSt网络基于此提出了一个模块化的体系结构,它将通道attention应用于不同的网络分支,以利用它们在捕获跨特征交互以及学习不同的表示方法。此外,ResNeSt在作为骨干的几个公共基准上有了很大的提升,并被COCO-LVIS挑战赛的获奖作品所采用。
二、网络结构
该网络结构是基于ResNet,引入了Split-Attention块,可以跨不同的feature-map组实现feature-map注意力。
2.1 Feature-map组
在ResNeSt网络中,特征图分到不同组内,通过Cardinality超参数K进行控制组的数量,通过radix超参数R控制组内splits的数量。所以,特征组的总数量为G=K*R个,可以引入一系列{F1, F2, ...FG}对应每个个体组的变换,这样每个组在feature-map组的结果是Ui=Fi(X)。
2.2 Split-Attention块
Split-Attention块是一个计算单元,由feature-map组和split attention操作组成,它能够在不同的feature-map组上加入特征图attention。ResNeSt块将输入分为K个,每一个记为Cardinal1-k,然后又将每个Cardinal拆分成R个,每一个记为Split1-r,所以总共有G=K*R个组。
第k组的feature-map组的结果是:
经过全局池化后第c个成分是:
经过channel-wise attention操作后:
其中attention权值可以表示为:
2.3 ResNeSt块
在channel维度上对每组进行拼接操作:
使用shortcut链接后,最后的输出为:
2.4 网络与训练中的策略
- 平均下采样:对于检测和分割任务,下采样过程对于保持空间信息非常重要,ResNeSt采用的是平均池化方法,使用3*3的kernel来很好的保持空间信息。
- 从ResNet-D中学到的策略:用3个3x3卷积替代一个7x7卷积;加了一个2x2的平均池化到skip connection里去。
- 学习率:通过余弦函数动态调整。
- 标签平滑:样本的目标值不做硬目标,使用概率平滑:
- 调和训练:任意选择两个样本,可以选择调和系数满足Beta分布来生成另一个综合的样本
- 正则化:可以选择dropout、DropBlock、L2正则化方法。
三、ResNeSt在ModelArts上的实践
可以订阅ModelArts的ResNeSt算法来入门和熟悉ResNeSt在图像分类中的使用流程。
3.1 准备数据集
可以在数据类搜索分类得到适合图像分类的数据集,此次选择了花卉分类的数据集,已经按照0.8比例切分了训练和验证集。
3.2 订阅ResNeSt算法
在算法内选择“图像分类-ResNeSt”。
点击“订阅”并进入控制台。
3.3 训练ResNeSt模型
进入控制台后可以选择目前最新的算法版本点击“创建训练作业”。
创建训练作业后只需要填写数据输入和模型输出train_url,超参数据可以选择默认值,也可以根据实际情况修改,创建完毕后点击“提交”。超参数据说明可参考:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=10014e59-0a42-4a6c-a17c-afae33dcd420
训练完成后可以查看该训练作业的配置信息、日志、资源占用情况和评估结果。可以点击“创建模型”来进行在线推理。
3.4 在线推理部署
点击上图的“创建模型”后就能根据已经训练好的训练作业来导入模型。
选择刚才训练好的训练作业来导入模型,点击“立即创建”。模型导入完成后选择在线服务中的部署。
选择导入的模型做推理服务。
等推理部署成功后,可以上传本地文件进行预测。
四、参考文献
[1] Zhang, H., Wu, C., Zhang, Z., Zhu, Y., Lin, H., Zhang, Z., ... & Smola, A. (2020). Resnest: Split-attention networks. arXiv preprint arXiv:2004.08955.