【干货】监督学习与无监督学习简介

2018-04-13 15:06:12 浏览数 (1)

【导读】本文是一篇入门级的概念介绍文章,主要带大家了解一下监督学习和无监督学习,理解这两类机器学习算法的不同,以及偏差和方差详细阐述。这两类方法是机器学习领域中的最主要任务,由于近年来机器学习、深度学习的火热,目前学术界在监督学习方面取得了极大的进展,在图像、语音、自然语言处理等都取得很大成果。但是自然界中大多数数据都是无标签的,因此,无监督学习在未来很广泛的基础和前景。本文我们带大家一起来了解一下监督学习和无监督学习的主要内容和用途吧。

编译 | 专知

参与 | Yingying

监督学习与无监督学习

理解两类的机器学习算法的不同

在机器学习领域,有两类主要的任务:监督学习和无监督学习。这两种方法的区别在于,监督学习是使用ground truth(有样本的真实标签)完成的,换句话说,我们事先就知道了样本的输出值。因此,监督学习的目标是学习一个函数,已知该函数的样本数据和输出值的情况下,尽最大可能拟合输入和输出间的关系。另一方面,无监督学习中不存在标注过的样本输出值,因此其目标是推断一组数据样本中的内部结构。

监督学习

当我们希望将输入映射到输出时,监督学习通常将其作为分类任务去完成,监督学习中的常用算法包括逻辑回归,朴素贝叶斯,支持向量机,人工神经网络和随机森林。在回归和分类任务中,目标都是找到输入数据中的特定关系,以便我们有效地生成正确的输出数据。请注意,“正确的”输出完全取决于训练数据,因此尽管我们确实有一个ground truth,即我们的模型被假设为真,但这并不意味着现实世界中的数据标签总是正确的,数据标签的噪声将明显降低模型的有效性

进行监督学习时,需要综合考虑模型复杂度与偏差-方差的关系。注意,这两者是互相关联的。

模型的复杂性是指你试图学习的多项式函数的复杂程度。模型复杂程度取决于训练数据的性质,如果数据量很少,或者在不同场景下,数据分布并不均匀,这时应该选择低复杂度模型。这是因为如果在少量数据点上使用高复杂度模型将会导致过拟合。过拟合是指学习到的模型与训练数据非常匹配,但难以泛化至其他数据上。想象一下,如果需要在两点间拟合一条曲线,从理论上说可以使用任意复杂的函数,但在实践中,我们仅仅会使用一条直线来拟合。

偏差-方差

模型通常使用偏差-方差来进行描述。在任何模型中,偏差与方差间存在平衡,偏差是不同训练集间误差的变化。一般情况,高偏差、低方差的模型会有20%的错误率,而低偏差、高方差的模型会出现5-50%的随机错误率,具体情况取决于训练它的数据。偏差和方差通常是互相对立的,增加偏差通常会导致方差降低,反之亦然。在训练模型时,具体问题和数据的性质将指导模型根据偏差变化规律作出选择。一般而言,增加偏差(减少方差)会产生相对稳定的模型,这在某些任务中可能至关重要。此外,为了产生泛化性较好的模型,模型的选择应该根据训练数据的大小和复杂程度而定,通常应该使用低方差模型训练小数据集,使用高方差模型训练大型、复杂的数据集

为了方便大家更好地了解偏差和方差的含义,这里摘自知乎的一段答案。(作者:知乎用户)

首先明确一点,Bias和Variance是针对Generalization(一般化,泛化)来说的。

在机器学习中,我们用训练数据集去训练(学习)一个model(模型),通常的做法是定义一个Loss function(误差函数),通过将这个Loss(或者叫error)的最小化过程,来提高模型的性能(performance)。然而我们学习一个模型的目的是为了解决实际的问题(或者说是训练数据集这个领域(field)中的一般化问题),单纯地将训练数据集的loss最小化,并不能保证在解决更一般的问题时模型仍然是最优,甚至不能保证模型是可用的。这个训练数据集的loss与一般化的数据集的loss之间的差异就叫做generalization error。

