点击上方“Datawhale”,选择“星标”公众号

第一时间获取价值内容

转载自机器之心(id: almosthuman2014)

这是 Kaggle 你问我答 (AMA) 的第一期活动,本期请到的嘉宾是 SueTao,他研究生毕业于东南大学,目前是腾讯的一名算法工程师。

  • Kaggle profile:https://www.kaggle.com/shentao

SueTao 擅长计算机视觉(Computer Vision),半年 5 战 5 金,也许是史上最快的 GrandMaster。截至目前共斩获 9 金 3 银,kaggle 最高排名全球第 10。

以下是本期活动的问答集锦:
Q1:如何搭建 kaggle data pipeline?
A1:我目前的比赛还是集中在 cv,也做过语音,还有前段时候的 PMP,都是 DL 相关的竞赛。数据的 pipeline 其实是可以积累并且优化的。我觉得可以参考一些前人的代码,尤其是蛙神的 code。可以在蛙神的 code 基础上,慢慢优化跟积累出自己的数据 pipeline。DL 数据 pipeline 中还有个很重要的部分就是数据增强,这块针对不同比赛可能有不同的做法。
Q2:自己曾经努力拿过银牌,但是觉得金牌好难,特别是 solo 的情况,请问金牌和银牌的差距在哪里,如何突破?
A2:我还是从我参与比较多的 cv 竞赛角度出发哈。首先,如果你是 cv 新人,在 kaggle 竞赛上觉得拿金牌很困难,其实是很正常的。目前 cv 赛基本被 cv 高手霸榜了。如果你是已经比较熟悉 cv 各个方向的模型,那你可能需要一个竞赛好手来给你带路。毕竟竞赛还是有很多套路的。
如果是新人,我的建议是坚持,通过几个 cv 竞赛来积累对这个方向的认识。了解不同模型不同任务。我觉得可以参考 padue,大家如果看他竞赛的成绩的话,开始他也只是银牌水平,但是从前段时间的 protein 开始,他现在在 cv 赛的水平基本就是 solo gold 了。deep learning 实践的积累还是很重要,一口吃不成胖子。
Q3:private sharing 这个问题时不时被人提起,请问根据你的观察,它是否已经严重到影响 kaggle 的公平性?
A3:private sharing 太坏了。这个我觉得大家都深有感触,X5 事件。我也不发表过多的评论了哈,这块确实 kaggle 平台也需要多关注下。
Q4:新出的 3d object 比赛是不是一种趋势,请问涛神对 computer vision 的发展有什么观察和展望?
A4:cv 的话 3d 绝对是一个趋势,包括学术界和工业界;sensor 的成本越来越低,性能也越来越好;就人脸识别来说,用 3d 来说安全性和可靠性就更高了。其实我目前也算是退坑 computer vision 了,也谈不上对 cv 有深入的认识。大家从 kaggle 上 cv 赛的数量上可以发现,cv 对企业的价值还是非常高的。前景是非常好,例如工业检测之类的,又谈到了 steel。
Q5:怎么判断该改进网络结构还是调学习率?
A5:学习率和学习策略可能是搭建 baseline 里面最重要的部分。这块需要在比赛的前期优化到最好,建议使用简单的网络作为 baseline,然后仔细优化学习策略。没有提升空间之后再考虑别的方向的优化。
Q6:是否应该从分类错误的 sample 中提取灵感继续改进?如果是该怎么做?
A6:cv 最好的一点是可以看图,非常直观。举个例子:比如之前的鲸鱼竞赛,baseline 模型的 bad case 大多是一些姿态较大,分辨率较差的图像。那么我们就可以考虑增加对应的数据增强。效果也很显著。再举个反面例子:刚刚结束的 nips 的 cellsignal 竞赛,是细胞的荧光成像。整个比赛我完全没有看 bad case。因为没有 domain 知识,图像非自然,很难观察。但是也不妨碍比赛能拿名次,只看 log 来调参。
Q7:请评价 cv 各项任务中 state of the art 模型的实用性,有何推荐?
A7:「试过才有发言权」,这是我做 kaggle 之后的一个经验。没做 kaggle 之前,我工作集中在轻量级的模型,对于 sota 的大模型几乎没有尝试。所以我在竞赛中会尽量去尝试各种 sota,最终会有很多有意思的结论。会发现 kaiming 的 resnet 为什么强,unet 为什么就是好用。有些很 fancy 的模型真的只是过拟合特定的数据集。我也没有尝试过所有的 sota,但是我觉得 paper 里的内容看看就好,去伪存真,实践出真知。
Q8:作为一个新人从头开始拿到金牌的最佳策略?比如选择比赛的类型?
A8:哈哈 因为我 cv 一把梭,只能给到 cv 的经验。如果新人想拿金牌的话,最好就是找一个蛙神 all in 的比赛,step by step follow 蛙神!只要比所有人都肝,有足够计算资源,对齐 discussion report 出来的模型精度,solo gold 就有希望!其实我第一个比赛 TGS 就是这么做的。
Q9:在 kaggle 学到的东西是否有应用到别的地方?能否举例说明?
A9:非常多。举个例子:模型集成(ensemble)。可能有些人说模型集成在实际工作中用不了;工作中的场景有效率的要求;在计算资源受限的情况下,3 个小模型集成的效果可能远好于 1 个大模型的效果。我之前的参与的人脸项目,其实就用了这样的策略,很好用。但是如何去集成,怎么增大模型间 diversity,这些技巧大家可以从 kaggle 上学习。
Q10:回头看自己的经历,对刚入坑的新人,有什么想提醒的经验和教训?
A10:教训到没有,做比赛一年感触还是蛮多的,投入越多收获越大吧。希望大家坚持。真的只有投入去做了,才会有收获。
Q11:CV 比赛假如遇到瓶颈会往哪些方向尝试?
A11:数据层面绝对是提分收益最大的方向;还是要多看数据,多分析 bad case;不看数据就调网络结构是不可取的。数据层面有些线索之后,可以指导你对模型结构本身做一些改进。另外最重要的:多看 paper,paper 是 idea 的来源。
Q12:一般会用哪种方式平时积累知识?
A12:过去很长一段时间内,我积累的方式还是来自比赛 通过一个比赛,我可以验证很多 paper 的方法,实践在工作中无法使用的模型;帮助我深入理解一些数据上和模型上的问题 感觉从我个人而言,比赛和工作相辅相成,给我工作提供了非常好的积累和储备。
Q13:想知道打比赛的节奏是什么,比如比赛结束前一个月,一周,几天主要干什么?
A13:基本上最后一周前,最终方案就要定了。考虑最终的集成。
Q14:有复现比赛 top solution 的习惯吗?有的话是一种怎样的方式呢?
A14:会看,但是很少会跑。因为一直忙着做新的比赛。其实应该仔细去研究下的。
Q15:分类比赛中的最后的 sub 的阈值应该根据什么来选取呢,有什么选取技巧呢?
A15:我只能说可靠的 local validation 是最重要的,所有涉及模型选择,调参;其实都需要一个依据,local validation 就是这个依据。这样问题就变成如何建立可靠的 local validation 了。
Q16:分类比赛中最后的两个 sub 一般会怎么样选择呢,不同的方案的模型,还是其他?
A16:这个问题比较好。前期几个比赛的 sub 一般都是我选的,有幸抽中过金牌。我个人的建议是,差异一定要大,一个激进一个保守。就 dl 比赛来说,集成最稳的是 weight ave,简单有效,一般来说我会选一个这个;然后一些存在过拟合风险的方法,但是 lb 和 cv 都很可观的方案,我也会选择一个。
Q17:请问经常看到各位大佬同时参加好几个比赛,还能拿到很好的名次,这是怎么做到的?
A17:其实 kaggle 上的 top CVer 都会有自己积累下来的 pipeline。竞赛任务无非是这几种,迅速搭建一个可靠的 baseline,对 top 选手很容易;看似在做多个竞赛,可能跑的是一套代码。真的要最终比赛冲刺了,会有针对性地去理解数据和优化。
Q18:图像比赛有什么通用的技巧吗?厉害的选手一次提交就可以进到绿圈,细节处理上有什么独到之处?
A18:DL 调参的细节太多了,需要很长时间的积累。同样的数据+网络,不同人的训练结果可能相差巨大。这是 top CVer 的核心竞争力 通用技巧的话,paper 上带着「bag of tricks」的 都需要仔细阅读 bag of tricks for image classification,bag of tricks for object detection。
Q19:想问下之前说没法做 bad case 的时候通过 log 调参是怎么调的,另外一般 bad case 怎么样比较好的分析?
A19:其实很简单: bias-variance trade off,只看 log 的话,拿捏好这个。比如 nips cellsignal 比赛,baseline 效果是,training 拟合的非常好,test 却非常差。其实是一种 train test consistency。从 1)数据层面;2)网络层面,去分析可能的情况。1)数据层面:数据分布的问题,2)网络层面:batchnorm。针对性地去做实验,确定问题所在,继续观察 bias-variance,要得出可靠结论,再进行下一步。
Q20:我这边自己写了个基于 pytorch 的轮子, 每次基本上能跟上 public kernel 的步伐, 但是就是很难超越. 我估计是训练资源和调参问题. 那么: 调参大部分用已经训练好的模型来调, 还是每次改变参数都重新训练个几天, 哪种方法对 top CVer 比较实际?
A20:建议解决计算资源问题,保证快速学习 训练资源很重要,其实最优的实验周期我个人感觉在半天。半天能出一个实验结果最好,中间可以干别的。结果出得太快也不好,要及时总结和记录实验。
Q21:之前看到有新闻说模型会用贴纸识别面包机,用肤色识别罪犯的这种过拟合的情况,还有 aptos 存在模型通过图片尺寸 leak 发现 lable,有没有什么好办法避免这种情况?
A21:我感觉过拟合问题其实比大家想象的更严重,之前做活体检测基本就是这么个情况,难以范化。目前的 DL 还比较『蠢』,要说办法的话,加数据算不算?
Q22:问一个技术性问题,碰到一些受阈值影响的 metrics 时,训练的时候取最好的模型应该依据 val-metrics 还是 val-loss 呢?valid 的时候如果遍历阈值,可能会极大的影响效率。不同模型/不同 epoch,用不同阈值取得的 metrics 比较,会不会『不公平』?
A22:其实我也没有很好的答案。是我的话,最优的 val-metrics 和 val-loss 模型我都会存。其实最担心的是优化的 loss 和 metrics 不一致。
Q23:还想问下对 warmRestart 这类的循环式的 scheduler 有什么看法?和传统的 ReduceLROnPlateau 相比有什么优劣?
A23:最近发现这个真的很好用。如果用 step LR 的话,很可能下降的位置就不够好。循环的学习策略,我的感受是既不会有太多过拟合,也不需要很仔细调参,基本会有个不错的结果。

