【论文阅读】Self-Paced Curriculum Learning

这篇具有很好参考价值的文章主要介绍了【论文阅读】Self-Paced Curriculum Learning。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

论文下载
代码
Supplementary Materials
bib:

@INPROCEEDINGS{,
	 title		= {Self-Paced Curriculum Learning},
	 author	    = {Lu Jiang and Deyu Meng and Qian Zhao and Shiguang Shan and Alexander Hauptmann},
	 booktitle	= {AAAI},
	 year		= {2015},
	 pages      = {2694--2700}
}

1. 摘要

Curriculum learning (CL) or self-paced learning (SPL) represents a recently proposed learning regime inspired by the learning process of humans and animals that gradually proceeds from easy to more complex samples in training.

The two methods share a similar conceptual learning paradigm, but differ in specific learning schemes.

In CL, the curriculum is predetermined by prior knowledge, and remain fixed thereafter.

Therefore, this type of method heavily relies on the quality of prior knowledge while ignoring feedback about the learner.

In SPL, the curriculum is dynamically determined to adjust to the learning pace of the leaner.

However, SPL is unable to deal with prior knowledge, rendering it prone to overfitting.

In this paper, we discover the missing link between CL and SPL, and propose a unified framework named self-paced curriculum leaning (SPCL).

SPCL is formulated as a concise optimization problem that takes into account both prior knowledge known before training and the learning progress during training.

In comparison to human education, SPCL is analogous to “instructor-student-collaborative” learning mode, as opposed to “instructor-driven” in CL or “student-driven” in SPL.

Empirically, we show that the advantage of SPCL on two tasks.

课程学习(CL)或自定进度学习(SPL)代表了最近提出的一种学习制度,其灵感来自人类和动物的学习过程,在训练中逐渐从简单到更复杂的样本进行。 这两种方法具有相似的概念学习范式,但具体的学习方案有所不同。 在 CL 中,课程是由先验知识预先确定的,并且此后保持固定。 因此,这种方法严重依赖先验知识的质量,而忽略了学习者的反馈。 在 SPL 中,课程是动态确定的,以适应学习者的学习节奏。 然而,SPL 无法处理先验知识,因此容易出现过度拟合。 在本文中,我们发现了 CL 和 SPL 之间缺失的联系,并提出了一个名为自定进度课程学习(SPCL)的统一框架。 SPCL 被表述为一个简洁的优化问题,它考虑了训练前已知的先验知识和训练期间的学习进度。 与人类教育相比,SPCL类似于“师生协作”的学习模式,而不是CL中的“教师驱动”或SPL中的“学生驱动”。 根据经验,我们展示了 SPCL 在两项任务上的优势。

Note:

  1. 课程学习依赖于课程先验,在许多场景中,课程先验一般都是缺失的。这种方法严重依赖于先验知识的质量,而忽略了学习者的反馈,相当于是老师主导。
  2. 自步学习中课程是动态确定的,以适应学习者节奏。其中,动态确定只是按照loss的高低当作是样本的难易,无法处理额外加入的知识先验。

2. 算法描述

2.1. 自步学习

min ⁡ w , v ∈ [ 0 , 1 ] n E ( w , v ; λ ) = ∑ i = 1 n v i L ( y i , f ( x i , w ) ) − λ ∥ v ∥ 1 (1) \min_{\mathbf{w}, \mathbf{v} \in[0, 1]^n}\mathbb{E}(\mathbf{w}, \mathbf{v};\lambda) = \sum_{i=1}^n{v_iL(y_i, f(\mathbf{x}_i,\mathbf{w}))} - \lambda\|\mathbf{v}\|_1 \tag{1} w,v[0,1]nminE(w,v;λ)=i=1nviL(yi,f(xi,w))λv1(1)

