【算法工程师】成为一名优秀的机器学习算法工程师所需知识及资料汇总-附思维导图

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 成为一名优秀的机器学习算法工程师所需要具备的技能和知识,包括理论基础、数学能力、编程技能、实践经验以及对特定领域的深入了解,并提供了学习资源和面试准备建议。

1.png

华为机器学习工程师招聘内容

1、负责统计机器学习、深度学习、强化学习等模型的研发工作,包括但不限于基础的算法或模型,如CNN、RNN、DNN、DQN等;
2、支撑以上模型的基础算法或算子优化,如模型压缩、卷积算法加速等,实现极致的性能;
3、负责大规模分布式凸优化和非凸优化算法、高性能通信技术的研发,充分挖掘软、硬件的优势,实现业界领先的AI框架和平台;
4、负责一站式的端到端AI平台,包括智能标注、特征工程、模型开发、自动学习和训练、推理等。职

必备技能

机器学习算法工程师,指的是有机器学习,数据挖掘,自然语言处理,分布式计算等方面工作的人员。
通过对招聘要求的解读,总结一个优秀的算法工程师大致需要以下技能

  • [ ] 算法功底
  • [ ] 大规模数据挖掘相关技术,掌握Hadoop或Spark技术
  • [ ] 机器学习理论基础
  • [ ] 熟练掌握一个深度学习框架(Tensorflow、keras、Pytorch)
  • [ ] 熟悉数据挖掘算法的原理、实现与应用
  • [ ] 熟悉机器学习常用算法,包括LR、SVM、GBDT、Xgboost、DNN等(一般面试会要求熟悉公式推导)
  • [ ] 对以下某个领域有深度研究的优先

  • 文本数据挖掘

  • 推荐系统
  • CV
  • 知识表示及推理、问答系统
  • 机器学习平台或大规模数据处理平台

建议汇总

  1. 打好数学理论基础,将机器学习的所有算法公式推导一遍,并记住,面试会问公式推导。建议反复看李航老师的《统计学学习方法》,周志华老师的《机器学习》
  2. 多打比赛,将所学知识应用到实际业务中,给予自己正向的学习反馈,知道自己该学什么,学的知识有什么实际作用能解决什么问题。认证的打完每一个比赛,并做好复盘笔记,这将会自己的实际项目。面试时考官会详细问,并可能当即登录你平台查看你的比赛成绩和提交记录。
  3. 掌握Python、R、C++、Scala等编程语言,每多会一个,多给自己一个机会
  4. 面试前刷算法题是必备,面试必考算法题
  5. 对某一个领域用较深的研究,比如NLP、CV等等
  6. 在校期间多打数学建模比赛,增强自己数模的能力,在面试和实际工作中,都是加分项。
  7. 最好掌握一项大数据开发工具,Spark或hadoop。有的是加分项有的是必需项。

1 机器学习理论

1.1 基础理论

网课《Learning from Data》机器学习基石
网课《机器学习-吴恩达》
所谓基础理论,指的是不涉及任何具体模型,而只关注“学习”这件事本身的一些理论。以下是一些比较有用的基础概念:
(1)VC维
学习资料

VC维是一个很有趣的概念,它的主体是一类函数,描述的是这类函数能够把多少个样本的所有组合都划分开来。VC维的意义在哪里呢?它在于当你选定了一个模型以及它对应的特征之后,你是大概可以知道这组模型和特征的选择能够对多大的数据集进行分类的。此外,一类函数的VC维的大小,还可以反应出这类函数过拟合的可能性。

(2)信息论

从某种角度来讲,机器学习和信息论是同一个问题的两个侧面,机器学习模型的优化过程同时也可以看作是最小化数据集中信息量的过程。对信息论中基本概念的了解,对于机器学习理论的学习是大有裨益的。例如决策树中用来做分裂决策依据的信息增益,衡量数据信息量的信息熵等等,这些概念的理解对于机器学习问题神本的理解都很有帮助。这部分内容可参考《Elements of Information Theory》这本书。

(3)正则化和bias-variance tradeoff

如果说现阶段我国的主要矛盾是“人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾”,那么机器学习中的主要矛盾就是模型要尽量拟合数据和模型不能过度拟合数据之间的矛盾。而化解这一矛盾的核心技术之一就是正则化。正则化的具体方法不在此讨论,但需要理解的,是各种正则化方法背后透露出的思想:bias-variance tradoff。在不同利益点之间的平衡与取舍是各种算法之间的重要差异,理解这一点对于理解不同算法之间的核心差异有着非常重要的作用。

(4)最优化理论

