• 回答数

    6

  • 浏览数

    194

婕哥大王
首页 > 工程师考试 > 如何成为算法工程师

6个回答 默认排序
  • 默认排序
  • 按时间排序

萌萌panda我最爱

已采纳

成为算法工程师的要求:专业要求:计算机、电子、通信、数学等相关专业;学历要求:本科及其以上的学历,大多数是硕士学历及其以上;语言要求:英语要求是熟练,基本上能阅读国外专业书刊;必须掌握计算机相关知识,熟练使用仿真工具MATLAB等,必须会一门编程语言。目前国内从事算法研究的工程师不少,但是高级算法工程师却很少,是一个非常紧缺的专业工程师。算法工程师根据研究领域来分主要有音频/视频算法处理、图像技术方面的二维信息算法处理和通信物理层、雷达信号处理、生物医学信号处理等领域的一维信息算法处理。在计算机音视频和图形图形图像技术等二维信息算法处理方面目前比较先进的视频处理算法:机器视觉成为此类算法研究的核心;另外还有2D转3D算法(2D-to-3D conversion),去隔行算法(de-interlacing),运动估计运动补偿算法(Motion estimation/Motion Compensation),去噪算法(Noise Reduction),缩放算法(scaling),锐化处理算法(Sharpness),超分辨率算法(Super Resolution),手势识别(gesture recognition),人脸识别(face recognition)。在通信物理层等一维信息领域目前常用的算法:无线领域的RRM、RTT,传送领域的调制解调、信道均衡、信号检测、网络优化、信号分解等。另外数据挖掘、互联网搜索算法也成为当今的热门方向。算法工程师逐渐往人工智能方向发展。

如何成为算法工程师

145 评论(11)

cynthiahql

成为一名合格的开发工程师不是一件简单的事情,需要掌握从开发到调试到优化等一系列能力,这些能力中的每一项掌握起来都需要足够的努力和经验。而要成为一名合格的机器学习算法工程师(以下简称算法工程师)更是难上加难,因为在掌握工程师的通用技能以外,还需要掌握一张不算小的机器学习算法知识网络。

下面我们就将成为一名合格的算法工程师所需的技能进行拆分,一起来看一下究竟需要掌握哪些技能才能算是一名合格的算法工程师。

1.基础开发能力

所谓算法工程师,首先需要是一名工程师,那么就要掌握所有开发工程师都需要掌握的一些能力。

有些同学对于这一点存在一些误解,认为所谓算法工程师就只需要思考和设计算法,不用在乎这些算法如何实现,而且会有人帮你来实现你想出来的算法方案。这种思想是错误的,在大多数企业的大多数职位中,算法工程师需要负责从算法设计到算法实现再到算法上线这一个全流程的工作。

笔者曾经见过一些企业实行过算法设计与算法实现相分离的组织架构,但是在这种架构下,说不清楚谁该为算法效果负责,算法设计者和算法开发者都有一肚子的苦水,具体原因不在本文的讨论范畴中,但希望大家记住的是,基础的开发技能是所有算法工程师都需要掌握的。

2.概率和统计基础

概率和统计可以说是机器学习领域的基石之一,从某个角度来看,机器学习可以看做是建立在概率思维之上的一种对不确定世界的系统性思考和认知方式。学会用概率的视角看待问题,用概率的语言描述问题,是深入理解和熟练运用机器学习技术的最重要基础之一。

概率论内容很多,但都是以具体的一个个分布为具体表现载体体现出来的,所以学好常用的概率分布及其各种性质对于学好概率非常重要。

对于离散数据,伯努利分布、二项分布、多项分布、Beta分布、狄里克莱分布以及泊松分布都是需要理解掌握的内容;

对于离线数据,高斯分布和指数分布族是比较重要的分布。这些分布贯穿着机器学习的各种模型之中,也存在于互联网和真实世界的各种数据之中,理解了数据的分布,才能知道该对它们做什么样的处理。