而generalization error又可以细分为Bias和Variance两个部分。

首先如果我们能够获得所有可能的数据集合,并在这个数据集合上将loss最小化,这样学习到的模型就可以称之为“真实模型”,当然,我们是无论如何都不能获得并训练所有可能的数据的,所以“真实模型”肯定存在,但无法获得,我们的最终目标就是去学习一个模型使其更加接近这个真实模型。

而bias和variance分别从两个方面来描述了我们学习到的模型与真实模型之间的差距。

Bias是 “用所有可能的训练数据集训练出的所有模型的输出的平均值” 与 “真实模型”的输出值之间的差异;Variance则是“不同的训练数据集训练出的模型”的输出值之间的差异。

这里需要注意的是我们能够用来学习的训练数据集只是全部数据中的一个子集。想象一下我们现在收集几组不同的数据,因为每一组数据的不同,我们学习到模型的最小loss值也会有所不同,当然,它们与“真实模型”的最小loss也是不一样的。

其他答主有提到关于cross validation中k值对bias和variance的影响,那我就从其他方面来举个例子。

假设我们现在有一组训练数据,需要训练一个模型(基于梯度的学习,不包括最近邻等方法)。在训练过程的最初,bias很大,因为我们的模型还没有来得及开始学习,也就是与“真实模型”差距很大。然而此时variance却很小,因为训练数据集(training data)还没有来得及对模型产生影响,所以此时将模型应用于“不同的”训练数据集也不会有太大差异。

而随着训练过程的进行,bias变小了,因为我们的模型变得“聪明”了,懂得了更多关于“真实模型”的信息,输出值与真实值之间更加接近了。但是如果我们训练得时间太久了,variance就会变得很大,因为我们除了学习到关于真实模型的信息,还学到了许多具体的,只针对我们使用的训练集(真实数据的子集)的信息。而不同的可能训练数据集(真实数据的子集)之间的某些特征和噪声是不一致的,这就导致了我们的模型在很多其他的数据集上就无法获得很好的效果,也就是所谓的overfitting(过学习)。

因此,在实际的训练过程中会用到validation set,会用到诸如early stopping以及regularization等方法来避免过学习的发生,然而没有一种固定的策略方法适用于所有的task和data,所以bias和variance之间的tradeoff应该是机器学习永恒的主题吧。

最后说一点,从bias和variance的讨论中也可以看到data对于模型训练的重要性,假如我们拥有全部可能的数据,就不需要所谓的tradeoff了。但是既然这是不现实的,那么尽量获取和使用合适的数据就很重要了。

链接:https://www.zhihu.com/question/27068705/answer/82132134

无监督学习

无监督学习中最常见的是聚类任务、表示学习和密度估计。在这些任务中,我们希望在不提供任何显式标签的情况下,了解数据的内在结构。一些常用算法包括 k-means聚类、主成分分析和自动编码器。由于没有提供标签,因此在大多数无监督学习方法中没有具体方法去比较模型性能。

无监督学习的两种常见用法是探索性分析和降维

无监督学习在探索性分析任务中非常有用,因为它可以自动识别数据关系。例如,如果分析师试图对消费者进行细分,那么无监督方法将成为他们分析的一个很好的入口。在数据趋势不明朗的情况下,无监督学习可以提供初步的指引,用来检验个人的假设。

降维指的是使用较少的特征来表示数据的方法,这一问题可以使用无监督方法完成。在表示学习中,我们希望了解各个特征间的关系,使得我们可以用初始特征间的潜在特征来表示数据。这种稀疏的潜在特征通常比原始特征维度要低,因此可以使得数据特征变得更加稠密,并且可以消除数据冗余。

参考文献:

https://towardsdatascience.com/supervised-vs-unsupervised-learning-14f68e32ea8d

https://www.zhihu.com/question/27068705/answer/82132134

0 人点赞