绝大多数机器学习问题的解决,都可以划分为两个阶段:建模和优化。所谓建模就是后面我们会提到的各种用模型来描述问题的方法,而优化就是建模完成之后求得模型的最优参数的过程。机器学习中常用的模型有很多,但背后用到的优化方法却并没有那么多。换句话说,很多模型都是用的同一套优化方法,而同一个优化方法也可以用来优化很多不同模型。对各种常用优化方法的和思想有所有了解非常有必要,对于理解模型训练的过程,以及解释各种情况下模型训练的效果都很有帮助。这里面包括最大似然、最大后验、梯度下降、拟牛顿法、L-BFGS等。

1.2 有监督学习

1.3 无监督学习

  • 聚类方法
    • kmeans
    • DBSCAN
    • 层次聚类
  • 混合高斯模型
  • LSI
  • pLSA
  • LDA
  • PCA
  • SVD
  • NMF
  • word2vc
  • 嵌入表示(embedding representation)
  • HMM 隐马尔可夫模型
    学习资料

2 数学基础

(1)概率论

  • 大数定理&中心极限定理
  • 常用概率分布
  • 假设检验理论

(2)参数估计方法

  • 最大似然理论
  • 最大后验理论
  • EM算法

(3)理论

  • 贝叶斯理论
  • 贝叶斯分类错误率

(4)离散数据分布

  • 伯努利分布、二项分布、多项分布、Beta分布、狄里克莱分布以及泊松分布
  • 高斯分布和指数分布族

3 特征处理和工程

  • 特征选择和特征提取,参考:特征提取与特征选择
    学习资料
  • 特征规范化
  • 特征离散化
  • 特征交叉和组合

4 必备工具

4.1 单机开发工具

numpy、sklearn、pandas、 matplotlib、libsvm、liblinear、 xgboost 等等

4.2 大数据开发工具

Spark、hadoop、 Hive、Storm

如何用形象的比喻描述大数据的技术生态?Hadoop、Hive、Spark 之间是什么关系?

5 ML算法补充资料

  • 梯度下降法,参考:gradient descent
    学习资料

  • 牛顿法,参考:牛顿法
    学习资料

  • 线性判别分析,参考:线性判别
    学习资料

  • 深度学习 - 深度学习概述:从感知机到深度网络
    学习资料

  • Apriori 算法 - 参考地址: Apriori 关联分析
    学习资料

  • 更多更系统知识参考李航老师的《统计学学习方法第2版》

6 面试题目

6.1 机器学习公共知识

第一部分


  1. 过拟合欠拟合(举几个例子让判断下,顺便问问交叉验证的目的、超参数搜索方法、EarlyStopping)
  2. L1正则和L2正则的做法、正则化背后的思想(顺便问问BatchNorm、Covariance Shift)、L1正则产生稀疏解原理
  3. 逻辑回归为何线性模型(顺便问问LR如何解决低维不可分、从图模型角度看LR和朴素贝叶斯和无监督)
  4. 几种参数估计方法MLE/MAP/贝叶斯的联系和区别
  5. 简单说下SVM的支持向量(顺便问问KKT条件、为何对偶、核的通俗理解)
  6. GBDT随机森林能否并行(顺便问问bagging boosting)
  7. 生成模型判别模型举个例子
  8. 聚类方法的掌握(顺便问问Kmeans的EM推导思路、谱聚类和Graph-cut的理解)
  9. 梯度下降类方法和牛顿类方法的区别(顺便问问Adam、L-BFGS的思路)
  10. 半监督的思想(顺便问问一些特定半监督算法是如何利用无标签数据的、从MAP角度看半监督)
  11. 常见的分类模型的评价指标(顺便问问交叉熵、ROC如何绘制、AUC的物理含义、类别不均衡样本)
  12. CNN中卷积操作和卷积核作用
  13. maxpooling作用
  14. 卷积层与全连接层的联系
  15. 梯度爆炸和消失的概念(顺便问问神经网络权值初始化的方法、为何能减缓梯度爆炸消失、CNN中有哪些解决办法、LSTM如何解决的、如何梯度裁剪、dropout如何用在RNN系列网络中、dropout防止过拟合)
  16. 为何卷积可以用在图像/语音/语句上(顺便问问channel在不同类型数据源中的含义)

第二部分


以下牛客网作者:zakexu

