7 年算法工程师的工作总结,太精辟了!

2019 年 6 月 6 日 机器学习算法与Python学习

大家好,我是chris,入行前5年在一家上市游戏公司做算法,从数据挖掘算法在业务线落地开始,涉及机器学习、深度学习,后来逐步负责整个算法团队建设。

 

现在在阿里,也是负责算法方面的工作,涉及到的领域涵盖CV、NLP、架构等,业务线也扩展到广告、运营、客服、风控等各个方面。


在外行人眼中,算法工程师可能拿到最近某大神新发的Paper,或者自己钻研理论推公式产出理论成果,通过并行编程实现其支持大规模数据训练,然后打败现有模型,ctr提升200%,收入提高200%。然而实际情况是:


理想中的算法工程师:提出假设->收集数据->训练模型->解释结果。

实际中的算法工程师:提出假设->收集数据->预处理->预处理->训练模型->调试->调试->重新收集数据->预处理->收集更多数据->调试->调试->调试->…->放弃


作为算法部门负责人,我曾经面试过很多候选人,一般我通常从逻辑思维、基础算法与数据结构、数学、深度学习、表达能力和工程经验等几个方面考察。


我发现其实很多人只是自认为懂得算法,刷了一遍西瓜书就敢出来面试了,另外有数理基础的应届生,算法掌握得也不错,但实际3年可能写了不到1000行代码,实操能力极差。


在面试了好几个简历优秀的年轻人后,我惊讶得发现原来很多初学者对数据挖掘/算法工程师实际上的工作流都不是很了解,导致职业技能偏差。这就是为什么,企业收到的简历越来越多,但公司实际可用的就那么一两个,而且开价不菲,忍痛签下还可能被同行挖走了。


那么算法岗位具体的工作流程是怎样的?我们先来用一个小型NLP项目流程来举例,让大家了解机器学习项目有哪些大的环节:


1.了解需求,获取数据。与产品和运营开会,了解需求,然后提取公司积累大量的数据和自己网上下载、爬取的数据。


2.数据预处理。数据处理大概会占到整个50%-70%的工作量,通过数据洗清、分词、词性标注、去停用词四个大的方面来完成语料的预处理工作。


3.特征工程。做完语料预处理之后,接下来需要考虑如何把分词之后的字和词语表示成计算机能够计算的类型。把中文分词的字符串转换成数字,有两种常用的表示模型分别是词袋模型和词向量。


4.特征选择。构造好的特征向量,是要选择合适的、表达能力强的特征。特征选择是一个很有挑战的过程,更多的依赖于经验和专业知识,并且有很多现成的算法来进行特征的选择。


5.模型训练。对于不同的应用需求,我们使用不同的模型,传统的有监督和无监督等机器学习模型,如 KNN、SVM、Naive Bayes、决策树、GBDT、K-means 等模型;深度学习模型比如 CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等。


6.评价指标。训练好的模型,上线之前要对模型进行必要的评估,目的让模型对语料具备较好的泛化能力。


7.模型上线应用。模型线上应用,线下训练模型,然后将模型做线上部署,发布成接口服务以供业务系统使用。


以上流程从业务流程来看,机器学习项目基本就是了解业务需求 ->调研业界方案 -> 查看是否适用 -> 上线效果不难发现,在对待具体业务上,算法工程师如何通过“实践”提升自己的机器学习水平,以及如何通过机器学习/深度学习实际应用来改善企业的业务等级和营收能力至关重要。


我经常说算法只是工具,重要的是在正确的行业和产品认知上,实现业务目标。


所以有人恐慌算法工程师会被自己的算法替代,这是极其可笑的。机器可以做的虽然很多,但是无法代替人对数据的理解,这是算法工程师存在的价值。Deep Learning虽然在某种程度上代替人提取特征,但是它最多只能解决特征变换问题,仍然处理不了数据清洗和预处理中需要用到领域知识的情况。


在我的经历里,我倾向于算法工程师是技术+产品经理为一体的综合型人才。


而对于跨专业的学生/从业者来说,跨界反而是优势,不是障碍。特别是如果你作为本身是一个其他行业(物理,工程,化学,医学,农业,卫星地图识别,网络安全领域,社会科学)的普通程序员,在本行业有比较深的理论和实验背景,能接触到海量数据,那么你完全可以做一些创新性和交叉性的工作,这就是人工智能+的人才。


