毕业季到了!学生党们即将离开校园迈入社会。随着各个大厂的校招纷纷结束,一份流传于江湖的“18届互联网校招薪酬表”引得众人羡慕!
这份清单包括多家知名互联网企业AI类岗位的年薪水平,30万起跳,40万-50万的也比比皆是。而从拿到这些企业offer的同学反馈来看,这份清单显示的年薪水平还是比较准确的。
纵使给出了优厚的待遇,人工智能领域的人才缺口还是非常大。
腾讯近期发布的报告显示,目前人工智能领域合格的研究人员数量仅为30万,其中包括相关研究领域的学生。然而,全国范围内,人工智能的人才缺口却为一百万甚至更多。在2018年及未来的几年内,“抢得到人才”绝对是人工智能企业发展的前提及关键。
机器学习算法工程师必备的能力项
要成为一名合格的机器学习算法工程师可以说是难上加难,因为在掌握工程师的通用技能以外,还需要掌握一张不算小的机器学习算法知识网络。
下面我们就将成为一名合格的算法工程师所需的技能进行拆分,一起来看一下究竟需要掌握哪些技能才能算是一名合格的算法工程师。
01:基础开发能力
所谓算法工程师,首先需要是一名工程师,那么就要掌握所有开发工程师都需要掌握的一些能力。在大多数企业的大多数职位中,算法工程师需要负责从算法设计到算法实现再到算法上线这一个全流程的工作。
02:概率和统计基础
概率和统计可以说是机器学习领域的基石之一,从某个角度来看,机器学习可以看做是建立在概率思维之上的一种对不确定世界的系统性思考和认知方式。学会用概率的视角看待问题,用概率的语言描述问题,是深入理解和熟练运用机器学习技术的最重要基础之一。
在统计方面,一些常用的参数估计方法也需要掌握,典型的如最大似然估计、最大后验估计、EM 算法等。这些理论和最优化理论一样,都是可以应用于所有模型的理论,是基础中的基础。这些分布贯穿着机器学习的各种模型之中,也存在于互联网和真实世界的各种数据之中,理解了数据的分布,才能知道该对它们做什么样的处理。
03:开发语言和开发工具
近年来 Python 可以说是数据科学和算法领域最火的语言,主要原因是它使用门槛低,上手容易,同时具有着完备的工具生态圈,同时各种平台对其支持也比较好。但是在模型训练方面,有一些更加专注的工具可以给出更好的训练精度和性能,典型的如 LibSVM、Liblinear、XGBoost 等。大数据工具方面,目前离线计算的主流工具仍然是Hadoop和Spark,实时计算方面 Spark Streaming 和 Storm 也是比较主流的选择。
另外,在学习Python以外,我建议大家可以再学习一下R语言,主要原因有以下几点:
R语言具有最完备的统计学工具链。我们在上面介绍了概率和统计的重要性,R语言在这方面提供的支持是最全面的,日常的一些统计方面的需求,用R来做可能要比用Python来做还要更快。Python的统计科学工具虽然也在不断完善,但是R仍然是统计科学最大最活跃的社区。 **向量化、矩阵化和表格化思维的培养。**R中的所有数据类型都是向量化的,一个整形的变量本质上是一个长度为一的一维向量。在此基础上R语言构建了高效的矩阵和(DataFrame)数据类型,并且在上面支持了非常复杂而又直观的操作方法。这套数据类型和思考方式也在被很多更现代化的语言和工具所采纳,例如Numpy中的ndarray,以及Spark最新版本中引入的DataFrame,可以说都是直接或间接从R语言得到的灵感,定义在上面的数据操作也和R中对DataFrame和向量的操作如出一辙。就像学编程都要从C语言学起一样,学数据科学和算法开发我建议大家都学一下R,学的既是它的语言本身,更是它的内涵思想,对大家掌握和理解现代化工具都大有裨益。04:机器学习理论(最重要)
虽然现在开箱即用的开源工具包越来越多,但并不意味着算法工程师就可以忽略机器学习基础理论的学习和掌握。这样做主要有两方面的意义:
①掌握理论才能对各种工具、技巧灵活应用,而不是只会照搬套用。
②学习机器学习的基础理论的目的不仅仅是学会如何构建机器学习系统,更重要的是思维模式,否则思考效率和深度都会非常受限。
-END-