对人工智能而言,2017是不平凡的一年:
AlphaGo再胜人类
腾讯宣布进军AI
百度无人驾驶汽车上五环
AI教育要从娃娃抓起
寒武纪成全球AI芯片首个独角兽
阿里巴巴成立达摩院
类人机器人Sophia首获公民身份
国家正式公布人工智能四大平台
..........
近年来,人工智能技术在各行各业中的应用越来越普及,相关专业技术人才也是供不应求,各大公司或是创业公司不惜重金招募AI人才。
最近一项统计显示,人工智能相关职位平均年薪达到30万元-60万元,从业时间长的甚至能达到年薪百万。下面是来自一些招聘网站的数据统计,最高薪酬的56个岗位(60-100万,100万+两档),要求硕士以上学历的30个,比例53%,比AI工程师中硕士学历要求的平均比例28.6%,要高一倍。
现在可以说是机器学习算法工程师最好的时代,各行各业对这类人才的需求都非常旺盛。典型的包括以下一些细分行业:
推荐系统:解决的是海量数据场景下信息高效匹配分发的问题,无论是候选集召回,还是结果排序,以及用户画像等等方面,机器学习都起着重要的作用。
广告系统:和推荐系统有很多类似的地方,但也有着很显著的差异,需要在考虑平台和用户之外同时考虑广告主的利益,两方变成了三方,使得一些问题变复杂了很多。
搜索系统:搜索系统的很多基础建设和上层排序方面都大量使用了机器学习技术,而且在很多网站和 App 中,搜索都是非常重要的流量入口,机器学习对搜索系统的优化会直接影响到整个网站的效率。
风控系统:尤其是互联网金融风控是近年来兴起的机器学习的又一重要战场。不夸张地说,运用机器学习的能力可以很大程度上决定一家互联网金融企业的风控能力,而风控能力本身又是这些企业业务保障的核心竞争力。
所谓“工资越高,责任越大”,企业对于算法工程师的要求也在逐渐提高。因此,本文就来聊聊机器学习算法工程师的学习与成长路线,并给出一些学习的建议和资料。
机器学习算法工程师必备的能力项
成为一名合格的开发工程师不是一件简单的事情,需要掌握从开发到调试到优化等一系列能 力,这些能力中的每一项掌握起来都需要足够的努力和经验。而要成为一名合格的机器学习算法工程师(以下简称算法工程师)更是难上加难,因为在掌握工程师的通用技能以外,还需要掌握一张不算小的机器学习算法知识网络。
下面我们就将成为一名合格的算法工程师所需的技能进行拆分,一起来看一下究竟需要掌握哪些技能才能算是一名合格的算法工程师。
01:基础开发能力
所谓算法工程师,首先需要是一名工程师,那么就要掌握所有开发工程师都需要掌握的一些能力。在大多数企业的大多数职位中,算法工程师需要负责从算法设计到算法实现再到算法上线这一个全流程的工作。
02:概率和统计基础
概率和统计可以说是机器学习领域的基石之一,从某个角度来看,机器学习可以看做是建立在概率思维之上的一种对不确定世界的系统性思考和认知方式。学会用概率的视角看待问题,用概率的语言描述问题,是深入理解和熟练运用机器学习技术的最重要基础之一。
在统计方面,一些常用的参数估计方法也需要掌握,典型的如最大似然估计、最大后验估计、EM 算法等。这些理论和最优化理论一样,都是可以应用于所有模型的理论,是基础中的基础。这些分布贯穿着机器学习的各种模型之中,也存在于互联网和真实世界的各种数据之中,理解了数据的分布,才能知道该对它们做什么样的处理。
03:开发语言和开发工具
近年来 Python 可以说是数据科学和算法领域最火的语言,主要原因是它使用门槛低,上手容易,同时具有着完备的工具生态圈,同时各种平台对其支持也比较好。但是在模型训练方面,有一些更加专注的工具可以给出更好的训练精度和性能,典型的如 LibSVM、Liblinear、XGBoost 等。大数据工具方面,目前离线计算的主流工具仍然是Hadoop和Spark,实时计算方面 Spark Streaming 和 Storm 也是比较主流的选择。
04:机器学习理论(最重要)
虽然现在开箱即用的开源工具包越来越多,但并不意味着算法工程师就可以忽略机器学习基础理论的学习和掌握。这样做主要有两方面的意义:
掌握理论才能对各种工具、技巧灵活应用,而不是只会照搬套用。只有在这个基础上才能够真正具备搭建一套机器学习系统的能力,并对其进行持续优化。否则只能算是机器学习搬砖工人,算不得合格的工程师。出了问题也不会解决,更谈不上对系统做优化。
学习机器学习的基础理论的目的不仅仅是学会如何构建机器学习系统,更重要的是,这些基础理论里面体现的是一套思想和思维模式,其内涵包括概率性思维、矩阵化思维、最优化思维等多个子领域,这一套思维模式对于在当今这个大数据时代做数据的处理、分析和建模是非常有帮助的。如果你脑子里没有这套思维,面对大数据环境还在用老一套非概率的、标量式的思维去思考问题,那么思考的效率和深度都会非常受限。
机器学习算法工程师学习资源推荐
统计学习,基础理论方面,如VC维、正则化、bias-variance tradeoff、最优化方法、信息论等。推荐李航老师的《统计学习方法》,入门必读。
有监督学习,如线性回归、logistic、决策树、knn、SVM、神经网络、朴素贝叶斯等。推荐周志华老师的西瓜书《机器学习》和《机器学习实战》,经典中的经典。
无监督学习,如EM算法、聚类、竞争学习等,可以参考《机器学习》的部分章节
深度学习,如CNN、RNN、LSTM等,推荐Goodfellow的《深度学习》,DL的圣经。
强化学习,近年来比较火,AlphaGo的核心算法,推荐Richard Sutton的《强化学习》
从我个人的学习经验来看,读书最好和视频教程结合着看。其中重点给大家推荐4个:
Stanford Machine Learning by Andrew Ng:
经典中的经典(http://cs229.stanford.edu/)
NG在网易云课堂的深度学习课程:https://mooc.study.163.com/smartSpec/detail/1001319001.htm
Neural Network for Machine Learning by Geoffrey Hinton:Hinton老先生开的唯一一门课,这门课程绝对是有纪念意义的:http://www.cs.toronto.edu/~tijmen/csc321/
Coursera上的各种课程,包括微积分、线性代数、编程语言等等,有兴趣的同学前往可以自行学习。
如果觉得自个儿学习累,想找些引路人,可以听一些免费的人工智能入门直播课,比如网易云课堂接下来的两场免费公开课。
4月12日,网易云课堂准备了1场关于人工智能入门的直播公开课(免费),从实战角度带你走近人工智能,教你手把手制作你的专属萌妹机器人~
如果你想要加入这次人工智能直播课,可以扫描下方二维码,进入网易云课堂IT互联网服务号,自动获取学习群二维码,进群还有人工智能数学基础预习资料和寒小阳老师的情人节词云源代码待领取~
为了保证学习体验,
本次“人工智能学习群"限时开放
数量有限,欲报从速