天气情况图像分类

机器学习AI算法工程

共 3401字,需浏览 7分钟

 · 2021-12-18


向AI转型的程序员都关注了这个号👇👇👇

机器学习AI算法工程   公众号:datayx



该数据集包含6个常见天气类别的60000张图像,这些类别包括晴天,多云,下雨,下雪,薄雾和雷雨天气。

数据说明

各类天气图片数量:

  • 晴天:10000张

  • 多云:10000张

  • 雨天:10000张

  • 大雪:10000张

  • 薄雾:10000张

  • 雷雨:10000张

数据来源

http://vcc.szu.edu.cn/research/2017/RSCM.html


数据清洗与可视化分析

我对上面的图片数据集进行了一个大致的整理,有一些图片我自己都分不清楚是什么类别,干脆手动删除,打算做5个分类:haze 、 lingting 、sun snow、 cloudy,但是编号是个问题,下面使用python 进行了编号处理,方便得很






解决方案


代码 获取方式:

关注微信公众号 datayx  然后回复 天气分类 即可获取。



针对本次赛题的任务特点,我们团队采取了Swsl_resnext101_32x8d 网络作为Backbone。同时创新性的引入了CBAM注意力机制, Label Smooth(标签平滑),OHEM(在线难例样本挖掘),Arc-Loss等诸多创新设计,使得我们的单模就能达到线上84.3+的F1-score,从比赛一开始就遥遥领先其他队伍。兼顾了速度和精度,具有很高的实际应用价值,同时,通过最终的模型融合,更是达到了线上84.7+的精度。


主干网络(Backbone)选取

 2020年NeurIPS 中的一篇工作:Rethinking the Value of Labels for Improving Class-Imbalanced Learning中针对数据类别不平衡(也泛称数据长尾分布)下的分类问题进行研究并指出,如果直接把类别不平衡的样本丢给模型用于学习,模型会在major classes(在本次比赛中即“晴朗”类别)的样本上的学习效果更好,而在minor classes(“多云”)上泛化效果差。同时该工作指出半监督和自监督均能显著提升不平衡数据下的学习表现,因此团队采用半弱监督模型swsl_resnext101_32x8d作为本次比赛的backbone。由于数据集中存在大量的干扰背景,真正对最终分类结果影响较大的区域占比较小,因此团队在原始的swsl_resnext101_32x8d的基础上添加注意力机制模块CBAM,让模型能够更有效的学到关键区域。


数据增广选择 

本次比赛中训练集的数据量大,训练集和测试集的分布基本一致,训练集的样本种类丰富。因此团队仅采用了两种常见的数据增广方案,只在图像的尺寸等方便进行增广,力求在不破坏图像原有特征的基础上进一步提高模型的泛化能力。


上分tricks 

搭建完基本的Backbone并选取合适的增广策略之后,为进一步提高团队所用模型在数据集上的泛化能力,团队根据模型在数据集上的线下线上表现选择一些特定的Trick,这些创新方案也是我们团队能一直遥遥领先其他团队的关键所在。 


Label Smooth(标签平滑) 

在常见的多分类问题中,网络输出先经过softmax处理后进行交叉熵计算Loss,为了使得网络对测试集预测的概率分布和其真实分布接近,常用的做法是使用one-hot对真实标签进行编码,而这种将标签强制one-hot的方式使网络过于自信从而会导致过拟合发生,因此团队选择用Label Smooth来软化这种编码方式。


OHEM (在线难例样本挖掘) 

经过线下实验发现,团队采用的模型在训练过程中针对“cloudy”类别表现较差,如下图所示。因此为进一步提高对该类别的鉴别能力,团队采用OHEM来进一步提高模型能力。OHEM最初在目标检测任务中提出,但是该思想在所有任务中都通用,团队选取当前batch中Top k大的loss的均值作为当前batch的loss进行梯度的回传, 提高batch中hard sample对网络更新的作用。并实验发现该种方法能够有效提高对“cloudy“的鉴别能力。


CBAM注意力机制 

前面谈到过由于数据集中存在大量的干扰背景,真正对最终分类结果影响较大的区域占比较小,因此团队在原始的swsl_resnext101_32x8d的基础上添加注意力机制模块CBAM,让模型能够更有效的学到关键区域。


训练细节和线上精度变化 训练细节

  • 优化器:采取sgd.

  • 初始学习率:5e-4,

  • 学习率指数下降策略。

  • 2-3个epoch

  • 按照16w/1w划分本地训练/验证集

  • 部分训练过程采取了apex半精度混合加速训练

  • 通过freeze多层网络进行多种变化的Fine-tune方式

线上F1分数:

  • 单模型线上最高精度: 0.843+

  • 模型融合策略:通过对模型添加不同的Trick(Cbam注意力机制, Arc-Loss, OHEM, Label-Smooth)分别训练得到不同的多个模型,然后采取投票的方式,最终线上f1-score: 0.847+。可见模型融合带来的收益并不明显,我们的单模已经达到了很高的精度同时有着很快的推理速度,速度精度较为平衡,具有实际应用价值。



机器学习算法AI大数据技术

 搜索公众号添加: datanlp

长按图片,识别二维码




阅读过本文的人还看了以下文章:


TensorFlow 2.0深度学习案例实战


基于40万表格数据集TableBank,用MaskRCNN做表格检测


《基于深度学习的自然语言处理》中/英PDF


Deep Learning 中文版初版-周志华团队


【全套视频课】最全的目标检测算法系列讲解,通俗易懂!


《美团机器学习实践》_美团算法团队.pdf


《深度学习入门:基于Python的理论与实现》高清中文PDF+源码


《深度学习:基于Keras的Python实践》PDF和代码


特征提取与图像处理(第二版).pdf


python就业班学习视频,从入门到实战项目


2019最新《PyTorch自然语言处理》英、中文版PDF+源码


《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码


《深度学习之pytorch》pdf+附书源码


PyTorch深度学习快速实战入门《pytorch-handbook》


【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》


《Python数据分析与挖掘实战》PDF+完整源码


汽车行业完整知识图谱项目实战视频(全23课)


李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材


笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!


《神经网络与深度学习》最新2018版中英PDF+源码


将机器学习模型部署为REST API


FashionAI服装属性标签图像识别Top1-5方案分享


重要开源!CNN-RNN-CTC 实现手写汉字识别


yolo3 检测出图像中的不规则汉字


同样是机器学习算法工程师,你的面试为什么过不了?


前海征信大数据算法:风险概率预测


【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类


VGG16迁移学习,实现医学图像识别分类工程项目


特征工程(一)


特征工程(二) :文本数据的展开、过滤和分块


特征工程(三):特征缩放,从词袋到 TF-IDF


特征工程(四): 类别特征


特征工程(五): PCA 降维


特征工程(六): 非线性特征提取和模型堆叠


特征工程(七):图像特征提取和深度学习


如何利用全新的决策树集成级联结构gcForest做特征工程并打分?


Machine Learning Yearning 中文翻译稿


蚂蚁金服2018秋招-算法工程师(共四面)通过


全球AI挑战-场景分类的比赛源码(多模型融合)


斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


python+flask搭建CNN在线识别手写中文网站


中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程



不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  



浏览 71
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报