清華大學(xué)發(fā)布首個(gè)課程學(xué)習(xí)開源庫CurML
在機(jī)器學(xué)習(xí)的發(fā)展過程中,人類的學(xué)習(xí)方式常常會(huì)對各種算法的設(shè)計(jì)產(chǎn)生啟發(fā)。而作為人類學(xué)習(xí)的一個(gè)重要范式,通過課程進(jìn)行學(xué)習(xí),已經(jīng)被借鑒到機(jī)器學(xué)習(xí)中形成了名為課程學(xué)習(xí)(Curriculum Learning)的研究方向。
普遍而言,人類的教育是通過高度組織化的課程來完成的。每一門課或是每一個(gè)學(xué)科,都會(huì)從簡單的內(nèi)容開始,逐步向?qū)W生呈現(xiàn)更復(fù)雜的概念。例如,在大學(xué)接受微積分的概念之前,一名學(xué)生應(yīng)當(dāng)先在小學(xué)學(xué)習(xí)算術(shù),在初中學(xué)習(xí)函數(shù),在高中學(xué)習(xí)導(dǎo)數(shù)。然而與人類教育不同的是,傳統(tǒng)機(jī)器學(xué)習(xí)模型的訓(xùn)練都是將數(shù)據(jù)樣本隨機(jī)輸入模型,忽略了數(shù)據(jù)樣本之間不同的復(fù)雜性以及模型當(dāng)前的學(xué)習(xí)狀態(tài)。因此,課程學(xué)習(xí)在機(jī)器學(xué)習(xí)領(lǐng)域的提出,正是為了模仿人類由易到難的學(xué)習(xí)方式,為模型提供更好的訓(xùn)練策略,從而提升模型的表現(xiàn)。
課程學(xué)習(xí)概念圖
目前課程學(xué)習(xí)已經(jīng)廣泛應(yīng)用在機(jī)器學(xué)習(xí)的各個(gè)任務(wù)中,包括圖片分類、目標(biāo)檢測、語義分割、機(jī)器翻譯、音頻識(shí)別、音頻增強(qiáng)、視頻問答等等,同時(shí)也在有監(jiān)督、無監(jiān)督和半監(jiān)督學(xué)習(xí)以及強(qiáng)化學(xué)習(xí)等場景下受到大量關(guān)注和研究。
隨著課程學(xué)習(xí)的應(yīng)用和場景日益豐富,特別需要對這一領(lǐng)域進(jìn)行細(xì)致的梳理和歸納,從而推動(dòng)研究者的深入探索、提升使用者的應(yīng)用體驗(yàn)。
因此,清華大學(xué)朱文武教授所帶領(lǐng)的媒體與網(wǎng)絡(luò)大數(shù)據(jù)實(shí)驗(yàn)室在發(fā)表了多篇課程學(xué)習(xí)學(xué)術(shù)論文的積累和基礎(chǔ)上,實(shí)驗(yàn)室成員王鑫在 IEEE TPAMI 發(fā)表了關(guān)于課程學(xué)習(xí)的綜述論文,實(shí)驗(yàn)室進(jìn)一步發(fā)布了全球首個(gè)課程學(xué)習(xí)開源庫 CurML (Curriculum Machine Leanring)。
朱文武教授與王鑫助理研究員的課程學(xué)習(xí)研究工作包括應(yīng)用于城市興趣地點(diǎn)推薦的課程元學(xué)習(xí)方法、基于帶噪多反饋信息的課程解耦商品推薦、基于課程學(xué)習(xí)的共享參數(shù)神經(jīng)架構(gòu)搜索、以及基于課程難度自適應(yīng)的組合優(yōu)化問題求解等等。研究成果發(fā)表于 SIGKDD、NeurIPS、ACM MM 等高水平國際機(jī)器學(xué)習(xí)會(huì)議上。
部分研究成果框架圖
課程學(xué)習(xí)綜述論文則全面回顧了課程學(xué)習(xí)的產(chǎn)生、定義、理論和應(yīng)用等各個(gè)方面,設(shè)計(jì)了統(tǒng)一的課程學(xué)習(xí)框架,并根據(jù)框架內(nèi)的核心組成將課程學(xué)習(xí)算法分為兩個(gè)大類和多個(gè)小類,區(qū)分了課程學(xué)習(xí)與其他機(jī)器學(xué)習(xí)概念之間的不同和關(guān)聯(lián),指出了這一領(lǐng)域所面臨的挑戰(zhàn)和未來可能的研究方向。
課程學(xué)習(xí)方法分類
課程學(xué)習(xí)開源庫 CurML 是課程學(xué)習(xí)算法的支持平臺(tái),已經(jīng)集成十多種課程學(xué)習(xí)算法,同時(shí)支持帶噪和非帶噪兩種應(yīng)用場景,便于研究者和使用者復(fù)現(xiàn)、評估、比較以及選擇課程學(xué)習(xí)算法。
CurML 的主體模塊是 CL Trainer,它由兩個(gè)子模塊 Model Trainer 和 CL Algorithm 組成,兩者間通過五個(gè)接口函數(shù)進(jìn)行交互,從而實(shí)現(xiàn)課程學(xué)習(xí)指導(dǎo)的機(jī)器學(xué)習(xí)過程。
CurML 框架圖
主體模塊:CL Trainer
這一模塊是整個(gè)開源庫的主體部分。通過調(diào)用這一模塊,使用者僅需幾行代碼即可實(shí)現(xiàn)課程學(xué)習(xí)算法。在給定數(shù)據(jù)集、模型和超參數(shù)后,模塊將進(jìn)行一定時(shí)間的訓(xùn)練,并輸出訓(xùn)練后的模型參數(shù)和任務(wù)的測試結(jié)果。這一模塊的設(shè)計(jì)主要是為了滿足易用性的要求,因此進(jìn)行了高度的封裝,提供給想要使用課程學(xué)習(xí)算法但并不在意具體實(shí)現(xiàn)細(xì)節(jié)的使用者。
子模塊 1:Model Trainer
這一模塊用于完成一般的機(jī)器學(xué)習(xí)過程,例如訓(xùn)練一個(gè)圖片分類器或是一個(gè)語言模型。同時(shí),它預(yù)留了五個(gè)接口函數(shù)的位置,用于和第二個(gè)子模塊 CL Algorithm 進(jìn)行交互,也支持自定義的輸入函數(shù)。
子模塊 2:CL Algorithm
這一模塊封裝了 CurML 所支持的全部課程學(xué)習(xí)算法,如下表所示:
模塊的實(shí)現(xiàn)是通過五個(gè)接口函數(shù),分別用于從機(jī)器學(xué)習(xí)過程中獲取數(shù)據(jù)和模型信息,以及指導(dǎo)模型的學(xué)習(xí)策略,如下圖所示。
CurML 流程圖
接口函數(shù):data_prepare
這一函數(shù)用于從 Model Trainer 模塊向 CL Algorithm 模塊提供數(shù)據(jù)集信息。很多課程學(xué)習(xí)算法需要對數(shù)據(jù)集有一個(gè)整體的了解,才能更好地判斷數(shù)據(jù)樣本難度,因此這一接口函數(shù)是很有必要的。
接口函數(shù):model_prepare
這一函數(shù)與 data_prepare 很類似,區(qū)別在于傳遞的不是數(shù)據(jù)集信息而是模型訓(xùn)練的相關(guān)信息,例如模型架構(gòu)、參數(shù)優(yōu)化器、學(xué)習(xí)率調(diào)整器等等,很多課程學(xué)習(xí)算法通過調(diào)節(jié)這些要素指導(dǎo)機(jī)器學(xué)習(xí)。
接口函數(shù):data_curriculum
這一函數(shù)用于計(jì)算數(shù)據(jù)樣本難度,并根據(jù)數(shù)據(jù)難度和當(dāng)前模型狀態(tài)為模型提供合適的數(shù)據(jù),大部分的課程學(xué)習(xí)都具有類似的思想。
接口函數(shù):model_curriculum
這一函數(shù)用于更新模型,調(diào)節(jié)模型從數(shù)據(jù)樣本中獲取的信息量,間接指導(dǎo)模型的學(xué)習(xí),目前這類算法的數(shù)量還較少,但 CurML 也同樣支持這類算法的實(shí)現(xiàn)。
接口函數(shù):loss_curriculum
這一函數(shù)用于對損失函數(shù)值進(jìn)行重加權(quán),間接調(diào)整不同數(shù)據(jù)對于模型的影響,這類算法在課程學(xué)習(xí)中較為常見,因?yàn)閾p失值的加權(quán)在本質(zhì)上是一種對數(shù)據(jù)的軟采樣。
通過對于十多種近年來課程學(xué)習(xí)方法的總結(jié),采用上述的模塊和接口參數(shù)可以統(tǒng)一化實(shí)現(xiàn)不同類型的課程學(xué)習(xí)算法,從而能在公平的場景和任務(wù)下對課程學(xué)習(xí)算法進(jìn)行評估、比較和選擇。
未來展望
CurML 的研發(fā)團(tuán)隊(duì)表示,在未來他們將不斷更新這一開源庫,為課程學(xué)習(xí)的發(fā)展和應(yīng)用提供進(jìn)一步的支持。
相關(guān)鏈接:
- CurML 開源代碼庫鏈接:https://github.com/THUMNLab/CurML
- CurML 開源軟件論文鏈接: https://dl.acm.org/doi/pdf/10.1145/3503161.3548549
- 課程學(xué)習(xí)綜述論文鏈接:https://ieeexplore.ieee.org/abstract/document/9392296/
- 課程元學(xué)習(xí)論文鏈接:https://dl.acm.org/doi/abs/10.1145/3447548.3467132
- 課程解耦學(xué)習(xí)論文鏈接:https://proceedings.neurips.cc/paper/2021/file/e242660df1b69b74dcc7fde711f924ff-Paper.pdf
- 課程神經(jīng)架構(gòu)搜索論文鏈接:https://dl.acm.org/doi/abs/10.1145/3503161.3548271
- 課程難度自適應(yīng)論文鏈接:https://ojs.aaai.org/index.php/AAAI/article/download/20899/version/19196/20658