专栏名称: Python数据科学
以Python为核心语言,专攻于「数据科学」领域,文章涵盖数据分析,数据挖掘,机器学习等干货内容,分享大量数据挖掘实战项目分析和讲解,以及海量的学习资源。
目录
相关文章推荐
TGB湖南人  ·  湖南人复盘休假通知 ·  2 天前  
混沌学园  ·  TikTok出海的10大机会与9大挑战丨混沌 ... ·  5 天前  
译匠  ·  在这里,一键就可以阅读和下载外刊 ·  1 周前  
译匠  ·  在这里,一键就可以阅读和下载外刊 ·  1 周前  
51好读  ›  专栏  ›  Python数据科学

未来 3~5 年内,哪个方向的机器学习人才最紧缺?

Python数据科学  · 公众号  ·  · 2019-09-01 14:54

正文

点击上方“Python数据科学”,星标公众号
重磅干货,第一时间送达


满600减350,当当这波羊毛我撸定了!
作者:紫杉
链接:
https://www.zhihu.com/question/63883507/answer/227977296


写在前面:在知乎上看到这个问题,看了下提问时间是2017年8月14日,距离现在也有两年了。那个时候机器学习还很火,现在大家挂在嘴边的都是深度学习了,但是回答的内容其实还是很不错的,与现在的大方向并不矛盾,所以摘选了一个回答分享给大家。其实我个人认为,在AI这块领域,未来最缺的一是工程能力强的算法人才,过去两年因为刚兴起,所以很多人可能只会调参就能找到工作,但是这两年资本寒冬,市场不好,只会调参的「调参侠」已经远远不能满足工业界的需求了,对于模型的部署、压缩、上线等等都需要有非常强的工程能力才行;二是具有落地思维的算法/产品。能够把空想的、很难落地的项目做到落地,才是真正有价值的有意义的事,没有任何落地,纸上谈兵,撑不了几年的。

正文:

这个问题不是很好回答。前一半问题是“哪个方向”,似乎讲的是领域和研究方向,后一半问题“最紧缺人才”,又和就业有关。所以我的回答尽量把这两方面兼顾,先谈就业和工业界紧缺的人才,再说说学术界缺少的人才。

我最近被两个前辈抓到他们的创业公司做暑期实习,公司是什么最好就不说了,但除我之外还骗来了一个清华的本科生(从北京骗到了硅谷)。两位前辈一个是Sebastian Thrun(赛巴斯提安·特龙)的学生,一位是Stefano Ermon的学生,去年在AAAI拿了个最佳论文的奖。

我虽然对工业界一直都不太熟悉,但借这个机会算是好好看到了一番目前人工智能创业公司的有趣情景。虽然不一定能当做借鉴,但一些经验对目前在校或者刚离校的学生来讲也许会有帮助。

灵活解决问题的人


我用了一周的时间读丹尼尔的代码(够慢了吧,完全赶不上很多国内的优秀学生),然后打开Jupyter Notebook开始一点点的做分析,最后发现丹尼尔把文本距离的算法做错了,任何从事自然语言处理的人都明白edit distance(编辑距离)的首选就是莱文斯坦距离,就算不是做自然语言处理的,这个距离在计算机界也用的很多。但这个距离压根不存在于丹尼尔的任何代码中。然后我把这一行加入进去,代码跑了5小时,最后给札德说:我做完了,检查质量吧。


一周后,丹尼尔就被炒鱿鱼了……然后公司的另一个创始人罗素开始到处宣传我用了一周解决了别人六个月都解决不了的问题。(当然,丹尼尔最后找到了一份谷歌的工作,开开心心的做机器人去了)

   

举这个例子想说明一件事:要建立起在某个领域的直觉和精通。这个精通并不单单是掌握一两个(甚至是好几个)算法就可以了的。不可能用一个算法解决所有的问题。


基础是必须扎实的,这个基础最好是某一个领域将近20-30年的知识的积累。只会跑个LSTM是肯定不行的。


专精一个领域的人


这里要讲另外一个同学的例子了,他的名字叫伊森,从伊利诺伊香槟毕业,在我校读了两年计算机研究生,跟在航天航空工程学院的Mykel Kochendefer(麦克·寇克德福尔)教授麾下做了一段时间的研究,是一位非常优秀,有自学能力的学生。


