1. 成为一名合格的算法工程师需要掌握哪些技能
算法工程师目前是一个高端也是相对紧缺的职位;近两年的就业前景是非常好的,薪资也比较高。但是算法工程师同时也需要不断学习。那么成为一名合格的算法工程师需要掌握哪些岗位技能呢,我们接着往下看。
业务学习能力
算法工程师是不可能脱离业务背景的,人工智能算法工程师、交通算法工程师、图像处理算法工程师等等。
针对一个业务场景设计一个合理的算法,业务知识是非常重要的,需要结合业务的实际情况、限定条件、各种专业词汇和知识都要有一定的了解,如果脱离场景而一味地琢磨算法,效果不会太好。
比如,做交通算法,需要对交通组织、交通管理、通行损失、周期延误等有所认知。比如,做图像处理,需要对各种图像去噪、图像增广、图像分割、物理成像有所了解,知道像素底层是怎么回事。
持续学习能力
算法工程师的主要工作就是拿着现有成熟的算法,结合面临业务场景去做一个合理的方案,如果我们知识面太窄,那显然当用到的时候会有点拮据,眼界也被限制住,不知道还有没有更好效果的算法、目前算法有哪些不足之处、在这个业务中能不能发挥作用。
只有持续学习,了解足够多的知识,当我们面临问题的时候能够快速对比、选择,找出最合适的一种算法。
灵活的思维
当我们选择一种算法去解决一个问题时,效果肯定无法达到我们预期的那样。比如我们拿mask rcnn做医学图像语义分割,我们看着它在自然图像方面表现效果很好,就拿来用于医学图像。但是医学图像有它的难点和特殊性,当跑出效果时会发现结果不如人意,这时候就需要灵活的思维去发现问题,去调优、改进,或者从数据入手,或者从网络模型入手,或者从超参数入手。
编程能力
不同公司对于算法工程师的定位有所差别,比如有些朋友在某公司做算法工程师只负责方案的设计,开发由专门的开发人员实施。有的公司算法工程师要完成算法设计到开发全部工作。
无论是哪一种形式,编程能力都是必要的,就算是前者这样的形式,有专门的开发人员,那在算法的设计过程中需要验证、对比,对每一个小模块算法进行指标评价,你不可能事事都找别人来帮你做,这样效率低,而且开展工作困难。综上所述,就是小编今天整理的关于算法工程师的相关内容,希望可以帮助到大家。
2. #算法工程师#算法工程师代码能力要达到什么水平
能够用代码实现你的算法,并封装你的算法和前端对接,达到这个要求,你的代码能力至少作为一个算法工程师来说,就合格了 来自职Q用户:阮先生
不同方向的算法工程师要求不同的。图像算法,有的要求会用开源库,有的要求自己写算法并封装接口,有并行算法的,要求会各个角度加速代码,甚至要求对不同操作系统非常熟悉,深度学习算法一般要求会开源库,会python等等吧。但总体上来说,我认为代码能力可以弱于软件工程师。 来自职Q用户:匿名用户
3. 图像处理与模式识别算法工程师需要哪些基础
图像和模式识别算法工程师需要相当好的数学基础,门槛较高,当然我指的是你想真正在这个行业立足,随便找一本模式识别或者图像处理的书看看就知道难度了。不然各大公司也不会校招就开出30w的年薪给这类职业
4. 算法工程师应该学哪些
一、算法工程师简介
(通常是月薪15k以上,年薪18万以上,只是一个概数,具体薪资可以到招聘网站如拉钩,猎聘网上看看)
算法工程师目前是一个高端也是相对紧缺的职位;
算法工程师包括
音/视频算法工程师(通常统称为语音/视频/图形开发工程师)、图像处理算法工程师、计算机视觉算法工程师、通信基带算法工程师、信号算法工程师、射频/通信算法工程师、自然语言算法工程师、数据挖掘算法工程师、搜索算法工程师、控制算法工程师(云台算法工程师,飞控算法工程师,机器人控制算法)、导航算法工程师(
@之介
感谢补充)、其他【其他一切需要复杂算法的行业】
专业要求:计算机、电子、通信、数学等相关专业;
学历要求:本科及其以上的学历,大多数是硕士学历及其以上;
语言要求:英语要求是熟练,基本上能阅读国外专业书刊,做这一行经常要读论文;
必须掌握计算机相关知识,熟练使用仿真工具MATLAB等,必须会一门编程语言。
算法工程师的技能树(不同方向差异较大,此处仅供参考)
1 机器学习
2 大数据处理:熟悉至少一个分布式计算框架Hadoop/Spark/Storm/ map-rece/MPI
3 数据挖掘
4 扎实的数学功底
5 至少熟悉C/C++或者java,熟悉至少一门编程语言例如java/python/R
加分项:具有较为丰富的项目实践经验(不是水论文的哪种)
二、算法工程师大致分类与技术要求
(一)图像算法/计算机视觉工程师类
包括
图像算法工程师,图像处理工程师,音/视频处理算法工程师,计算机视觉工程师
要求
l
专业:计算机、数学、统计学相关专业;
l
技术领域:机器学习,模式识别
l
技术要求:
(1) 精通DirectX HLSL和OpenGL GLSL等shader语言,熟悉常见图像处理算法GPU实现及优化;
(2) 语言:精通C/C++;
(3) 工具:Matlab数学软件,CUDA运算平台,VTK图像图形开源软件【医学领域:ITK,医学图像处理软件包】
(4) 熟悉OpenCV/OpenGL/Caffe等常用开源库;
(5) 有人脸识别,行人检测,视频分析,三维建模,动态跟踪,车识别,目标检测跟踪识别经历的人优先考虑;
(6) 熟悉基于GPU的算法设计与优化和并行优化经验者优先;
(7) 【音/视频领域】熟悉H.264等视频编解码标准和FFMPEG,熟悉rtmp等流媒体传输协议,熟悉视频和音频解码算法,研究各种多媒体文件格式,GPU加速;
应用领域:
(1) 互联网:如美颜app
(2) 医学领域:如临床医学图像
(3) 汽车领域
(4) 人工智能
相关术语:
(1) OCR:OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程
(2) Matlab:商业数学软件;
(3) CUDA: (Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台(由ISA和GPU构成)。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题
(4) OpenCL: OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。
(5) OpenCV:开源计算机视觉库;OpenGL:开源图形库;Caffe:是一个清晰,可读性高,快速的深度学习框架。
(6) CNN:(深度学习)卷积神经网络(Convolutional Neural Network)CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。
(7) 开源库:指的是计算机行业中对所有人开发的代码库,所有人均可以使用并改进代码算法。
(二)机器学习工程师
包括
机器学习工程师
要求
l
专业:计算机、数学、统计学相关专业;
l
技术领域:人工智能,机器学习
l
技术要求:
(1) 熟悉Hadoop/Hive以及Map-Rece计算模式,熟悉Spark、Shark等尤佳;
(2) 大数据挖掘;
(3) 高性能、高并发的机器学习、数据挖掘方法及架构的研发;
应用领域:
(1)人工智能,比如各类仿真、拟人应用,如机器人
(2)医疗用于各类拟合预测
(3)金融高频交易
(4)互联网数据挖掘、关联推荐
(5)无人汽车,无人机
相关术语:
(1) Map-Rece:MapRece是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Rece(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
(三)自然语言处理工程师
包括
自然语言处理工程师
要求
l
专业:计算机相关专业;
l
技术领域:文本数据库
l
技术要求:
(1) 熟悉中文分词标注、文本分类、语言模型、实体识别、知识图谱抽取和推理、问答系统设计、深度问答等NLP 相关算法;
(2) 应用NLP、机器学习等技术解决海量UGC的文本相关性;
(3) 分词、词性分析、实体识别、新词发现、语义关联等NLP基础性研究与开发;
(4) 人工智能,分布式处理Hadoop;
(5) 数据结构和算法;
应用领域:
口语输入、书面语输入
、语言分析和理解、语言生成、口语输出技术、话语分析与对话、文献自动处理、多语问题的计算机处理、多模态的计算机处理、信息传输与信息存储 、自然语言处理中的数学方法、语言资源、自然语言处理系统的评测。
相关术语:
(2) NLP:人工智能的自然语言处理,NLP (Natural Language Processing) 是人工智能(AI)的一个子领域。NLP涉及领域很多,最令我感兴趣的是“中文自动分词”(Chinese word segmentation):结婚的和尚未结婚的【计算机中却有可能理解为结婚的“和尚“】
(四)射频/通信/信号算法工程师类
包括
3G/4G无线通信算法工程师, 通信基带算法工程师,DSP开发工程师(数字信号处理),射频通信工程师,信号算法工程师
要求
l
专业:计算机、通信相关专业;
l
技术领域:2G、3G、4G,BlueTooth(蓝牙),WLAN,无线移动通信, 网络通信基带信号处理
l
技术要求:
(1) 了解2G,3G,4G,BlueTooth,WLAN等无线通信相关知识,熟悉现有的通信系统和标准协议,熟悉常用的无线测试设备;
(2) 信号处理技术,通信算法;
(3) 熟悉同步、均衡、信道译码等算法的基本原理;
(4) 【射频部分】熟悉射频前端芯片,扎实的射频微波理论和测试经验,熟练使用射频电路仿真工具(如ADS或MW或Ansoft);熟练使用cadence、altium designer PCB电路设计软件;
(5) 有扎实的数学基础,如复变函数、随机过程、数值计算、矩阵论、离散数学
应用领域:
通信
VR【用于快速传输视频图像,例如乐客灵境VR公司招募的通信工程师(数据编码、流数据)】
物联网,车联网
导航,军事,卫星,雷达
相关术语:
(1) 基带信号:指的是没有经过调制(进行频谱搬移和变换)的原始电信号。
(2) 基带通信(又称基带传输):指传输基带信号。进行基带传输的系统称为基带传输系统。传输介质的整个信道被一个基带信号占用.基带传输不需要调制解调器,设备化费小,具有速率高和误码率低等优点,.适合短距离的数据传输,传输距离在100米内,在音频市话、计算机网络通信中被广泛采用。如从计算机到监视器、打印机等外设的信号就是基带传输的。大多数的局域网使用基带传输,如以太网、令牌环网。
(3) 射频:射频(RF)是Radio Frequency的缩写,表示可以辐射到空间的电磁频率(电磁波),频率范围从300KHz~300GHz之间(因为其较高的频率使其具有远距离传输能力)。射频简称RF射频就是射频电流,它是一种高频交流变化电磁波的简称。每秒变化小于1000次的交流电称为低频电流,大于10000次的称为高频电流,而射频就是这样一种高频电流。高频(大于10K);射频(300K-300G)是高频的较高频段;微波频段(300M-300G)又是射频的较高频段。【有线电视就是用射频传输方式】
(4) DSP:数字信号处理,也指数字信号处理芯片
(五)数据挖掘算法工程师类
包括
推荐算法工程师,数据挖掘算法工程师
要求
l
专业:计算机、通信、应用数学、金融数学、模式识别、人工智能;
l
技术领域:机器学习,数据挖掘
l
技术要求:
(1) 熟悉常用机器学习和数据挖掘算法,包括但不限于决策树、Kmeans、SVM、线性回归、逻辑回归以及神经网络等算法;
(2) 熟练使用SQL、Matlab、Python等工具优先;
(3) 对Hadoop、Spark、Storm等大规模数据存储与运算平台有实践经验【均为分布式计算框架】
(4) 数学基础要好,如高数,统计学,数据结构
l
加分项:数据挖掘建模大赛;
应用领域
(1) 个性化推荐
(2) 广告投放
(3) 大数据分析
相关术语
Map-Rece:MapRece是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Rece(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
(六)搜索算法工程师
要求
l
技术领域:自然语言
l
技术要求:
(1) 数据结构,海量数据处理、高性能计算、大规模分布式系统开发
(2) hadoop、lucene
(3) 精通Lucene/Solr/Elastic Search等技术,并有二次开发经验
(4) 精通Lucene/Solr/Elastic Search等技术,并有二次开发经验;
(5) 精通倒排索引、全文检索、分词、排序等相关技术;
(6) 熟悉Java,熟悉Spring、MyBatis、Netty等主流框架;
(7) 优秀的数据库设计和优化能力,精通MySQL数据库应用 ;
(8) 了解推荐引擎和数据挖掘和机器学习的理论知识,有大型搜索应用的开发经验者优先。
(七)控制算法工程师类
包括了云台控制算法,飞控控制算法,机器人控制算法
要求
l
专业:计算机,电子信息工程,航天航空,自动化
l
技术要求:
(1) 精通自动控制原理(如PID)、现代控制理论,精通组合导航原理,姿态融合算法,电机驱动,电机驱动
(2) 卡尔曼滤波,熟悉状态空间分析法对控制系统进行数学模型建模、分析调试;
l
加分项:有电子设计大赛,机器人比赛,robocon等比赛经验,有硬件设计的基础;
应用领域
(1)医疗/工业机械设备
(2)工业机器人
(3)机器人
(4)无人机飞控、云台控制等
(八)导航算法工程师
要求
l 专业:计算机,电子信息工程,航天航空,自动化
l 技术要求(以公司职位JD为例)
公司一(1)精通惯性导航、激光导航、雷达导航等工作原理;
(2)精通组合导航算法设计、精通卡尔曼滤波算法、精通路径规划算法;
(3)具备导航方案设计和实现的工程经验;
(4)熟悉C/C++语言、熟悉至少一种嵌入式系统开发、熟悉Matlab工具;
公司二(1)熟悉基于视觉信息的SLAM、定位、导航算法,有1年以上相关的科研或项目经历;
(2)熟悉惯性导航算法,熟悉IMU与视觉信息的融合;
应用领域
无人机、机器人等。
5. 需要哪些知识才能成为图像处理工程师
图像处理应用很广,因此不同岗位要求侧重不同,最基本都必须掌握图形处理的开发与研究,熟悉图像处理的各种算法,特别是图像去燥、图像增强、复原、质量改善、检测、色彩科学、图像分割、图像识别处理、图像跟踪、图像的获取及视频处理,具体应用包括人脸识别、医学影像处理、多点识别、文字检测与是识别。特别的,结合不同应用,还需要自然语言处理知识。另外,要有优秀的数学功底(特别是线性代数、优化理论、统计知识)。
6. 零基础入行图像算法工程师需要学习哪些课程
我们实验室就是做FPGA图像处理的。建议你学习一下《信号与系统》,《数字信号处理》。然后学习一下冈萨雷斯写的《数字图像处理》那本书。有了基础之后,选定一个方向进行具体研究。图像处理的方向比较多,图像增强,图像复原,图像压缩,图像分割等等。个人感觉FPGA做图像预处理(譬如图像去噪)比较好,如果涉及较为复杂的算法,用FPGA就需要深厚的功底。毕竟FPGA的计算能力不强。总之,你先把基础打好,然后选定一个喜欢的方向深入研究。FPGA只是实现的工具。
7. 算法工程师工作期间需要掌握什么知识学到哪些核心技术
算法工程师的主要核心技术基于数学,并辅以语言。要全面掌握的知识包括高级数学,复变函数,线性代数的离散数学,数据结构以及数据挖掘所需的概率论和数学统计知识。不要太受约束去平时阅读教科书并多练习,并培养良好的思维能力。只有那些有想法的人才能拥有技术的未来。尝试实现您遇到的任何算法,无论算法的优劣总是有其自身的特征。此外,您必须具有一定的英语水平(至少6级),因为该领域的大多数官方材料都是外语。
计算机及相关专业本科以上学历,在互联网搜索,推荐,流量或相关领域有2年以上工作经验。熟悉机器学习/自然语言处理/数据挖掘/深度学习中至少一项的原理和算法,并且能够熟练地建模和解决业务问题。精通Linux平台下的C / C ++ / Java语言开发,精通使用gcc / gdb等开发工具,并精通Python / Linux Shell / SQL等脚本开发。熟悉hadoop / hbase / storm等分布式计算技术,并熟悉其运行机制和体系结构。具有出色的分析和解决问题的能力,思路清晰,并对工作挑战充满热情。具有强烈的工作责任感和团队合作精神,并能够交流和更好地学习。
8. 成为算法工程师需要学习哪些课程
算法工程师要求很高的数学水平和逻辑思维。需要学习高数,线性代数,离散数学,数据结构和计算机等课程。
专业要求:计算机、电子、通信、数学等相关专业;
学历要求:本科及其以上的学历,大多数是硕士学历及其以上;
语言要求:英语要求是熟练,基本上能阅读国外专业书刊;
必须掌握计算机相关知识,熟练使用仿真工具MATLAB等,必须会一门编程语言。
国内外状况
国内从事算法研究的工程师不少,但是高级算法工程师却很少,是一个非常紧缺的专业工程师。
算法工程师根据研究领域来分主要有音频/视频算法处理、图像技术方面的二维信息算法处理和通信物理层、雷达信号处理、生物医学信号处理等领域的一维信息算法处理。
9. 图像算法工程师待遇高吗
的确算得上是一个入算法坑的黄金时间,曾经的条条大路通 CS 变成了条条大路通 AI,不管你曾经读的是物理还是生物,化学还是数学,只要你会 Python,会统计学基础,那时的我都会推荐你们来试一试加入算法这个坑,我也抱着体验的心态开了几次知乎 Live 都讲了一些关于算法入门相关的课,按那时候来讲,只要你“思路正常,逻辑清晰,吃苦耐劳,肯学习”,在算法这个坑里摸滚带爬四五年到现在,你要是在大厂,基本上都能拿到这个数,放一张最近的图可供参考。
图片引用至 @曾加 ,可以参考这位大佬的最新文章:
曾加:最新!互联网大厂各职级薪资对应关系图(2020年初)
zhuanlan.hu.com
图标
以我熟悉的阿里为例,文中所说的二三十人团队,那基本上就一个P8主管,下面再拆成2-3个小组,每个小组有一个P7/8带队,带着一群P5-P7干活。这就基本构成了阿里的一个最小组织单元,每年的绩效和奖金大体上都是由这位P8主管决定的,所以我们一般尊称为老板……
扯远了,其实我想表达一点,如果现在再有人来问我,学了 Python 之后怎么样加入算法坑比较好,我的建议是不加入。
我们常说的算法,本质上是统计,而统计是基于大数据的。目前能真正拥有大数据基建的企业其实并不多,能通过算法产出新价值的就更少,所以看起来搞 AI 的风风火火,其实大部分都是投资人含泪投的钱,背后能赚钱的少之又少,即便是在大厂也不例外。
所以一个目前仍不赚钱的行业,冲着心中伟大的理想和抱负,会像招开发那样花重金吸纳大批人才吗?答案明显为否,其实只需要花重金留住顶尖的算法人才即可,调包调参的 AI 选手无论何时都可以招得到,而目前大部分通过自学、培训机构出来的 AI 人才,就是这样的 tool boy。
巧的是,曾经我也是这样的 AI 选手,但谁叫我运气好,混得好不如混得早,现在转去数据分析那可就是降维打击了(手动狗头
最后再概括一下,今年是 2020 年,如果想从事算法和数据行业,建议先读一个相关专业的硕士,比如数据挖掘、图像识别等,且学校不能太非主流,不然可能简历面都过不了。
10. 算法工程师要学什么
算法工程师要求很高的数学水平和逻辑思维。需要学习高数,线性代数,离散数学,数据结构和计算机等课程。
1、专业要求:计算机、电子、通信、数学等相关专业;
2、学历要求:本科及其以上的学历,大多数是硕士学历及其以上;
3、语言要求:英语要求是熟练,基本上能阅读国外专业书刊;
必须掌握计算机相关知识,熟练使用仿真工具MATLAB等,必须会一门编程语言。
算法工程师根据研究领域来分主要有音频/视频算法处理、图像技术方面的二维信息算法处理和通信物理层、雷达信号处理、生物医学信号处理等领域的一维信息算法处理。
在计算机音视频和图形图形图像技术等二维信息算法处理方面目前比较先进的视频处理算法:机器视觉成为此类算法研究的核心;
另外还有2D转3D算法(2D-to-3D conversion),去隔行算法(de-interlacing),运动估计运动补偿算法(Motion estimation/Motion Compensation),去噪算法(Noise Rection),缩放算法(scaling),锐化处理算法(Sharpness),超分辨率算法(Super Resolution),手势识别(gesture recognition),人脸识别(face recognition)。
关于算法工程师可以到CDA认证机构了解一下,CDA行业标准由国际范围数据领域的行业专家、学者及知名企业共同制定并每年修订更新,确保了标准的公立性、权威性、前沿性。通过CDA认证考试者可获得CDA中英文认证证书。