【论文精读】Curriculum Learning

课程学习由Bengio教授团队提出,模仿人类学习由易到难的过程,加速深度神经网络训练并提升泛化能力。策略类似正则项,通过调整样本权重,先训练简单样本,逐步过渡到复杂样本,有效避免局部最优问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Curriculum Learning

论文原文:Curriculum Learning

课程学习(Curriculum Learning)由Montreal大学的Bengio教授团队在2009年的ICML上提出,主要思想是模仿人类学习的特点,由简单到困难来学习课程(在机器学习里就是容易学习的样本和不容易学习的样本),这样容易使模型找到更好的局部最优,同时加快训练的速度。

Abstract

人类和动物在学习时学习材料按照由易到难的顺序呈现是学习效果会更好,在机器学习中课程学习的概念借鉴了这种思想。在非凸问题中,课程学习展现出了巨大的性能提升和很强的泛化能力。作者认为课程学习的策略能够加速收敛速率以及在非凸优化中找到更好的局部最优点(可以看成是continuation method)。

1. Introduction

介绍了课程学习的思想,并通过动物训练shaping的模式和循环网络学习语法的例子说明,学习要由易到难循序渐进。

Contributions:

  • 作者通过有关视觉和语言的任务证明了很简单的多阶段课程学习的策略就能够实现泛化能力的提高和收敛速度的加快。
  • 另外解释了课程学习为什么有这些优势。
  • 实验表明课程学习的作用类似于某种正则项。

2. On the difficult optimization problem of training deep neural networks

在这一部分作者在深度神经网络中讨论课程学习策略对局部最优问题的处理。深度神经网络就具有层次的结构,使用多层级的抽象特征能够让系统根据数据自动推断出输入输出之间的映射关系,从而排除人工特征的设计。然而,训练深度结构的神经网络却很困难,一些学者的研究证明使用一些无监督预训练策略来确定监督训练的初始化参数可以帮助深度网络的训练得到更好的测试误差(泛化能力增强)。作者使用课程学习的策略来进行预训练,以便找到更好的局部最优以及提高收敛的速度。

3. A curriculum as a continuation method

介绍了Allgower和Georg的continuation method的思想,对于一个优化问题 C λ C_\lambda Cλ λ \lambda λ参数反映了优化问题难易程度),先优化一个较为平滑的目标 C 0 C_0 C0,这个目标反映了问题整体的景象,然后逐渐增加 λ \lambda λ并且保持 θ \theta θ C λ C_\lambda Cλ的局部最优,最终 C 1 C_1 C1就是实际想要优化的问题。

课程学习就是这种思想,根据训练样本训练的难易程度,给不同难度的样本不同的权重,一开始给简单的样本最高权重,他们有着较高的概率,接着将较难训练的样本权重调高,最后样本权重统一化了,直接在目标训练集上训练。

下面介绍公式化这种思想的一种方法:

首先重新分配了在第 λ \lambda λ步( 0 ≤ λ ≤ 1 0\leq\lambda\leq1 0λ1)训练时的样本分布 Q λ ( z ) Q_\lambda(z) Qλ(z),

在这里插入图片描述

其中,

在这里插入图片描述

根据上面的描述有当 λ = 1 \lambda=1 λ=1时,有

在这里插入图片描述

定义:若训练时的样本分布 Q λ Q_\lambda Qλ的熵和用于重新分配分布的权重 W λ ( z ) W_\lambda(z) Wλ(z)是递增的,那么 Q λ Q_\lambda Qλ就是一个课程,即满足以下两个条件:

在这里插入图片描述

在这里插入图片描述

一个简单的理解就是利用课程改变训练样本中的分布,一开始简单的样本数量很多,出现的概率大,随着 λ \lambda λ增大,分布与原始数据集越来越接近,最终和原始数据一致。

到目前为止,还没有介绍如何确定课程,即如何确定训练样本的难易程度,下面的实验将介绍几种定义课程的简单方式。

4. Toy Experiments with a Convex Criterion

