Navigation

    Gpushare.com

    • Register
    • Login
    • Search
    • Popular
    • Categories
    • Recent
    • Tags

    监督学习

    技术分享📚有奖励
    1
    1
    32
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 189****6672
      189****6672 last edited by

      监督学习(SL)是一种机器学习范式,用于解决由标注数据组成的问题,这意味着每个数据点都包含特征(协变量)和相关标签。监督学习算法的目标是学习一种基于示例输入输出对将特征向量(输入)映射到标签(输出)的函数。它从一组训练示例组成的标记训练数据来推断函数。在监督学习中,每个示例都是由输入对象(通常是向量)和期望输出值(也称为监督信号)组成的一对。监督学习算法分析训练数据,并生成可用于映射新示例的推断函数。这要求学习算法以“合理”的方式从训练数据中概括到看不见的情况(归纳偏差)。算法的统计质量通过所谓的泛化误差来衡量。

      要遵循的步骤

      要解决给定的监督学习问题,必须执行以下步骤:

      1. 确定训练示例的类型。在做任何其他事情之前,用户应该决定将哪种数据用作训练集。例如,在手写分析的情况下,这可能是一个手写字符、一个完整的手写单词、一整句手写或一整段手写。
      2. 收集训练集。训练集需要代表函数的实际使用。因此,收集一组输入对象,并从人类专家或测量中收集相应的输出。
      3. 确定学习函数的输入特征表示。学习函数的准确性在很大程度上取决于输入对象的表示方式。通常,输入对象被转换为特征向量,该特征向量包含许多描述对象的特征。特征的数量不应该太多,因为维度的诅咒;但应包含足够的信息以准确预测输出。
      4. 确定学习函数的结构和相应的学习算法。例如,支持向量机或决策树。
      5. 完成设计。在收集的训练集上运行学习算法。一些监督学习算法要求用户确定某些控制参数。这些参数可以通过优化训练集的子集(称为验证集)的性能或通过交叉验证来调整。
      6. 评估学习函数的准确性。在参数调整和学习之后,应在独立于训练集的测试集上测量结果函数的性能。

      算法选择

      有多种监督学习算法可用,每种算法都有其优缺点。没有一种单一的学习算法能在所有监督学习问题上发挥最佳效果(无免费午餐定理)。

      在监督学习中有四个主要问题需要考虑:

      偏差-方差权衡

      第一个问题是偏差和方差之间的权衡。假设我们有几个不同但同样好的训练数据集。

      如果在每个数据集上进行训练时,在预测x的正确输出时,学习算法在系统上是不正确的(与真实结果有差异),那么对于特定的输入x,学习算法是有偏差的。

      如果学习算法在不同的训练集上训练时预测不同的输出值,那么它对于特定的输入x具有很高的方差(不同训练集得到不同的结果)。

      学习分类器的预测误差与学习算法的偏差和方差之和有关。通常,偏差和方差之间存在权衡。低偏差的学习算法必须“灵活”,才能很好地适应数据。但是,如果学习算法过于灵活,它将以不同的方式适应每个训练数据集,因此具有较高的方差。许多监督学习方法的一个关键方面是,它们能够调整偏差和方差之间的权衡(自动或通过提供用户可以调整的偏差/方差参数)。

      功能复杂性和训练数据量

      第二个问题是相对于“真”函数(分类器或回归函数)的复杂性,可用的训练数据量的大小。如果真函数很简单,那么具有高偏差和低方差的“不灵活”学习算法将能够从少量数据中学习它。但是,如果真正的函数非常复杂(例如,因为它涉及许多不同输入特征之间的复杂交互,并且在输入空间的不同部分表现不同),那么该函数将只能使用大量的训练数据和低偏差和高方差的“灵活”学习算法进行学习。

      输入空间的维数

      第三个问题是输入空间的维度。如果输入特征向量具有大的维数,即使真实的函数只依赖于这些特征中的一小部分,学习函数也会很困难。这是因为许多“额外”维度会混淆学习算法并导致其具有高方差。因此,大维度的输入数据通常需要调整分类器以具有低方差和高偏差。在实践中,如果工程师能够从输入数据中手动删除不相关的特征,那么很可能会提高学习函数的准确性。此外,有许多用于特征选择的算法寻求识别相关特征并丢弃不相关的特征。这是降维的更一般策略的一个例子,该策略试图在运行监督学习算法之前将输入数据映射到较低维空间。

      输出值中的噪声

      第四个问题是期望输出值(监控目标变量)中的噪声程度。如果期望的输出值经常不正确(由于人为错误或传感器错误),则学习算法不应试图找到与训练示例完全匹配的函数。试图过于仔细地拟合数据会导致过拟合。如果你试图学习的函数对于你的学习模型来说太复杂,即使没有测量误差(随机噪声),也可能过拟合。在这种情况下,目标函数中无法建模的部分会“破坏”你的训练数据——这种现象被称为确定性噪声。当存在任何一种类型的噪声时,最好使用较高偏差、较低方差的估计器。

      在实践中,有几种方法可以减轻输出值中的噪声,例如提前停止以防止过拟合,以及在训练监督学习算法之前检测和去除噪声训练示例。有几种算法可以识别有噪声的训练示例,并在训练之前去除可疑的有噪声训练示例,从而减少了具有统计意义的泛化误差。

      其他需要考虑的因素

      选择和应用学习算法时要考虑的其他因素包括:

      1. 数据的异质性。如果特征向量包括许多不同类型的特征(离散、离散有序、计数、连续值),则某些算法比其他算法更容易应用。许多算法,包括支持向量机、线性回归、逻辑回归、神经网络和最近邻方法,要求输入特征是数字的,并缩放到相似的范围(例如,到[-1,1]区间)。使用距离函数的方法,如最近邻方法和具有高斯核的支持向量机,对此特别敏感。决策树的一个优点是它们可以轻松处理异构数据。
      2. 数据冗余。如果输入特征包含冗余信息(例如,高度相关的特征),由于数值不稳定性,一些学习算法(例如,线性回归、逻辑回归和基于距离的方法)将表现不佳。这些问题通常可以通过实施某种形式的正则化来解决。
      3. 存在相互作用和非线性。如果每个特征对输出有独立的贡献,那么基于线性函数(例如线性回归、逻辑回归、支持向量机、朴素贝叶斯)和距离函数(例如最近邻方法、具有高斯核的支持向量机)的算法通常表现良好。然而,如果特征之间存在复杂的交互,那么决策树和神经网络等算法会更好地工作,因为它们是专门为发现这些交互而设计的。也可以应用线性方法,但工程师在使用它们时必须手动指定相互作用。

      当考虑一个新的应用时,工程师可以比较多种学习算法,并通过实验确定哪种算法对手头的问题最有效(交叉验证)。调整学习算法的性能可能非常耗时。给定固定的资源,花更多的时间收集额外的训练数据和更多的信息特征通常比花额外的时间调整学习算法要好。

      算法

      最广泛使用的学习算法是:

      1. 支持向量机
      2. 线性回归
      3. Logistic回归
      4. 朴素贝叶斯
      5. 线性判别分析
      6. 决策树
      7. K最近邻算法
      8. 神经网络(多层感知器)
      9. 相似性学习

      监督学习算法如何工作

      给定一组形式为(x1,y1),…,(xN,yN)的N训练示例,使得xi是第i个示例的特征向量,yi是其标签(即类),学习算法寻找函数g:X−>Y,其中X是输入空间,Y是输出空间。函数g是所有可能的函数G中的某个空间的元素,通常称为假设空间。有时,使用评分函数f:X×Y−>R来表示g是方便的,这样g被定义为g(x)=arg⁡maxyf(x,y)。设F表示评分函数的空间。

      尽管G和F可以是任意函数空间,但许多学习算法都是概率模型,其中g采用条件概率模型g(x)=P(y∣x)的形式,或者f采用联合概率模型f(x,y)=P(x,y)。例如,朴素贝叶斯和线性判别分析是联合概率模型,而逻辑回归是条件概率模型。

      两种选择f或g的基本方法:经验风险最小化和结构风险最小化。经验风险最小化寻求最适合训练数据的函数。结构风险最小化包括控制偏差/方差权衡的惩罚函数。

      在这两种情况下,假设训练集由独立且相同分布的样本对组成,(xi,yi)。为了测量函数与训练数据的拟合程度,定义了一个损失函数L:Y×Y→R≥0。对于训练示例(xi,yi),预测值y^的损失是L(yi,y^)。

      函数g的风险R(g)被定义为g期望损失。这可以根据训练数据估计为

      img

      经验风险最小化

      在经验风险最小化中,监督学习算法寻求最小化R(g)的函数g。因此,可以通过应用优化算法来找到g来构造监督学习算法。

      当g是条件概率分布P(y∣x)并且损失函数是负对数似然:L(y,y^)=−log⁡P(y∣x),则经验风险最小化等价于最大似然估计。

      当G包含许多候选函数或训练集不够大时,经验风险最小化会导致高方差和差的泛化性。学习算法能够记忆训练示例而却不能很好地概括。这称为过拟合。

      结构风险最小化

      结构风险最小化旨在通过在优化中加入正则化惩罚来防止过拟合。正则化惩罚可以被视为实现奥卡姆剃刀的一种形式,它更喜欢简单的功能而不是更复杂的功能。

      已经有各种各样的惩罚来应对不同程度的复杂度。例如,考虑函数g是以下形式的线性函数的情况

      img

      .

      一种流行的正则化惩罚是∑jβj2,是权重的平方欧几里得范数,也称为L2范数。其他范数包括L1范数∑j|βj|、和L0“范数”,这是非零βjs的数目。惩罚将用C(g)表示。

      监督学习优化问题是找到最小化

      img

      参数λ控制偏差方差权衡。当λ=0时,这给出了具有低偏差和高方差的经验风险最小化。当λ较大时,学习算法将具有高偏差和低方差。{λ的值可以通过交叉验证根据经验选择。

      复杂度惩罚的贝叶斯解释为gt−log⁡P(g)的负对数先验概率,在这种情况下,J(g)是g的后验概率。

      生成式训练

      上述训练方法是有判别式训练方法,因为它们试图找到一个函数g,能够很好地区分不同的输出值。对于f(x,y)=P(x,y)是联合概率分布,损失函数是负对数似然−∑ilog⁡P(xi,yi)的特殊情况,风险最小化算法被称为执行生成式训练,因为f可以被视为解释数据如何生成的生成模型。生成训练算法通常比判别训练算法更简单,计算效率更高。在某些情况下,可以像朴素贝叶斯和线性判别分析那样以封闭形式计算解。

      Approaches and algorithms

      分析性学习

      人工神经网络

      反向传播

      增强(元算法)

      贝叶斯统计

      基于案例的推理

      决策树学习

      归纳逻辑编程

      高斯过程回归

      遗传编程

      数据处理的分组方法

      核估计量

      学习自动机

      学习分类器系统

      学习矢量量化

      最小消息长度(决策树、决策图等)

      多线性子空间学习

      朴素贝叶斯分类器

      最大熵分类器

      条件随机场

      最近邻算法

      可能近似正确的学习(PAC)学习

      Ripple down规则,一种知识获取方法

      符号机器学习算法

      亚对称机器学习算法

      支持向量机

      最小复杂度机器(MCM)

      随机森林

      分类器集合

      顺序分类

      数据预处理

      处理不平衡的数据集

      统计关系学习

      Proaftn,一种多标准分类算法

      1 Reply Last reply Reply Quote 0
      • First post
        Last post