连遭Google、Tesla“冷眼”,俄罗斯小伙8个月喜提顶级自动驾驶公司Offer

本文主要是介绍连遭Google、Tesla“冷眼”,俄罗斯小伙8个月喜提顶级自动驾驶公司Offer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者 | Vladimir Iglovikov

译者 | 孙薇

编辑 | Jane

出品 | AI科技大本营(ID:rgznai100)

【导读】近日,一位在美国工作的俄罗斯小伙子,分享了过去自己 8 个月的求职经历,从物理专业毕业后,就职于一家债务催收公司做数据与传统推荐系统工程。在自己开始对深度学习和计算机视觉领域产生兴趣后,便想转投于此领域,但是由于自身在专业知识背景、技能与经验的不足与欠缺,让他在求职中处处碰壁。

为了更好的弥足这些缺陷,期间他参加了很多 Kaggle 竞赛,也获得过很好的名次,甚至在一次竞赛事件中,在俄罗斯引起了一些关注度,但是正如他所说,这些都入不了 Google、DeepMind 这些知名企业与机构的法眼,与特斯拉也是失之交臂。但是,在这艰难与煎熬的 8个月时间里,他没有放弃,最终他喜提 Lyft 公司的 Offer。今天,我们就一起来回顾一下,Vladimir Iglovikov 对这段过往的叙述,也希望给那些在 2020 年,面临着同样烦恼与困难的小伙伴们,一些思考与力量。

              (来源:Vladimir Iglovikov 个人博客)

 

2017 年,我想开启一段新的旅程

 

2017年1月,我在为TrueAccord公司打工,这是一家位于旧金山的债务催收平台公司。我的职责就是使用时间序列和表格数据构建传统的推荐系统。彼时,互联网上开始充斥一些描述前沿技术——甚至可以胜过人类的深度学习模型的博客文章和论文,我的兴趣很快转移到了这个激动人心的新领域。

 

虽然我确实有一些深度学习方面的知识,但实践经验非常有限。在读研究生时,我很少有机会可以应用机器学习模型,但幸运的是我发现了Kaggle,使得我能够锻炼深度学习的专业知识。最终,我获得了Kaggle Master头衔,并在“超声神经分割”挑战赛中荣获金牌。这是Kaggle社区广泛运用深度学习架构UNet的首次挑战赛,也是在分割任务中将软Dice用做损失函数的首次挑战。

 

2017年之前,Kagge主要专注于举办表格数据类的竞赛,胜出方案往往涉及xgboost和其他经典机器学习算法的堆叠,很少有深度学习算法能取代这类技术。

 

到2017年,一切都发生了变化。深度学习更加趋向成熟,并且从学术界转向实际产业。Kaggle竞赛紧跟潮流,与成像相关的竞赛也更为普遍。

 

我很喜欢自己在TrueAccord公司的工作,但我更想获得一个深度学习相关的职位。然而我的技能库和知识背景,不足以我在那个当下就能成功转型:

 

  • 我是物理专业的,而不是计算机科学专业

  • 我只有一年左右的工作经验

  • 我的简历中没有任何与机器学习相关的论文

  • 我的工作中不包含任何计算机视觉方面的项目

  • 我在深度学习方面的知识很有限

 

基本上来说,我的情况和其他任何想要转变自己工作方向的人别无二致。

 

因此,我不得不像其他人一样,想办法处理自己的窘境。方法很简单:去面试。如果通过就成功,不行的话就再多学些不了解的内容,然后重复前一步骤。希望在于,在有限次的迭代中获得成功,就会幸运地获得期望的职位。

 

在此期间,我继续提高自己在深度学习方面的技能;阅读论文和博客文章,当然还有继续参加深度学习的竞赛。

 

从 Kaggle 竞赛到屡试屡败的面试

 

2017 年 3 月,我的努力开始见效,在与朋友 Sergey Mushinsky 合作的 Dstl卫星图像特征检测挑战赛中,我们获得了第493名,两人共计获得2万美元的奖金。在这之后,我在二进制图像分割和多光谱图像方面的技能逐渐娴熟,相关文章和代码可以查阅:

 

论文地址:

https://arxiv.org/abs/1706.06169

 

我将奖金用于购买了第二个 GPU,之后我发现 Keras 在多 GPU 设置下不能很好地运行,然后我切换到 PyTorch,它仍是我如今深度学习框架的选择。然而成功并非一蹴而就,与此同时我挂掉了 Descartes Labs 的现场面试,还有其他几家。我知道自己还得继续努力,提高技能。

 

那阵子某个时间,我还收到了 NVidia 的面试邀请,也没过。所遇到的问题在于,我对 2D对象检测器的工作原理了解有限。幸运的是,DSTL 开启了“安全通道”:在航空影像挑战赛中对交通工具进行检测和分类,重点就是2D检测。他们决定不用Kaggle托管,而是使用自建平台。

 

