小哲lxz 大佬聊赛事:不要被【102 种鲜花分类】的数据量吓倒,冻结层就完事了!
坐镇大佬
小哲lxz:目前苦逼研究僧一个,通过比赛练练技术,大家一起学习,放个邮箱,[email protected],可以一起组队打比赛
AI 研习社 ID:@小哲lxz
(个人主页链接://www.yanxishe.com/center/myPage/5212146)
“102 种鲜花分类”赛事链接://god.yanxishe.com/39
1)看了下资料,小哲lxz 大佬应该是天津大学的在读学生?
没错,我是天津大学的一名在读苦逼研究僧。
2)这学期都在上哪些课呢?平时参加比赛的频次是什么样的?
我们这学期与此相关的课程主要有模式识别、智能控制、数学等。
我是从今年才开始陆续参加比赛的,因为疫情待在家里,好多事情都做不了,后来在一篇推送中发现 AI 研习社这个平台,就决定参加两个比赛练习一下调参。
3)小哲 lxz 大佬对自己在《102 种鲜花分类》取得的成绩还满意不?最新数字好像是 99.3026 分。
我这次参赛主要还是为了锻炼一下自己,所以成绩应该还能有所提高,目前成绩我个人觉得还行吧。
4)你是怎么做到现在这么高分的?独家秘诀是什么?
我现在经常用的套路就那么几招:
先用一些简单的数据进行增广,然后跑几个模型,对比一下准确度;
由于平台数据集往往较小,可以考虑通过迁移学习并冻结前边一些层进行操作——要是全部进行训练的话,过拟合程度太大,最后能有 3% 的差别;
最后,我一般采用带有 warmup 的学习率调整,并在训练过程中动态调整学习率。
5)对于你刚刚提到的“冻结层”的做法,方便展开更多吗?
由于数据集较少,所以我们在训练模型时一般会冻结前边的一些层,然后选择训练后边的一些层。举个例子,在这次比赛中,ResNet 我只保留最后一个 block 和后边的分类层,然后选择冻结前边三个 block。当需要训练的参数变少了,过拟合程度会减弱,随之模型泛化能力就会变得更好。
6)你觉得打《102 种鲜花分类》赛事的难点主要体现在哪里?
我觉得难点主要体现在数据集的类别较多,数据量较少。另外,我目前的算力比较受限,进行训练调参时会面临一些困难。
我现在基本上还处在挑选模型的阶段,没有对图像数据进行处理观察,换句话说,使用的还是通用方法,没有进行针对性的数据处理。这部分对我来说应该是最难的,因为数据处理方法我用的不多。
7)可以推荐一些你认为对小白用户提升打比赛水平来说有帮助的赛事 baseline 吗?要能简单说明一下原因那就更好了!
我都是在比赛中自己整理的代码,然后作为 baseline 进行调参。
8)大家都嘲笑说搞机器学习的都是“调参师”,对于调参这门玄学,你有没有什么心得要跟大家分享的?
我个人感觉对于分类任务来说,调参就等同于挑选模型、数据预处理、学习率。学习率推荐带有 warmup 的 cosine 学习率;模型的话可以考虑采用 resnet、resnext 和 efficientnet 这几个;数据预处理我做的不好,只会一些基本的,还不会针对性设计。
一般只要模型选择和数据处理做的好,基本上就可以排到前 10%。
最后再强调一下迁移学习,一般数据集不够的情况下,选择冻结前边的层是非常重要的,结果会有很大的区别。
9)最后一个问题,你认为什么才是“打比赛的正确姿势”?
其实我也算是初学者,主要抱着学习锻炼的态度来这这里锻炼一下自己的技术,希望能对调参有一些确切的认识。
我个人认为亲自动手还有看大佬的赛后分享,是比较重要的学习机会。如果能有开源代码,对小白来说就更好啦 ~