等式1应该就是自步学习中最经典的形式了。其中,对于自步正则 − ∥ v ∥ 1 -\|\mathbf{v}\|_1 v1是可以替换的,有很多的类型,这个是最经典的hard型(非0即1)。对于等式1的求解可以采用ACS (Alternative Convex Search)。

  1. 固定 w \mathbf{w} w,求解 v \mathbf{v} v。存在闭式解(可以理解为解析解) v ∗ = [ v 1 ∗ , … , v n ∗ ] \mathbf{v}^* = [v_1^*, \dots, v_n^*] v=[v1,,vn],
    v i ∗ = { 1 , L ( y i , f ( x i , w ) ) < λ ; 0 , otherwise. v_i^* = \begin{cases} 1, & L(y_i, f(x_i, \mathbf{w})) < \lambda;\\ 0, &\text{otherwise.}\\ \end{cases} vi={1,0,L(yi,f(xi,w))<λ;otherwise.
  2. 固定 v \mathbf{v} v,用梯度下降法(也可以用其他优化方法)求解 w \mathbf{w} w

存在的弊端:

However, since the learning is completely dominated by the training loss, the learning may be prone to overfitting. Moreover, it provides no way to incorporate prior guidance in learning. To the best of our knowledge, there has been no studies to incorporate prior knowledge into SPL, nor to analyze the relation between CL and SPL.

2.1. 自步课程学习

自步课程学习想要打造一种师生协同的学习范式,其中,同时考虑训练前已知的先验知识和训练期间学到的知识。

Self-paced Curriculum Learning:

min ⁡ w , v ∈ [ 0 , 1 ] n E ( w , v ; λ , Ψ ) = ∑ i = 1 n v i L ( y i , f ( x i , w ) ) − f ( v ; λ ) s.t.  v ∈ Ψ (2) \begin{aligned}\min_{\mathbf{w}, \mathbf{v} \in[0, 1]^n}\mathbb{E}(\mathbf{w}, \mathbf{v};\lambda, \Psi) = \sum_{i=1}^n{v_iL(y_i, f(\mathbf{x}_i,\mathbf{w}))} &- f(\mathbf{v}; \lambda) \\ &\text{s.t. } \mathbf{v} \in \Psi \\ \end{aligned}\tag{2} w,v[0,1]nminE(w,v;λ,Ψ)=i=1nviL(yi,f(xi,w))f(v;λ)s.t. vΨ(2)

Note:

  1. 相比一式,增加了一个 Ψ \Psi Ψ课程约束,在原文中叫做Curriculum region
  2. 求解这个优化问题也是使用ACS,固定第一个求解第二个,固定第二个个,求解第一个。不同的是求解 v ∗ v^* v时没法获得闭式解了,可以通过求解带约束的优化问题来求解。
  3. 对于Curriculum region,原文有额外的定义,我这里就不再详细的写了,就只写一下我的感受。原文中给了一个满足Curriculum region定义的一个约束 Ψ = { v ∣ a T × v ≤ c } \Psi = \{\mathbf{v}| a^{\mathsf{T}}\times \mathbf{v} \leq c\} Ψ={vaT×vc}。当然,你也可以自定义一个满足课题的约束,前提是要满足对于该该区域中的任意两个点, x i , x j x_i, x_j xi,xj, 如果课程优先级 γ ( x i ) < γ ( x j ) \gamma(x_i) < \gamma(x_j) γ(xi)<γ(xj), 那么满足 ∫ Ψ v i d v > ∫ Ψ v j d v \int_{\Psi}v_i d\mathbf{v} > \int_{\Psi}v_j d\mathbf{v} Ψvidv>Ψvjdv,也就是 v i v_i vi Ψ \Psi Ψ的期望大于 v j v_j vj Ψ \Psi Ψ的期望,也就是模型重点拟合v_i( γ ( x i ) < γ ( x j ) \gamma(x_i) < \gamma(x_j) γ(xi)<γ(xj),也就是说学习课程优先的内容)。

3. 实验

论文中提供的代码是R语言的,我用python实现了一个demo,但是对于Example 1求解 v ∗ v^* v不是完全一致,猜想应该是求解算法不同的问题。

from scipy.optimize import minimize
import numpy as np

# samples
id = np.array(['a', 'b', 'c', 'd', 'e', 'f'])
myloss = np.array([0.1, 0.2, 0.4, 0.6, 0.5, 0.3]).reshape([-1, 1])
print("####### input loss ######")
print(myloss)

# 4) calculate curriculum constraints
# A = matrix(0, nrow=length(id), ncol=1)
# curriculum constraints matrix
A = np.zeros([len(id), 1])
A[:, 0] = np.array([0.1, 0.0, 0.4, 0.3, 0.5, 1.0])
# A[:, 0] = np.array([2.3, 2.2, 2.1, 2.0, 1.7, 1.5])
print("####### A matrix ######")
print("A: ", A)
c = 1.0
# c = 6.0

# 5) optimize v with modality constraint (A)
# v0 = replicate(length(id),0)
v0 = np.repeat(0, len(id))
print("v0: ", v0)
# a small constant for optmization accuracy
tolerance = 1e-7
print("tolerance: ", tolerance)

# tolerance = 0
# parameter in self-paced learning
lambda_var = 0.8333

# paramaters
u1 = -1 * A  # -Av >= -c	i.e.	Av <= c

# c1 = -1 * c - tolerance  # -Av >= -c	i.e.	Av <= c
c1 = c + tolerance

# 三个约束
# v 大于等于 0
# v 小于等于 1
# A^T \times V <= c
# inequality means that it is to be non-negative.
cons = ({'type': 'ineq', 'fun': lambda v: v @ u1 + c1})


# 定义目标函数
def objective_function(v):
    obj = v @ myloss - lambda_var * np.sum(v)
    return obj


# 定义目标函数的梯度
def objective_gradient(v):
    grads = myloss - lambda_var
    return grads


# 设置bounds
# bounds = tuple([(-tolerance, 1 + tolerance) for i in range(len(v0))])
bounds = tuple([(0, 1) for i in range(len(v0))])
# x0 = np.zeros([len(id)])
# res_SLSQP = minimize(objective_function, v0, method='SLSQP', jac=objective_gradient, constraints=cons, bounds=bounds)


# res = minimize(objective_function, v0, method='SLSQP', constraints=cons, bounds=bounds)
print("###res_SLSQP###")
res_SLSQP = minimize(objective_function, v0, method='SLSQP', jac=objective_gradient, constraints=cons, bounds=bounds,
                     options={"maxiter": 100, "disp": True})
print('最小值:', res_SLSQP.fun)
print('最优解:', res_SLSQP.x)
print('迭代终止是否成功:', res_SLSQP.success)
print('迭代终止原因:', res_SLSQP.message)
print("最终解是否满足先验课程知识: ", res_SLSQP.x @ u1 + c1 >= 0)

print("###COBYLA###")
res_COBYLA = minimize(objective_function, v0, method='COBYLA', jac=objective_gradient, constraints=cons, bounds=bounds,
                      options={"maxiter": 100, "disp": True})
print('最小值:', res_COBYLA.fun)
print('最优解:', res_COBYLA.x)
print('迭代终止是否成功:', res_COBYLA.success)
print('迭代终止原因:', res_COBYLA.message)
print("最终解是否满足先验课程知识: ", res_COBYLA.x @ u1 + c1 >= 0)

# v_2 = np.array([1, 1, 1, 0.88, 0.47, 0])
v_2 = np.array([1, 0.91, 0.10, 0.00, 0.00, 1.00])
print('论文最优解:', v_2)
print("论文最小值:", objective_function(v_2))
print("论文最终解是否满足先验课程知识: ", v_2 @ u1 + c1 >= 0)

4. 总结

自步学习是通过loss大小来判断样本学习难易,有时候我们有其他的学习准则,其实这时候就已经是课程学习的内容了。自步学习之所以称为自步,就是只依照loss大小自发的学习,至于不同的自步学习变种,本质上就是自步正则,难易样本权重惩罚系数不同。而以往想要按照其他学习准则,就只能用课程学习了,按照已经定义好的课程先验知识来学习。本文就是将自步学习和课程学习做了连接,自步课程学习想要打造一种师生协同的学习范式,其中,同时考虑训练前已知的先验知识和训练期间学到的知识。文章来源地址https://www.toymoban.com/news/detail-776278.html

到了这里,关于【论文阅读】Self-Paced Curriculum Learning的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【自监督论文阅读笔记】Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture

    2023         本文展示了一种 学习高度语义图像表示 的方法,而 不依赖于手工制作的数据增强 。本文介绍了 基于图像的联合嵌入预测架构 (I-JEPA) ,这是一种用于从图像进行自监督学习的 非生成方法 。 I-JEPA 背后的想法很简单: 从单个上下文块,预测同一图像中各种目

    2024年02月09日
    浏览(32)
  • 【论文笔记】SDCL: Self-Distillation Contrastive Learning for Chinese Spell Checking

    论文地址:https://arxiv.org/pdf/2210.17168.pdf 论文提出了一种token-level的自蒸馏对比学习(self-distillation contrastive learning)方法。 传统方法使用BERT后,会对confusion chars进行聚类,但使用作者提出的方法,会让其变得分布更均匀。 confusion chars: 指的应该是易出错的字。 作者提取特征的方

    2024年02月02日
    浏览(46)
  • 论文阅读:SERE: Exploring Feature Self-relation for Self-supervised Transformer

    Self-supervised 学习目的是在无人工标注的情况下通过自定制的任务(hand-crafted pretext tasks)学习丰富的表示。 使用 自监督学习 为卷积网络(CNN)学习表示已经被验证对视觉任务有效。作为CNN的一种替代方案, 视觉变换器 (ViT)具有强大的表示能力,具有 空间自注意力和通道

    2024年02月09日
    浏览(29)
  • 论文阅读 Self-Supervised Burst Super-Resolution

    这是一篇 ICCV 2023 的文章,主要介绍的是用自监督的方式进行多帧超分的学习 Abstract 这篇文章介绍了一种基于自监督的学习方式来进行多帧超分的任务,这种方法只需要原始的带噪的低分辨率的图。它不需要利用模拟退化的方法来构造数据,而且模拟退化的方法又可能存在域

    2024年01月18日
    浏览(40)
  • 【论文阅读 CIDR17】Self-Driving Database Management Systems

    MySummary 之前的advisory tools来帮助DBA处理系统调优和物理设计的各个方面,都仍然需要人类对数据库的任何更改做出最终决定,并且是在问题发生后修复问题的反动措施reactionary measures 。 An truly “self-driving” database management system (DBMS)是针对autonomous operation(自主操作)设计的全新

    2024年01月18日
    浏览(28)
  • 【论文阅读】Digging Into Self-Supervised Monocular Depth Estimation

    论文:https://arxiv.org/pdf/1806.01260.pdf 代码:https://github.com/nianticlabs/monodepth2 A: 这篇论文试图解决的问题是如何提高仅使用单目图像进行深度估计的性能。具体来说,它关注的是如何在没有像素级地面真实深度数据的情况下,通过自监督学习方法训练模型来生成高质量的深度图。

    2024年04月17日
    浏览(29)
  • 【论文阅读】Self-supervised Image-specific Prototype Exploration for WSSS

    一篇CVPR2022上的论文,用于弱监督分割 Self-supervised Image-specific Prototype Exploration for Weakly Supervised Semantic Segmentation https://github.com/chenqi1126/SIPE https://openaccess.thecvf.com/content/CVPR2022/papers/Chen_Self-Supervised_Image-Specific_Prototype_Exploration_for_Weakly_Supervised_Semantic_Segmentation_CVPR_2022_paper.pdf 现

    2024年02月11日
    浏览(27)
  • 【论文阅读 SIGMOD18】Query-based Workload Forecasting for Self-Driving

    My Summary Autonomous DBMS的第一步就是能够建模并预测工作负载,以前的预测技术对查询的资源利用率进行建模。然而,当数据库的物理设计和硬件资源发生变化时,这些指标会发生变化,从而使以前的预测模型无用。 提出了QueryBot 5000的具有鲁棒性的预测框架,它允许DBMS根据历

    2024年01月21日
    浏览(25)
  • 论文阅读--Conservative Q-Learning for Offline Reinforcement Learning

    摘要 在强化学习( RL )中有效地利用以前收集的大量数据集是大规模实际应用的关键挑战。离线RL算法承诺从先前收集的静态数据集中学习有效的策略,而无需进一步的交互。然而,在实际应用中,离线RL是一个主要的挑战,标准的离线RL方法可能会由于数据集和学习到的策略之

    2024年04月17日
    浏览(50)
  • 【论文阅读笔记】4篇Disentangled representation learning用于图像分割的论文

    4篇应用解耦表示学习的文章,这里只关注如何解耦,更多细节不关注,简单记录一下。 Chen C, Dou Q, Jin Y, et al. Robust multimodal brain tumor segmentation via feature disentanglement and gated fusion[C]//Medical Image Computing and Computer Assisted Intervention–MICCAI 2019: 22nd International Conference, Shenzhen, China, O

    2024年01月17日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包