原文链接:https://zhuanlan.zhihu.com/p/89476481

Dtawhale竞赛群已成立

扫描下方二维码,添加负责人微信,可申请加入竞赛学习交流群,一起组队参赛(一定要备注:入群+学校/公司+方向例如:入群+浙大+机器学习

▲长按加群

半年 5 战 5 金:Kaggle 史上最快 GrandMaster 是如何炼成的?相关推荐

  1. 一年六篇顶会的清华大神提出Fastformer:史上最快、效果最好的Transformer

    来源:新智元 [导读]Transformer模型好是好,可惜太慢了!最近一位清华大神在arxiv上传了一篇论文,提出新模型Fastformer,线性时间复杂度,训练和推理效率史上最快,还顺手在排行榜刷 ...

  2. DeepFaceLab史上最快的环境搭建(虚拟环境)

    DeepFaceLab史上最快的环境搭建(虚拟环境) 文章目录: 一.测试环境 二.搭建虚拟环境 1.创建虚拟环境 2.激活虚拟环境 3.离开虚拟环境 三.配置GPU环境 四.安装配置python库包 ...

  3. 史上最快消息内核——ZeroMQ

    ZeroMQ是一个很有个性的项目,它原来是定位为"史上最快消息队列",所以名字里面有"MQ"两个字母,但是后来逐渐演变发展,慢慢淡化了消息队列的身影,改称为消息 ...

  4. MySQL史上最快逻辑备份工具

    MySQL Shell 8.0.21 增加了一种新的逻辑备份恢复方法,有更快的备份恢复效率,支持zstd实时压缩,支持分块并行导出,load data并行导入,还能备份到OCI的对象存储. util. ...

  5. 史上最快的内网视频会议部署方案-turbomeeting视频会议系统

    之前的文章有提到过,市面上用电脑安装视频会议软件.手机安装视频会议软件来开会的"软视频会议系统"主要是以租赁的形式提供给用户使用,很多优秀的软件甚至只需要付费6000K就可以获得5 ...

  6. miui android 更新更快,即日起,“史上最快的安卓系统”要停更了!或将迎来MIUI 10?...

    原标题:即日起,"史上最快的安卓系统"要停更了!或将迎来MIUI 10? 今日,小米官方宣布:MIUI 将在4月27日发布最后一个更新包MIUI 9开发版/体验版8.4.26之后大 ...

  7. Android开发者福音-史上最快模拟器genymotion

    Android开发者福音-史上最快模拟器genymotion 2014年3月17日 这个模拟器是我在新公司第一天上班的时候,公司同事推荐给我的,这么好的东西,我自然不忘跟大家分享一下.我们都知道Ecl ...

  8. 史上最快的文件复制软件FastCopy

    大家每天几乎都会在磁盘间相互拷贝文件的,通常情况下都是利用Windows自带的复制粘贴功能来实现.这样做在数据量较小的情况下倒也没什么问题,但是数据量较大时,如电影.游戏等数GB的大文件的复制,特别是 ...

  9. (IDM)史上最快的多线程下载工具,绿色稳定版

    应用简介 最快的下载器,没有之一!!!多线程下载文件从而提升下载速度,最大支持32线程,还可以自动嗅探下载网页视频,配合脚本还可以实现百度网盘不限速下载,超级牛逼. Internet Download ...

最新文章

  1. python爬虫抓取信息_python爬虫爬取网上药品信息并且存入数据库
  2. jquery validate 详解一
  3. Python爬虫利器之Beautiful Soup的用法,以及实例!
  4. 【机器视觉】 fuzzy_measure_pairing算子
  5. 学习响应式BootStrap来写融职教育网站,Bootsrtap第十四天,PK模块的开发
  6. 新录制了一个Cytoscape整合富集分析和基因表达的网络图绘制
  7. mysql btree fulltext_Mysql主要索引方式:FULLTEXT,HASH,BTREE,RTREE。
  8. hnu 暑期实训之相同生日
  9. [收藏]Visual Component Framework
  10. idc机房运维巡检_IDC机房运维心得
  11. 64 位下,dsoframer.ocx 注册时失败,错误代码为 0x80070005
  12. 曲线运动与万有引力公式_高中物理公式大总结:曲线运动、万有引力
  13. gatk过滤_详解GATK突变硬过滤 | 群体遗传专题
  14. TIA博途WINCC中英文切换的项目中摄氏度符号无法正常显示的解决办法
  15. Use junit to test Trangle problem
  16. 如何从程序员升级到架构师?
  17. 2008中国十佳IC设计公司(二):土鳖博士创业一样成功
  18. Python抓取某东电商平台数据
  19. 格里高利历java_java – 从Hijri日期字符串中获取格里高利日期
  20. 区块链的4种技术创新

热门文章

  1. [Unity3D]Unity3D连衣裙实现游戏开发系统
  2. 判断JS对象是否拥有某属性两种方式
  3. 【青少年编程竞赛交流】02月份微信图文索引
  4. Task05:青少年软件编程(Python)等级考试模拟卷(一级)
  5. 【组队学习】曹志宾:基于Python的会员数据化运营
  6. 技术图文:Python 匿名函数 VS. C# Lambda表达式
  7. 有符号整型的数据范围为什么负数比正数多一个?
  8. 刻意练习:Python基础 -- Task09. else 与 with 语句
  9. Matlab编程与数据类型 -- 字符型数组
  10. 【Python】随机函数