暑假刚开始的时候,我在帕罗奥图的街上偶然遇见他,因为有过一面之缘,打了招呼后顺带聊了聊现状,当我告诉他我加入了札德的公司的时候,他说他几天后要跟札德面试。


我在回答开头剧透了,伊森没能应聘成功。在这里分享的意义是,伊森的背景和很多进入人工智能领域的人很相似。下面这一段是我和他的对话:


我:“你最擅长的人工智能领域是什么呢?”
伊森:“我什么都会(jack-of-all-trades)。”
(评论:这很容易误导招聘者让他们觉得你样样都不专精)
我:“你在寇克德福尔教授那里做了什么样的研究呢?”
伊森:“我给无人机搭建了一个服务器,用了Kafka做流处理。”
(评论:这句话暴露缺乏研究经历)——虽然Kafka也还算是有趣
我:“怎样的工作在你看来最有趣呢?”
伊森:“我想有机会把最前沿的算法应用在公司的业务中。”
(评论:算法没有前沿与不前沿之分,只有合适与不合适之分)
我:“你理想的工作岗位是什么呢?”
伊森:“我其实最想当人工智能的产品经理。”
(评论:其实产品经理的收入不如程序员哦)

最后伊森问了我一个问题,如何在一周内精通自然语言处理,然后我只能告诉他我不知道。


举这个例子的意思是,伊森是一个聪明人,有很强的工程背景(伊利诺伊香槟的计算机系很不错),但是却不一定是机器学习/人工智能创业公司的最理想人才,为什么呢?因为在学校阶段没有在实验室做研究型工作,也没有足够的实践经验。他找错了教授(抱错了大腿)。寇克德福尔教授没有给他任何研究性质的工作,于是他用了两年宝贵的时光学习了如何搭建服务器,如何使用Kafka。


当然,如果想要做普通的工程师岗位,任何(不论大小)公司都缺优秀的后端工程师,但如果想应聘机器学习方面的岗位,或者和算法、研发比较接近,那么搭建平台或者服务器的“研究”经历就是不够的。


如果本科有个很好的学校,或者特别擅长学习,这一类的优秀人才很容易陷入每一个领域都想学学的陷阱。再加上“大公司要专才,小公司要全才”一类的宣传,很容易觉得如果每方面都学一点,那么一定会被创业公司喜爱。


事实上机器学习的底层模型原理都是类似的,与其在应用层(比如机器控制、视觉、语言、语音)等瞎晃,还不如去把底层原理弄清楚。人工智能的创业公司,和普通的网页或者手机应用公司还是有区别的。这些公司更看重学生在学术领域的成绩,因为目前大部分人工智能的模型是没法直接搬到工业场景的。


能够把学术模型转化成工业模型的人


这里要讲一个成功案例,Nihil (尼希尔)是另一个我认识的研究生,也是从伊利诺伊香槟大学毕业。尼希尔其实比我年纪大好几岁,但长着一张娃娃脸,他之前在LinkedIn(领英)做大规模搜索(Scaled Search),专门负责把理论算法扩大到工业场景中,擅长搭建后台,有很强的工程背景。两年的斯坦福计算机硕士后,现在被Snapchat找去做大规模视频搜索算法。


无论是我还是札德,在和他交流后都很想让他跳槽来我们这里工作。


也许你想问,他和伊森的区别是什么?两个人看起来不都差不多,都是以做服务器或后端为主,为什么尼希尔是大家想要的人才,伊森并不完全算是?因为经历和背景,在领英这样的大公司做高吞吐高负荷的算法所积累的技能,是一个实验室的无人机平台无法企及的。


任何人都可以跑一个LSTM,但是当训练数据有超过1000万条的时候,LSTM需要跑3天才能见完所有的数据,在这个情况下,你该怎么做?除了在多个GPU上并行以外,还可以进行算法上的改进,LSTM是所谓的线性时间度 O(n)的算法,可以换成像ByteNet这样的sub-linear时间度  算法。


