首页 > 其他分享 >机器学习基础(4)—— 模型选择之评估方法

机器学习基础(4)—— 模型选择之评估方法

时间:2022-11-22 10:34:53浏览次数:52  
标签:机器 训练 模型 正则 参数 测试 方法 评估


  • 参考:
  1. 西瓜书第二章
  2. 李航《统计学习方法(第二版)》第一章

  • 现实任务中,往往有多种学习方法可供选择,对于同一个方法,使用不同的参数配置,也可以产生不同的模型。选择哪个模型(算法)、使用哪种参数配置,就是机器学习中的模型选择 model selection问题

实践中常说的 “调参”,就是在做模型选择中确定参数配置这件事,更具体地说,是确定超参数

  • 模型选择的关键是设计一个对比各个方法所得模型及其模型参数的规范流程,并利用它从假设空间中选出泛化能力最强的模型,形式化地讲是做以下两件事
  1. 确定模型类型​(决策树、线性回归、神经网络…)·
  2. 确定参数,包括​​模型参数​​​和​​(算法)超参数​​。这一步是模型选择的核心,而比较不同模型(即不同参数)的性能是这一步的核心,“比较” 方法进一步细化为三步
  1. 设计模型性能的 ​评估方法​,本文主要介绍这个
  2. 设计性能的量化指标 ​性能度量​,下篇文章介绍
  3. 设计合适的比较方法,通常用数理统计中的 ​假设检验
  • 从宏观角度看,可以如下绘制概念关系图


文章目录

  • 1. 调参与最终模型
    • 1.1 超参数和模型参数
    • 1.2 调参
    • 1.3 最终模型
  • 2. 模型选择方法
    • 2.1 基于 “策略” 的方法 —— 正则化
    • 2.2 基于测试误差的方法
      • 2.2.1 留出法(hold-out)
      • 2.2.2 交叉验证法(cross validation)
      • 2.2.3 留一法(Leave-One-Out)
      • 2.2.4 自助法(bootstrapping)



1. 调参与最终模型
  • 确定模型类型后,一组模型参数就唯一地确定一个模型,调参(即选择最优参数)是模型选择的主要部分

1.1 超参数和模型参数

  1. 超参数​:超参数是算法本身的参数,需要由人工选择(或是人工指定范围后,使用网格搜索等遍历方式自动选定),会显著影响学得模型的性能,通常在10个以内
  2. 模型参数​:模型参数是算法内部的参数,数量可能很多,由算法在学习/训练过程中自动调整(例如神经网络中连接的权重之类的)

1.2 调参

  • 调参parameter tuning一般指调整超参数 ,但其实两类参数的调节方法和思路类似,即:对所有可能的参数配置产生多个模型(构造假设空间),每种参数配置的模型都进行训练,然后把最好的模型参数作为结果

    1. 对于​​模型参数​​而言,一旦模型确定,结合各参数取值范围,假设空间就确定了,学习方法利用统计学习策略,基于​​经验风险最小化​​或​​结构风险最小化​​进行自动调优。做一次模型参数调优就是完整训练一次,成本较低
    2. 对于​​超参数​​而言,需要人工设定多个候选值用以产生候选模型,通过网格搜索等手段,基于​​测试误差​​进行调优。做一次超参数调优需完整训练多次(每一组超参数一次),成本很高

    注:如果还要在不同方法间做对比,那么每个方法都要做一遍超参数调优,成本会非常高,因此很多论文中,对比方法都会直接使用原始论文推荐的超参数

  • 调节超参数时需要注意

    1. 由于很多超参数都是在一定的取值范围内的连续型变量,因此对每种参数配置都训练是不可能的
    2. 通常的做法是:对每个参数选择一个变化范围和步长,从而将参数的候选取值离散为有限个。这样选定的参数值显然不是最优的,但这是在计算开销和性能之间进行折中的结果。比如自动调参的网格搜索方法,就是在这个参数网格中搜索一组最优参数
    3. 事实上,即使进行了折中,调参过程仍然很困难,参数选择的好坏往往对最终性能有关键性影响

