您当前的位置:科技评论网资讯正文

半年5战5金Kaggle史上最快GrandMaster是怎么炼成的

放大字体  缩小字体 2019-11-02 19:19:24  阅读量:4241 作者:责任编辑NO。邓安翔0215

机器之心专栏

机器之心经授权转载

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

Kaggle profile:https:///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 的话,很或许下降的方位就不够好。循环的学习战略,我的感触是既不会有太多过拟合,也不需求很细心调参,根本会有个不错的成果。

第三届机器之心「Synced Machine Intelligence Awards」年度奖项评选正在进行中。本次评选设置六大奖项要点重视人工智能公司的产品、使用事例和工业落地状况,根据实在客观的工业体现筛选出最值得重视的企业,为职业带来实践的参阅价值。

参选报名日期:2019 年 10 月 23 日~2019 年 12 月 15 日

评定期:2019 年 12 月 16 日~2019 年 12 月 31 日

奖项发布:2020 年 1 月

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!