比赛有一条重要规则:“每个人都能参加,但需要持有护照并居住在少数几个国家或地区才能领取奖金。”我居住在旧金山,也在美国纳税,但由于我的国籍是俄罗斯的,是没有资格获得奖金的。这个不幸的事实我是知道的,但这个比赛仍然为对象检测器提供了宝贵的实践经验,最后,在我的努力之下,我在比赛中获得了第二名。

 

数据科学的进展很大程度取决于广泛的国际社会合作,我在 FB 和 Twitter 上表达了自己的看法,认为 DSTL 的规则与这些理念背道而驰,但随着比赛尘埃落定,我也将之抛诸脑后,并继续自己的生活。但不知何故,这件事被旧事重提了,还被俄罗斯新闻选中。不久之后我在俄罗斯的主要新闻媒体和电视频道的首页上都看到了自己的脸。

 

英国国防技术科学实验室为英国秘密情报局开发 AI 算法工具,而一位俄罗斯公民由于国籍被拒绝领奖,这是个好故事,俄罗斯媒体很快就发现了这一点。由于我不适应对着镜头接受采访,便拒绝了与记者对谈。但无济于事,他们将我的个人资料图片放在背景屏幕上,然后请来相关主题的“专家”发表高见。

 

相关视频

https://www.youtube.com/watch?v=M7wpH4xwBIQ&feature=youtu.be

 

记者甚至联系了我父母——他们对机器学习、比赛和一切故事一无所知。我母亲告诉他们,父母是重要因素,但低估学校教师的影响可不明智。这种导向奏效了,记者们将问题带到了我的高中。

 

俄罗斯顶尖的科技公司之一 Mail Ru Group 决定利用这一机会做做公关,他们提议给我 1.5 万美元,相当于比赛的二等奖。我喜欢这个点子,但不觉得公平——我明知比赛规则,并默认同意了自己没资格拿奖。

 

不过,我也很高兴能在简历中补充一个奖项:荣获英国秘密情报局开发AI算法的奖项。我想到了一个更好的解决办法:我热爱理论物理学,也知道这个学科很难获得足够的资金,因此我要求将资金转给支持基础科学的俄罗斯基金会。

 

最后,皆大欢喜。Mail Ru Group 公司和我获得了正面的公关效果,俄罗斯基础科学获得了 1.5 万美元的资金,DSTL 也有动机对机器学习竞赛的规则制定三思后行。

 

这个故事引发了俄罗斯读者的关注,但在数日后烟消云散。在英文媒体中,只有一篇相关博客文章,也许这是最好的。

 

三个月求职依旧未果,与特斯拉的擦肩而过

 

很快从 3 月到了 6 月,我还没找到一份计算机视觉相关的工作。

 

我列表上的下一家公司是特斯拉,由于我在 Kaggle 上获得的成绩,招聘方联系了我,这事并不常见。我过了笔试、技术筛查和现场面试,下一步就是背景调查并由 Elon Musk 批准我的申请。但我败在这一步上了,招聘方告诉我,是因为我违反保密协议在一个论坛上谈论了面试过程。

 

的确是这样,我在 ods.ai 的一个频道上提到了自己在面特斯拉,但没有分享任何面试中的问题,不过理论上来说他们是对的,我记得特斯拉的保密协议相当严格,甚至禁止高层谈论面试过程。

 

这次被拒让我很失落,能与 Andrei Karpathy 合作令人兴奋。甚至到了现在,已过了几年,我还是为自己造成的这种不良局面感到愧疚。希望将来能有机会为自己的行为道歉。

 

接下来是另一个竞赛——Planet:从太空了解亚马逊森林的Kaggle竞赛。这个问题太简单了,不值得花太多时间在上面,只是小数据集的多标签分类而已。结果,我和另外6人一组,作为一个团队在一周内训练了480个分类网络,并将其堆叠,最终在938个团队中获得第7名。

 

竞赛的组织方是一家名叫 Planet Labs 的公司,他们有一个深度学习的工程师职位开放招聘,我问了一下并应邀参加了面试,结果失败了,对方反馈我缺乏深入的深度学习知识。

 

八月中旬,在 7 个月的求职后,我开始不再像最初那样态度积极、信心满满了。我刚开始准备 Lyft 的面试,但心里认为,这一次最终会像其他数次那样以失败告终。

 

7 个月,求职失败,我用新的方法主动出击

 

我坐在床前,用一杯白兰地麻痹自己的悲伤,与此同时收到另一份拒信:

 