1.3 最终模型

  • 在模型评估与选择的过程中,我们把数据集 机器学习基础(4)—— 模型选择之评估方法_正则化 做了划分,实际上只用了 机器学习基础(4)—— 模型选择之评估方法_正则化 的子集 机器学习基础(4)—— 模型选择之评估方法_留出法_03 (训练集)进行训练。当学习算法和超参数设定都完成后,还应在整个 机器学习基础(4)—— 模型选择之评估方法_模型评估_04
2. 模型选择方法
  • 在之前的文章已说明过,统计学习三要素中的 “策略”(经验风险最小化、结构风险最小化)是选择最优模型时依据的准则,“模型选择” 其实就是统计学习要素 “策略” 的推广,包括以下两类方法
    1. 基于测试误差的方法模型类型、超参数未确定时,必须引入测试集和验证集,从最小化​​测试误差​​的角度做模型选择,通过网格搜索等方法确定模型的类型和超参数。这可以理解为 找出复杂度适当的模型,使其测试误差最小化,从而间接地保证其具有最佳泛化性能
    2. 说白了就是使用不用参数训练得到很多模型,再基于一定的标准(详见第2节)选出最好的

    3. 基于 “策略” 的方法模型类型、超参数已确定时,可以单纯利用训练集,从最小化​​经验风险/训练误差​​的角度做模型选择,确定模型参数
    4. 说白了就是直接训练一遍,这可以作为第一类方法的一部分

2.1 基于 “策略” 的方法 —— 正则化

  • 正则化​结构风险最小化策略SRM​ 的实现,它是通过在经验风险最小化上增加一个 ​正则化项regularizer/罚项penalty item​,使得优化后得到的模型的经验风险和复杂度同时小,以避免过拟合。结构风险最小化是一种机器学习策略,在统计学习三要素中策略部分已经介绍过,详见 机器学习基础(2)—— 统计学习方法三要素 第 2.2.2 节
  • 正则化一般具有以下形式
    机器学习基础(4)—— 模型选择之评估方法_交叉验证法_05 其中第一项是经验风险;第二项 机器学习基础(4)—— 模型选择之评估方法_模型评估_06 是正则化项,模型 机器学习基础(4)—— 模型选择之评估方法_交叉验证法_07 越复杂,机器学习基础(4)—— 模型选择之评估方法_模型评估_06 就越大,对模型的惩罚程度就越大;机器学习基础(4)—— 模型选择之评估方法_正则化_09
  • 正则化项可以采取不同的形式
    1. ​L2 正则化​​:正则化项取为模型参数向量的 机器学习基础(4)—— 模型选择之评估方法_正则化_10 范数,即
      机器学习基础(4)—— 模型选择之评估方法_正则化_11
    2. ​L1 正则化​​:正则化项取为模型参数向量的 机器学习基础(4)—— 模型选择之评估方法_模型选择_12 范数,即
      机器学习基础(4)—— 模型选择之评估方法_交叉验证法_13
  • 理解正则化的两种视角
    1. 正则化利用了​​奥卡姆剃刀原理​​,模型选择问题中该原理告诉我们:能够很好地解释已知数据并且十分简单的模型是最好的模型
    2. 从贝叶斯估计的角度来看,正则化项可以理解为模型的先验概率, 可以假设复杂模型的先验概率较小;简单模型有较大的先验概率

2.2 基于测试误差的方法

  • 这类方法需要 “测试集” 来测试学习器对新样本的辨别能力,使用 “测试误差” 作为泛化误差的近似。通常假设测试样本和训练样本都是从真实样本分布中 i.i.d 采样得到的,并且测试集应尽量与训练集互斥,以免得到过于乐观的估计结果。一般步骤如下
    1. 收集含 机器学习基础(4)—— 模型选择之评估方法_模型评估_14 个样例的数据集 机器学习基础(4)—— 模型选择之评估方法_留出法_15,对其进行适当处理以以划分得到训练集 机器学习基础(4)—— 模型选择之评估方法_留出法_16 和测试集 机器学习基础(4)—— 模型选择之评估方法_留出法_17
    2. 机器学习基础(4)—— 模型选择之评估方法_留出法_18


    3. 划分完成后,使用 1.1 节的调参方法优化模型参数,选出最终模型
  • 下面介绍几种常见的测试集和训练集的划分方法

