0

0

清华大学发布首个课程学习开源库CurML

PHPz

PHPz

发布时间:2023-04-09 08:41:02

|

1459人浏览过

|

来源于51CTO.COM

转载

在机器学习的发展过程中,人类的学习方式常常会对各种算法的设计产生启发。而作为人类学习的一个重要范式,通过课程进行学习,已经被借鉴到机器学习中形成了名为课程学习(Curriculum Learning)的研究方向。

普遍而言,人类的教育是通过高度组织化的课程来完成的。每一门课或是每一个学科,都会从简单的内容开始,逐步向学生呈现更复杂的概念。例如,在大学接受微积分的概念之前,一名学生应当先在小学学习算术,在初中学习函数,在高中学习导数。然而与人类教育不同的是,传统机器学习模型的训练都是将数据样本随机输入模型,忽略了数据样本之间不同的复杂性以及模型当前的学习状态。因此,课程学习在机器学习领域的提出,正是为了模仿人类由易到难的学习方式,为模型提供更好的训练策略,从而提升模型的表现。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

课程学习概念图

目前课程学习已经广泛应用在机器学习的各个任务中,包括图片分类、目标检测、语义分割、机器翻译、音频识别、音频增强、视频问答等等,同时也在有监督、无监督和半监督学习以及强化学习等场景下受到大量关注和研究。

随着课程学习的应用和场景日益丰富,特别需要对这一领域进行细致的梳理和归纳,从而推动研究者的深入探索、提升使用者的应用体验。

因此,清华大学朱文武教授所带领的媒体与网络大数据实验室在发表了多篇课程学习学术论文的积累和基础上,实验室成员王鑫在 IEEE TPAMI 发表了关于课程学习的综述论文,实验室进一步发布了全球首个课程学习开源库 CurML (Curriculum Machine Leanring)。

朱文武教授与王鑫助理研究员的课程学习研究工作包括应用于城市兴趣地点推荐的课程元学习方法、基于带噪多反馈信息的课程解耦商品推荐、基于课程学习的共享参数神经架构搜索、以及基于课程难度自适应的组合优化问题求解等等。研究成果发表于 SIGKDD、NeurIPS、ACM MM 等高水平国际机器学习会议上。

图片

部分研究成果框架图

课程学习综述论文则全面回顾了课程学习的产生、定义、理论和应用等各个方面,设计了统一的课程学习框架,并根据框架内的核心组成将课程学习算法分为两个大类和多个小类,区分了课程学习与其他机器学习概念之间的不同和关联,指出了这一领域所面临的挑战和未来可能的研究方向。

图片

课程学习方法分类

课程学习开源库 CurML 是课程学习算法的支持平台,已经集成十多种课程学习算法,同时支持带噪和非带噪两种应用场景,便于研究者和使用者复现、评估、比较以及选择课程学习算法。

CurML 的主体模块是 CL Trainer,它由两个子模块 Model Trainer 和 CL Algorithm 组成,两者间通过五个接口函数进行交互,从而实现课程学习指导的机器学习过程。

图片

CurML 框架图

主体模块:CL Trainer

这一模块是整个开源库的主体部分。通过调用这一模块,使用者仅需几行代码即可实现课程学习算法。在给定数据集、模型和超参数后,模块将进行一定时间的训练,并输出训练后的模型参数和任务的测试结果。这一模块的设计主要是为了满足易用性的要求,因此进行了高度的封装,提供给想要使用课程学习算法但并不在意具体实现细节的使用者。

子模块 1:Model Trainer

这一模块用于完成一般的机器学习过程,例如训练一个图片分类器或是一个语言模型。同时,它预留了五个接口函数的位置,用于和第二个子模块 CL Algorithm 进行交互,也支持自定义的输入函数。

子模块 2:CL Algorithm

这一模块封装了 CurML 所支持的全部课程学习算法,如下表所示:

图片

模块的实现是通过五个接口函数,分别用于从机器学习过程中获取数据和模型信息,以及指导模型的学习策略,如下图所示。

图片

CurML 流程图

接口函数:data_prepare

这一函数用于从 Model Trainer 模块向 CL Algorithm 模块提供数据集信息。很多课程学习算法需要对数据集有一个整体的了解,才能更好地判断数据样本难度,因此这一接口函数是很有必要的。

接口函数:model_prepare

这一函数与 data_prepare 很类似,区别在于传递的不是数据集信息而是模型训练的相关信息,例如模型架构、参数优化器、学习率调整器等等,很多课程学习算法通过调节这些要素指导机器学习。

接口函数:data_curriculum

这一函数用于计算数据样本难度,并根据数据难度和当前模型状态为模型提供合适的数据,大部分的课程学习都具有类似的思想。

接口函数:model_curriculum

这一函数用于更新模型,调节模型从数据样本中获取的信息量,间接指导模型的学习,目前这类算法的数量还较少,但 CurML 也同样支持这类算法的实现。

接口函数:loss_curriculum

这一函数用于对损失函数值进行重加权,间接调整不同数据对于模型的影响,这类算法在课程学习中较为常见,因为损失值的加权在本质上是一种对数据的软采样。

通过对于十多种近年来课程学习方法的总结,采用上述的模块和接口参数可以统一化实现不同类型的课程学习算法,从而能在公平的场景和任务下对课程学习算法进行评估、比较和选择。

未来展望

CurML 的研发团队表示,在未来他们将不断更新这一开源库,为课程学习的发展和应用提供进一步的支持。

相关链接:

  • CurML 开源代码库链接:https://github.com/THUMNLab/CurML
  • CurML 开源软件论文链接:  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://proceedings.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

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2678

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1659

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1515

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

952

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1419

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1235

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1488

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

8

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 8.9万人学习

Rust 教程
Rust 教程

共28课时 | 4.6万人学习

Vue 教程
Vue 教程

共42课时 | 6.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号