论机器学习工程师的自我修养

对机器学习感兴趣吗?如果你的答案是“yes”的话。那么小编要告诉你,你不是一个人!如今每天都有越来越多的人爱上机器学习。事实上,在当下你很难找到一个像机器学习一样令人充满期待的领域。

机器学习进入我们的集体视线既有创造历史的事件(就像AlphaGo在与世界上最优秀的围棋手的五场比赛中赢了四场一样!)又有非常搞笑的部分(机器学习算法甚至能识别出发推特时是否正在喝酒),但无论你有多了解机器学习,有一点很清楚:机器学习的时代已经到来。

了解机器学习的生态系统

在掌握特定技能之前,还有一个概念需要解决。作为机器学习工程师,你需要了解自己正在设计的整个机器学习生态系统。

打个比方你正在为一家食品杂货连锁店工作,该公司希望根据客户过去的购物史等特点开始发布有针对性的优惠券,目标是创造出那种购物者真正会去使用的优惠券。在数据分析模型中,你可以收集采购数据,进行分析找出趋势,继而提出策略。机器学习的方法则是编写一个优惠券自动生成系统。但是编写这个系统需要什么,如何让这个系统运行起来?你必须了解它涉及的整个生态系统 – 库存,产品样本,定价,采购订单,账单生成,销售点软件,客户关系管理CRM软件等

最终,与这一过程有关的不是去了解机器学习的算法,或者在什么时候如何应用算法,更多的是去了解系统之间的相互关系,编写能够成功地集成和连接系统元素的工作软件。要记住,机器学习输出的实际上是某一工作软件

现在,让我们一起深入了解那些实打实的成为机器学习工程师所需的细节。

技能总结

1
计算机科学基础和编程

对于机器学习工程师来说,具有计算机科学的基础非常重要,包括数据结构(栈,队列,多维数组,树,图等),算法(搜索,排序,优化,动态规划等),可计算性和复杂性(P与NP完全问题,大O符号,近似算法等),还有计算机系统结构(内存,缓存,带宽,死锁,分布式处理等)。

在编程时,你必须能够应用,实施,调整或解决它们(视情况而定)。做练习题,参加编码比赛和黑客马拉松是磨练技能的好方法。

2
概率和统计

概率的正式表征(条件概率,贝叶斯法则,可能性问题,独立性等)以及从中导出的技术(贝叶斯网络,马尔可夫决策过程,隐马尔可夫模型等)是许多机器学习算法的核心; 这些是处理现实世界不确定性的手段。与此密切相关的是统计学领域,它提供了各种指标(均值,中值,方差等),分布(均匀,正态,二项式,泊松分布等)和分析方法(方差分析ANOVA,假设检验等),这些对于从观测数据构建和验证模型来说都是必需的。许多机器学习算法基本上是统计建模的扩展。

3
数据建模与评估

数据建模是估计给定数据集底层架构的过程,其目标是找到有用的模式(相关性,聚类,特征向量等)和/或预测先前看不到的实例的性质(分类,回归,异常检测等)。这一估算过程的关键部分是不断评估给定模型是否达到要求。根据当前的任务,你需要选择适当的准确度/误差(例如,损失函数,回归误差平方和等)和评估策略(划分训练集和测试集,顺序与随机交叉验证等)。迭代学习算法通常直接利用产生的误差来稍稍调整模型(例如,神经网络的反向传播),因此理解这些度量方法对于哪怕只是应用标准算法而言也很重要。

4
运用机器学习算法和各类库

机器学习算法的标准应用可通过广泛的库/包/ API(例如开源框架scikit-learn,Theano,Spark MLlib,H2O,TensorFlow等)获得,但有效地应用它们涉及选择合适的模型(决策树,邻近取样,神经网络,支持向量机,多模型集成等),适合数据的学习过程(线性回归,梯度下降,遗传算法,装袋算法,提升和其他特定模型的方法),以及理解超参数是如何影响学习的。你还需要了解不同方法的相对优缺点,以及可能会让你犯错误的那些地方(偏差和方差,过拟合和欠拟合,缺失数据,数据泄漏等)。参加数据科学和机器学习等挑战,如Kaggle是接触各种问题和它们之间的细微差别的好方法。

5
软件工程和系统设计

最后,机器学习工程师的一般输出或交付成果是软件。它通常是一个能适应更大产品和服务生态系统的小型组件。你需要了解这些不同部分之间是如何协同工作的,与他们交流(使用库函数调用,REST API,数据库查询等),然后为其他人依赖的组件构建适合的接口。

为避免瓶颈,让算法随着数据量的增长而良好地扩展,可能要仔细设计系统。最佳的软件工程实践(包括需求分析,系统设计,模块化,版本控制,测试,文档等)对于提高生产力,加强部门协作,提升产品质量和可维护性而言非常宝贵。

机器学习工作岗位

与机器学习有关的工作正不断增加,因为许多公司都想最大限度地利用好新兴技术。下面的图表描述了核心技能对这些常规类型工作的相对重要性,还有一个典型的数据分析师职位用于对比。

Reference:https://blog.udacity.com/2016/04/5-skills-you-need-to-become-a-machine-learning-engineer.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注