2.2.1 留出法(hold-out)

  • 留出法​​:直接把数据集 机器学习基础(4)—— 模型选择之评估方法_正则化 划分为训练集 机器学习基础(4)—— 模型选择之评估方法_留出法_03 和测试集 机器学习基础(4)—— 模型选择之评估方法_正则化_21 两个互斥的集合,即
    机器学习基础(4)—— 模型选择之评估方法_交叉验证法_22
  • 注意:
    1. 训练集和测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外偏差而对最终结果产生影响。比如在分类任务中至少要保持样本的类别比例相似,从采样角度看,这种方式称为 ​分层采样stratified sampling​​ 。如果 机器学习基础(4)—— 模型选择之评估方法_留出法_23 中包含500个正例和500个反例,则分层出的 机器学习基础(4)—— 模型选择之评估方法_留出法_16机器学习基础(4)—— 模型选择之评估方法_留出法_17
    2. 在给定训练/测试集比例后,扔有许多方式对数据集 机器学习基础(4)—— 模型选择之评估方法_留出法_23 进行划分,不同的划分方式会导致不同的评估结果。因此,单次使用留出法时,一般要使用若干次随机划分、重复进行实验评估后取均值作为留出法的评估结果(同时得到方差)
    3. 通常将约 机器学习基础(4)—— 模型选择之评估方法_留出法_27
  • 优点:
    1. 思路直接,实现简单
  • 缺点:
    1. 从 “偏差-方差” 角度看,测试集 机器学习基础(4)—— 模型选择之评估方法_正则化_28 较小时,评估结果方差较大,偏差较小;测试集 机器学习基础(4)—— 模型选择之评估方法_正则化_28

      具体来说,数据集 机器学习基础(4)—— 模型选择之评估方法_交叉验证法_30 的大小有限,机器学习基础(4)—— 模型选择之评估方法_交叉验证法_31 越大 机器学习基础(4)—— 模型选择之评估方法_正则化_28 就越小,反之亦然。若 机器学习基础(4)—— 模型选择之评估方法_交叉验证法_31 大一些,训练出的模型会更接近用整个 机器学习基础(4)—— 模型选择之评估方法_交叉验证法_30 训练的模型,但由于 机器学习基础(4)—— 模型选择之评估方法_正则化_28 小,评估结果较不准确;若 机器学习基础(4)—— 模型选择之评估方法_正则化_28 大一些,评估结果会相对准确,但训练模型会更和用整个 机器学习基础(4)—— 模型选择之评估方法_交叉验证法_30

2.2.2 交叉验证法(cross validation)

  • k折交叉验证​​:按照以下流程进行 机器学习基础(4)—— 模型选择之评估方法_模型选择_38 次训练和测试
    1. 先将数据集 机器学习基础(4)—— 模型选择之评估方法_留出法_23 使用分层采样划分为 机器学习基础(4)—— 模型选择之评估方法_模型选择_40 个大小相似的互斥子集,每个子集中的数据分布尽量和 机器学习基础(4)—— 模型选择之评估方法_留出法_23 保持一致,即
      机器学习基础(4)—— 模型选择之评估方法_正则化_42
    2. 然后每次使用 机器学习基础(4)—— 模型选择之评估方法_模型选择_43 个子集进行训练,余下的作为测试集,从而可以进行 机器学习基础(4)—— 模型选择之评估方法_模型选择_40 次训练和测试,一次机器学习基础(4)—— 模型选择之评估方法_模型选择_40折交叉验证的评估结果是这 机器学习基础(4)—— 模型选择之评估方法_模型选择_40 次评估结果的均值
    3. 机器学习基础(4)—— 模型选择之评估方法_交叉验证法_47


  • 注意:
    1. 交叉验证法评估结果的稳定性和保真性很大程度取决于 机器学习基础(4)—— 模型选择之评估方法_模型选择_40 的取值,机器学习基础(4)—— 模型选择之评估方法_模型选择_40
    2. 和留出法一样,将 机器学习基础(4)—— 模型选择之评估方法_留出法_23 划分为 机器学习基础(4)—— 模型选择之评估方法_模型选择_40 个子集时存在多种划分方式,为了减小划分时引入的偏差,机器学习基础(4)—— 模型选择之评估方法_模型评估_52折交叉验证通常需要随机使用不同的划分方法 机器学习基础(4)—— 模型选择之评估方法_模型选择_53 次,最终结果为这机器学习基础(4)—— 模型选择之评估方法_模型选择_53机器学习基础(4)—— 模型选择之评估方法_模型评估_52折交叉验证结果的均值。称为 ​p次k折交叉验证
  • 优点:
    1. 通过取均值减小了划分引入的偏差,通常比普通的留出法评估得更准确
  • 缺点:
    1. 需要多次训练,计算开销比留出法高

