终于有人把监督学习讲明白了

简介: 在机器学习的各种方法中,监督学习是迄今为止成果最令人印象深刻的一种。本文介绍监督学习解决像肺炎诊断这类问题的基本原理。

b53ee8132095f93dd469965846b782a6df84c2.jpg

01 什么是监督学习
要进行监督学习,我们需要从一组样本数据开始,每个样本都带有计算机可以学习的标签。例如:

44f3ef42618a0b814981498b88a2fca9b24dd8.jpg

如你所见,样本可以是很多不同的东西:数据、文本、声音、视频等。此外,标签可以是数值,也可以是类型。数值标签只是一个数值,就像温度–柠檬水转换器一样。类型标签表示预先定义的集合中的某个类别,例如在犬种检测器的例子中。

使用一些想象力,你可以想出很多其他例子来预测一些事物,根据数值或者类型的标签来预测其他事物。

我们假设已经收集了一些标记过的样本。现在可以进行监督学习的两个阶段:

阶段1:训练阶段
我们将带有标签的样本提供给一个用于发现模式的算法。例如,该算法可能会注意到,所有的肺炎扫描图片都具有某些共同的特征(可能是某些不透明的区域),而这些特征在非肺炎扫描图片中是没有的。这个阶段称为训练阶段,因为算法会一遍又一遍地观看样本数据,并学习识别这些模式。

阶段2:预测阶段
现在算法已经知道了肺炎的样子,于是切换到预测阶段。我们可以在这个阶段收获训练工作的成果。向训练过的算法展示未被标注的X光扫描图片,算法会告诉我们它是否具有肺炎特征。

这里还有关于监督学习的另一个例子——一种可以识别动物类型的系统。每个输入数据是一张关于某种动物的图片,每个样本的标签是图片中动物的物种。在训练阶段,我们向算法展示带标签的图像。在预测阶段,我们向算法展示一张未被标注的不带标签的图像,要求算法对该图像的标签进行猜测。

8266a958754eb7e02f5956b8b3d39f09a7742b.jpg

前面已经说过,计算机程序可以在机器学习的过程中“算出”数据。监督学习就是这种过程的一个例子。在传统的编程过程中,可以编写一个程序让计算机由输入算出输出;在监督学习中,只要给出程序输入和输出的样本数据,计算机就能自己学会如何从一个输入算出一个输出。

既然你已经阅读了关于监督学习的一种高屋建瓴的解释,那么可能会有比初学时更多的问题。我们说过,监督学习程序在样本数据中“注意共同的特征”,并“发现模式”—但它是如何做到的呢?让我们从一个抽象的层次开始,看看这个魔法是如何实现的。

02 魔法背后的数学原理
监督学习系统使用函数拟合这一数学概念来理解样本数据与其标签之间的关系。下面我们结合具体实例来介绍这个数学概念的基本原理。

想象一下,你家屋顶上有一块太阳能板。你就像是一个监督学习系统一样,学习太阳能板如何产生能量,并预测在未来某个时间段内产生能量的大小。

预测太阳能板的能量输出需要时间、天气等变量。时间应该是一个重要变量,所以你决定专注于时间这个变量。对于真正的监督学习过程,你应该从收集每天不同时段太阳能板所产生能量大小的样本数据开始。经过几周时间的随机取样之后,你得到了如下数据列表:

91a55251017aa97e511567aec30acf0c3aa079.jpg

上表中的每一行都是包含输入变量(时间)与标签(产生的能量值)的样本数据,就像那个识别动物的系统一样,动物图片是输入,动物名称是标签。

如果你将这些样本数据绘成一幅图表,那么就能很形象地看到时间与太阳能板产能值之间的关系:

d56e8c50964ffdd024437964f1997e2cf86e29.jpg

我们一看就知道,太阳能板不会在夜间产生能量,并且能量值在中午的时间达到了顶峰。如下图所示,虽然监督学习系统没有人脑那样机敏,但是它能够将样本数据近似拟合成某个函数,由此实现对数据的理解。

89f29179750b6c943e64008556c2ae95b5d643.jpg

寻找与样本数据比较接近的拟合函数并不是一件容易的事情。但是,随后的预测阶段就要简单得多。系统会忘记所有的样本信息,并使用找到的拟合函数来预测太阳能板在未来某个时间所产生的能量,例如在正午时产生的能量如下图所示:

