您的位置: 主页 > 资讯中心 > 公司动态 >

一个优秀的算法工程师必须具备哪些素质?

发布日期: 2019-06-09 23:35

  怎样成为一名优秀的算法工程师?这是很多从事人工智能学术研究和产品研发的同学都关心的一个问题。面对市场对人才的大量需求与供给的严重不足,以及高薪水的诱惑,十大网赌网址越来越多的人开始学习这个方向的技术,或者打算向人工智能转型。市面上各种鱼龙混杂的培训班以及误导人的文章会把很多初学者带入歧途,浮躁的跟风将会让你最后收获甚微,根本达不到企业的用人要求。为了更好的帮助大家学习和成长,少走弯路,在今天的文章里,SIGAI的作者以自己的亲身经历和思考,为大家写下对这一问题的理解与答案。

  首先来看一个高度相关的问题:一个优秀的算法工程师必须具备哪些素质?我们给出的答案是这样的:

  除去教育背景,逻辑思维,学习能力,沟通能力等其他方面的因素,大多数公司在考察算法工程师的技术水平时都会考虑上面这几个因素。接下来我们将按照这几个方面进行展开,详细的说明如何学习这些方面的知识以及积累经验。

  与其他工作方向如app、服务器开发相比,以及与计算机科学的其他方向如网络,数据库,分布式计算等相比,人工智能尤其是机器学习属于数学知识密集的方向。在各种书籍,论文,算法中都充斥着大量的数学公式,这让很多打算入门的人或者开始学习的人感到明显的压力。首先我们考虑一个最核心的问题:机器学习和深度学习究竟需要哪些数学知识?在SIGAI之前的公众号文章“学好机器学习需要哪些数学知识”里,我们已经给出了答案。先看下面这张表:

  上面的表给出了各种典型的机器学习算法所用到的数学知识点。我们之前已经总结过,理解绝大多数算法和理论,有微积分/高等数学,线性代数,概率论,最优化方法的知识就够了。除流形学习需要简单的微分几何概念之外,深层次的数学知识如实变函数,泛函分析等主要用在一些基础理论结果的证明上,即使不能看懂证明过程,也不影响我们使用具体的机器学习算法。概率图模型、流形学习中基于图的模型会用到图论的一些基本知识,如果学习过离散数学或者数据结构,这些概念很容易理解。除此之外,某些算法会用到离散数学中的树的概念,但很容易理解。

  如果你已经学过这些大学数学课,只要把所需的知识点复习一遍就够了。对于微积分,通俗易懂而又被广为采用的是同济版的高等数学:

  在机器学习中主要用到了微分部分,积分用的非常少。具体的,用到了下面的概念:

  雅克比矩阵,这是向量到向量映射函数的偏导数构成的矩阵,在求导推导中会用到

  Hessian矩阵,这是2阶导数对多元函数的推广,与函数的极值有密切的联系

  其中最核心的是多元函数的泰勒展开公式,根据它我们可以推导出梯度下降法,牛顿法,拟牛顿法等一系列最优化方法。

  与工科的高等数学偏重计算不同,它里面有大量的理论证明,对于锻炼数学思维非常有帮助。北大张筑生先生所著的数学分析可谓是国内这方面教材的精品。

  机器学习算法处理的数据一般都是向量、矩阵或者张量。经典的机器学习算法输入的数据都是特征向量,深度学习算法在处理图像时输入的2维的矩阵或者3维的张量。掌握这些概念是你理解机器学习和深度学习算法的基础。

  如果把机器学习所处理的样本数据看作随机变量/向量,就可以用概率论的方法对问题进行建模,这代表了机器学习中很大一类方法。在机器学习里用到的概率论知识点有:

  最后来说最优化,几乎所有机器学习算法归根到底都是在求解最优化问题。求解最优化问题的指导思想是在极值点出函数的导数/梯度必须为0。因此你必须理解梯度下降法,牛顿法这两种常用的算法,它们的迭代公式都可以从泰勒展开公式而得到。

  凸优化是机器学习中经常会提及的一个概念,这是一类特殊的优化问题,它的优化变量的可行域是凸集,目标函数是凸函数。凸优化最好的性质是它的所有局部最优解就是全局最优解,因此求解时不会陷入局部最优解。如果一个问题被证明为是凸优化问题,基本上已经宣告此问题得到了解决。在机器学习中,线性回归、岭回归、支持向量机、logistic回归等很多算法求解的都是凸优化问题。

  拉格朗日对偶为带等式和不等式约束条件的优化问题构造拉格朗日函数,将其变为原问题,这两个问题是等价的。通过这一步变换,将带约束条件的问题转换成不带约束条件的问题。通过变换原始优化变量和拉格朗日乘子的优化次序,进一步将原问题转换为对偶问题,如果满足某种条件,原问题和对偶问题是等价的。这种方法的意义在于可以将一个不易于求解的问题转换成更容易求解的问题。在支持向量机中有拉格朗日对偶的应用。

  KKT条件是拉格朗日乘数法对带不等式约束问题的推广,它给出了带等式和不等式约束的优化问题在极值点处所必须满足的条件。在支持向量机中也有它的应用。

  如果你没有学过最优化方法这门课也不用担心,这些方法根据微积分和线性代数的基础知识可以很容易推导出来。如果需要系统的学习这方面的知识,可以阅读《凸优化》,《非线性规划》两本经典教材。

  编程能力是学好机器学习和深度学习的又一大基础。对于计算机类专业的学生,由于本科已经学了c语言,c++,数据结构与算法,因此这方面一般不存在问题。对于非计算机专业的人来说,要真正学好机器学习和深度学习,这些知识是绕不开的。

  虽然现在大家热衷于学习python,但要作为一名真正的算法工程师,还是应该好好学习一下c++,至少,机器学习和深度学习的很多底层开源库都是用它写的;很多公司线上的产品,无论是运行在服务器端,还是嵌入式端,都是用c++写的。此外,如果你是应届生,在校园招聘时不少公司都会面试你c++的知识。

  对做算法的人来说,这本书其实不用全部看,把常用的点学完就够了。对于进阶,Effective c++是很好的选择,不少公司的面试题就直接出自这本书的知识点:

  接下来说python,相比c++来说,学习的门槛要低很多,找一本通俗易懂的入门教程学习一遍即可。

  数据结构和算法是编写很多程序的基础,对于机器学习和深度学习程序也不例外。很多算法的实现都依赖于数组,链表,数,排序,查找之类的数据结构和基础算法。如果有时间和精力,把算法导论啃一遍,你会有不一样的感受:

  对于应届生来说,学完它对于你通过大互联网和人工智能公司校园招聘的技术面试也非常有用。

  上面说的只是编程语言的程序设计的理论知识,我们还要考虑实际动手能力。对于开发环境如gcc/g++,visual studio之类的工具,以及gdb之类的调试工具需要做到熟练使用。如果是在linux上开发,对linux的常用命令也要熟记于心。这方面的知识看各种具体的知识点和教程即可。另外,对于编程的一些常识,如进程,线程,虚拟内存,文件系统等,你最好也要进行了解。

  在说完了数学和编程基础之后,下面我来看核心的内容,机器学习和深度学习知识。机器学习是现阶段解决很多人工智能问题的核心方法,尤其是深度学习,因此它们是算法工程师的核心知识。在这里有一个问题:是否需要先学机器学习,还是直接学深度学习?如果是一个专业的算法工程师,我的建议是先学机器学习。至少,你要知道机器学习中的基本概念,过拟合,生成模型,ROC曲线等,上来就看深度学习,如没有背景知识你将不知所云。另外,神经网络只是机器学习中的一类方法,对于很多问题,其他机器学习算法如logistic回归,随机森林,GBDT,决策树等还在被大规模使用,因此你不要把自己局限在神经网络的小圈子里。

  首先来看机器学习,这方面的教材很多,周志华老师的机器学习,李航老师的统计学习方法是国内的经典。这里我们介绍国外的经典教材,首先是PRML:

  此书深厚,内容全面,涵盖了有监督学习,无监督学习的主要方法,理论推导和证明详细深入,是机器学习的经典。此外还有模式分类这本书,在这里不详细介绍。

  它涵盖了深度学习的方方面面,从理论到工程,但美中不足的是对应于介绍的相对较少。

  强化学习是机器学习很独特的一个分支,大多数人对它不太了解,这方面的教程非常少,我们推荐下面这本书:

  美中不足的是这本书对深度强化学习没有介绍,因为出版的较早。不知最新的版本有没有加上这方面的内容。

  在这里需要强调的是,你的知识要系统化,有整体感。很多同学都感觉到自己学的机器学习太零散,缺乏整体感。这需要你多思考算法之间的关系,演化历史之类的问题,这样你就做到胸中有图-机器学习算法地图。其实,SIGAI在之前的公众号文章“机器学习算法地图”里已经给你总结出来了。

  上面介绍了机器学习和深度学习的理论教材,下面来说实践问题。我们无需重复造车轮子,熟练的使用主流的开源库是需要掌握的一项技能。对于经典的机器学习,常用的库的有:

  在这里我们不一一列举。借助于这些库,我们可以方便的完成自己的实验,或是研发自己的产品。对于深度学习,目前常用的有:

  除此之外,还有其他的。对于你要用到的开源库,一定要理解它的原理,以及使用中的一些细节问题。例如很多算法要求输入的数据先做归一化,否则效果会非常差,而且面临浮点数溢出的问题,这些实际经验需要你在使用中摸索。如果有精力把这些库的核心代码分析一遍,你对实现机器学习算法将会更有底气。以深度学习为例,最核心的代码无非是实现:

  这些代码的量并不大,沉下心来,我相信一周之内肯定能分析完。看完之后你会有一种豁然开朗的感觉。

  除此之外,还有其他一些特定小方向,在这里不一一列举。这些具体的应用方向一般都有自己的教材,如果你以后要从事此方向的研究,系统的学习一遍是必须的。

  在说完理论与实践知识之后,最后我们来说经验与思考。在你确定要做某一个方向之后,对这个方向的方法要有一个全面系统的认识,很多方法是一脉相承的,如果只追求时髦看最新的算法,你很难做出学术上的创新,以及工程上的优化。对于本问题所有的经典论文,都应该化时间细度,清楚的理解它们解决了什么问题,是怎么解决的,还有哪些问题没有解决。例如:

  只有经过大量的编程和实验训练,以及持续的思考,你才能算得上对这个方向深刻理解,以至于有自己的理解。很多同学对自己实现轮上的算法没有底气,解决这个问题最快的途径就是看论文算法的开源代码,在github上有丰富的资源,选择一些合适的,研究一下别人是怎么实现的,你就能明白怎么实现自己的网络结构和损失函数,照葫芦画瓢即可。

  计算机以及人工智能是一个偏实践的学科,它的方法和理论既需要我们有扎实的理论功底,又需要有丰富的实践能力与经验。这两个方面构成了算法工程师最主要的素质。科学的学习路径能够让你取得好的学习效果,同时也缩短学习时间。错误和浮躁的做法则会让你最后事倍功半。这是SIGAI对想进入这个领域,或者刚进入这个领域的每个人要说的!

  文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。

  主题简介:本次直播主要讲解四轴机器人控制器基本原理及组成。四轴机器人的核心技术内嵌人工智能算法的工业级运动控制技术和伺服

  苹果向来以保护隐私为傲,据称Siri会尽可能地满足使用iPhone或HomePod的用户。在将用户所....

  而在5G时代渐行渐至之际,MR也将迎来新的想象空间。随着低延时、高吞吐的新一代通信技术普及,MR在C....

  这一次,Facebook表示其AI助手将更少关注消息传递,更多地关注通过语音控制和潜在手势控制实现免....

  本文介绍了包括图像分类、交易预测、情感分类、推荐系统、股票预测等在内的若干个机器学习应用及数据集。

  英特尔公司物联网事业部生命科学与健康部门总经理David Ryan表示:“西门子医疗和英特尔有一个共....

  对比2015年到2019年,论文投稿数量和接收数量均在增加。前几年一直保持在30%左右的接收率。虽然....

  上世纪 50 到 60 年代,Marvin Minsky 带领他的学生们在人工智能这片新开垦的知识领....

  就像现在流行的那样,这个团队是数据科学组织的一部分,绕过 CIO 和任何技术或商业副总裁,直接向 C....

  随着社会经济和科学技术的发展,人们对于生活环境以及生活质量的要求越来越高。除了满足基本的居住需求之外....

  随着成本降低,技术日益成熟,以楼宇对讲为入口,延伸到智慧家庭和智慧社区的整体解决方案逐渐成为市场的主....

  市场研究公司CB Insights2018年发布的《顶尖医疗类人工智能趋势观察报告》,总结了全球人工....

  一如PC时代的Intel inside, 地平线希望AI on Horizon能够成为即将到来的人工....

  边缘计算自诞生之日引起了行业的广泛关注,CDN也正在开展与MEC的密切合作,在MEC的助力下,未来C....

  在很多人眼里,深度学习是一个非常神奇的技术,是人工智能的未来,是机器学习的圣杯。今天大恒图像带您一起....

  机器视觉是通过计算机来模拟人类视觉功能,以让机器获得相关视觉信息和加以理解。

  4月19日消息,高通在Qualcomm AI Day活动上,重点提及了5G+AI技术的发展现状以及高....

  这项服务将在43个州投入使用,用户可以通过Google智能助理预定餐厅。预订过程非常简单:用户只需告....

  最近人工智能的各个话题都很火,从算法、软件到硬件。人工智能芯片作为硬件的重要组成部分,自然也是得到了....

  近年来,人工智能迅速发展,各大公司也在不断加大对人工智能的投入。英伟达表示,人工智能已经可以可靠地用....

  人工智能和机器学习是否可以检测消费者刷付银行卡?很多银行正在开发防止欺诈交易的系统和业务,以便银行可....

  从上面公式可以注意到,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果样本数....

  对于类别数量很多的分类变量可以采用特征哈希(Hashing Trick),特征哈希的目标就是将一个数....

  随着手机和3G、4G网络的普及,我国经济的发展正式进入了移动互联网时代。互联网时代到来,给人们的生产....

  根据预算法案,2020财年美国国家安全预算总额增加340亿美元,达到7500亿美元,比上年增加5%。

  StyleGAN是英伟达提出的一种用于生成对抗网络的替代生成器体系结构,该结构借鉴了样式迁移学习的成....

  我们知道决策树容易过拟合。换句话说,单个决策树可以很好地找到特定问题的解决方案,但如果应用于以前从未....

  浙江大学机器人科教实践基地是浙江大学最重要的学生实践竞赛基地之一。该基地采用实践训练与竞赛、科研相结....

  别指望这段时间能完成多少工作。正如一位同事所言:“当你听到这个或那个招聘人员的反馈时,你的大脑一直在....

  实际上数据还是非常关键的,因为机器学习肯定要从具体的数据中学习。现在主流的、有影响力的数据集大多是国....

  2月12日,美国国防部首席信息官达纳•迪希(Dana Deasy)和联合人工智能中心(JAIC)的负....

  台湾的创业产业规模很小,而且常以住宅为单位,这导致其发展空间非常有限。随后,新公司需具备高效的特点,....

  与仅就问题感知或选择性文章表示进行计算的现有方法不同,DCMN能够计算文章感知问题表示和文章感知答案....

  在当时的研讨会上,近40个学生完成了包括数据库和API搭建、数据分析、网站设计和搭建、绘制地图、以及....

  被设计拥有幽默感的机器人可能很难理解究竟什么叫“好玩的事情”,甚至可能因此而杀人。

  对于中美两国在人工智能领域的强势领先地位,日本在资金投入和人才储备上都明显落后一截,对此又稍显不安和....

  《Evolutionary Learning: Advances in Theories and A....

  OpenAI Five是如何训练的、为什么选择打Dota以及AI在打Dota的时候在想什么?

  总决赛让OpenAI的科学家可以回答一个重要的研究问题:OpenAI Five在多大程度、以何种方式....

  导读:当AirPods以独特的市场表现为苹果低迷的硬件营收打入强心剂后,智能耳机似乎正逐渐成为业界巨头的共同选择。特别是在...

  首钢园相当于12个故宫的面积,是目前全球最大的、开放的人工智能创新应用实验场。更重要的是,冬奥组委办....

  如果说要列一份关于数学的书单,这本书是绕不过去的。本书单中排名第一的就是俄罗斯著名数学家Vladim....

  PAKDD 2019 AutoML挑战赛结果出炉:国内团队DeepBlueAI斩获第一名

  如下图所示,研究团队实现了一个Lifelong AutoML 框架,包括自动特征工程和自动快速特征选....

  “智能+”的重点领域是制造业。制造业是实体经济的主体,是技术创新的主战场,也是供给侧结构性改革的重要....

  张亚勤是数字视频和人工智能领域的世界级科学家和企业家,拥有60多项美国专利,发表学术论文500多篇,....

  广州佳都集团有限公司董事长刘伟介绍,佳都是做人工智能的,与200多家企业有业务往来。今年以来,大家明....

  芳菲四月,AI芯片再次站到聚光灯下,成为焦点:2日,国产芯片概念股悄然走高,紫光国微以及四维图新等多....

  如今,随着大数据的发展、机器算法技术、机器学习能力的不断提升,全球人工智能产业进入了新一轮的爆发期,....

  AI专家讲座: 不懂编程没关系,邀请您来学AI 活动概述:本活动是现场讲座,由台湾知名AI教育专家、金门创新学院院长、台湾...

  Matplotlib - 柱状图、直方图、条形图 bar() & barh() 所有用法详解...

  执行GUI_JPEG_Draw()函数就会在 void HardFault_Handler(void)这个中断里,蛋疼...

  之前一直使用3.90的, 前几天在官网下载了一个UCGUI的手册,手册里介绍的一些函数在3.90里没有找到, 例如DROPDOW...

  智能化商业的浪潮下,新商业模式纷纷涌现,智能制造给行业格局带来全新可能和颠覆性变革,亟需一系列智能制造行业的交流盛会,助...

  智能化商业的浪潮下,新商业模式纷纷涌现,智能制造给行业格局带来全新可能和颠覆性变革,亟需一系列智能制造行业的交流盛会,助...

咨询热线

400-690-123455