2.2.3 留一法(Leave-One-Out)

  • 留一法​​:留一法是一种特殊的交叉验证法,其划分的每个 机器学习基础(4)—— 模型选择之评估方法_正则化
  • 优点:
    1. 由于仅有一种划分方式,留一法不会因随机划分方式引入偏差
    2. 由于使用的训练集相比 机器学习基础(4)—— 模型选择之评估方法_留出法_23 只少了一个样本,绝大多数情况下训练出的模型与用完整 机器学习基础(4)—— 模型选择之评估方法_留出法_23
  • 缺点:
    1. 需要训练的模型太多,计算开销太大
    2. 即使在付出巨大开销的情况下,留一法也不一定永远比其他评估方法准确,“没有免费的午餐” 定理对实验评估方法仍然适用

2.2.4 自助法(bootstrapping)

  • 自助法​​:给定包含 机器学习基础(4)—— 模型选择之评估方法_正则化_59 个样本的数据集 机器学习基础(4)—— 模型选择之评估方法_模型评估_04每次有放回地从 机器学习基础(4)—— 模型选择之评估方法_留出法_23 中随机挑选一个样本放入 机器学习基础(4)—— 模型选择之评估方法_模型选择_62,直到 机器学习基础(4)—— 模型选择之评估方法_模型选择_62 中也有 机器学习基础(4)—— 模型选择之评估方法_模型评估_14 个样本为止,将 机器学习基础(4)—— 模型选择之评估方法_模型选择_62 作为训练集 机器学习基础(4)—— 模型选择之评估方法_留出法_16机器学习基础(4)—— 模型选择之评估方法_交叉验证法_67 作为测试集 机器学习基础(4)—— 模型选择之评估方法_留出法_17

  • 注意:

    1. 某个样本在 机器学习基础(4)—— 模型选择之评估方法_模型评估_14 次采样中始终不被取样到的概率为 机器学习基础(4)—— 模型选择之评估方法_模型评估_70,取极限有
      机器学习基础(4)—— 模型选择之评估方法_交叉验证法_71 因此采样完成后,约 63.2% 的数据出现在 机器学习基础(4)—— 模型选择之评估方法_模型选择_72
  • 优点

    1. 训练集大小和原始数据集相同的情况下,仍保留有约 机器学习基础(4)—— 模型选择之评估方法_交叉验证法_73 的样本用于测试,在数据集较小、难以有效划分训练/测试集的情况下很有用
    2. 自助法能从初始数据集中生成多个不同训练集,对集成学习有很大好处
  • 缺点:

    1. 自助法产生的训练集 机器学习基础(4)—— 模型选择之评估方法_留出法_16 的数据分布和原始数据集 机器学习基础(4)—— 模型选择之评估方法_留出法_23 不同,会引入估计偏差,故在初始数据量足够时不常用此方法




标签:机器,训练,模型,正则,参数,测试,方法,评估
From: https://blog.51cto.com/u_15887260/5876711

相关文章