腾讯云技术分享专栏 外行人都能看得懂的机器学习,错过了血亏!

匿名 · 2019年03月06日 · 1004 次阅读

本文由云 + 社区发表

作者:Java3y

前言

只有光头才能变强

没错,这篇主要跟大家一起入门机器学习。作为一个开发者,” 人工智能 “肯定是听过的。作为一个开发面试者,肯定也会见过” 机器学习 “这个岗位 (反正我校招的时候就遇到过)。

可能还会听过或者见过 “深度学习”、“神经网络” 等等这些非常火的名词,那你对这些术语了解多少呢?

相信大家这几天在朋友圈也可以看到这照片:

img

核心 AI 代码

// 通过if else 以人工穷举的方式来假装实现智能机器人聊天

希望阅读完本文中后,大家可以对这些术语和机器学习有一定的了解。

一、术语介绍

首先我们来简单看看人工智能、深度学习、机器学习这些术语和它们之间的关系究竟是怎么样的。

1.1 人工智能

不知道听到 “人工智能” 大家会联想到什么,可能大多数都会想到科幻电影的机器人。

img

《人工智能》电影的剧照

我们看来看看维基百科的定义:

人工智能(英语:Artificial Intelligence,缩写为 AI)亦称机器智能,指由人制造出来的机器所表现出来的智能。通常人工智能是指通过普通计算机程序的手段实现的人类智能技术。

人工智能也可以分成两类:

  • 强人工智能:强人工智能观点认为 “有可能” 制造出 “真正” 能推理(Reasoning)和解决问题的智能机器,并且,这样的机器将

被认为是具有知觉、有自我意识的

  • 像绝大多数科幻电影中的机器人就是在这范畴

    • 弱人工智能:弱人工智能观点认为 “不可能” 制造出能 “真正” 地推理和解决问题的智能机器,这些机器只不过

“看起来” 像是智能

的,但是并不真正拥有智能,也不会有自主意识。

  • 我们目前阶段的人工智能,其实都是弱人工智能。

1.2 机器学习

不知道听到 “机器学习” 大家会联想到什么。Emmm…反正我就是从字面的意思去理解:“机器可以自我学习”。

首先我们看一下维基百科是怎么说的:

机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近 30 多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科

简单来说:机器学习可以通过大量的数据或者以往的经验自动改进计算机程序/算法

img

什么是机器学习

生成完模型f(x)之后,我们将样例数据丢进模型里边,就可以输出结果:

img

输入样例进模型,输出结果

我们说机器学习可以自我学习,是因为我们会将样例数据也会丢到 “历史数据” 中,这样生成模型就会有一定的改动,从而达到 “自我学习” 的效果。

1.3 它们之间的关系

等等,我们好像还没讲深度学习呢。我们从上面机器学习的介绍也可以知道,机器学习已发展为一门多领域交叉学科,机器学习中就有好多个经典的算法,其中就包含了神经网络 (深度学习可看成是神经网络的升级版)。由于近几年深度学习发展迅猛,一些特有的学习手段相继被提出,所以越来越多的人将其单独看作一种学习的方法。

《机器学习 周志华》:

所谓深度学习,狭义地说就是“很多层” 的神经网络,在若干测试和竞赛下,尤其涉及语音、图像等复杂对象的引用中,深度学习取得优越的性能。

所以我们可以总结出人工智能、机器学习、深度学习之间的关系是这样的:

  • 机器学习,是实现人工智能的重要方法。
  • 深度学习,是实现机器学习的技术。

img

之间的关系

想要了解更多,可参考:

二、机器学习入门

通过上面我们可以简单认为机器学习就是:利用计算机从历史数据找出规律,把这些规律用到未来不确定场景的决策中。

下面我们再来学习一下机器学习的一些入门知识。

2.1 机器学习的术语

特征、样本、数据集、标记这些术语的说明:

img

特征、样本、数据集、标记这些术语的说明

特征 (属性) 所张成的空间叫做特征空间

img

特征空间

例如我们把 “色泽”、"根蒂 “、” 敲声 “作为三个坐标轴,则它们张成一个用于描述西瓜的三围空间,每个西瓜都可在这个空间中找到自己的坐标位置。由于空间中的每个点对应一个坐标向量,我们也把一个示例称为 “特征向量”。

