都说兴趣是最好的老师。
作为一个技术学习者,一方面,我觉得兴趣固然重要;
而另一方面,在自学和实践的道路上,如何循序渐进,让自己获得正向的反馈,并且持续激励自己,这也是至关重要的一点!
而今天文章的主角,他的经历某一程度上来说,也印证了这一点。
今天文章的主角是一位Kaggle Master,他对数据科学、人工智能、机器学习等领域有着非常浓厚的兴趣,并且分享了很多他在学习和实践过程中的诸多心得。
大家都知道,Kaggle是许多人开始数据科学的地方,在这篇文章中将分享Andy当时是如何成为最年轻的Kaggle Master。
以下是他本人的自述,当时的主角也才仅仅14岁,原文是纯英文的文章(towardsdatascience.com/my-journey-to-kaggle-master-at-the-age-of-14-e2c42b19c6f7),这里翻译成了中文。
所以接下来我们一起来看看Andy的学习经历和经验总结。
看一看别人的经历,往往可以给我们一些启发。
个人介绍
我是Andy,一名高中生,对数学、人工智能和计算机科学有着浓厚的兴趣。我在Kaggle上学习和提高我的技能,获得了2枚银牌和1枚金牌。
几年前,我开始对数学产生兴趣,并开始学习比我在学校自学的更高级的主题。不久之后,我开始研究编程,因为我从小就对计算机科学着迷。
通过关键词搜索我找到了几门教授 Python和基本编码概念的课程。不久,我开始自己编程,使用回溯算法制作小项目,例如数独求解器。
我是如何进步和学习的
我对编程和机器学习概念的了解主要来自互联网。有疑问时,互联网是最好的老师。没有学校教授数据科学或神经网络,如果我想在 Kaggle 上取得成功,我就靠自己了。
随着学习资源的增加,人们不知道从哪里开始或如何学习。因为“数据科学”和“机器学习”相关的领域太多,精通每个类别几乎是不可能的。对于像我这样的初学者,您需要找到自己感兴趣的东西,并充分挖掘它所能实现的潜力。
数学是一切的基础,线性代数和微积分是机器学习中使用的两个最重要的数学概念。几乎所有的机器学习算法都以某种方式与这两个领域相关。数据以向量和矩阵的形式表示和处理。因此需要了解矩阵的基本运算。
在了解了基础知识后,我开始着手编写代码。凭借面向对象编程(OOP) 和 Python 的基本知识,我找到了一些在线课程,这些课程教会了我机器学习中常用的所有库。
一点一滴的学习,一开始学到的知识,将来可以轻松积累成复杂的东西。
Andy 最开始参加了使用回归技术预测房价的初学者竞赛。我发现我学到的东西远远不够。我最缺的是经验。最好的学习方法是通过失败和尝试新事物。
然后参加了 Mechanism of Action 比赛,通过在论坛、Notebook完成快速学习,最后取得了前4%的成绩。然后 Andy 又参加了两场比赛,又获得了银牌和第一枚金牌。
我的Kaggle解题流程
从我参加的比赛中,我遵循了一个通用的流程,它不仅可以组织工作,还可以有效地产生有意义的结果。
- 仔细阅读数据描述和概述。如果可能,可以尝试探索领域知识。
- 在阅读任何论文、讨论或Notebook之前,尝试自己创建一个基线。这有助于在将您的思想锁定在其他人所说的内容之前产生全新的想法。
- 建立可行的交叉验证策略并提交到排行榜。确保您的CV策略也适用于 LB,这一点很重要。
- 阅读,阅读和学习!充分探索与该主题相关的论文,在论坛和笔记本中寻找灵感。
- 开始在模型方面或功能方面调整基线。一次只调整一件事,所以你知道是什么导致模型改进/表现更差。
- 尽可能多地探索新方法,不要在行不通的事情上纠缠太久。
- 如果其他一切都让你失望,模型集成是最稳定的改进方式。
- 选择具有良好 CV 分数的提交。
我学习到的知识
特征选择删除不重要的特征,有助于减少数据中的噪声。在 Mechanism of Action 竞赛期间,论坛和讨论帖中的方法对我们设计的模型没有帮助。在这种情况下,不要害怕深入研究并阅读论文。由于我处理的案例多标签分类并不常见,因此我找不到任何简单的教程。我找到了一篇论文,旨在比较使用问题转换的多标签特征选择。
阅读研究论文似乎令人生畏,但能够浏览它们并从长页技术术语中掌握关键词是一项至关重要的技能。对于像我这样的初学者来说,试图理解你遇到的每一篇论文的每一个细节是不可能的。只有当我找到我需要和将使用的论文时,我才会尝试理解论文中的每一个单词和引用。
- 将模型调整为具有非线性拓扑结构或为表格数据构建类似 ResNet 的结构化网络不仅在 MoA 竞赛中获得了一些惊人的结果,而且在接下来的 Jane Street Market Prediction 中也获得了一些惊人的结果,我们在其中排名第16。
- 探索不同类型的自动编码器,例如去噪、变分和稀疏编码器,可以为您的数据带来令人惊讶的变化,而不仅仅是简单的特征工程和选择可以实现的。
- 模型融合。组合不同模型的结果可以为您的解决方案增加多样性,从而使其更加稳健和稳定。无论什么建模技巧奏效,合奏总是我在比赛中的“最后手段”。
- 始终关注新论文并探索论坛中提到的内容之外的内容。调整激活函数(尝试swish而不是 ReLU)和优化器(尝试AdaBelief而不是 Adam 等)之类的小东西可能只会从模型中挤出一些性能。
- 跳出框框思考!使用一维CNN对表格数据进行特征提取。或者使用DeepInsight,将表格数据转换为图像,利用 CNN 的优势。
不要沉迷于现在的工作,继续前进并花更多时间探索可以带来改进的新事物。
参加 Kaggle 比赛并获得奖牌并非易事,但通过正确的学习方法和工具,这个过程可以变得更容易。
- 检查讨论帖子和阅读公共笔记本非常有帮助。每天都有新想法出现,我通过论坛中提到的论文和笔记本中使用的库了解了一些最新且引人入胜的模型和工具。其中之一是TabNet,这是一种通过使用顺序注意将特征选择合并到模型中来对表格数据进行建模的新方法。这个模型让我在 MoA 比赛中获得银牌。
- 最后,拥有稳定而强大的管道对于在最终的私人排行榜中取得出色表现最为关键。浪费时间过度拟合以在公共排行榜中获得额外的 0.0001 是没有意义的。始终相信您当地的交叉验证分数,因为训练数据量大于公共排行榜的数据量。
只是按复制粘贴对学习或赢得比赛没有帮助。我在 Kaggle 中最重要的座右铭是永远不要复制别人的工作,我可以从他们的想法中得到启发,甚至使用他们的建模方法,但我从不提交其他人的工作作为我的解决方案。
在接触新事物时,我养成了查找所有我不理解的东西的习惯,直到我可以自信地向其他人解释这个主题。
一点小感想
看完Andy的故事和经验总结,我们会发现,其实底层驱动还得是兴趣。
然后通过不断地尝试和实践,逐渐地获得了正向的反馈和激励。而这种正向的反馈又会给自己带来更多的信心和兴趣,从而激励自己更加精进。
一旦形成了这种正反馈的工作流,很多事情自然也就好办了。
所以如果我们围绕着这个思路,来思考一下自己的学习和工作,或许是有帮助的~
好了,以上就是今天的内容分享了,希望能对大家有所启发。感谢大家的收看,我们下篇见。
文章精选:
- 2012,改变人类命运的180天,人工智能的燃点时光
- GPT-4成功得出P≠NP,陶哲轩预言成真!97轮「苏格拉底式推理」对话破解世界数学难题
- 图灵奖得主杨立昆:生成式AI有点过时了
- GPT-4没有意识!但图灵奖得主Bengio等88页论文暗示「天网」迟早降临
- 从计算到人类知识:ChatGPT与智能演化
- 数学到底有多重要?看看手机背后的数学
- 图灵奖得主:为什么中国顶尖学生入学赢了,毕业时却输了?
- 人工智能的终极基础是哲学认识论
- 图灵奖获得者专辑|图灵奖获得者、信息安全常青树Adi Shamir:从密码学到AI对抗性样本研究
- 图灵奖获得者专辑|图灵奖得主 Yann LeCun:AI 仅仅学语言走不远