多标签分类

图片您好,habrozhiteli!我们决定举从书由安德烈Burkov的摘录,机器学习,无需额外字,献给分类。

为了描述图中的图像,可以同时使用几个标签:“针叶林”,“山峰”,“道路”。如果标签的可能值数量很大,但是它们都具有与标签相同的性质,则每个标签样本可以转换为多个标签数据,每个标签一个。所有这些新数据将具有相同的特征向量,并且只有一个标签。结果,任务变成了多类分类问题。可以使用“一劳永逸”的策略来解决。与通常的多类分类问题的唯一区别是出现了新的超参数:阈值。如果标签的相似性得分高于阈值,则将该标签分配给输入特征向量。在这种情况下,可以将多个标签分配给一个特征向量。使用控制集选择阈值。

为了解决带有多个标签的分类问题,可以类似地应用自然转换为多类的算法(决策树,逻辑回归,神经网络等)。它们为每个类返回一个估计值,因此我们可以定义一个阈值,然后为一个接近度得分超过此阈值的特征向量分配几个标签。

使用二进制交叉熵作为成本函数,自然可以在多标签分类中训练神经网络。在这种情况下,神经网络的输出层每个标签有一个节点。输出层中的每个节点都有S型激活功能。因此,每个标签l是二进制的图片其中,l = 1,...,L且i = 1,...,N的概率的二进制交叉熵图片样品xi是标记的1-,定义为图片

最小化的标准-所有训练样本中的简单平均值二进制交叉熵的所有成员的及其所有标签。

在可能的标签值数量很少的情况下,您可以尝试将具有多个标签的分类问题转换为多类分类问题。想象以下问题。您需要为图像分配两种类型的标签。第一类标签可以具有两种可能的含义:{ 照片,绘画 }; 第二种标记可以具有三种可能的含义:{ 纵向,横向,其他}。对于两个源类的每种组合,您可以创建一个新的哑类,例如:

图片

现在我们拥有相同的标记数据,但是我们用一个虚拟标签替换了一组真实标签,这些虚拟标签的值介于1到6之间。实际上,如果没有太多可能的类组合,则此方法会产生良好的结果。否则,需要使用更多的训练数据来补偿班级数量的增加。

后一种方法的主要优点是,标签保持关联,这与上述方法不同,后者相互独立地预测每个标签。在许多任务中,标签之间的相关性可能是一个重要因素。例如,假设您要将电子邮件分为垃圾邮件垃圾邮件,同时又与普通且重要。您可能希望排除诸如[ 垃圾邮件,重要 ]之类的预测

7.5。合奏训练


我们在第3章中介绍的基本算法有其局限性。由于其简单性,有时他们无法创建对您的任务足够有效的模型。在这种情况下,您可以尝试使用深度神经网络。但是,在实践中,深度神经网络需要大量的标记数据,而您可能没有。提高简单学习算法有效性的另一种方法是使用集成训练

集成训练是一种训练范例,它不仅基于训练一个超级正确模型,而且基于大量精度不高的模型并结合这些模型给出的预测来获得更正确的元模型

精度低的模型通常由弱学习算法训练,这些算法不能训练复杂的模型,因此在训练和预测阶段显示出很高的速度。大多数情况下,决策树学习算法被用作弱算法,该算法通常会在几次迭代后停止破坏训练集。结果是很小的树并且不是很规则的树,但是,正如训练整体的想法所说的那样,如果树不相同并且每棵树至少比随机猜测好一点,我们可以通过组合大量这样的树来获得高精度。

获取条目的最终预测x,使用某种加权投票的方法组合所有弱模型的预测。对选票进行加权的具体形式取决于算法,但本质并不取决于算法:如果总体上弱模型预测电子邮件为垃圾邮件,则将垃圾邮件标签x分配给样本 训练合奏的两种主要方法是加强套袋(聚合)。促进和装袋这两个术语的翻译不准确且不习惯。



7.5.1。提振和装袋


增强方法是使用初始训练数据,并使用弱算法迭代创建几个模型。

每个新模型都与以前的模型不同,在构造它时,一个弱算法试图“修复”先前模型所产生的错误。最终的集成模型是这些许多弱迭代构建模型的组合。

套袋的本质是创建大量训练数据的“副本”(每个副本与其他副本略有不同),然后对每个副本应用一个弱算法,以获得多个弱模型,然后将它们组合在一起。一种基于装袋思想的广泛使用且高效的机器学习算法是随机森林

7.5.2。随机森林


“经典”装袋算法的工作原理如下。从现有训练集中创建B个随机样本图片(每个b = 1,...,B),并在每个样本的基础上图片构建图片决策树模型为了得到图片某个b的样本,需要制作一个带有替换样本也就是说,首先创建一个空样本,然后从训练集中选择一个随机样本,并将其精确副本放置在中图片,而样本本身仍保留在原始训练集中。继续选择数据直到满足条件为止,图片

通过训练,获得了B个决策树。在回归的情况下,将新样本x的预测确定为B的平均值 预报

图片

或在分类的情况下以多数票通过。