现在有很多的机器学习课程和教科书,它们大都是关于如何从零开始制造烤箱,而不是如何烹饪和创新配方。但对大多数企业而言,其实他们需要的只是烹饪方法——即解决他们业务问题的方法。


为了能让更多初学者了解机器学习/数据分析/数据挖掘等岗位的工作流程,找到入门的切入点,我特地邀请了两位人工智能不同领域的专家,一位BAT的数据挖掘工程师@熊猫酱,一位计算机视觉方向的专家@Angela,还有我阿里高级算法工程师@Chris,以自身具体的工作流为核心,举办连续四场人工智能入门分享会。



我们将分别从各自擅长的领域:python数据分析、机器学习理论、机器学习数学、算法工作流,以我们在大厂具体工作流逆向指导理论学习,规划学习路线,是不可多得的入门级课程,旨在为广大的AI爱好者和跨行学习者提供坚实的基础。

福利一:

《人工智能入门分享会》

适合人群:入门、初中级学员

 

1. 6月11日 20:30

一线大厂算法工作流讲解及机器学习路线 

2. 6月13日  20:30

机器学习常见算法推导中的数学基础

3. 6月16日  20:30

从零开始,90分钟入门python数据分析

4. 6月18日  20:30

阿里专家:神经网络原理与人工智能就业指南

(*可领取录播,添加助教:BT474849领取)


本次分享会将为你解答以下疑问:


我适不适合学习人工智能?我是医学生,现在AI医疗就业情况怎么样?数据分析/数据挖掘/算法工程师的区别是什么?算法工程师对算法需要理解到何种程度?模型选择和参数调优技术,是否是通用的?深度学习算法的应用场景……(~你的所有疑惑,在这里将全部解决!


千万不要在本该快速成长的时候错过机会。参加本期训练营,一线导师将尽心为你在线解答疑问,更有同伴一起相互监督鼓励!本期更是免费帮你分析具体职业进阶方向!


第一期300名试学学员获得一致好评!

↓↓↓

▲第一期课程体验反馈+群内交流答疑


福利二:学习资料

机器学习从入门到实战视频课程


另外,前500名成功报名这门课程的同学,都可以获得由这份由上海北大、清华、交大等名校导师以及大厂一线工程师联合组写价值1388元的《机器学习从入门到实战视频课程》,包含python基础、数据分析、大数据、机器学习、实战等五大类目的精华干货视频,课件和源码都能下载,以下是目录。

《机器学习从入门到实战视频课程》

 ——五大章节,63讲


一、Linux与python编程基础

1. vmware虚拟机的安装

2. centos6.9操作系统的安装

3. linux基本命令使用

4. python介绍

5. python安装

6. python环境安装

7. 第一个python程序

8. pycharm(Python开发神器)的使用

9. 变量、整型、浮点型、字符串类型

10. 空值、布尔值、列表、元组、字典、集合

11. if条件语句、input函数

12. 循环语句

13. 函数介绍、函数的定义、函数的调用、函数的参数

14. 函数的返回值

15. 全局变量和局部变量

16. 学生管理系统框架

17. 学生管理系统的增加和查看模块的编写

18. 学生管理系统的修改和删除、家庭作业


二、Python数据分析

19. Python数据科学入门

20. Python常用库介绍

21. 数据分析环境搭建

22. Numpy数据类型和索引的处理

23. NumpyAPI和矩阵运算

24. Numpy高级特性和通用函数

25. Panda概述和Serise

26. Pandas_DataFrame精讲

27. DataFrame和Series的索引


三、大数据与数据处理

28. 大数据是什么

29. 大数据,人工智能,机器学习三者的关系

30. 数据量与高并发(高并发一定是代表数据量大吗?)

31. hadoop精讲:HDFS简介,架构组成,实操演练

32. hadoop精讲:Mapreduce简介,Wordcount实例,框架流程

33. spark简介,环境搭建,集群安装,实例演示


四、机器学习入门

34. 机器学习简介

35. 机器学习开发环境

36. 机器学习IDE介绍

37. 机器学习基础理论与哲理

38. 机器学习算法分类

39. 机器学习常见任务

40. 数据清洗

41. 数据标准化

42. Python与Sklearn数据标准化实践

43. 机器学习中的相似性度量

44. KNN算法

45. 案例:基于 KNN (sklearn)的鸢尾花卉数据分类

46. 案例:基于 KNN(python)的鸢尾花卉数据分类

47. 一元线性回归

48. 多元线性回归

49. 多项式回归

50. sklearn线性回归实践

51. python线性回归实践

52. 案例:基于线性回归的广告收益分析实战

53. 逻辑回归分类算法

54. 二分类分类器处理多分类问题

55. 案例:基于逻辑回归(sklearn)的鸢尾花卉数据分类

56. 案例:基于逻辑回归(python)的鸢尾花卉数据分类


五、机器学习5大实战

57. 前言

58. 准备工作

59. 高端又一般的词云

60. DCgan人脸图片生成

61. 股票价格预测

62. Tensorflow物体检测

63. 天马行空的Deep Dream

当然任何资料都只是辅助,分享会最重要的是能跟着老师们一起动手实操,学习一线开发的人工智能思维,了解大厂具体工作流,迈出人工智能的最坚实的一步!


福利领取:

扫码添加助教小姐姐微信

回复“人工智能”即可领取

福利1:人工智能入门训练营资格

福利2:人工智能入门与进阶视频资源


登录查看更多
9

相关内容

在数学和计算机科学之中,算法(Algorithm)为一个计算的具体步骤,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。 来自维基百科: 算法
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
264+阅读 · 2020年6月10日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【人大】图实现算法综述与评测分析
专知会员服务
37+阅读 · 2020年4月28日
【经典书】数据结构与算法C++,第二版,738页pdf
专知会员服务
166+阅读 · 2020年3月27日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
354+阅读 · 2020年2月15日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
198+阅读 · 2020年2月11日
AI算法工程师需要哪些核心竞争力
AINLP
7+阅读 · 2019年6月23日
最难求职季如何斩获算法岗
AINLP
3+阅读 · 2019年4月25日
AI领域人才,做什么工作可以年薪百万?
PaperWeekly
3+阅读 · 2018年5月24日
为什么“高大上”的算法工程师变成了数据民工?
数据挖掘入门与实战
5+阅读 · 2018年2月25日
一个年薪30万的应届生告诉你应该如何学“算法”!
全球人工智能
4+阅读 · 2018年1月23日
自然语言处理(4)之中文文本挖掘流程详解(小白入门必读)
机器学习算法与Python学习
5+阅读 · 2017年12月22日
干货 | 机器学习算法大总结(ML岗面试常考)
机器学习算法与Python学习
6+阅读 · 2017年8月1日
Arxiv
92+阅读 · 2020年2月28日
Self-Attention Graph Pooling
Arxiv
13+阅读 · 2019年6月13日
Arxiv
10+阅读 · 2018年4月19日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
264+阅读 · 2020年6月10日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【人大】图实现算法综述与评测分析
专知会员服务
37+阅读 · 2020年4月28日
【经典书】数据结构与算法C++,第二版,738页pdf
专知会员服务
166+阅读 · 2020年3月27日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
354+阅读 · 2020年2月15日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
198+阅读 · 2020年2月11日
相关资讯
AI算法工程师需要哪些核心竞争力
AINLP
7+阅读 · 2019年6月23日
最难求职季如何斩获算法岗
AINLP
3+阅读 · 2019年4月25日
AI领域人才,做什么工作可以年薪百万?
PaperWeekly
3+阅读 · 2018年5月24日
为什么“高大上”的算法工程师变成了数据民工?
数据挖掘入门与实战
5+阅读 · 2018年2月25日
一个年薪30万的应届生告诉你应该如何学“算法”!
全球人工智能
4+阅读 · 2018年1月23日
自然语言处理(4)之中文文本挖掘流程详解(小白入门必读)
机器学习算法与Python学习
5+阅读 · 2017年12月22日
干货 | 机器学习算法大总结(ML岗面试常考)
机器学习算法与Python学习
6+阅读 · 2017年8月1日
Top
微信扫码咨询专知VIP会员