此外,假设检验的相关理论也需要掌握。在这个所谓的大数据时代,最能骗人的大概就是数据了,掌握了假设检验和置信区间等相关理论,才能具备分辨数据结论真伪的能力。例如两组数据是否真的存在差异,上线一个策略之后指标是否真的有提升等等。这种问题在实际工作中非常常见,不掌握相关能力的话相当于就是大数据时代的睁眼瞎。

在统计方面,一些常用的参数估计方法也需要掌握,典型的如最大似然估计、最大后验估计、EM算法等。这些理论和最优化理论一样,都是可以应用于所有模型的理论,是基础中的基础。

3.机器学习理论

虽然现在开箱即用的开源工具包越来越多,但并不意味着算法工程师就可以忽略机器学习基础理论的学习和掌握。这样做主要有两方面的意义:

掌握理论才能对各种工具、技巧灵活应用,而不是只会照搬套用。只有在这个基础上才能够真正具备搭建一套机器学习系统的能力,并对其进行持续优化。否则只能算是机器学习搬砖工人,算不得合格的工程师。出了问题也不会解决,更谈不上对系统做优化。

学习机器学习的基础理论的目的不仅仅是学会如何构建机器学习系统,更重要的是,这些基础理论里面体现的是一套思想和思维模式,其内涵包括概率性思维、矩阵化思维、最优化思维等多个子领域,这一套思维模式对于在当今这个大数据时代做数据的处理、分析和建模是非常有帮助的。如果你脑子里没有这套思维,面对大数据环境还在用老一套非概率的、标量式的思维去思考问题,那么思考的效率和深度都会非常受限。

机器学习的理论内涵和外延非常之广,绝非一篇文章可以穷尽,所以在这里我列举了一些比较核心,同时对于实际工作比较有帮助的内容进行介绍,大家可在掌握了这些基础内容之后,再不断探索学习。

4.开发语言和开发工具

掌握了足够的理论知识,还需要足够的工具来将这些理论落地,这部分我们介绍一些常用的语言和工具。

5.架构设计

最后我们花一些篇幅来谈一下机器学习系统的架构设计。

所谓机器学习系统的架构,指的是一套能够支持机器学习训练、预测、服务稳定高效运行的整体系统以及他们之间的关系。

在业务规模和复杂度发展到一定程度的时候,机器学习一定会走向系统化、平台化这个方向。这个时候就需要根据业务特点以及机器学习本身的特点来设计一套整体架构,这里面包括上游数据仓库和数据流的架构设计,以及模型训练的架构,还有线上服务的架构等等。这一套架构的学习就不像前面的内容那么简单了,没有太多现成教材可以学习,更多的是在大量实践的基础上进行抽象总结,对当前系统不断进行演化和改进。但这无疑是算法工程师职业道路上最值得为之奋斗的工作。在这里能给的建议就是多实践,多总结,多抽象,多迭代。

6.机器学习算法工程师领域现状

现在可以说是机器学习算法工程师最好的时代,各行各业对这类人才的需求都非常旺盛。典型的包括以下一些细分行业:

推荐系统。推荐系统解决的是海量数据场景下信息高效匹配分发的问题,在这个过程中,无论是候选集召回,还是结果排序,以及用户画像等等方面,机器学习都起着重要的作用。

广告系统。广告系统和推荐系统有很多类似的地方,但也有着很显著的差异,需要在考虑平台和用户之外同时考虑广告主的利益,两方变成了三方,使得一些问题变复杂了很多。它在对机器学习的利用方面也和推荐类似。

搜索系统。搜索系统的很多基础建设和上层排序方面都大量使用了机器学习技术,而且在很多网站和App中,搜索都是非常重要的流量入口,机器学习对搜索系统的优化会直接影响到整个网站的效率。

风控系统。风控,尤其是互联网金融风控是近年来兴起的机器学习的又一重要战场。不夸张地说,运用机器学习的能力可以很大程度上决定一家互联网金融企业的风控能力,而风控能力本身又是这些企业业务保障的核心竞争力,这其中的关系大家可以感受一下。