最近有一位谷歌员工推荐您担任Google Brain(美国)的研究科学家一职,经过对您背景和经验的仔细审查,我们决定暂时不再继续处理您的申请。

 

我开始失望,但我有种想法。每个不利境况,都有一些特殊举动可以解决。大多拒信都在简历筛选阶段,结果我没有机会展示自己的技术能力。为了避免这类问题,我决定在简历中增加深度学习的发表经历。

 

我联系了麻省理工学院的博士后 Alexey Shvets,并提出建议:

 

  • 查找下一个具有竞赛的深度学习会议。

  • 训练模型、创建提交内容,并获得提名(我认为如果人们花费数年研究某个问题,那么想要与他们公平合法竞争非常困难)。

  • 为该学术数据集撰写一个预印本或者论文,描述我们的解决方案。

 

他同意了,我们搜索了近期合适的会议,正巧三周内就会举行 MICCAI,其中有举办名为“内窥镜视觉挑战赛”的研讨会,有一些计算机视觉竞赛,截止时间是 8 天后。

 

我们选择了第一个竞赛 GIANA。该问题有三个子挑战,在剩下的 8 个晚上,我调整了在 Kaggle 竞赛中使用过的系统,重构代码并训练了新模型。Alexey 撰写了方法描述报告,我们坚信自己能出现在榜单上,因此我并未真正多花时间在这些问题上。之后我们将提交的内容和报告发送给组织方,我认为这是我们小小冒险的终点。事实并非如此,Alexey 发现这个研讨会还举办了另一项比赛,叫做“机器人仪器分割”,共分三项子挑战,还延期了截止时间,4 天后结束。他问我是否想要尝试一下这些子挑战,我同意了,将自己关了 4 个晚上之后,我完成了代码、模型和预测。

 

这个竞赛还有个警告:必须有一名团队成员亲身参与MICCAI大会,并展示结果。最终结果仅会在大会上宣布。正好,我也从没去过魁北克甚至加拿大,因此我很乐于前往。

 

研讨会的日子到了,我在研讨会上见到了一大群由热衷医学影像的专家所组成的庞大社区,他们似乎彼此相识。我谁也不认识,也没办法破冰,虽然我一直在学习深度学习和计算机视觉,但对医学成像的所有细节对我还是新领域。

 

第一个竞赛的演示开始了,来自不同大学的团队纷纷介绍了自己的解决方案,很难判断其优秀程度,但很显然他们都投入了大量精力。轮到我了,我站在讲台上,告诉听众们我并不是这个领域的专家,只是通过深度学习练习来应对这次竞赛,并为浪费他们的时间道歉,还展示了两张幻灯片。

 

组织方公布了结果:

 

  1. 第一个子挑战——我们获得第一。

  2. 第二个子挑战——我们获得第三。

  3. 第三个子挑战——我们获得第一。

 

并且大赛全部成绩的第一名。

               (来源:Vladimir Iglovikov 个人博客)

 

在第二个竞赛中,就是截止日期延后 4 天的那场,不同的团队展示了自己的解决方案,我们分别获得了:第一,第二,第一,整体第一 的成绩。

 

至今我都记得这一刻,我站在现场,组织方正在准备支票和礼物。Alexey 和我获得胜利,脱颖而出,但我又不禁对这有些荒谬的结果感到沮丧。“为什么会这样?对于医学影像领域毫无了解的家伙在两个挑战中都获得了第一名?那些靠从事医学影像工作为生的人使用的模型差得多吗?”

 

我询问听众们:“你们知道我在哪里工作吗?”除了一个查过我LinkedIn的组织者之外,没人知道。我告诉他们,我在 TrueAccord 公司工作,并且没有在工作中训练深度学习模型。我感叹自己无法摆脱这种情况,因为 Google Brain 和 Deepmind 的人力资源部甚至都不看我的简历。

 

在那场热情洋溢的演讲之后,观众席中有 Deepmind 健康团队的成员在中场时截住了我,问我是否有兴趣参与他们团队研究工程师职位的面试。

 

我相信这是有史以来首次,一个收债公司的人赢了医学影像比赛的冠军。

 

历经 8 个月后,好消息传来

 

不久之后,我接受了目前工作的公司 Lyft 的 offer,入职前我还参加了 Kaggle 的 Carvana Image Masking 竞赛,在 GIANA 中的方法让我吊在了榜单的最后 20% 位置上。新的想法不断产生,最终由 Vladimir Iglovikov、Alexander Buslaev 和 Artem Sanakoyeu 组成的团队拿到了 735 支团队的头名,代码和博客文章可以查看这里。

https://medium.com/kaggle-blog/carvana-image-masking-challenge-1st-place-winners-interview-78fcc5c887a8

