最近不少朋友问我,转行做深度学习的话,能不能找到工作,能找到什么样的工作,能达到什么样的收入水平……
这种问题其实不仅仅是存在与深度学习行业的入门和转型中的思考阶段了,在其它的行业和技术领域同样有这样的困惑和疑问。那么对于深度学习这个领域目前阶段的发展来说,一个工程师要具备什么样的素质才能算是达到要求呢?我想可能可以粗略地分成4个档次吧。
LEVEL1:能读懂论文
这是一个最最基本的层次了,如果没办法读懂论文的话,任何工作几乎都谈不到开展。市面上的任何书籍,不论是中文的还是外文的,都在讲原理层面的事情,要想看着这些书籍来直接做项目是非常困难的事情。而对于拿到一个工程需求的时候,不论这是一个分解完的需求还是一个分解前的粗需求,第一步几乎都是要到网上去找文献——看看目前为止,世界上其它的人有没有涉足过这方面的研究,并且有一些理论成果出来。这非常重要,因为这直接会奠定后面研究和开发的大方向。
LEVEL2:能修改代码
如果你能够读懂论文,并且能够在GITHUB上找到一些原生或者野生的代码,还能运行和修改,那么恭喜你,你已经算是一只脚踏进“工程师”的门槛了。这里说的原生代码说的是论文的书写方自己实现的代码(大多数以python为主,也不乏lua等其它语言);野生代码就是一些好事者看了相关的论文写的一些实现。这两种不论有哪一种都是非常好的,毕竟模型已经在一定程度上落地并且验证过了,尤其是那些stars给的比较多的工程项目。能够读懂,并且对这些代码进行工程层面的改造,已经是实现相关需求的最基础的内容了。在这个部分请注意,不论是原生代码还是野生代码,它们在实现的过程中和论文可能多少都有一些出入,有的出入属于有意或无意的删改,有的则属于Trick(技巧)的省略,这些都会导致你在运行这些代码的时候与论文所描述的各种技术指标产生差距。不过还好,到这个程度基本已经可以找到一份收入还说得过去的工作了。
LEVEL3:能够实现论文代码
如果LEVEL2这个级别没有问题的话,那么可以尝试挑战一下第三个档次。那就是根据论文中的一大堆公式和实验描述来自己实现代码,不过这个可着实不容易。如果实在没有这方面的能力或者经验,可以从LEVEL2做一个过渡,那就是读懂并理解第三方代码的深刻含义和各个部分的门道,然后做一些调整和深度修改。并能够在自己强大的理论基础和工程经验指导下,对原来模型进行有益的优化。使得这个模型能够顺利迁移到当前需求的场景下,并且能够逐步演进,直到正常工作。如果这个级别基本没问题的话,恭喜你,在一线城市,要一个年薪50W以上的工作几乎是唾手可得。
LEVEL4:新的模型建议
当你对深度学习各方面理论有了足够透彻的见解,通常都会深入地去研究一个方向而不是再涉猎广泛地去各种下载代码和让他们跑起来——物体检测、人脸识别、自动驾驶、声音转换等等一系列方向都是可以尝试的。当研究到一定水平以后,你的研究成果是会可以在业界有脱颖而出的能力的。这个脱颖而出不是指你在理论上明显碾压业界标准,而是说你在模型设计上的某些技巧会比同时代的其它相关模型有着更好的表现不论是速度性能、准确率、训练时间等,任何一个方面得到了明显的提升那就是非常值得称道的专家级人物了。到这个级别,在不少公司里基本都可以被称为“科学家”,或者“资深专家”了。
在此之外,应该还有更高的层次,不过我想把它列入工程师的评价范畴显得不太合适——那就是,可以提出比较新的理论基础或者方式,在更大层面给后世提供一个研究的基调或者方向。例如CNN的提出,例如GAN的提出等,这些都是有着划时代意义的。达到这个档次的数据科学家会成为整个行业坐标性人物,也是凤毛麟角。这是每个深度学习工程师都值得去努力追求的方向。
-
工程师
+关注
关注
59文章
1566浏览量
68435
发布评论请先 登录
相关推荐
评论