谷歌最近发了一篇通报,说他们的工程师团队经过一年的努力,终于把WaveNet(某个能够生成高仿真人声的模型)速度提升到了一秒钟生成二十秒钟的人的说话声音,比学术模型快1000倍。我当时看了这篇文章后,在网上随手搜了搜,发现谷歌没有公开任何加速的细节,究竟是如何做到的,他们并没有说。Awni Hannan(奥尼·哈南),我的一个前辈,之前和吴恩达教授在百度硅谷工作,说他大概能猜测到谷歌为了优化所做的一些事情。但不难想象,这很有可能是一系列的优化,从硬件,从计算,从部署等等进行的细致优化。这样的细节虽然有“学术”价值,但从这里开始,大部分公司都不再会公开细节,让中小型公司(创业公司)难以望其项背。


这样的场景就需要有研究背景的人才,能够阅读业内最新的论文,还能够结合学术前沿切实的解决工业上的难题。深度学习50%是学术,50%是工程。这个领域的学术大牛,像是Justin Johnson(贾斯汀·强森),Andrej Karpathy(安德烈·卡帕西)(两人都是斯坦福CS231N的讲师)都是很强的工程能手。


能够研究深度学习理论的人


去年暑假我上凸优化的时候,当时我的老师Stephen Boyd(史蒂芬·波伊德)就说,当年(80年代)凸优化刚火的时候,学术界和工业界齐头并进,但大部分优秀论文都集中在学术界,用凸优化的框架建立算法,然后应用在各种数据集上,取得一个又一个辉煌的成果。但随着时间推移,没过十年,学术界在数据和应用就已经赶不上工业界了。当然,学术界既没有足够多的机器,也没有财力去搜集大量的数据,当工业界开始用资本大规模投入的时候,学术界自然就战胜不了工业界了。


我们现在已经可以看到苗头了,DeepMind,谷歌,OpenAI,微软,FAIR等各大公司抢占人工智能高地,大量的发出论文,传统的强校诸如CMU或斯坦福都比不上这些大公司的势头和影响力。这个情况在3-5年后很有可能会恶化。


也许很多人觉得深度学习的理论就是数学,理论根本不能有任何实践产出,何必研究理论呢?还不如写网页前端或者做个手机App呢。


我今年听了Philip Thomas(菲利普·托马斯)的一个讲座,讲的是安全增强学习(Safe RL),这个讲座讲了一个案例,他们想要通过增强学习来自动调解糖尿病病人的给药泵,这个泵给药给多了,病人就要截肢,给少了病人就要直接休克死。高不成低不就的典型代表。目前这种泵的算法是一个简单的微分方程,能保证不会少给药,但是经常会多给药,导致很多重度糖尿病都要被截肢。


菲利普的这个项目就是要尝试着用增强学习来得到一个优良的自动调整模型。这个项目立意很好,救人一条腿胜造七级浮屠嘛,但是菲利普问了在座的我们一个问题:“你们知道现在这些增强学习的算法,需要多少次试验才能调出一个成功的模型吗?




需要上百万次参数调整后,才能得到一个很好的模型。你总不能对几百万糖尿病患者说:“为了所有现在以及未来的糖尿病患者,你们去死吧。” 而且更重要的是,增强学习算法经常不能保证每一次参数改变后都能让模型变得更好:




这就像是说,我不知道这一颗药让你更健康还是让你死掉(或截肢),但是为了实验效果,你最好给我吃下去。


为了真正的把增强学习应用在医疗领域,需要通过概率理论,通过各种Bound(边界)去证明一个算法能切实的每次都达到更好的效果。这就是理论对工业界的指导,也是理论在应用领域的胜利。


每个机器学习的领域,不论是自然语言处理、机器视觉、机器人其实都是这样的人才紧缺规律,找到自己最适合的缺口才是最重要的。这可以是能够将一个算法高度并行化,在上百块GPU上运行的工程人才,也可以是在高危领域(比如无人驾驶、医疗)保证安全第一的理论人才。这两块区域在未来的3-5年内都会急缺人才。



推荐阅读
1、公众号正义与黑产对抗史
2、14张思维导图,教你构建 Python核心知识体系!
3、推荐:机器学习入门方法和资料合集
4、自学Python 有这些就够了
5、堪称神器的 Chrome 插件