Right Way of Learning Machine Learning

作者:雷锋网 亚峰

导语:现在的 AI 科学家大部分是在科研环境中培养出来的,不但欠缺工程化、产品化的经验,而且对于错综复杂的商业环境也并不熟悉。

雷锋网按:“算法”这两字在人工智能圈已然成为“高大上”的代名词,由于不少在校生和职场新人对它的过度迷恋,多名 AI 资深人士均对这一现象表示担忧。李开复曾这样说到:

现在的 AI 科学家大部分是在科研环境中培养出来的,不但欠缺工程化、产品化的经验,而且对于错综复杂的商业环境也并不熟悉,更缺乏解决实际问题所必须的数据资源。
随着开源框架层出不穷,人工智能产品化和商业化进程不断加速,使得算法的门槛逐渐降低,但对工程的要求不断在提高。这种情况下,实际应用和工程能力基础扎实的技术人才变得异常抢手。

其实 AI 新人们在进入职场后也愈发意识到这个问题,那他们该如何提升自己的实战能力?

雷锋网特邀王刚为大家讲述机器学习的实战与应用,王刚根据工程、产品、业务等多个维度帮大家梳理如何系统地去学习机器学习。

嘉宾介绍:

王刚,前乐视大数据总监,现任某电商平台大数据总监。10 年大数据领域工作经验,具有 Hadoop 和 Spark 生态相关技术的实际应用经验。目前专注于机器学习,搜索和推荐系统的设计和开发。

以下为王刚所撰写的正文:

机器学习对很多初学者来说,最大的学习困难和障碍就是模型、算法、“眼花缭乱”的数学公式所带来的抽象感,无法有效的建立起直觉上的理解。所以本文的目的是尝试给初学者具体的学习方式建议,以帮助初学者打通机器学习的任督二脉,然后通过不断的学习和实践,使得自己在机器学习领域的专业能力持续提升。

机器学习与人工智能、深度学习之间的关系

当前被提及的高频词语是“AI人工智能”、“机器学习”、“深度学习”。那这些词语背后所代表的技术之间到底是什么关系呢?充分的理解这个关系,有利于建立起更加系统的专业学习框架。

首先,我们要搞明白机器学习到底学习的是什么,答案是模型“参数”,比如Y=AX+B是个机器学习的模型,通过样本数据,可以学习出参数A和B的确定值。然后基于这两个参数,对模型进行泛化,即对给定的X对Y进行预测。明白了机器学习到底是学习什么之后,我们一起看看下图来搞清楚机器学习与人工智能和深度学习之间的关系。

技术大牛带你走向机器学习“正道”:小朋友才迷信算法,大人们更重视工程实践

如上图所示,人工智能是最大的一个范畴,人工智能的实现目前看主要有两种途径:一种是基于脑科学的方式来实现智能。另一种是基于机器学习的方式来实现智能,这种方式的假设是当学习的数据足够充分,就可以大概率的逼近事实。

再回到公式Y=AX+B,我们可以看到机器学习是通过X和Y来学习出参数A和B,而在机器学习中,X是人工构造的特征,Y是人工进行标注的标签。一句话,机器学习就是通过构造X和Y来学习参数A和B。但通常情况下,构造X和标注Y需要耗用大量的人力和时间。所以,对于如何更智能的构造X和标注Y是机器学习很重要的研究方向。深度学习的一个重要作用就是能够更智能的构造X,即进行更好的特征表示。所以深度学习是机器学习的一个子集。那如何更好的标注Y呢,当前流行的对抗生成网络(GAN)就是一种解决方案。

机器学习需要的基础知识体系

机器学习的三个关键要素是模型、策略、算法。模型指的是具体的机器学习模型,比如决策树、SVM、神经网络、LDA等具体模型。策略指的是最小化模型结构性风险的手段,即避免模型欠拟合和过拟合的应对策略,在这里专指正则化(Regularization)。算法指的是建立好模型之后,如何对模型中的参数进行学习。也即最优化的方法。所以,初学者需要掌握的基础知识为:

1.导数与微积分,以及还需要对泰勒展开式、拉格朗日等定理和公式有充分的掌握。这是进行算法推导的基础中的基础。

2.线性代数,矩阵运算等要做到熟练掌握,因为机器学习的最优化算法中涉及到的复杂计算需要线性代数好矩阵运算的内容。

3.概率论,概率论的基础知识是理解像极大似然、最大熵、EM算法、贝叶斯网络、概率图模型的基础。

