chug

如何成为 Kaggle顶级大师?Vladimir I. Iglovikov 是一名 Kaggle 顶级大师(Grandmaster),曾获得过 Carvana 图像遮蔽挑战的冠军,以及 Dstl 卫星图像特征检测挑战的第三名 。他曾在 UC Davis 获得过理论凝聚态物理学博士的学位,现在是一名 Lyft 的计算机视觉工程师,主要研究自动驾驶 。最近,Vladimir 分享了自己成为 Kaggle 高手的经验 。目前,Kaggle 注册用户数量已超 100 万,其中只有 124 人拥有 Grandmaster 头衔,如何成为全球排名前千分之一的数据科学家?让我们看看他是怎么说的 。我叫 Vladimir,本科毕业并获得理论物理学位后搬到了硅谷,从事数据科学相关的工作 。我当前在 Lyft 公司的自动驾驶部门工作,研究与计算机视觉相关的应用 。过去几年来,我花了很多时间参加关于机器学习的比赛 。这样做是因为,一方面我觉得它本身很好玩,而另一方面,我觉得这是一种非常高效的数据科学技能提升方法 。当然,不是所有的比赛都很容易,我也不是在每场比赛中都能获得好成绩 。但时不时地参加这些比赛,让我不断地提高了自己的相关技能,甚至最终获得了 Kaggle Grandmaster 的称号 。我要向 @Lasteg 表示感谢,是他提议我参加这期的 AMA(Ask Me Anything session)并在 Reddit、kaggle、science.d3.ru(in Russian)上收集问题 。他收集有很多问题,我会尽我所能去回答,但没办法在本篇博客中解决所有问题 。如果你的疑问未能在本文获得解答,可以在评论中留言 。以下是我(或我的团队)有幸跻身排行榜前列的一些深度学习挑战:在 Ultrasound Nerve Segmentation 中获得第十名在 Dstl Satellite Imagery Feature Detection 中获得第三名在 Safe passage: Detecting and classifying vehicles in aerial imagery 中获得第二名在 Kaggle: Planet: Understanding the Amazon from Space 中获得第七名在 MICCAI 2017: Gastrointestinal Image ANAlysis (GIANA) 中获得第一名在 MICCAI 2017: Robotic Instrument Segmentation 中获得第一名在 Kaggle: Carvana Image Masking Challenge 中获得第一名在 Kaggle: IEEE's Signal Processing Society—Camera Model Identification 中获得第九名在 CVPR 2018 Deepglobe. Road Extraction. 中获得第二名在 CVPR 2018 Deepglobe. Building Detection. 中获得第二名在 CVPR 2018 Deepglobe. Land Cover Classification. 中获得第三名在 MICCAI 2018: Gastrointestinal Image ANAlysis (GIANA) 中获得第三名Q:除了数据科学以外,您生活中喜欢做些什么?A:当然,我喜欢徒步旅行、攀岩 。如果你早上去 Mission Cliffs 攀岩馆,见到我可以打个招呼 。我也喜欢跳舞,特别是 Bules Fusion 。旧金山的 Misiion Fusion 和 South Bay Fusion 舞蹈产地是我经常去的 。旅行对我来说很重要 。春天的时候我去了白俄罗斯、摩洛哥、约旦 。九月,我在芬兰、德国、奥地利呆了三周 。当然,2018 Burning Man 是今年最爽的活动 。Q:你如何在工作的同时花很多时间做 kaggle 呢?A:对我来说,虽然没有薪酬,但参加 Kaggle 比赛是我的第二职业 。我这么做理由很充足 。活跃的 Kaggle 参与者追求领域的改变很常见 。我也不例外 。当我从学界转向业界时,我开始参加比赛 。我需要一个高效的方法来尽快熟悉 ML 需要解决的问题,掌握那些工具,并将思维扩展机器学习的新领域 。后来,当我在 Bidgely 开始我的第一份工作之后,我参与的 Kaggle 赛事更多了 。有段时间,我在研究信号处理任务,同时几乎将所有晚上的时间用来处理参加比赛用的表格数据 。那段时间我的工作和生活有些失衡,但我获得的知识却是值得的 。再后来,我做好准备换工作以后,加入了 TrueAccord,在那里我做了很多传统的机器学习任务 。但我不想停止对 Kaggle 的研究,所以我白天做的是传统机器学习,晚上和周末研究深度学习 。也因此,工作和生活更加无法保持平衡 。但我学到了很多东西,获得了很好的附加技能,成为了 Kaggle Master 。当我加入 Lyft Level 5 时,我知道所有这些努力都没有白费,在这份工作里我将深度学习应用于自动驾驶问题上 。最终,我没有全职做 Kaggle,但我仍在积极地学习 。工作中有很多有趣的计算机视觉问题,我正尝试在 Kaggle 没有涉足的领域里获得更多的知识 。我仍然时不时地向各种比赛提交参赛作品,但这主要是为了更好地理解其他参赛者正面临的问题和挑战,这样做反过来有助于我从论坛分享的信息中获得很大的收益 。Q:帮助你提高工作效率的日常惯例是什么?你如何安排一天的行程?A:首先,我不太确定自己是否高效,因为我总是在寻找新的办法优化工作方式 。需要解决的问题和需要参与的活动总是很多,但不是所有的都有用又好玩 。所以我做什么事情都要优先考虑 。有两本书对这个话题进行了精彩的讨论:《So Good They Can't Ignore You: Why Skills Trump Passion in the Quest for Work You Love》和《Deep Work: Rules for Focused Success in a Distracted World》 。工作日,我一般早上 6 点起床,然后去攀岩馆 。这样做能帮助我保持身材并让我一天都保持清醒 。之后,我开车去上班 。我们的自动驾驶工程中心位于 Palo Alto,这对我来说有点忧桑,因为我更喜欢住在市区 。开车很有趣,但通勤很烦 。为了让通勤时间更有效率,我会在车里听有声读物 。开车时当然没法专心听书,但在驾驶时听听这些文学、有关软技能和商业的书总是不错的 。我想好好把握工作和生活之间的平衡,但没有做到 。当然,我花了很多时间和朋友参加不同的活动,而且很多活动是在旧金山 。同时,我仍需要学习;我还要保持机器学习的状态,不能把目光局限在工作中遇到的问题上 。所以我晚上有时候会阅读技术文献,或者为比赛、辅助项目和开源项目编写代码 。谈到开源项目,我想借此机会推广一个图像增强库,该库是由我和 Alexander Buslaev、Alex Parinov、Eugene Khvedchenia 一起基于我们有关视觉挑战赛的研究创建的 。如果不阐述细节的话,可能没法说清楚这个问题:我更喜欢 Ubuntu+i3 的电脑,而不是 MacBook,因为这样能让我的效率提升 10% 。我很少用 Jupyter notebook,仅用于 EDA 和可视化 。几乎所有的代码我都是在 PyCharm 上写的,然后用 flake8 检查,再传到 GitHub 上 。很多 ML 问题都非常相似 。找一个更好的代码库,而不是重复自己的代码,然后思考如何最好地重构 。这样做虽然在开始时进展缓慢,但后面会加快你的进步 。我正在尝试编写单元测试 。所有人都在讨论单元测试在数据科学中的重要性,但很少有人花时间去写 。Alex Parinov 写了一个很好的文档(https://albumentations.readthedocs.io/en/latest/writing_tests.html),教你怎么从简单的测试做到复杂的测试 。你可以尝试一下,然后再你的学术或 Kaggle ML 流程中添加更多测试 。目前,我正在试用模型版本化工具 DVC,我希望它能增加我的 ML 流程的复现率和代码的可重用率 。我很少用鼠标 。因此我有时候需要在页面上写热键,然后尽可能多地使用它们 。我不使用社交网络 。我一天仅查收几次邮件 。我甚至会在早上列一个当日任务清单,然后解决它们 。我使用 Trello 来做这个 。我不会把一天的时间分割得很乱 。很多任务需要集中精力,而总是切换焦点没什么用 。以上大概就我的一些工作标准了 。Q:你如何跟上这个领域的最新研究?A:「跟上」这个词对我也不太准确,机器学习领域近来很活跃,有关的论文数量、比赛、博客和书籍非常多,不可能全部浏览 。实际上,当我遇到一些问题时,我会把注意力放在最新的研究上,并深入挖掘 。解决完这个问题后,我再转向另一个问题 。因此,我只对那些我亲身经历过的领域了解较深 。同时,我对研究过的问题都有较深的专业知识,这个问题清单很长,而且还在持续增加 。这个事实也让我确信,将自己编写并保存在私人存储库中的经验和代码将有助于我快速开始任何新的 ML 相关任务 。此外,这还意味着我对很多问题的处理方式都有大概的了解,这样我下次面对类似的问题时心里也有谱 。我还参加过像 NIPS、CVPR 这样的人工智能会议,在这些大会上展示的研究成果能够很好地代表我们当前的研究水平 。Q:四五年前,在非机器学习领域拿到一个博士学位(如物理学)对雇主是有利的 。但现在的情况好像变了,非机器学习领域的博士学位和机器学习的硕士学位相比,IT/ML 行业更愿意选后者担任机器学习工程师/开发者职位,至于研究岗我不太清楚 。您获得了物理学博士学位,然后转到机器学习领域,我认为您的经历可能适合回答这个问题 。如果获得非机器学习博士想转到机器学习行业,您对此有何看法?这有助于获取企业内的研究职位吗?与机器学习相关硕士相比有优势吗?A:这个问题比较困难,我不知道答案 。物理学是一门伟大的学科 。即使回到过去,可以在物理学和计算机科学之间进行选择,即使知道我最终会转到计算机科学领域,我仍然会选择物理学 。当然,主要原因是我对物理学和自然科学比较感兴趣 。机器学习能够讲授浩翰多彩宇宙的运行原理吗?不能,但是物理学可以 。不止如此 。我的转型之路相对容易的原因之一是物理学,这门学科给予我的不仅是量子力学、相对论等知识,还有数学、统计学、编程技巧,这些技能有利于向其他领域的转换 。物理学教会你如何在严谨理论和实验之间以结构化的方式进行转换,这对机器学习从业者而言也是一项必备技能 。另外,自学集合不可能学习物理学或高等数学 。这点也是我的公司信条,即深度学习的下一个大突破将在我们明白如何将高等数学应用到机器学习中的时候出现 。现在具备大一水平的数学知识在计算机视觉领域已经足够了 。所有这些都意味着目前数学不是拦路虎,这也是掌握了数学/物理学/化学和其他 STEM 学科的额外知识对于解决大部分商业问题几乎无用的原因,也是这些学科的毕业生转行的原因 。他们拥有大量专门知识,有博士学位,在学界待了很多年,但无法得到有趣且高薪的工作 。网络上到处是这种类型的博客文章 。另一方面,能写代码在各个地方都是必要的,这也是潜在雇主在了解数学的人和能写代码的人中间几乎总是选择后者的原因 。但我认为这种情况会改变的 。不是现在,是未来的某个时间点 。你读的论文、你上的课可能与你在行业中所需的技能并不直接相关,注意到这一点很重要 。这是对的,但无伤大雅 。通常,在业界作为数据科学家或软件开发者工作所需的技能可以通过自学学习,不能在大学里学到 。人们在工业界学到的大部分事情可以通过在某家公司的全职工作来获取 。此外,找工作的同时还要写理论物理学论文、研究数据科学,这对我来说压力太大了 。当时,我并未掌握所有必备知识,我也不理解硅谷的运作和他们对我的期望 。我基本上是一张白纸,我做的唯一一件事是不断地把简历投给不同的公司,不断地面试,从每次失败中学习,然后再继续,直到面试成功 。我记得有一次面试官问我毕业论文主题是什么,我当时在研究量子蒙特卡罗(Quantum Mo


    以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

    「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: