入了 kaggle 这个坑三年,成绩还凑合,目前拿到一金二银二铜,也和综合排名 top10 的种子选手组过队。
欢迎在讨论区交流,也欢迎添加微信 longswordMAN 进群+听直播分享,加的时候注明 V2EX 的 id 就行。
我会尽量保持周更的频率,每条评论也会看,比较走心的高质量评论必回,看反馈情况决定是否改变更新频率。
帖子主要谈三个主题:
1.kaggle 的比赛冲分技巧。在具备 top10%乃至 top2%的实力的情况下,如何百尺竿头更进一步,冲击奖牌, 以及如何选择适合自己的项目。
2.在简历里怎么包装项目,面试的时候怎么展示,
3.怎么通过 kaggle 来 networking,以文会友,建立人脉网络。
废话不多说,正题开始。
想要在 kaggle 平台制霸,我们首先要了解 kaggle 的前世今生,了解他比赛的风格和最近几年的变化方向。
Kaggle 是一个对给定数据集的的数据建模平台,以分类、回归问题为主(也有少许聚类,我个人估计应该是因为聚类模型的表现衡量起来相对麻烦,以后如果有时间,可以开一个专题讲聚类,现在因为和主线有点偏离,先按下不表)。
Kaggle 竞赛的合作方,早期可以认为是悬赏方,提供数据和任务,往往是公司内部数据(当然作了一些去敏),进而提出公司一个实际需要解决的问题。这个模式有一些类似赏金猎人,尤其是在 2010 年前后,kaggle 还比较小众的时候,参赛人数不多,如果不是金额特别爆炸的悬赏,不是精心雕琢的模型往往也能瞎打乱撞拿到奖金。
虽然一开始 kaggle 的初衷有一些类似于赏金猎人,但是随着平台的壮大,单纯的去冲击奖金的期望收益已经大大降低,所以 kaggle 平台慢慢就演变成了现在类似竞赛平台的形式。尤其是在被 Google 收购之后,kaggle 上的题目风格发生了不小的变化,概括起来就是两多两少。
两多:
参赛队伍变多
深度学习模型变多
两少:
数据量变小
比赛数量变少
1
longSwordMan OP 解释一下:kaggle 在朝着竞赛平台的路上狂奔,原来的外包悬赏属性越来越少,所以导致了比赛数量变少,队伍变多;谷歌向来注重深度学习(面向 VC 的开发,大家懂的),所以 kaggle 一定程度上也在 NLP,CV 等深度学习细分领域狂奔,原来重特征工程的打法已经式微。为了让大家的机器跑得动大模型,所以数据量就小了,没有以前那种操作大数据的快感了。
|
2
longSwordMan OP 从 kaggle 和深度学习结合越来越多这个趋势,其实可以窥见一整个行业的趋势,由于多媒体信息越来越多,图像,声音,文字,都是信息的载体,而深度学习模型有能力从这些信息载体中提取出高浓度,可操作的信息(说人话,可以把信息变成向量,方便处理操作)。那么在将来的新潮岗位,一定是需求能够把深度学习和 BI 结合,而且还有一定 coding 能力的大佬。
|
3
longSwordMan OP 上回我们说到 kaggle 被谷歌收购的故事,受到 google 的影响,kaggle 的竞赛逐渐加深了和深度学习模型的结合。之前有一个经典的手写数字竞赛,属于上古时代的项目,叫做 MNIST,kaggle 上可以搜到。当时深度模型在 kaggle 还没有流行,所以不少选手仍然选择了传统的分类模型来解,大家可以翻看链接里的陈年 kernel,甚至可以看到 heretical softmax 来解这道题的奇观。
|
4
longSwordMan OP 相对比较靠谱的传统解法,比如说一些人对图片做了特征工程(如果不做特征工程的话,会次拟合得非常厉害,毕竟是一个 28*28 维的特征),特征工程的的手法,比如:图像的对称性,白色 pixel 的数量等等。对称性就包括上下对称,左右对称,旋转对称。比如“0,1,8”就同时满足三种对称性,“3”满足上下;对于白色 pixel 来说,自然比划多的数字,比如“8”就数量大。还有其他蛇皮走位的特征工程的手段,比如算一些关键点的曲率啦,在某个神奇的坐标上是否是白色等等。
|
5
longSwordMan OP 我看了一圈,传统方法里,相对比较靠谱的做法就是把图片切成 4-9 片,对每一片再做一次特征工程,然后把特征工程的结果再过一次 softmax 。这个其实有一点 CNN (卷积神经网络,不是那个电视台),并且这位大仙还用了 sampling 。这个算法我记得勉强突破了 90%准确率,在传统做法里已经爆炸。
|
6
longSwordMan OP 当然说了这么多,都是为了引出我们的主角 CNN 。CNN 号称宇宙第一图像分类算法,随着深度学习的发展,又逐渐出现了 resnet,VGG24,VGG48,VGG128,VGG10086,VGG 小目标,总之往复杂化方向一路狂飙(最后两条是玩笑,不要当真),但是这些模型都是 CNN 的衍生,对于简单的,28*28,我们直接调用 CNN 已经可以取得 95+%的准确率,不过,该做的预处理还是要做,比如 padding 这些工作。
|
7
longSwordMan OP 当然早些时候直接套 CNN 可以解决,现在的题目的画风已经变成这样:(因为无法粘链接,大家如果想了解的可以私信我)所以大家这个肉眼看得出什么区别吗?反正我不是学医的我看不出,所以特征工程这套已经可以说式微了,某种意义上是鼓励,或者说驱赶参赛者去用深度模型解题,当然 kaggle 除了计算机视觉方向的深度模型,还有自然语言处理,图论,凸优化等领域,我们接下去会慢慢谈。
|