如果你想进入机器学习领域,那么做千篇一律的项目和遵循基础教程就像在卡丁车上赢得一级方程式比赛一样。
你会移动,但不会竞争,更不会赢。
我审阅过数百个机器学习作品集,面试过数十位真正数据科学和机器学习岗位的候选人,我可以告诉你:被录用的人会做超出教程的项目。
所以,在本文中,我将详细解析哪些项目和框架真正能获得面试和工作邀请。
他们并不容易。
但这正是它们有效的原因。
重新发表研究论文
想想吧。
机器学习研究论文是该领域一些顶尖从业者数月努力的结晶,并以几页文字进行总结。
这些论文中的知识量非常丰富。
所以,如果你自己拆解、拆解并重新实施这些论文,想象一下你能学到多少东西。
这有点像试图从蓝图中重建一级方程式赛车——你可能没有原始工程师那样的工具,但通过理解每一个螺母和螺栓,你就能学会整台机器的工作原理。当你终于让自己的版本运行起来时,你会理解到大多数人永远无法达到的赛车水平。
重新实施论文会教会你许多技能:
而且很重要的是,大多数候选人,我说的是近99%,并没有这样做,所以你会立刻脱颖而出。
然而,这并不容易,我可以根据亲身经历告诉你这一点。但现在简单是帮不了你被录用的。
至于如何实施这篇论文,可以单独写一篇文章,但让我给你讲讲关键步骤:
1.读报纸。然后,反复阅读,直到你完全理解论文试图解决的问题、所用算法、数据,以及为什么结果重要,以及它们是令人震惊还是预期中的。根据你的经验,这可能需要一段时间。
2.如果你不理解某些概念,就去学习。这不是浪费时间,因为你正在积极弥补知识上的空白。
3.勾勒/编写高层架构,比如输入输出、整体系统的粗略设计以及机器学习模型的结构。
4.从最简单的部分开始实现并让它运行起来。
5.做一个粗略可行的原型。
6.优化并尝试复制效果。
我推荐实施的一些论文:
注意力就是你所需要的全部
一张图片值得16×16字:大规模图像识别的变换器
语言模型是少数机会学习者
LoRA:大型语言模型的低阶适配
这些主要属于深度学习领域,但你也可以找到与你想研究领域的相关论文。
一些有用的网站可以查找论文:
- Trending Papers — Huggingface
自己解决问题
“我应该做哪些项目?”
这是我被问到的第二多问题,第一个是我怎么变得这么帅的!
问题是,大多数人不明白,这个问题其实是错误的(项目问题,不是帅气的问题)。
如果我给你一个具体的项目,面试时不会有故事。
你打算说什么?
“哦,有个网友说我应该自己造。”
这可不是个好局面。
一个会让你印象深刻的项目对你来说非常个人化,你有动力去完成它。这样更好、更有趣,面试时也会体现出来。
示例项目
让我举个很棒的项目例子。
我在之前的帖子里提过这个故事,但我会重复一遍,以真正强调你应该做哪种类型的项目。
在我之前的公司,我们正在招聘一名初级数据科学家,负责处理运筹学相关问题。
我们最终录用的候选人有一个与工作直接相关的突出项目,是他们有意解决的问题。
他们对梦幻足球(NFL)感兴趣,设计了自己的优化算法,以更好地分配每周的球员选择。
他们甚至更进一步,阅读了他人的期刊论文,并实施了一些想法。请查看研究论文链接!
我的框架
这里有一个简单的框架,供你参考,设计出与我刚才提到的类似项目的方案。
1.列出至少五个你工作之外感兴趣的事情。
2.每个主题写下五个你感兴趣或想解决的问题。总共你会有25个潜在问题。
3.现在,想想机器学习如何帮助回答这些问题。如果这个问题看起来完全不可能,也别担心;发挥创意。不过,显然,千万别试图制造机器人狗之类的东西!
4.最后,选一个让你最感兴趣的问题。理想情况下,选择一个稍微超出你能力范围的项目;这样你才能真正学到东西,并推动自己走出舒适区。
这个练习只需10分钟,所以你没有理由不做,还能给你一个项目灵感,帮助你找到工作。
建筑复杂度与规模
然而,仅凭这个想法并不一定足够。为此,项目需要一定的复杂性和规模。
这可以通过不同的方式展示和表达。
- 你可以使用生产代码、像AWS这样的云系统,以及用Docker和Kubernetes将算法容器化,实现项目端到端部署。
- 你可以使用非常复杂、最先进的算法或框架。阅读研究论文对此非常有帮助!
选择很多,很容易感到不知所措。
边做边学。这就是你需要做的全部。
其他想法
如果你因为某些原因不想做上述两个项目,尽管它们实际上能帮你找到工作,这里有一份后续项目的建议清单。
- 参加Kaggle比赛,但你需要名次好,才能脱颖而出。
- 用基础的Numpy,甚至更好的是,只用原生Python从零开始编写机器学习算法。
现在,如果你想让我进一步指导,这里有一份更细致的项目清单:
我给出高层次的想法,是因为这些想法必须对你个人化,才能真正突出。