×

机器学习 reddit

软件工程师要学哪些(软件工程师要学什么)

访客 访客 发表于2022-05-05 20:00:00 浏览401 评论4

4人参与发表评论

来源:reddit

编辑:瘦瘦 好困

【新智元导读】reddit机器学习板块的一个热帖引起了网友的热议!本科毕业,没有机器学习背景,这位小哥在blog分享了自己的实战经验:从自学ML到拿到Deepmind的offer。

最近Reddit上的一个帖子火了!

一个小哥没有MLPHD,没有MLMaster,甚至没有任何类型的MLDegree—仅凭在EE上获得的学士学位,就从 「DeepMind」get 到了一份研究型工程师的工作!

他在Reddit的论坛上分享了自己的经历,他是如何让在没有任何特别优秀的学术背景下,成功找到一份研究工程师的工作的。

文中,他分享了一些关于「他是谁」的背景以及到目前为止的学习经历!从把「机器学习」作为是副业到Deepmind的专业RSWE。尽管没有扎实的基础和优秀的学术背景,但却在短时间内实现了自己的目标。

同时,他还附加了很多从2018年第一次接触ML到现在积累的相关课程链接,以及当前ML(例如 GNN)的最新研究进展。最后,他和大家分享了自己从前期准备到后期面试DeepMind 的详细过程。如果你也想get到自己满意的那份工作,就跟着我一起去看看吧。

全文他强调自己不是一个有「计算天赋」的人,凭着对机器学习的热情,「从自学软件编程,完成Andrew ng的所有c++oursera课程,到研究专业论文,参与微软的ML夏令营」,被派驻到「iccV2019」会议,在微软展台演示HoloLens2,并成功转正ML工程师。

所以,是发生了什么事情?让他的心态发生了改变?又是什么push他努力学习和工作,成功转型的呢?

他说,因为Gary Vaynerchuk的鼓励。

他在网上分享自己的经历,参加微软的公开演讲。相机,照相,反光板,这些东西打破了他的舒适区,日积月累,他学会了公开交谈(面试的必备技能)以及基本的数学知识(专业技能),得到了这份完美的工作。

好吧,你可能会说:嗯,故事很励志,但是没有干货啊。

https://gordicaleksa.medium.com/5-tips-to-boost-your-learning-d6eb5edfe6d

瞧,这不就是干货么?

以AI为例,内容涵盖「输入模式」和「输出模式」的周期学习模式。

输入模式:摄取信息。目标是对子领域(博客、视频)的结构有一个高层次的理解,或者对手头的主题(研究论文、书籍等)有一个深入的了解。

输出模式:分享在输入模式期间积累的信息。第一步,教别人!创建分享文件,如youtube视频、gitHub项目,和blog 。以及在 LinkedIn 上高频率的更新。当然,twitter和Discord也需要涉及。

做完这些工作后,别忘了,在macro的末尾附加几篇原创blog,总结所写的内容。这将帮助你更好的将干货用到实际工作中。

不需要多么深入。你只需要学习NST (Neural Style Transfer)、DeepDream、GANs (Generative Adversarial Networks)、NLP & transformers、Graph/Geometric ML、RL (Reinforcement Learning)......

呃.....俗话说的好,不积跬

步,何以至千里?

NST

首先,你要做的是,阅读大量的研究论文,开发3个不同类型的projects,然后github开源,在YouTube上建立一个NST播放列表。准备工作差不多就可以结束了。

紧接着,完善Pytorch专业知识,学习CNN和优化方法,提高演讲技巧,阅读研究论文,做到从里到外全面提高SE技能。

例子如下,最后,编写代码合成NST图像:

DEEPDREAM

阅读blog,分析DeepDream子版块,并探索各种代码库。

你可能会发现,多数原代码是用Torch和Lua编写的。为了解决这个问题,你可以切换到 Linux,让它来为你工作。过程有点艰难,不过你可以学到很多东西,

最终,你可以使用自己的代码生成一副令人着迷的图像。

GAN

你需要做的很简单,就是阅读所有基础论文以及其他不太相关的论文,并尽自己最大的努力,尝试Vanilla Gan,cgAN(条件GAN)和DCGAN模型。

一些辅助方式仅供参考:

在每个macro的末尾附加一篇blog ,总结自己所学到的知识。阅读论文时,随时在YouTube上记录它们。通过这种方式,你会学得更好,也会帮助到更多的人。在macro中间开源一个project。在那之后,你会发现,你读过的所有paper都变得有意思了。NLP & transformers想要了解BERT,想要了解GPT庞大的家族系谱?Transformer可以帮助你,但首先你需要开始使用Transformer和NLP。如何开始使用?你先了解一下Sequence-to-Sequence model,例如,谷歌翻译在2016年开始使用这个模型,它是采用一系列的序列并输出了另一个项目的序列的过程。还有其他的干货,我也帮你们附了链接:

https://gordicaleksa.medium.com/deep-learning-journey-update-what-have-i-learned-about-transformers-and-nlp-in-2-months-eb6d31c0b848Graph/Geometric ML

首先,你需要了解Graph ML。简单地说,Graph ML就是处理graph数据的关于机器学习的分支。graph有很多种类,我们可以有有向graph和无向graph,多重graph和超graph,有或没有自边的graph......常见的包括图分类/回归和节点/边分类/回归。

我们可以用graph做什么呢?

