5月8日,谷歌召开一年一度的Google I/O大会,谷歌CEO直接祭出了这次大会的王牌——AI。
在现场演示的整段对话中,Google Assistant表现的自然流畅,理发店那头丝毫没有察觉到,自己竟然是在和AI对话!
AI的发展正在以我们难以预期的速度突飞猛进,可以预见未来几年人工智能领域的竞争将会有多激烈。
近期由腾讯发布的报告显示,国内的AI人才缺口达100万甚至更多,而当前AI领域合格的研究人员仅有不超过30万人,数额差之大可见企业在AI领域的“求贤若渴”。
2018年以及未来的几年内,AI人才将是互联网企业发展的关键因素。
图片来源:腾讯研究院-全球人工智能人才白皮书
在这波巨大的热潮下,我们应该如何跻身AI领域快速实现自我呢?
AI领域并不仅仅包括机器学习。曾经,符号与逻辑被认为是AI实现的关键,如今则是基于统计的机器学习占据了主导地位。最近火热的深度学习正是机器学习中的子项。
目前可以说,学习AI主要就是学习机器学习。想要成为一名合格的机器学习工程师,不仅需要扎实的理论基础,而且需要丰富的项目实战经验。除了通用技能以外,需要掌握的技能还有很多,大概就是下图这样子的↓
(拉到文末获取高清图表)
对于机器学习工程师来说,想要入门,先得解决以下三个基础知识拦路虎。
基础一:数学基础
线性代数和微积分基础
统计学相关基础
相关线性分析
基础二:编程基础
掌握相关的编程语言,比如 C++ / Python / Go / Java 等,目前 Python 是机器学习深度学习领域最主流的编程语言,热的发烫。
基础三:机器学习的基础
对基础概念的理解,比如拟合、关联规则(Apriori、FP-Growth)、回归(Linear Regression、Logistics Regression)、决策树(ID3、C4.5、CART、GBDT、RandomForest)、降维……等等。
在互联网领域从事机器学习的人,有下列两类背景的人比较多:
1.程序员出身,这类同学工程经验相对会多一些
2.学数学统计领域出身,这部分同学理论基础相对扎实一些。
因此对比上图,2类同学入门机器学习,所欠缺和需要加强的部分是不一样的。下面就上述图中的部分,展开来分别扯几句:
数学基础
机器学习相对于其他开发工作更有门槛的根本原因就是数学。基本所有常见机器学习算法需要的数学基础,都集中在微积分、线性代数和概率与统计当中。
典型算法
绝大多数问题用典型机器学习的算法都能解决,粗略地列举一下这些方法如下:
机器学习里所说的“算法”与程序员所说的“数据结构与算法分析”里的“算法”略有区别。
前者更关注结果数据的召回率、精确度、准确性等方面,后者更关注执行过程的时间复杂度、空间复杂度等方面。当然,实际机器学习问题中,对效率和资源占用的考量是不可或缺的。
编程语言、工具和环境
看了无数的理论与知识,总归要落到实际动手实现和解决问题上。对初学者而言,Python和R语言是很好的入门语言,很容易上手,同时有活跃的社区支持,丰富的工具包帮助我们完成想法。
基本工作流程
以上我们基本具备了机器学习的必要条件,剩下的就是怎么运用它们去做一个完整的机器学习项目。
工作流程如下: 抽象成数学问题—— 获取数据——特征预处理与特征选择——训练模型与调优——模型诊断——模型融合——上线运行。
这些工作流程主要是工程实践上总结出的一些经验,并不是每个项目都包含完整的一个流程。只有大家自己多实践,多积累项目经验,才会有自己更深刻的认识。
说了这么多,你应该对机器学习都有了基本框架。