未来 3~5 年内，哪个方向的机器学习人才最紧缺？
两天前看这个问题的时候还只有寥寥百人关注，今天就猛增到2000多人。这个问题本身是很赞的，学以致用才是最好的。 这个问题不是很好回答。前一半问题是“哪个方向”，似乎讲的是领域和研究方向，后一半问题“最紧缺人才”，又和就业有关。所以我的回答尽量把这两方面兼顾，先谈就业和工业界紧缺的人才，再说说学术界缺少的人才。 我最近被两个前辈抓到他们的创业公司做暑期实习，公司是什么最好就不说了，但除我之外还骗来了一个清华的本科生（从北京骗到了硅谷）。两位前辈一个是Sebastian Thrun（赛巴斯提安·特龙）的学生，一位是Stefano Ermon的学生，去年在AAAI拿了个最佳论文的奖。 我虽然对工业界一直都不太熟悉，但借这个机会算是好好看到了一番目前人工智能创业公司的有趣情景。虽然不一定能当做借鉴，但一些经验对目前在校或者刚离校的学生来讲也许会有帮助。 在我被抓去之前，他们有另外一个名叫Daniel（丹尼尔）的研究生帮忙，丹尼尔也是一位人工智能方向的研究生。丹尼尔负责的模块是文本的聚类算法。我对聚类算法一窍不通，之前还把KNN和K-means搞混了。公司创始人Zayd（札德）告诉我，他们的文本簇群（cluster）总是有问题，丹尼尔调整聚类算法的参数已经6个月，但是根本没办法提升质量。 我用了一周的时间读丹尼尔的代码（够慢了吧，完全赶不上很多国内的优秀学生），然后打开Jupyter Notebook开始一点点的做分析，最后发现丹尼尔把文本距离的算法做错了，任何从事自然语言处理的人都明白edit distance（编辑距离）的首选就是莱文斯坦距离（Levenshtein距离），就算不是做自然语言处理的，这个距离在计算机界也用的很多。但这个距离压根不存在于丹尼尔的任何代码中。然后我把这一行加入进去，代码跑了5小时，最后给札德说：我做完了，检查质量吧。 一周后，丹尼尔就被炒鱿鱼了……然后公司的另一个创始人Russel（罗素）开始到处宣传我用了一周解决了别人六个月都解决不了的问题。（当然，丹尼尔最后找到了一份谷歌的工作，开开心心的做机器人去了） 举这个例子想说明一件事：（创业公司真是没有安全感？）要建立起在某个领域的直觉和精通。这个精通并不单单是掌握一两个（甚至是好几个）算法就可以了的。深度学习总爱鼓吹一个模型解决所有问题，但是等你真正进入公司后才发现这基本是不可能的。 基础是必须扎实的，这个基础最好是某一个领域将近20-30年的知识的积累。只会跑个LSTM是肯定不行的。 2.  能专精一个领域的人才也很缺 这里要讲另外一个同学的例子了，他的名字叫伊森，从伊利诺伊香槟毕业，在我校读了两年计算机研究生，跟在航天航空工程学院的Mykel Kochendefer（麦克·寇克德福尔）教授麾下做了一段时间的研究，是一位非常优秀，有自学能力的学生。 暑假刚开始的时候，我在帕罗奥图的街上偶然遇见他，因为有过一面之缘，打了招呼后顺带聊了聊现状，当我告诉他我加入了札德的公司的时候，他说他几天后要跟札德面试。 我在回答开头剧透了，伊森没能应聘成功。在这里分享的意义是，伊森的背景和很多进入人工智能领域的人很相似。下面这一段是我和他的对话： 我：“你最擅长的人工智能领域是什么呢？” 伊森：“我什么都会（jack-of-all-trades）。” （评论：这很容易误导招聘者让他们觉得你样样都不专精） 我：“你在寇克德福尔教授那里做了什么样的研究呢？” 伊森：“我给无人机搭建了一个服务器，用了Kafka做流处理。” （评论：这句话暴露缺乏研究经历）——虽然Kafka也还算是有趣 我：“怎样的工作在你看来最有趣呢？” 伊森：“我想有机会把最前沿的算法应用在公司的业务中。” （评论：算法没有前沿与不前沿之分，只有合适与不合适之分） 我：“你理想的工作岗位是什么呢？” 伊森：“我其实最想当人工智能的产品经理。” （评论：其实产品经理的收入不如程序员哦） 最后伊森问了我一个问题，如何在一周内精通自然语言处理，然后我只能告诉他我不知道。 举这个例子的意思是，伊森是一个聪明人，有很强的工程背景（伊利诺伊香槟的计算机系很不错），但是却不一定是机器学习/人工智能创业公司的最理想人才，为什么呢？因为在学校阶段没有在实验室做研究型工作，也没有足够的实践经验。他找错了教授（抱错了大腿）。寇克德福尔教授没有给他任何研究性质的工作，于是他用了两年宝贵的时光学习了如何搭建服务器，如何使用Kafka。 当然，如果想要做普通的工程师岗位，任何（不论大小）公司都缺优秀的后端工程师，但如果想应聘机器学习方面的岗位，或者和算法、研发比较接近，那么搭建平台或者服务器的“研究”经历就是不够的。 如果本科有个很好的学校，或者特别擅长学习，这一类的优秀人才很容易陷入每一个领域都想学学的陷阱。再加上“大公司要专才，小公司要全才”一类的宣传，很容易觉得如果每方面都学一点，那么一定会被创业公司喜爱。 事实上机器学习的底层模型原理都是类似的，与其在应用层（比如机器控制、视觉、语言、语音）等瞎晃，还不如去把底层原理弄清楚。人工智能的创业公司，和普通的网页或者手机应用公司还是有区别的。这些公司更看重学生在学术领域的成绩，因为目前大部分人工智能的模型是没法直接搬到工业场景的。 3. 能够把学术模型转化成工业模型的人才很缺 这里要讲一个成功案例，Nihil (尼希尔）是另一个我认识的研究生，也是从伊利诺伊香槟大学毕业。尼希尔其实比我年纪大好几岁，但长着一张娃娃脸，他之前在LinkedIn（领英）做大规模搜索（Scaled Search），专门负责把理论算法扩大到工业场景中，擅长搭建后台，有很强的工程背景。两年的斯坦福计算机硕士后，现在被Snapchat找去做大规模视频搜索算法。 无论是我还是札德，在和他交流后都很想让他跳槽来我们这里工作。 也许你想问，他和伊森的区别是什么？两个人看起来不都差不多，都是以做服务器或后端为主，为什么尼希尔是大家想要的人才，伊森并不完全算是？因为经历和背景，在领英这样的大公司做高吞吐高负荷的算法所积累的技能，是一个实验室的无人机平台无法企及的。 任何人都可以跑一个LSTM，但是当训练数据有超过1000万条的时候，LSTM需要跑3天才能见完所有的数据，在这个情况下，你该怎么做？除了在多个GPU上并行以外，还可以进行算法上的改进，LSTM是所谓的线性时间度 O(n)的算法，可以换成像ByteNet这样的sub-linear时间度 O(\sqrt n)  算法。 谷歌最近发了一篇通报，说他们的工程师团队经过一年的努力，终于把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年内都会急缺人才。 ------------------- 最后总结一下，说了这么多，希望能对各位的选择有帮助。