4.最优化,机器学习中的模型训练是通过对模型中参数的学习来进行泛化推广。如何对模型中的参数进行学习是最优化要解决的问题。比如线性优化、非线性优化的各种主要方法(比如梯度下降法、牛顿和拟牛顿法等)要有充分的理解。

5.机器学习模型的思想和具体实现方式要理解透彻。

机器学习的应用实践

特征工程,如上面所说就是造X,机器学习实践中大部分的实践都在处理特征工程上。所以真正有机器学习实践经验的人都知道机器学习更多的时间不是高大上的算法,而是苦逼特征工程。工程师每天更多的是基于对业务的深刻理解,通过构建“更好”的特征,持续提升模型的准确度。

推荐系统与搜索系统

当推荐和搜索这些字眼出现在网页中,专业书籍中,或是大部分的培训课程中,更多的是与机器学习和算法关联起来。这种情况的原因可能是为了迎合机器学习在大部分人认知中的“高大上”吧。

在实际的产品设计和开发中,推荐系统和搜索系统是有着一个更大概念的系统架构,绝非仅仅是只有机器学习和算法。其中UI/UE的重要性占比为40%,业务理解重要性占比为30%,数据重要性占比为20%,模型重要性占比为10%。

以推荐系统举例,整个推荐系统的框架应当如下图所示:

下图是电商平台上推荐系统的框架

所以,建议的推荐系统知识学习体系为:

一、推荐系统之整体架构

1.推荐系统的本质、目标及价值

2.一个好的推荐系统的相貌

3.线下零售的促销员与电商平台的推荐系统的关系

3.推荐系统与搜索的关系

4.主流电商平台上的推荐系统学习

5.推荐系统的整体架构图以及如何学习推荐系统

二、推荐系统之策略及模型

  1. 基于规则的推荐算法

  2. 基于内容(Content-Based)的推荐算法

  3. 基于协同过滤(CF)的推荐算法

  4. 基于隐因子(SVD/SVD++/MF/FM/FFM/PLSA/LDA)的推荐算法

  5. 推荐结果的排序模型(GBDT+LR,LTR)

  6. 数学基础及典型最优化算法

7.不同场景下的推荐策略(如在电商平台上,首页、详情页、购物车页、搜索结果页等不同场景下的推荐策略)

8.推荐系统评估

如何评估线下模型,如何评估线上效果

三、推荐系统之特征工程

1.用户画像如何构建

2.特征工程如何构建,以及如何进行特征分析

四、推荐系统之交互体验

如何向用户展示推荐系统的权威性、取得用户的信任、如何帮助用户决策、如何获取用户反馈。

如何开始机器学习

对于大多数人来说,如果以抽象的方式开始学习一项内容肯定不是最好的方式。相反,先建立起直觉,然后建立具体到抽象的映射,再深入学习抽象部分完成对细节部分的掌握,最后循环到具体的应用是适合大多数人的学习方式。所以对于机器学习初学者建议的学习路径为:

步骤一:先选择一门实战性非常强的机器学习及其应用课程进行学习。目标是通过足够多具体的应用,能够深刻理解机器学习的实际使用方式,从而建立起直觉。

步骤二:学习机器学习的理论课程,包括具体的模型算法,最优化方法,以及相关的公式推导。过了这一关,就完成了对机器学习细节的更好掌控。

步骤三:如果能够立刻参与到机器学习的实际项目中是最好不过了。如果不能,可以去完成Kaggle中的一些比赛项目。

最后,也是最最重要的建议,如果要想“更快速”“更高效”的掌握机器学习,找到合适的培训课程进行学习是最合适的方式。用钱买时间,买别人的经验,以更高效的方式掌握机器学习后,这些付出的费用可能仅仅是你工作之后月薪的很小的一部分。

在任督二脉打通之后,可以适当的对分布式存储和计算相关体系的内容进行学习。即靠的是个人的持续修行,在理论与实践循环提升中,成长为真正的专家。

PS:为了推动 AI 人才全面化,雷锋网将为大家提供一个业界顶级的专业 AI 技术培训平台:1024MOOC 。其中王刚老师也会在1024MOOC 开展系统的机器学习实战培训课程,具体开课时间在年后一周左右,请大家持续关注雷锋网(公众号:雷锋网)信息。

雷锋网原创文章,未经授权禁止转载。详情见转载须知。