第一次参加kaggle竞赛:Happywhale - Whale and Dolphin Identification(ID识别问题:top9.4% 150/1558)
一、ID识别问题
ID1:
ID2:
下图是哪个ID:
二、训练数据分布
- 51033张训练图片, 27956张测试图片,public LB用了24%的测试图片,最后结果以private LB的结果为准
- Whale和Dolphin两个类别的数据分布
- Whale和Dolphin下面总共26中类别
- 5w多张图片总共含有15587个ID,前10个ID的分布如下:
- 训练图片中有很多ID只有一张图片
- 测试图片中,有些ID 没有在训练图片中出现
三、我的解决方案
训练的时候,采用effiecientnetb7作为特征提取器,使用gem pooling,加入CBAM attention,四个neck,四个loss;测试的时候,将四个neck的特征cat到一起,就是提取的embeddings。
四、我的用到的tricks
- 学习率:warmup+cos下降
- 冻结bn层:小的batch_size下不能正确估计统计变量E(x)和V(x),还不如不更新。详细看这里
- 混合精度训练:GPU下的某些操作,将float32转换为float16,损失少量的精度,可以节省大量的内存。详细看这里
- 梯度累加:梯度累加几个batch_size之后再更新,loss求平均时防止梯度爆炸。详细看这里
- CBAM attention:通道和空间域的attention。
- test_tta:Test Time Augmentation
- 不同input size之间的ensemble:确定input size 时,CNN 学会了找到特定大小的特定特征;那么,修改input size后再训练,学习后的CNN找到的其他大小下的其他特征,因此可以用不同的input size,看哪种更接近最优值。
五、tricks的效果
下面的表格是我在effiecientnetb5上的训练结果,因为effiecientnetb5更新快,score是在public LB上的分数:
六、有用未成功的tricks
Progressive Resizing
step1:Train model on size: small
step2:Save weights and re-train model on larger image size
step3:Save weights again and re-train on final image sizesDifferential Learning Rates
上层特征,用小的学习率,低层特征,用较大学习率PsuedoLabelling
训练—测试—加入训练集—再训练—再测试
下面内容是我重点参考的,觉得非常有用的
不用翻墙的kaggle 讨论:
1、9 Computer Vision Tricks to Improve Performance
2、7 More Computer Vision Tricks to Improve Score
3、Previous Happywhale Competition Solutions
4、CNN Input Size Explained
下面链接需要翻墙:
这个blog有四个大trick:
trick1: freeze
Novel techniques to win an Image Classification hackathon (Part-1)
trick2: progressive trainning
Novel techniques to win an Image Classification hackathon (Part-2)
trick3: attentation
Novel techniques to win an Image Classification hackathon (Part-3)
trick4:Ensemble and TTA
Novel techniques to win an Image Classification hackathon (Part-4)
这个第7名的方案是我主要参考的方案:
Thanks Radek 7th place solution to HWI 2019 competition
第一次参加kaggle竞赛:Happywhale - Whale and Dolphin Identification(ID识别问题:top9.4% 150/1558)相关推荐
- 第一次参加Kaggle拿银总结
转载:http://scarletpan.github.io/summary-of-get-a-silver-medal-in-kaggle/ 在这篇博客开始之前,我必须感谢@Prof. Cai给我提 ...
- 第一次参加kaggle比赛的一些收获与心得,记录一下
#摘要 虽然陆陆续续接触过深度学习的一些相关知识,但是从来没有系统地学习和总结过.加上之前研究的领域是SLAM(实时建图和定位),没有很好的机会直接应用深度学习技术,实践深度学习的机会也比较少.近段时 ...
- 参加kaggle竞赛是怎样一种体验?
作者:Naiyan Wang 链接:http://www.zhihu.com/question/24533374/answer/34631808 来源:知乎 著作权归作者所有.商业转载请联系作者获得授 ...
- 【第一次参加kaggle比赛记录-Quora Insincere Questions Classification】- Word Embedding
In summary, word embeddings are a representation of the *semantics* of a word, efficiently encoding ...
- 我,14岁初中生,从零开始拿到了Kaggle竞赛冠军
视学算法报道 机器之心编辑部 因为对数学感兴趣,勇敢的少年决定投身 Kaggle. 知乎上有这样一个问题已经收到了超过 700 条回答. 在这之下有人冷嘲热讽,有人给出了鼓励和建议.从人们回答的时间来 ...
- 业界 | 如何达到Kaggle竞赛top 2%?这里有一篇特征探索经验帖
本文作者 Abhay Pawar 多次参加 Kaggle 竞赛,并在 Instacart Market Basket Analysis 竞赛中拿到 top 2% 的名次.他在多年竞赛中总结出了一套特征 ...
- 从零开始拿到了Kaggle竞赛冠军
点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 因 ...
- 从零开始拿到了Kaggle竞赛冠军--学习笔记(不是本人)
本文转载自:机器之心 因为对数学感兴趣,勇敢的少年决定投身 Kaggle. 知乎上有这样一个问题已经收到了超过 700 条回答. 在这之下有人冷嘲热讽,有人给出了鼓励和建议.从人们回答的时间来看,问题 ...
- kaggle竞赛之Hungry Geese比赛
kaggle竞赛之Hungry Geese比赛 1. 比赛内容和规则 1.1 比赛内容 1.2 比赛规则 2. 强化学习算法思路 2.1 HandyRL 2.2 蒙特卡罗树搜索 3. 经验总结 本文主 ...
最新文章
- 中科大硬核“毕业证”:“一生一芯”计划下,5位本科生带自研芯片毕业
- spring26-1: bean的实例方式
- linux下面的时间设置
- 【ABAP增强】基于BADI的增强
- 画时域随机信号波形_【鼎阳硬件智库原创︱测试测量】任意波形发生器的基本输出波形及其相关参数...
- c语言样本,C语言样本教案 第二章
- DOM-3 【utils/待讲评】节点属性、方法、封装方法、DOM结构
- c++的vector容器
- 使用浏览器获取网页模板(HTML+CSS)
- 局域网只看到少数电脑_利用局域网高速传输大文件的两种方法
- IndexedDB 简单封装
- web-ylbtech(合同管理)-数据库设计
- jsf标签,jsp标签与jstl标签
- 剑指offer面试题54. 二叉搜索树的第k大节点(逆中序遍历)
- 蓝桥杯:填字母游戏(第八届决赛javaB第五题) 博弈+递归+回溯+map记忆化
- Excel-VBA 快速上手(三、数组和字典)
- 牛刀小试-99乘法表
- 在线考试系统的倒计时
- numpy第三章-索引器、多级索引
- Centos7 系统登录密码忘记解决方法