第一类是做数据模型进行推荐、分类、识别、预测等工作的建模型算法工程师,通常JD上也写成数据挖掘工程师、深度学习工程师等。这类大体的工作就是结合业务场景,选择合适的算法模型,将数据进行处理后使用模型获得结果,也被戏称为“调参工程师”。
第二类是做针对性方向的算法研究,包括图像、语音、文本等,其囊括了在外界看来很智能的人脸识别、人脸变换、语音生成、语音识别、新闻推荐、智能对话等功能。和第一类的区别主要在于处理的数据非传统的结构化数据,需要进行针对性的处理,比如图像的取点、二值化,语音的要素提取,文本的分词、向量化等等。当进行了数据处理后,后续选择模型时就和第一类类似了。
不难看出,第二类会比第一类需要一些针对性的知识体系,相对来说更好去做准备。
从学习安排上,可以以如下的学习路线做准备:
一、数学能力基础
无论是否计算机出身,数学方面的能力在算法工作中是非常必要的基础,需要掌握的程度如下:
1、高等数学,主要包括微分和积分、偏微分、向量值函数、方向梯度、泰勒展开等,才能更好理解算法公式,调参原理,以及迭代时梯度的概念等;
2、线性代数,主要是矩阵运算、高维向量、空间运算,这些是理解深度学习向量空间的基础;
3、概率论及数理统计,或者称之为概率学和统计学,要理解,机器学习本质上是一个概率问题,从数据中学习的不确定性,就是在获得概率值。
二、计算机科学能力基础
算法工程师是一个研发性岗位,写代码的能力也是必须的。
1、掌握基本的排序、查找算法
2、熟悉常用的各类数据结构,如数组、树、表
3、将抽象逻辑思路转为代码,能完成leetcode上中等难度的题目
4、有编程语言学习能力,会python更好,其他语言需要花时间了解其语法特点
以上两大基础,如果是工科出身,应该不会需要太久做准备,可以根据缺少的部分来查漏补缺,这些部分在两个月内完成应该问题不大。
后续才是真的开始做算法的学习:
三、机器学习算法能力基础
1、熟悉常用机器学习算法的原理,包括线性回归、逻辑回归、决策树、K均值、SVM、adaboost、CNN、RNN等
2、能够了解各个算法的优劣和适用的数据场景
3、熟悉常用机器学习算法在代码中的实现,深一些是能自己手写实现,浅一些是能通过使用python的包来调用,熟悉参数
4、能够独立完成完整的数据项目,如在kaggle上尝试解决入门的问题,实现从数据处理到模型选择直到输出结果的过程
第三部分是个长久的事情,不断的熟悉算法和使用,并在实际数据项目中来深化,不去公司实习的话,在kaggle上多做尝试可以积累不少经验。
当能掌握这些后,就可算做正式入门了,目前大厂的实习生或者校招生基本就在这个水平程度,想要得到更好的机会或者能在工作中真的有好的产出,需要更多的努力和学习。
-
工程师
+关注
关注
59文章
1566浏览量
68441 -
算法
+关注
关注
23文章
4599浏览量
92641
发布评论请先 登录
相关推荐
评论