4.1 Cleaner Examples May Yield Better Generalization Faster

这里作者通过一个小实验说明了首先在简单样本上训练的好处。作者在一个拥有50个训练样本点的数据集上训练一个SVM进行二分类任务,实验结果表明,在简单的数据上训练的泛化误差要优于在随机选取数据上的泛化误差(16.3% vs 17.1%)。简单样本是根据 y w ′ x > 0 yw'x>0 ywx>0来选取的,因为对于SVM来说,满足 y w ′ x > 0 yw'x>0 ywx>0条件的样本点都是正确分类的,可以看作是没有噪声比较容易区分的。

有些人可能会质疑困难的样本含有更多的信息,然而困难的样本往往是无用的,因为他们可能含有噪声,会干扰训练效果。

4.2 Introduction Gradually More Difficult Examples Speeds-up Online Training

这里作者使用两种方式来说明从简单到困难的课程学习策略的有效性。

  1. 根据样本中不相关(irrelevant)数据的个数。
  2. y w ′ x yw'x ywx的margin大小,margin越大说明特征越明显越容易区分。

实验结果如下:

在这里插入图片描述

5. Experiments on shape recognition

这个实验关于三角形、长方形和椭圆形的形状的识别。作者用了两组数据集来区分样本的难易。一组数据集包含了等边三角形、正方形和圆形(BasicShapes),另一组中的形状并不那么规则(GeomShapes)。为了说明课程学习的效果,作者采取了以下策略:

  1. 将仅使用GeomShapes数据集训练的结果作为baseline。
  2. 开始先用BasicShapes数据集中的数据进行训练,为了区分难易程度,分别训练0、2、4……、128个epochs(0 epoch就是baseline),然后再用GeomShapes训练至256个epochs,如果validation error到达设定的最小值就提前停止。结果如下图所示:

在这里插入图片描述

但是这样的结果可能是因为相比没有课程学习的训练,课程学习的方式看到了更多的样本。因此作者又进行了两个实验,一个是使用BasicShapes和GeomShapes两个数据集的数据在没有课程学习策略的情况下进行训练(这样看到的数据就一样多了);另一个是只使用BasicShapes数据集中的数据进行非课程学习的训练(这样就验证了并非BasicShapes中的数据比较好),两个对比实验的结果都不好,从而说明的课程学习的效果。

6. Experiment on language modeling

这个实验是根据句子上下文来预测下一个单词是什么。作者使用了Collobert和Weston的策略。

在这里插入图片描述

这里对于一个可能的文本 s s s我们想让 f ( s ) f(s) f(s)尽量大(最大为1),这样其他文本对应的 f ( s w ) f(s^w) f(sw)就会尽量小,那么 C s C_s Cs就会接近于零。课程学习的策略是根据是不是常见的词汇,词典中每次增加5000个常见的词语,只要每组词汇中有词不在考虑的范围内,就丢掉这组词汇。没有课程学习策略的就直接从20000个单词中学习。下面是训练的效果:

在这里插入图片描述

7. Discussion and Future Work

作者认为课程学习之所以有效可以从以下两个方面解释:

  • 在训练初期能够花更少的时间在有噪声的和很难去训练的数据上
  • 可以引导训练走向更好的局部最优和更好的泛化效果:课程学习可以被看作是一种特殊的continuation method。

另外,如何寻找更好的课程将是未来的研究方向。

