当前位置: 首页 > 科技观察

清华大学发布CurML

时间:2023-03-19 01:47:34 科技观察

,这是第一个用于课程学习的开源库。在机器学习的发展过程中,人类的学习方法常常启发各种算法的设计。课程学习作为人类学习的重要范式,被借用到机器学习中,形成了一个研究方向,称为课程学习(CurriculumLearning)。一般来说,人类教育是通过高度组织化的课程来完成的。每个班级或科目都从简单的内容开始,然后逐步向学生展示更复杂的概念。例如,在大学接受微积分概念之前,学生应该在小学学习算术,在中学学习函数,在高中学习导数。然而,与人类教育不同的是,传统机器学习模型的训练是随机输入数据样本到模型中,忽略了数据样本之间不同的复杂度和模型当前的学习状态。因此,机器学习领域引入课程学习,正是为了模仿人类从易到难的学习方式,为模型提供更好的训练策略,从而提高模型的性能。课程学习概念图目前,课程学习已经广泛应用于机器学习的各种任务中,包括图像分类、目标检测、语义分割、机器翻译、音频识别、音频增强、视频问答等,受到了广泛关注对半监督学习、强化学习等场景的关注和研究。随着课程学习的应用和场景越来越丰富,特别有必要对这一领域进行详细的梳理和总结,以促进研究者的深入探索,提升用户的应用体验。为此,清华大学朱文武教授领衔的媒体与网络大数据实验室发表了多篇课程学习方面的学术论文。实验室成员王鑫在IEEETPAMI发表课程学习综述论文。实验室进一步发布了全球首个课程学习开源库CurML(CurriculumMachineLeanring)。朱文武教授和王鑫助理研究员的课程学习研究工作包括应用于城市名胜古迹推荐的课程元学习方法、基于噪声多反馈信息的课程解耦商品推荐、共享参数神经架构搜索基于课程学习、基于课程难度自适应的组合优化问题求解等,研究成果发表在SIGKDD、NeurIPS、ACMMM等国际高水平机器学习会议。部分研究成果框架图。课程学习综述论文全面回顾了课程学习的产生、定义、理论和应用,设计了统一的课程学习框架,并根据框架内的核心组件将课程学习算法分为两部分。大类和多个子类区分了课程学习与其他机器学习概念的区别和联系,指出了该领域面临的挑战和未来可能的研究方向。课程学习方法分类CurML是课程学习的开源库,是课程学习算法的支撑平台。集成了十余种课程学习算法,同时支持有噪声和无噪声应用场景,方便研究者和用户复现、评估、比较和选择课程学习算法。CurML的主要模块是CLTrainer,它由两个子模块ModelTrainer和CLAlgorithm组成,通过五个接口函数进行交互,实现课程学习指导的机器学习过程。CurML框架图主要模块:CLTrainer是整个开源库的主体部分。通过调用该模块,用户只需要几行代码就可以实现课程学习算法。给定数据集、模型和超参数后,模块会进行一定时间的训练,输出训练好的模型参数和任务的测试结果。本模块的设计主要是为了满足易用性的要求,所以高度封装,提供给想使用课程学习算法但不关心具体实现细节的用户。子模块一:ModelTrainer该模块用于完成一般的机器学习过程,例如训练图像分类器或语言模型。同时预留了5个接口函数位用于与第二个子模块CL算法交互,也支持自定义输入函数。子模块二:CL算法该模块封装了CurML支持的所有课程学习算法,如下表所示:该模块通过五个接口函数实现,用于从机器学习过程中获取数据和模型信息,并指导模型的学习策略,如下图所示。CurML流程图接口函数:data_prepare该函数用于将数据集信息从ModelTrainer模块提供给CLAlgorithm模块。很多课程学习算法需要对数据集有一个整体的了解,才能更好的判断数据样本的难易程度,所以这个接口函数是非常有必要的。接口函数:函数model_prepare和data_prepare很相似,不同的是不是数据集信息而是模型训练相关的信息,比如模型架构、参数优化器、学习率调整器等,很多课程学习算法调整这些要素指导机器学习。接口函数:data_curriculum函数用于计算数据样本的难度,根据数据的难度和当前模型状态,为模型提供合适的数据。大多数课程都有类似的想法。接口函数:model_curriculum用于更新模型,调整模型从数据样本中获取的信息量,间接指导模型的学习。目前这类算法的数量比较少,但CurML也支持这类算法的实现。接口函数:loss_curriculum函数用于对损失函数值进行重新加权,间接调整不同数据对模型的影响。这类算法在课程学习中比较常见,因为损失值的加权本质上是一种数据。软采样。通过对近几年十余种课程学习方法的总结,可以利用以上模块和接口参数统一实现不同类型的课程学习算法,从而可以在公平的情况下对课程学习算法进行评估、比较和选择场景和任务。未来展望CurML的研发团队表示,未来他们会持续更新这个开源库,为课程学习的开发和应用提供进一步的支持。相关链接:CurML开源代码库链接:https://github.com/THUMNLab/CurMLCurML开源软件论文链接:https://dl.acm.org/doi/pdf/10.1145/3503161.3548549课程学习复习论文链接:https://ieeexplore.ieee.org/abstract/document/9392296/课程元学习论文链接:https://dl.acm.org/doi/abs/10.1145/3447548.3467132课程解耦学习论文链接:https://程序。neurips.cc/paper/2021/file/e242660df1b69b74dcc7fde711f924ff-Paper.pdf课程神经架构搜索论文链接:https://dl.acm.org/doi/abs/10.1145/3503161.3548271课程难度自适应论文链接:https://ojs.aaai.org/index.php/AAAI/article/download/20899/version/19196/20658