img

特征向量

回到我们上面的图,再来讲讲 “训练数据”、“训练”、“标记”:

img

“训练数据”、“训练”、“标记” 的术语解释

2.2 机器学习的分类

一般机器学习又可以分成以下几类:

  • 监督学习
  • 半监督学习
  • 非监督学习
  • 增强学习

2.2.1 监督学习

监督学习:训练数据 (Training Data) 可以告诉我们要找的那个模型的输入 (Input) 与输出 (Output,也就是我们说的 label) 之间有什么样的关系。

  • 给出的数据都有 “答案” 或 “标记”

训练数据:"Java3y 公众号"->好的公众号 , "Java4y 公众号"->不好的公众号。 输出结果:好的公众号或者不好的公众号

在监听学习下又分为两种算法:

  • 回归 (Regression):结果是一个连续的数值(scalar),而非类别
  • 分类 (Classification):为训练数据进行分类别 (多分类)
    • 二分类:类别只有两种结果 (YES OR NO)

回归例子:知道前几天的 PM2.5 数值,预测一下明天的 PM2.5 数值。

img

回归例子

二分类例子:判断一封邮件是垃圾邮件还是正常邮件。

img

判断是垃圾邮件还是正常邮件

多分类例子:将新闻帖子分类成不同的类别。

img

分类成不同的类别

2.2.2 非监督学习

非监督学习:训练数据 (Training Data) 没有对应 “答案” 或 “标记”

训练数据:"Java3y 公众号" "Java4y 公众号" "Java5y 公众号" "Java6y 公众号" "yyy 公众号" "xxx 公众号" "zzz 公众号" 输出结果:("Java3y 公众号" "Java4y 公众号" "Java5y 公众号" "Java6y 公众号") ("yyy 公众号" "xxx 公众号" "zzz 公众号") 分门类别

对没有 “标记” 的数据进行分类 - 聚类分析

img

对没有 “标记” 的数据进行分类 - 聚类分析

聚类分析例子:在以前,中国移动有三个品牌:神州行、动感地带、全球通。我们给一堆的 SIM 卡交由学习算法训练,不告诉它每张 SIM 卡具体是什么卡,最后我们是可以将这些 SIM 卡分类别出来的

img

非监督学习的意义

img

非监督学习的意义

img

非监督学习的意义

2.2.3 半监督学习

理解了监督学习和非监督学习,对于半监督学习就很容易理解了。

一部分数据有 “标记” 或者 “答案”,另一部分数据没有

  • 因为各种原因产生的标记缺失。

img

部分有 label,部分没有 label

通常都会使用非监督学习手段对数据进行处理 (特征提取、降维),之后再只用监督学习手段做模型的训练和预测。

2.2.4 增强学习

根据周围环境的情况,采取行动,根据采取行动的结果,学习行动方式

img

增强学习

每次行动,就给这次的行动评分,算法会根据评分来评估下一次的行动是好还是坏,最终不断改进。

img

给每次的行动评分

例子:Alpha Go 下每步棋的时候都会评估自己这次下得怎么样,通过最终的结果不断改进下的每步棋。

2.3 机器学习的其他分类

除了我们上面所说的监督学习、非监督学习、半监督学习、增强学习之外,机器学习也可以分成:

  • 在线学习:

及时

将样例数据作为训练数据对模型进行训练。

  • 需要加强对数据进行监控 (有可能样本数据是脏数据,这样就破坏我们的模型)

    • 离线 (批量) 学习:

定时

将样例数据作为训练数据对模型进行训练。

  • 不能很快的适应环境的变化

还有:

  • 参数学习:一旦学到了参数,就不再需要原有的数据集。通过调参数就好了。
  • 非参数学习:不对模型进行过多的假设,非参数不代表没参数。

最后

机器学习的核心在于算法上,这篇只是对机器学习的一个简单的入门,希望能对大家有所帮助。

此文已由腾讯云 + 社区在各渠道发布

获取更多新鲜技术干货,可以关注我们腾讯云技术社区 - 云加社区官方号及知乎机构号

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册