随机森林与经典套袋只有一个不同。它使用一种改进的树学习算法,该算法在学习过程中进行每次拆分,都会检查特征的随机子集。这样做是为了消除树之间的相关性:如果一个或多个特征具有较大的预测能力,则许多树会选择它们来拆分数据。这将导致大量“相关树木”出现在“森林”中。具有高预测能力的符号相关阻止了预测精度的提高。好的模型最有可能与同一预测相吻合,而坏模型则不太可能与之吻合并且给出不同的预测,这说明了模型集成的高效率。相关性将使较差的模型更有可能达成共识,这会扭曲投票方式或影响平均值。

进行调整最重要的超参数是树B的数量和每次分割必须考虑的特征随机子集的大小。
随机森林是最广泛使用的集成学习算法之一。是什么决定了它的有效性?原因是通过使用原始数据集中的几个样本,我们减少最终模型方差。请记住,低方差意味着再培训的易感性当模型试图解释数据集中的微小变化时,就会发生重新训练,因为数据集只是我们尝试模拟的现象的所有可能示例的一小部分。如果无法成功地形成训练集,则可能会出现一些不良(但不可避免)的伪像:噪声,异常,代表性数据过多或不足。通过创建几个随机样本并替换训练集,我们减少了这些伪影的影响。

7.5.3。梯度提升


基于提升思想的另一种有效的整体训练算法是梯度提升。首先,考虑在回归中使用梯度增强。我们将开始使用常量模型来构建有效的回归模型图片(就像在ID3中所做的那样):
图片

然后更改训练集中所有样本i = 1,...,N的标签:

图片

在这里,它图片被称为余数,并且是样本的新标签。图片

现在,我们使用带有残差的修改后的训练集而不是原始标签来构建决策树的新模型。图片现在将增强模型定义为图片其中α是学习速度(超参数)。

然后,我们使用公式7.2重新计算残差,再次替换训练数据中的标签,教导决策树的新模型,在重复过程时图片重新定义提升模型图片,直到合并预定的最大M。

让我们直观地了解这里发生了什么。通过计算残差,我们确定当前模型f预测每个训练样本的目标的好坏程度。然后,我们训练另一棵树来纠正当前模型的错误(这就是为什么我们使用剩余部分而不是实际标签的原因),并以一定权重α将新树添加到现有模型中。结果,添加到模型中的每个新树都部分纠正了先前树所犯的错误。该过程一直持续到树的最大数量M(另一个超参数)组合在一起为止。

现在,让我们尝试回答为什么此算法称为梯度增强的问题。在梯度增强中,我们不像第4章中那样解决线性回归问题,不计算梯度。要查看梯度提升和梯度下降之间的相似之处,请记住为什么我们在线性回归中计算梯度:找出参数值的方向以最小化MSE成本函数。渐变显示了方向,但没有显示该方向的距离,因此在每次迭代中,我们都走了很小的一步,然后再次确定了方向。在梯度增强中也会发生同样的事情,但是我们不是直接计算梯度,而是以残差的形式使用其估计值:它们显示了应如何调整模型以减少误差(残差)。

在梯度增强中,可以使用三个主要的超参数进行调整:树的数量,学习速度和树的深度。所有这三个因素都会影响模型的准确性。树木的深度也会影响学习和预测的速度:深度越小,速度越快。

可以证明,通过残差学习可以优化标准误差标准的整体模型f。在这里,您可以看到与套袋的区别:提振可以减少偏见(或缺乏教育),而不是变化。结果,加强训练受到重新训练。但是,通过调整树木的深度和数量,可以大大避免重新训练。

梯度提升与分级任务相似,但步骤略有不同。考虑二进制分类的情况。假设有M个回归决策树。与逻辑回归类似,决策树集合的预测使用S型函数建模:

图片

图片回归树 在哪里

再次,如逻辑回归一样,当试图找到最大化的模型时图片,将应用最大似然原理。同样,为了避免数值溢出,我们将似然对数的总和最大化,而不是似然的乘积。

该算法与初始常数模型开始图片,其中图片(可以示出,这样的初始化为S形函数是最佳的。)然后,在每次迭代米,一个新的树FM被添加到模型中。寻找最佳树图片为了寻找最佳树图片,首先图片为每个i = 1,...,N 计算当前模型的偏导数
图片

其中f是建立在先前迭代m-1上的集成分类器的模型。要计算图片,我们需要找到图片所有i相对于f 的导数注意,图片上式中右项相对于f 导数为
图片

然后,通过替换图片相应偏导数的原始标签对训练集进行变换图片,并在转换后的训练集的基础上构建新树,图片然后,确定最佳更新步骤图片为:
图片

在迭代m的末尾,我们通过图片添加新树来更新集成模型图片
图片

迭代一直进行到满足m = M的条件为止,此后训练停止并获得集成模型f。

梯度提升是最强大的机器学习算法之一。不仅因为它创建了非常准确的模型,还因为它能够处理具有数百万个数据和功能的海量数据集。通常,它的准确性优于随机森林,但由于其一致性,它的学习速度会慢得多。

All Articles