本文由云 + 社区发表

作者:Java3y

前言

只有光头才能变强

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

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

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

img

核心 AI 代码

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

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

一、术语介绍

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

1.1 人工智能

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

img

《人工智能》电影的剧照

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

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

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

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

“看起来” 像是智能

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

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 公众号"->不好的公众号。 输出结果:好的公众号或者不好的公众号

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

回归例子:知道前几天的 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 机器学习的其他分类

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

及时

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

定时

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

还有:

最后

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

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

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


↙↙↙阅读原文可查看相关链接,并与作者交流