清華大學發布首個課程學習開源庫CurML
在機器學習的發展過程中,人類的學習方式常常會對各種算法的設計產生啟發。而作為人類學習的一個重要范式,通過課程進行學習,已經被借鑒到機器學習中形成了名為課程學習(Curriculum Learning)的研究方向。
普遍而言,人類的教育是通過高度組織化的課程來完成的。每一門課或是每一個學科,都會從簡單的內容開始,逐步向學生呈現更復雜的概念。例如,在大學接受微積分的概念之前,一名學生應當先在小學學習算術,在初中學習函數,在高中學習導數。然而與人類教育不同的是,傳統機器學習模型的訓練都是將數據樣本隨機輸入模型,忽略了數據樣本之間不同的復雜性以及模型當前的學習狀態。因此,課程學習在機器學習領域的提出,正是為了模仿人類由易到難的學習方式,為模型提供更好的訓練策略,從而提升模型的表現。
課程學習概念圖
目前課程學習已經廣泛應用在機器學習的各個任務中,包括圖片分類、目標檢測、語義分割、機器翻譯、音頻識別、音頻增強、視頻問答等等,同時也在有監督、無監督和半監督學習以及強化學習等場景下受到大量關注和研究。
隨著課程學習的應用和場景日益豐富,特別需要對這一領域進行細致的梳理和歸納,從而推動研究者的深入探索、提升使用者的應用體驗。
因此,清華大學朱文武教授所帶領的媒體與網絡大數據實驗室在發表了多篇課程學習學術論文的積累和基礎上,實驗室成員王鑫在 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