常见面试题(由于有的面试时间较久,主要靠记忆写下来)

  1. 几种模型( svm , lr , gbdt , em )的原理以及公式推导;
  2. rf , gbdt 的区别; gbdt , xgboost 的区别(烂大街的问题最好从底层原理去分析回答);
  3. 决策树处理连续值的方法;
  4. 特征选择的方法;
  5. 过拟合的解决方法;
  6. kmeans 的原理,优缺点以及改进;
  7. 常见分类模型( svm ,决策树,贝叶斯等)的优缺点,适用场景以及如何选型;
  8. svm 为啥要引入拉格朗日的优化方法;
  9. 假设面试官什么都不懂,详细解释 CNN 的原理;
  10. 海量的 item 算文本相似度的优化方法;
  11. 梯度下降的优缺点;
  12. em 与 kmeans 的关系;
  13. L1 与 L2 的区别以及如何解决 L1 求导困难;
  14. 如何用尽可能少的样本训练模型同时又保证模型的性能;
  15. 解释 word2vec 的原理以及哈夫曼树的改进;
  16. 对推荐算法的未来看法;
  17. 在模型的训练迭代中,怎么评估效果;
  18. 有几个 G 的文本,每行记录了访问 ip 的 log ,如何快速统计 ip 出现次数最高的 10 个 ip ;如果只用 linux 指令又该怎么解决;
  19. 一个绳子烧完需要 1 个小时,假设所有绳子的材质都不一样,也不均匀,怎么取出 1 小时加 15 分钟;
  20. 假设有个 M*N 的方格,从最左下方开始往最右上方走,每次只能往右或者往上,问有多少种走法,假设中间有若干个格子不能走,又有多少种走法;
  21. 实现 hmm 的状态转移代码;
  22. 最短路径代码;
  23. 拼车软件是如何定价的以及如何优化;
  24. 100 张牌,每次只能抽一张,抽过的牌会丢掉,怎么选出最大的牌;
  25. 怎么预测降雨量;
  26. kmeans 代码;
  27. mr 方案解决矩阵相乘的代码
  28. SVM有哪些核函数?如何选择?
  29. 决策树算法?什么是熵?
  30. 随机森林算法?优缺点?
  31. 逻辑回归算法?
  32. 预测的评价指标有哪些?
  33. 如何处理过拟合?
  34. 推导逻辑回归?
  35. L1正则为什么能让系数变为0?
  36. L1正则怎么处理0点不可导的情形?

6.2 NLP+推荐系统

第一部分


  1. CRF跟逻辑回归 最大熵模型的关系
  2. CRF的优化方法
  3. CRF和MRF的联系
  4. HMM和CRF的关系(顺便问问 朴素贝叶斯和HMM的联系、LSTM+CRF 用于序列标注的原理、CRF的点函数和边函数、CRF的经验分布)
  5. WordEmbedding的几种常用方法和原理(顺便问问language model、perplexity评价指标、word2vec跟Glove的异同)
  6. topic model说一说
  7. 为何CNN能用在文本分类
  8. syntactic和semantic问题举例
  9. 常见Sentence embedding方法
  10. 注意力机制(顺便问问注意力机制的几种不同情形、为何引入、seq2seq原理)
  11. 序列标注的评价指标
  12. 语义消歧的做法
  13. 常见的跟word有关的特征
  14. factorization machine
  15. 常见矩阵分解模型
  16. 如何把分类模型用于商品推荐(包括数据集划分、模型验证等)
  17. 序列学习、wide&deep model(顺便问问为何wide和deep)

7 学习书籍汇总

7.1 基础理论

  1. 《机器学习》周志华
  2. 《统计学方法》李航
  3. 《深度学习花书》
  4. 《百面机器学习》
  5. 《数据挖掘导论》

7.2 业务方向

(1)自然语言处理

  • 《统计自然语言处理第2版》

(2)大数据

  • 《数据挖掘导论》
  • 《大数据spark 企业级实战》

(3)算法

  • 《Labuladong的算法小抄》
  • 《剑指Offer》

8 网课汇总

  1. 李宏毅-机器学习
  2. 李宏毅-深度学习
  3. 吴恩达机器学习
  4. 吴恩达深度学习
  5. cs231n-深度学习之计算机视觉
  6. cs224n-深度学习之自然语言处理
  7. cs224w-机器学习之图神经网络
  8. 《统计学学习方法》-李航
目录
相关文章
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
5天前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
18 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
13天前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
9天前
|
机器学习/深度学习 算法 Python
探索机器学习中的决策树算法:从理论到实践
【10月更文挑战第5天】本文旨在通过浅显易懂的语言,带领读者了解并实现一个基础的决策树模型。我们将从决策树的基本概念出发,逐步深入其构建过程,包括特征选择、树的生成与剪枝等关键技术点,并以一个简单的例子演示如何用Python代码实现一个决策树分类器。文章不仅注重理论阐述,更侧重于实际操作,以期帮助初学者快速入门并在真实数据上应用这一算法。
|
14天前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
6天前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
10 0
|
14天前
|
机器学习/深度学习 算法
机器学习入门:梯度下降算法(上)
机器学习入门:梯度下降算法(上)
|
14天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
1天前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
9天前
|
算法
基于粒子群算法的分布式电源配电网重构优化matlab仿真
本研究利用粒子群算法(PSO)优化分布式电源配电网重构,通过Matlab仿真验证优化效果,对比重构前后的节点电压、网损、负荷均衡度、电压偏离及线路传输功率,并记录开关状态变化。PSO算法通过迭代更新粒子位置寻找最优解,旨在最小化网络损耗并提升供电可靠性。仿真结果显示优化后各项指标均有显著改善。