但是所谓“工资越高,责任越大”,企业对于算法工程师的要求也在逐渐提高。整体来说,一名高级别的算法工程师应该能够处理“数据获取数据分析模型训练调优模型上线”这一完整流程,并对流程中的各种环节做不断优化。一名工程师入门时可能会从上面流程中的某一个环节做起,不断扩大自己的能力范围。

除了上面列出的领域以外,还有很多传统行业也在不断挖掘机器学习解决传统问题的能力,行业的未来可谓潜力巨大。

261 评论(11)

牛牛1223

1.算法工程师要求很高的数学水平和逻辑思维。其实语言是次要的,语言只是表达的方式而已。2 你想成为算法工程师还需要一定的英文水准,因为看中文书你完全体会不到原滋味。3 不要太拘泥于教材。

93 评论(8)

妞妞love美丽

需要以下技能:1、熟练掌握C/C++和python语言编程,熟悉linux开发环境,有扎实的数据结构和算法设计功底;2、熟悉推荐业务常用理论和算法,在多个领域(如排序模型,召回模型,用户画像,深度学习等)有三年以上实际工作经验;3、有优秀的逻辑思维能力和数据分析能力,善于分析和解决问题;良好的沟通能力与团队协作能力;4、有推荐系统,广告系统,搜索引擎等开发经验;熟练掌握机器学习、深度学习的基础理论和方法,并在自然语言处理任务中有实际应用经验者优先;5、熟练使用一种或几种深度学习框架(如tensorflow、caffe、mxnet、pytorch等),或者熟悉spark、hadoop分布式计算编程者优先。硬技能:1. 数学:包括概率论与数理统计、矩阵论、随机过程。2. 计算机基础:包括操作系统、组成原理、数据结构。3. 算法能力:包括对领域内主流模型进行优缺点对比、在设定的场景中选择合适的方案等。想要了解更多关于算法工程师的问题可以咨询一下CDA认证机构,CDA是大数据和人工智能时代面向国际范围全行业的数据分析专业人才职业简称。全球CDA持证者秉承着先进商业数据分析的新理念,遵循着《CDA职业道德和行为准则》新规范,发挥着自身数据专业能力,推动科技创新进步,助力经济持续发展。

99 评论(9)

喵喵咪儿

BAT企业的算法工程师是这样工作的:问题抽象、数据采集和处理、特征工程、建模训练调优、模型评估、上线部署。(具体操作可以看阿里算法专家chris老师的算法工作流视频算法工作流是怎样的?)而一个算法工程师真正值钱的地方在于问题抽象和上线部署这两个。

以上是一个算法工程师的工作流,所以你要做以上内容的话,需要的技能和知识有以下这些:

①机器学习的基础是数学,入门AI必须掌握一些必要的数学基础,但是并不是全部的数学知识都要学,只学工作上实际有用到的,比如是微积分、概率论、线性代数、凸优化等这些。

②数据分析里需要应用到的内容也需要掌握,但不是网上所说的从0开始帮你做数据分析的那种,而是数据挖掘或者说是数据科学领域相关的东西,比如要知道计算机里面怎么挖掘数据、相关的数据挖掘工具等等

补足了以上数学和数据挖掘基本知识,才可以正式进行机器学习算法原理的学习。

③算法方面需要掌握一些基本的框架:python、spark、mllib、scikit-learning、pytorch、TensorFlow,数据方面需要懂得HQL、numpy、pandas,如果你本身是后台开发、app开发、数据分析、项目管理,则是一个学习算法的一个加分项。

④最后需要对人工智能有全局的认知,所以菜鸟窝的机器学习vip大课会讲授到算法理论,包括机器学习、深度学习两大模块,相关的算法原理、推导和应用的掌握,以及最重要算法思想。

287 评论(12)

老猫啊老猫

工作好找。待遇不错。可能你能做什么呢?你能帮公司盈利吗?我不管你学的好与不好。也不管你喜欢什么。只要你能给公司盈利,你就能拿高工资。就拿马云来说。他也就是一个大学毕业,现在呢?现在他的工资恐怕很多人都比不上吧?学历什么都代表不了。你所能创造的利益,利益,才是王道。

358 评论(8)

相关问答