那次竞赛是第一个社区纷纷开始在 UNet 类型的架构中使用预训练编辑器的大竞赛,现在已经成为规范了,有很多出色的库供你选择,使用不同的预训练编码器来获得各种不同的分割网络。但在那时,这个想法还比较新,这个竞赛中我和Alexey提出了 TernausNet,但我们只是为了好玩才写的,却令人惊讶地成了我被引用最多的作品。

 

结论

 

八个月里,我在自己感兴趣的领域找到了一份出色的工作,那段时间非常痛苦。当你尝试新事物时,会犯错误,每次失败会感觉自己很蠢,会不时对自己失去信心。但请记住,你正在学习新知识,而且所迈出的每一步都将使你更加接近自己的目标。

 

过去的几年里,我在 Google 学术的个人资料中又增添了一些深度学习的论文。

 

             

 

原文链接:

https://towardsdatascience.com/how-i-found-my-current-job-3fb22e511a1f

(*本文为AI科技大本营翻译文章,转载请微信联系 1092722531)

精彩推荐

1、评选进行中,参与投票即有机会参与抽奖,60+公开课免费学习

2、【Python Day——北京站】现已正式启动,「新春早鸟票」火热开抢!2020年,我们还将在全国多个城市举办巡回活动,敬请期待!活动咨询,可扫描下方二维码加入官方交流群~

CSDN「Python Day」咨询群 ????

来~一起聊聊Python

如果群满100人,无法自动进入,可添加会议小助手微信:婷婷,151 0101 4297(电话同微信)


推荐阅读

  • 疫情严重,潜伏期也有传染性?科技公司在行动

  • 召唤超参调优开源新神器:集XGBoost、TensorFlow、PyTorch、MXNet等十大模块于一身

  • 5个可以帮助你提高工作效率的新AI工具

  • 亚马逊机器学习服务:深入研究AWS SageMaker

  • 从4个月到7天,Netflix开源Python框架Metaflow有何提升性能的魔法?

  • 管理7k+工作流,月运行超10000万次,Lyft开源的Flyte平台意味着什么?

  • 伯克利新无监督强化学习方法:减少混沌所产生的突现行为

  • 机器推理文本+视觉,跨模态预训练新进展

  • 你点的每个“在看”,我都认真当成了AI

这篇关于连遭Google、Tesla“冷眼”,俄罗斯小伙8个月喜提顶级自动驾驶公司Offer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/434884

相关文章

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

C++实现俄罗斯方块(Windows控制台版)

C++实现俄罗斯方块(Windows控制台版) 在油管上看到一个使用C++控制台编写的俄罗斯方块小游戏,源代码200多行,B站上也有相关的讲解视频,非常不错,值得学习。 B站讲解视频地址为:【百万好评】国外技术大神C++游戏编程实战教程,油管580W收藏,新手10小时入门,并快速达到游戏开发能力(中英字幕) B站 CSDN博主千帐灯无此声还为此写了一篇博客:C++实现俄罗斯方块(源码+详解),讲

Shell脚本实现自动登录服务器

1.登录脚本 login_server.sh #!/bin/bash# ReferenceLink:https://yq.aliyun.com/articles/516347#show all host infos of serverList.txtif [[ -f ./serverList.txt ]]thenhostNum=`cat ./serverList.txt | wc -l`e

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置版本号生成 打开项目配置页面。在下方找到 “Build Env

以后写代码都是AI自动写了,Cursor+Claude-3.5-Sonnet,Karpathy 点赞的 AI 代码神器。如何使用详细教程

Cursor 情况简介 AI 大神 Andrej Karpathy 都被震惊了!他最近在试用 VS Code Cursor +Claude Sonnet 3.5,结果发现这玩意儿比 GitHub Copilot 还好用! Cursor 在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使用 OpenAI 投资的 Claude-3.5-Sonnet 模型,这一举动不仅改变了代码生成

PRN(20201231):驾驶人驾驶决策机制遵循最小作用量原理

王建强, 郑讯佳, 黄荷叶. 驾驶人驾驶决策机制遵循最小作用量原理[J]. 中国公路学报, 2020, v.33;No.200(04):159-172. 观点: 为提升智能汽车的自主决策能力,使其能够学习人的决策智慧以适应复杂多变的道路交通环境,需要揭示驾驶人决策机制。 依据: 物理学中常用最小作用量原理解释自然界(包括物理和生物行为)极值现象。同时,最小作用量原理还用于解释蚂蚁在觅

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException异常

用Gson解析json数据的时候,遇到一个异常,如下图: 这个异常很简单,就是你的封装json数据的javabean没有写对,你仔细查看一下javabean就可以了 比如:我的解析的代码是             Gson gson = new Gson();             ForgetJson rb = gson.fromJson(agResult.mstrJson, For