如果你学过social media网状图,你就想象social media是整个graph,图中的每个节点是推文,而您想要推出某条推文传播假新闻的概率,您的模型就会将 0 到 1 之间的数字与该推文相关联,这只是节点回归的一个示例。

RL

这部分内容,你要了解的实在是太多了,AlphaGo、DQN、openai......

https://gordicaleksa.medium.com/how-to-get-started-with-reinforcement-learning-rl-4922fafeaf8c

最后,补充一句,别忘了在One Note中做笔记:

当然,除了这些,业余时间你要做的似乎更多:

开发了一种眼镜检测算法,作为HoloLens 2设备上眼球追踪子系统的一部分。眼球追踪子系统的全部意义在于预测用户的眼睛注视向量,并实现与全息图的本能互动。它还有助于为特定的用户显示正确的图形(每个人的眼睛不同,因此IPD也不同,等等)。

利用视频编码器在各种vr/MR设备上增加注视点(Foveated)渲染功能。这样就可以为设备省电,因为不需要渲染视野以外的内容。并最终读完了关于H.264编码器的整个参考手册。

在PyTorch中从头实现了一篇研究论文中的想法。这也是学习PyTorch的过程(2019年底到2020年初)。

编写了各种脚本,确保标签器正确工作,开发了内部指标管道的一部分,处理了渲染和改进了合成数据,做了各种量化和perf-vs-compute实验,等等。

为微软的SE/ML职位面试了实习生。

指导了ML夏令营的学生,并举办了关于CNN的研讨会。

总的来说,就是1.5年的机器学习速成,1.5年正常速度的机器学习研究以及1年的软件工程速成。

兴奋激动ing,你终于打开了「DeepMind」的大门。

紧接着,你步入了遥遥无期的「找工作」模式。这位博主也分享了她的亲身经历。

在LinkedIn上联系Petar。其次,在ICCV19会议期间,遇到了其他很cool的DeepMinder,比如Relia(他在牛津与 Andrew Zisserman 教授一起攻读博士学位)和Jovana(也是牛津女孩),所有的事情让他的旅途变得更容易了!

马不停蹄,他向Petar和Relja明确了自己的意向,开始申请 DeepMind,并询问他们有关如何准备的详细步骤!辗转回到LinkedIn上,联系了招聘人员(当时并不认识),并询问是否可以用他的 LinkedIn、YouTube、GitHub来取得面试机会。

一切刚刚好,招聘人员也表示,已经为他安排了面试。

他在此告诫求职的小伙伴,网络很重要!通过网络,与自己要求职的公司建立真正的联系,问问你能为他们做什么,而不是他们能为你做什么。

第一步,研究你的每一位面试官,了解他们正在做什么,例如,你可以查看他们社交媒体(微博,微信)中的资料,阅读他们的文献。然后,研究你的个人简历。深度思考你所列举的每一项经历,无论是教育经历还是工作经历。如果时间充裕的话,还可以做一些模拟interview。

简单来说就是:

大致了解企业文化,例如其核心团队正在做什么,你到底能为团队做什么「转到公司官网查看。准备专业知识,大致了解行业的基本概念,例如阅读基本的教科书。面试环节:与招聘人员聊天,他们可能会问你「你喜欢公司的什么?为什么选择我们而不是其他公司?你最喜欢的核心项目」了解你到底能为团队做什么」。

想清楚这些就够了。

怎么样,干货满满的对吧?

网友评论

有网友调侃道,第一步:在大厂(Facebook、apple、Amazon、netflix和Google,也可以包括微软)找到一份软件工程师的工作;第二步:开始写博客。

作者表示,任何做了一段时间的竞争性编程的人都能在FAANG找到实习或者工作,甚至高中生都可以。只需要坚持1年的算法和数据结构(或许再加上系统设计和其他的)。

障碍不是智力的问题,而是毅力的问题。

参考资料:

https://www.reddit.com/r/MachineLearning/comments/q2ab5p/d_how_i_got_a_job_at_deepmind_as_a_research/

https://gordicaleksa.medium.com/how-i-got-a-job-at-deepmind-as-a-research-engineer-without-a-machine-learning-degree-1a45f2a781de

群贤毕至

访客
余安夙月 余安夙月2022-06-02 00:58:44 | 回复 你先了解一下Sequence-to-Sequence model,例如,谷歌翻译在2016年开始使用这个模型,它是采用一系列的序列并输出了另一个项目的序列的过程。还有其他的干货,我也帮你们附了链接:https://go
慵吋空宴 慵吋空宴2022-06-02 00:25:12 | 回复 eepmind-as-a-research-engineer-without-a-machine-learning-degree-1a45f2a781de
鹿岛雾月 鹿岛雾月2022-06-01 23:52:26 | 回复 裕的话,还可以做一些模拟interview。简单来说就是:大致了解企业文化,例如其核心团队正在做什么,你到底能为团队做什么「转到公司官网查看。准备专业知识,大致了解
断渊时窥 断渊时窥2022-06-01 21:45:31 | 回复 的资料,阅读他们的文献。然后,研究你的个人简历。深度思考你所列举的每一项经历,无论是教育经历还是工作经历。如果时间充裕的话,还可以做一些模拟interview。简单来说就是:大致了解企业文化,例如其核心团队正在做什么,你到底能为团队做什么「转到公司官网查看。准备专业知识,大致了解行业