在機器學習的發展過程中,人類的學習方式常常會對各種演算法的設計產生啟發。而作為人類學習的重要範式,透過課程進行學習,已經被借鑒到機器學習中形成了名為課程學習(Curriculum Learning)的研究方向。
普遍而言,人類的教育是透過高度組織化的課程來完成的。每一門課或每一個學科,都會從簡單的內容開始,逐步向學生呈現更複雜的概念。例如,在大學接受微積分的概念之前,一名學生應先在小學學習算術,在初中學習函數,在高中學習導數。然而與人類教育不同的是,傳統機器學習模型的訓練都是將資料樣本隨機輸入模型,忽略了資料樣本之間不同的複雜性以及模型目前的學習狀態。因此,課程學習在機器學習領域的提出,正是為了模仿人類由易到難的學習方式,為模型提供更好的訓練策略,進而提升模型的表現。
課程學習概念圖
##目前課程學習已經廣泛應用在機器學習的各個任務中,包括圖片分類、目標檢測、語義分割、機器翻譯、音頻識別、音頻增強、視頻問答等等,同時也在有監督、無監督和半監督學習以及強化學習等場景下受到大量關注與研究。
隨著課程學習的應用和場景日益豐富,特別需要對這一領域進行細緻的梳理和歸納,從而推動研究者的深入探索、提升使用者的應用體驗。
因此,清華大學朱文武教授所帶領的媒體與網路大數據實驗室在發表了多篇課程學習學術論文的積累和基礎上,實驗室成員王鑫在IEEE TPAMI 發表了關於課程學習的綜述論文,實驗室進一步發布了全球首個課程學習開源程式庫CurML (Curriculum Machine Leanring)。
朱文武教授與王鑫助理研究員的課程學習研究工作包括應用於城市興趣地點推薦的課程元學習方法、基於帶噪多反饋信息的課程解耦商品推薦、基於課程學習的共享參數神經架構搜尋、以及基於課程難度自適應的組合最佳化問題求解等等。研究成果發表於 SIGKDD、NeurIPS、ACM MM 等高水準國際機器學習會議。
部分研究成果架構圖
課程學習綜述論文則全面回顧了課程學習的產生、定義、理論和應用等各個方面,設計了統一的課程學習框架,並根據框架內的核心組成將課程學習演算法分為兩個大類和多個小類,區分了課程學習與其他機器學習概念之間的不同和關聯,指出了這一領域所面臨的挑戰和未來可能的研究方向。
課程學習方法分類
##課程學習開源庫CurML 是課程學習演算法的支援平台,已經整合十多種課程學習演算法,同時支援帶噪和非帶噪兩種應用場景,便於研究者和使用者復現、評估、比較以及選擇課程學習演算法.CurML 的主體模組是CL Trainer,它由兩個子模組Model Trainer 和CL Algorithm 組成,兩者間透過五個介面函數進行交互,從而實現課程學習指導的機器學習過程。
CurML 框架圖 這模組是整個開源函式庫的主體部分。透過呼叫此模組,使用者僅需幾行程式碼即可實現課程學習演算法。在給定資料集、模型和超參數後,模組將進行一定時間的訓練,並輸出訓練後的模型參數和任務的測試結果。這個模組的設計主要是為了滿足易用性的要求,因此進行了高度的封裝,提供給想要使用課程學習演算法但並不在乎具體實現細節的使用者。 子模組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 的研發團隊表示,在未來他們將持續更新這項開源程式庫,為課程學習的發展和應用提供進一步的支援。 相關連結:」主體模組:CL Trainer
未來展望
以上是清華大學發布首個課程學習開源庫CurML的詳細內容。更多資訊請關注PHP中文網其他相關文章!