<think>嗯,用户想了解Excel中的VLOOKUP函数的用法和参数含义。首先,我需要回忆一下VLOOKUP的基本结构。VLOOKUP是垂直查找函数,用于在表格的首列查找指定的值,然后返回该行中指定列的数据。它的四个参数分别是查找值、表格范围、列索引号和匹配模式。 接下来,我得确认每个参数的具体作用。第一个参数是lookup_value,也就是用户要查找的值,比如产品ID或者姓名。第二个参数是table_array,即查找的范围,这里要注意的是,查找值必须位于这个范围的第一列,否则函数无法正确工作。第三个参数是col_index_num,也就是用户想要返回的数据在表格范围中的第几列,这个列数是从表格范围的第一列开始算起的,不是整个工作表的列。第四个参数是range_lookup,决定是精确匹配还是近似匹配,通常用FALSE或0来指定精确匹配,避免错误。 然后,用户可能需要一个具体的例子来理解如何使用。比如,假设有一个产品价格表,用户想根据产品ID查找对应的价格。这时候,VLOOKUP就可以在ID列查找,然后返回价格列的数据。同时,要提醒用户注意表格范围最好使用绝对引用,比如$A$2:$C$100,这样在拖动公式时范围不会变化。 可能遇到的问题也需要考虑。比如,如果查找值不在表格的第一列,或者列索引号超过了表格的列数,函数会返回错误。此外,数据格式不一致也可能导致问题,比如查找值是数字,而表格中是文本格式的数字,这时候需要统一格式。还有,当出现#N/A错误时,可能是查找值不存在,或者匹配模式设置不正确,需要检查参数是否正确。 用户可能还会问到如何避免常见的错误,比如部分数据匹配出错的情况。这时候需要检查是否有多余的空格,或者数据格式不一致,或者表格范围没有锁定导致拖动时偏移。此外,XLOOKUP作为VLOOKUP的升级版,可能在某些情况下更方便,比如可以向左查找或者返回多列数据,这也是可以提及的内容。 最后,整理步骤,从基础语法到参数说明,再到具体案例,逐步引导用户理解如何使用VLOOKUP函数。同时,提供常见错误和解决方法,帮助用户在实际应用中避免问题。如果有必要,还可以比较VLOOKUP和其他查找函数的区别,比如HLOOKUP或XLOOKUP,但根据用户的问题,主要集中在VLOOKUP本身即可。</think>### Excel VLOOKUP函数详解 #### 一、基础语法与参数说明 VLOOKUP函数的语法为: $$=VLOOKUP(lookup\_value, table\_array, col\_index\_num, [range\_lookup])$$ 包含4个参数: 1. **lookup_value**(必填):要查找的值(如单元格引用或具体值) 2. **table_array**(必填):包含数据的表格范围(必须包含查找列和返回列) 3. **col_index_num**(必填):返回值所在列的序号(从table_array第一列开始计数) 4. **range_lookup**(可选):匹配类型 - `TRUE`/`1`:近似匹配(默认值,需数据升序排列) - `FALSE`/`0`:精确匹配(常用选项) [^1][^2] #### 二、使用步骤演示(工资表查询案例) 假设需要根据员工编号查询工资: 1. 建立查询单元格(如`B12`) 2. 输入公式: ```excel =VLOOKUP(A12, $A$2:$D$100, 4, 0) ``` - `A12`:待查询的员工编号 - `$A$2:$D$100`:锁定数据区域(绝对引用) - `4`:返回第4列(工资列) - `0`:精确匹配 [^2][^3] #### 三、常见错误与解决方法 | 错误现象 | 原因 | 解决方案 | |---------|------|---------| | #N/A | 查找值不存在 | 检查数据源或改用`IFERROR`容错 | | #REF! | 列序号超出范围 | 确认col_index_num ≤ 表格列数 | | 部分匹配失败 | 数据格式不一致 | 统一数值/文本格式 | | 结果错位 | 表格未锁定 | 使用`$`符号固定区域引用 | [^3][^4] #### 四、进阶技巧 1. **多条件查询**: 使用辅助列合并多个条件字段 ```excel =VLOOKUP(A2&B2, $D$2:$F$100, 3, 0) ``` 2. **通配符匹配**: `"*"`匹配任意字符,`"?"`匹配单个字符 ```excel =VLOOKUP("张*", $A$2:$C$100, 3, 0) ``` 3. **跨表查询**: 引用其他工作表数据 ```excel =VLOOKUP(A2, Sheet2!$A$2:$D$100, 4, 0) ``` [^1][^4]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值