2962c6e73e9be500ce106197a4fdf5c6527b48.jpg

这就是我所说的监督学习通过函数拟合的方式实现算法功能。监督学习系统接收的实际样本数据通常是混乱且不完整的。在数据训练阶段,我们通常需要构造一个比较简单的函数来近似拟合比较复杂的实际数据。在预测阶段,则使用所构造的拟合函数实现对未知数据的预测。

作为一名程序员,你已经习惯于考虑很多有可能出错的情形。因此,你可能已经在考虑将样本数据的处理复杂化的方法。例如,太阳能电池板的能量输出除了与时间有关之外,还会受到其他因素的影响,比如云层或月份的影响。

如果收集了所有这些变量的数据,那么我们将会得到一个多维的点云,将无法使用一个简单的图表对这些点云数据进行可视化表示。同样,对于太阳能电池板,我们需要预测的是数值标签。你可能想知道如何将这种数值标签转换成非数值标签(如动物的名称),即类别标签。

你现在只需要知道一点:不管你在上面叠加了多少复杂的东西,监督学习的基本思想就和我们刚才所描述的一样——找一堆样本数据,再找到一个可以近似拟合这些样本数据的函数。

现代监督学习系统非常擅长这种拟合工作。事实上,这种拟合功能可以强大到足以拟合出极其复杂的函数关系——例如X光扫描图片和诊断结论之间的关系。当然,用于拟合这些对应关系的函数对于我们人类而言会是非常复杂的。然而,对于计算机系统而言则是小菜一碟。


本文转载自51CTO,本文一切观点和机器智能技术圈子无关。原文链接
免费体验百种AI能力以及试用热门离线SDK:【点此跳转】

相关文章
Java中使用HttpRequest获取用户真实IP地址端口
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/81357594 import javax.
2026 0
|
10月前
|
前端开发 测试技术 API
GraphQL 中的分页与排序:一分钟浅谈
本文深入介绍了 GraphQL 中的分页与排序功能,解释了为何这些功能在处理大量数据时至关重要,并详细说明了如何通过 `first` 和 `after` 参数实现分页,以及如何使用 `orderBy` 参数进行排序。同时,文章还探讨了常见问题及解决方法,帮助开发者避免陷阱,提升查询性能和用户体验。
237 70
|
10月前
|
存储 缓存 Java
更快、更灵活、场景更丰富,云效镜像构建能力升级啦
本文介绍了云效在镜像构建方面的改进。
582 38
|
10月前
|
存储 安全 Android开发
探索Android系统的最新安全特性
在数字时代,智能手机已成为我们生活中不可或缺的一部分。随着技术的不断进步,手机操作系统的安全性也越来越受到重视。本文将深入探讨Android系统最新的安全特性,包括其设计理念、实施方式以及对用户的影响。通过分析这些安全措施如何保护用户免受恶意软件和网络攻击的威胁,我们希望为读者提供对Android安全性的全面了解。
带你读《5G 系统技术原理与实现》——2.1 概述
带你读《5G 系统技术原理与实现》——2.1 概述
|
机器学习/深度学习 人工智能 达摩院
Speaker Diarization 中的无监督聚类算法
Speaker Diarization 中的无监督聚类算法
709 0
|
存储 安全 Java
分布式微服务学习总结——分布式微服务概述
分布式微服务学习总结——分布式微服务概述
分布式微服务学习总结——分布式微服务概述
|
分布式计算 数据可视化 搜索推荐
阿里云ACA认证证书有什么用?含金量怎么样?
阿里云作为国内云计算行业的龙头老大,其旗下的认证证书含金量是非常高的,今天主要针对ACA证书进行介绍。
3914 0
阿里云ACA认证证书有什么用?含金量怎么样?
|
网络协议 网络性能优化 知识图谱
认识广域网(上)
知识图谱 “广域网”是指地理范围较大,通常跨越城市之间,甚至不同省份、国家,通常由通信运营商建立和经营的网络。这是用户通过租用链路服务的方式来使用的一种网络。随着计算机网络应用的深入,广域通信的需求也日益增长,因此了解广域网的基础知识,掌握常见的广域网协议就变得十分重要了。
585 0
认识广域网(上)
|
前端开发 JavaScript 安全
React18 有哪些变化?
我们越来越能感受到,React的开发者把升级重点放到了「渐进升级」上,那么v18中有哪些新变化、新特性呢?
React18 有哪些变化?