自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

業(yè)務(wù)數(shù)據(jù)全用上也喂不飽AI?試試這個小樣本學(xué)習(xí)工具包

人工智能
在計(jì)算機(jī)視覺、自然語言處理等大領(lǐng)域下,從深度學(xué)習(xí)最初大放異彩的圖像分類、文本分類,到進(jìn)一步的圖像生成、文本關(guān)系預(yù)測,機(jī)器學(xué)習(xí)算法取得的成就大多建立在大量數(shù)據(jù)驅(qū)動的訓(xùn)練算法之上。

 [[429751]]

本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

機(jī)器學(xué)習(xí)在數(shù)據(jù)密集型的應(yīng)用中取得了極佳的效果,但在數(shù)據(jù)集很小的場景下,多數(shù)機(jī)器學(xué)習(xí)算法的效果會嚴(yán)重受限[1]。在計(jì)算機(jī)視覺、自然語言處理等大領(lǐng)域下,從深度學(xué)習(xí)最初大放異彩的圖像分類、文本分類,到進(jìn)一步的圖像生成、文本關(guān)系預(yù)測,機(jī)器學(xué)習(xí)算法取得的成就大多建立在大量數(shù)據(jù)驅(qū)動的訓(xùn)練算法之上。然而,高質(zhì)量的標(biāo)注數(shù)據(jù)在大多數(shù)領(lǐng)域都是很難獲得的,這限制了諸多機(jī)器學(xué)習(xí)算法在相應(yīng)場景下的應(yīng)用能力。

  在這樣的背景下,小樣本學(xué)習(xí)(Few Shot Learning,FSL)的提出將解決數(shù)據(jù)集規(guī)模嚴(yán)重受限條件下的機(jī)器學(xué)習(xí)應(yīng)用問題。小樣本學(xué)習(xí)方法可以在利用先驗(yàn)知識的前提下,僅由極少量受監(jiān)督的樣本,使模型通過極少步的更新快速提升泛化性能,以應(yīng)用在新的相關(guān)任務(wù)上[1]。近年來,小樣本學(xué)習(xí)已經(jīng)應(yīng)用于計(jì)算機(jī)視覺、自然語言處理、人機(jī)交互、知識圖譜乃至生物計(jì)算等領(lǐng)域的諸多應(yīng)用中。

  小樣本學(xué)習(xí)的研究者在編碼實(shí)踐過程中通常會面臨原型實(shí)現(xiàn)和方法復(fù)現(xiàn)兩方面的問題[2]。為了方便飛槳開發(fā)者和使用飛槳的科研人員方便地執(zhí)行以下操作:

  • 在深度學(xué)習(xí)模型上應(yīng)用經(jīng)典的小樣本學(xué)習(xí)方法,或使用經(jīng)典小樣本數(shù)據(jù)集測試模型與方法
  • 設(shè)計(jì)新的小樣本學(xué)習(xí)方法,或構(gòu)建新的小樣本數(shù)據(jù)集
  • 比對各種小樣本學(xué)習(xí)方法在多種數(shù)據(jù)集上的效果

  我們開發(fā)了 PaddleFSL(Paddle toolkit for Few Shot Learning):基于飛槳的小樣本學(xué)習(xí)工具包,旨在降低小樣本學(xué)習(xí)研究和應(yīng)用的設(shè)計(jì)與時間成本。PaddleFSL 提供了低層次的工具函數(shù)與接口,以供使用者設(shè)計(jì)新的小樣本學(xué)習(xí)方法或構(gòu)建新的小樣本學(xué)習(xí)數(shù)據(jù)集,同時也提供了經(jīng)典小樣本學(xué)習(xí)方法的高層次實(shí)現(xiàn),以及經(jīng)典的小樣本數(shù)據(jù)集。

  項(xiàng)目鏈接:

  https://github.com/tata1661/FSL-Mate/tree/master/PaddleFSL

  框架概覽

  PaddleFSL 完整項(xiàng)目包含了以下幾個部分:

  樣例(examples):

  項(xiàng)目中高層次小樣本算法接口的使用樣例

  包主體(paddlefsl):

  python 包的主體

  • paddlefsl.backbones:

      諸如 MLP、卷積網(wǎng)絡(luò)、ResNet 等基準(zhǔn)模型

  • paddlefsl.datasets:

      小樣本數(shù)據(jù)集構(gòu)建接口,以及諸多經(jīng)典的小樣本數(shù)據(jù)集的預(yù)處理實(shí)現(xiàn)

  • paddlefsl.model_zoo:

      高層次經(jīng)典小樣本方法實(shí)現(xiàn)

  • paddlefsl.task_sampler:

      任務(wù)集的劃分:將訓(xùn)練和測試數(shù)據(jù)劃分為 N ways, K shots 以及 Q query points

  • paddlefsl.utils:

      與環(huán)境、輸入輸出或模型參數(shù)有關(guān)的工具函數(shù)

  數(shù)據(jù)文件(raw_data):

  存放原始數(shù)據(jù)文件的目錄,附各個經(jīng)典小樣本數(shù)據(jù)集的介紹與下載地址

  測試(test):

  包主體每一函數(shù)和類的單元測試,同時也是使用樣例文件

此外,在包主體的每一個外部接口處,我們都提供了詳實(shí)的注釋,包括了模塊的功能、參數(shù)的功能和使用樣例。

  在接下來的幾個章節(jié)中,我們將從數(shù)據(jù)集加載到訓(xùn)練完成,逐項(xiàng)介紹 PaddleFSL 的功能及其使用方法。

  安裝與測試

  本項(xiàng)目依賴飛槳開源框架 v2.0 或更新的版本,需要提前前往飛槳官網(wǎng)安裝。

  本項(xiàng)目在 github 開源,可以直接克隆 github 項(xiàng)目,配置環(huán)境變量后直接使用:

本項(xiàng)目也同時在 pypi 發(fā)布,可以通過更便捷的 pip 安裝包主體(paddlefsl),但這種方式不包含樣例(examples)、數(shù)據(jù)文件(raw_data)與測試文件(test):

  安裝完成后,可以通過以下的指令快速測試安裝是否成功:

數(shù)據(jù)集

  我們的項(xiàng)目提供了計(jì)算機(jī)視覺數(shù)據(jù)集(CVDataset)和關(guān)系分類數(shù)據(jù)集(RCDataset)兩種模板數(shù)據(jù)集接口,以及繼承自 CVDataset 的六種圖像分類數(shù)據(jù)集(Omniglot[3], Mini-ImageNet[4], Tiered-ImageNet[5], CIFAR-FS[6], FC100[7], CU-Birds[8])與繼承自 RCDataset 的一種關(guān)系分類數(shù)據(jù)集(FewRel1.0[9])。此外,我們還提供了中文自然語言處理小樣本領(lǐng)域的評測基準(zhǔn)數(shù)據(jù)集 FewCLUE[15]。

  以 Mini-ImageNet 為例,若要使用該數(shù)據(jù)集,僅需從項(xiàng)目提供的地址下載原始數(shù)據(jù)文件(mini-imagenet.tar.gz),并將其放置在 raw_data 目錄下,包主體代碼會自動解壓并處理數(shù)據(jù)文件:

用戶也可以將原始數(shù)據(jù)文件放置在任意一個有權(quán)限的目錄下,并將該目錄通過 root 參數(shù)傳遞給數(shù)據(jù)集。

  在小樣本學(xué)習(xí)的框架下,數(shù)據(jù)集常被劃分為 N ways(一個任務(wù)中有N種類別的樣本待分類)、K shots(K個有標(biāo)簽的樣本用于模型更新)和 Q query points(Q個有標(biāo)簽的樣本用于模型效果的評估或進(jìn)一步更新),因而本項(xiàng)目在數(shù)據(jù)集類中預(yù)置了隨機(jī)任務(wù)集劃分:

而在關(guān)系分類數(shù)據(jù)集(RCDataset)中,返回值的類型有 text(文本)和 numpy(numpy 數(shù)組)兩種可選項(xiàng),若選擇 numpy 則需要為數(shù)據(jù)集傳入一種初始化器:

此外,用戶可以直接通過繼承 CVDataset 和 RCDataset 構(gòu)建自己的數(shù)據(jù)集:根據(jù)用戶自己的原始數(shù)據(jù)文件格式,在新的數(shù)據(jù)集類中實(shí)現(xiàn)獲取元素、數(shù)據(jù)集長度、劃分隨機(jī)任務(wù)集三個接口,即可構(gòu)建新的小樣本數(shù)據(jù)集。用戶也可以直接效仿本項(xiàng)目給出的原始數(shù)據(jù)格式,將新數(shù)據(jù)的數(shù)據(jù)格式調(diào)整后,直接通過傳遞 root 參數(shù)給已有的數(shù)據(jù)集,從而更便捷地構(gòu)建新數(shù)據(jù)集。

  經(jīng)典小樣本方法的高層次接口

  我們的項(xiàng)目在 paddlefsl.model_zoo 中提供了五種經(jīng)典的小樣本方法的高層次接口(MAML, ANIL, ProtoNet, RelationNet, Siamese),以及三種小樣本 NLP 方法的直接實(shí)現(xiàn)(PET[16], P-Tuning[17], EFL[18])。

  MAML(Model-Agnostic Meta-Learning)是一種經(jīng)典的,可應(yīng)用于任何使用梯度下降訓(xùn)練的模型,并可以適用于包括分類、回歸、強(qiáng)化學(xué)習(xí)等多種任務(wù)的小樣本學(xué)習(xí)方法。MAML 不引入新的模塊,僅使用先驗(yàn)知識調(diào)整目標(biāo)模型的參數(shù),使之具備出色的泛化性能,可以在很有限的幾步梯度下降之后快速學(xué)習(xí)適應(yīng)新任務(wù)[10]。

  ANIL(Almost No Inner Loop)是一種針對 MAML 算法的分析與改進(jìn)。MAML 算法對于目標(biāo)模型的參數(shù)在外層循環(huán)(outer loop)與內(nèi)層循環(huán)(inner loop)都進(jìn)行了調(diào)整,而 ANIL 則在內(nèi)層循環(huán)固定了模型的主體部分參數(shù),僅對最后一層進(jìn)行微調(diào)(fine-tune)。該方法使用更少的計(jì)算開銷得到了與 MAML 同樣好的效果,并同時證明了 MAML 的方法讓模型取得了特征復(fù)用(feature reuse)的效果[11]。

  ProtoNet(Prototypical Networks)是一種更為經(jīng)典的、簡單有效的小樣本方法。它利用極少的帶標(biāo)簽樣本,讓模型學(xué)得另一個參數(shù)空間的原型特征(prototype),然后比對待分類樣本的原型特征和已知類別原型特征的距離,從而做出分類決策。該方法思路簡單,計(jì)算復(fù)雜度低,且在分類問題上有著非常不錯的表現(xiàn),并且可以延伸至零樣本學(xué)習(xí)(zero-shot learning)[12]。

  RelationNet(Relation Network)是一種在 ProtoNet 基礎(chǔ)上的提升改進(jìn)。在使用目標(biāo)模型學(xué)習(xí)到另一個參數(shù)空間的原型特征后,該方法增加了一個關(guān)系網(wǎng)絡(luò)(relation network)用以專門學(xué)習(xí)比較待分類樣本原型特征和已知類別原型特征的相似性,而不需要重新調(diào)整已知網(wǎng)絡(luò)[13]。

  Siamese (Siamese Networks)是一種早期的小樣本學(xué)習(xí)方法。該方法設(shè)計(jì)了一種孿生結(jié)構(gòu),很自然地學(xué)習(xí)如何更好地度量輸入內(nèi)容的相似度,從而使用極少的標(biāo)簽樣本來獲得預(yù)測新樣本的能力[14]。

  我們在 paddlefsl.model_zoo 中實(shí)現(xiàn)了上述五種算法的完整的訓(xùn)練和測試邏輯。以 MAML 為例,用戶僅需傳入待測數(shù)據(jù)集和相關(guān)的算法超參和訓(xùn)練配置,即可直接開始訓(xùn)練或測試,并自動保存訓(xùn)練得到的模型參數(shù):

此外,我們還在樣例(examples)中提供了 PET[16]、P-Tuning[17]和 EFL[18]在 FewCLUE 任務(wù)上的實(shí)現(xiàn)。FewCLUE 的任務(wù)將額外地依賴 paddlenlp 包,其實(shí)現(xiàn)過程中使用了百度的中文 NLP 預(yù)訓(xùn)練模型 ERNIE1.0,并匯報(bào)了三種算法的效果。

  我們利用本項(xiàng)目實(shí)現(xiàn)的經(jīng)典算法高層次接口測試了所有數(shù)據(jù)集上的效果,并與原論文或其他論文復(fù)現(xiàn)的效果做了比對。結(jié)果顯示,我們的實(shí)現(xiàn)均達(dá)到了原論文方法使用其他機(jī)器學(xué)習(xí)框架匯報(bào)的結(jié)果,在多數(shù)任務(wù)上提升了原有的效果。具體的結(jié)果數(shù)據(jù)在樣例(examples)中給出(https://github.com/tata1661/FSL-Mate/tree/master/PaddleFSL/examples)

  低層次常用工具函數(shù)

  除了完整的訓(xùn)練和測試實(shí)現(xiàn)接口外,本項(xiàng)目還提供了豐富的低層次工具函數(shù),用以實(shí)現(xiàn)常用的小樣本學(xué)習(xí)基本操作,例如原型特征(prototype)的計(jì)算、模型的克?。╟lone)、固定步長的單步梯度下降等等。

原型特征的計(jì)算和比較由 ProtoNet 提出(如上圖),因此該功能在 paddlefsl.model_zoo.protonet 中封裝并提供接口 get_prototype ()。該函數(shù)傳入所有帶標(biāo)簽樣本的特征,以及其對應(yīng)的標(biāo)簽,即可返回按標(biāo)簽順序排列的各個類別對應(yīng)原型特征。以 RelationNet 為例:

模型的克隆和單步梯度下降是 MAML 及其改進(jìn)型 ANIL 所依賴的操作。該方法不引入其他模塊,僅僅通過梯度對目標(biāo)模型做調(diào)整,目標(biāo)模型的參數(shù)將被通過外層循環(huán)和內(nèi)層循環(huán)兩次調(diào)整。在內(nèi)層循環(huán)中,對于模型的調(diào)整不可以直接作用于原目標(biāo)模型的所有參數(shù),而是需要累積多個任務(wù)的梯度,最終對原模型加以調(diào)整,這就要求模型的梯度保留,最上層微調(diào),而主體部分參數(shù)在累積后再做調(diào)整(如上圖)。

  因此,我們引入了模型克隆(clone)的功能:與機(jī)器學(xué)習(xí)框架中張量的克隆相同,被克隆的新模型并不與原模型共享內(nèi)存,從而實(shí)現(xiàn)獨(dú)立的調(diào)整,但同時要和原模型共享計(jì)算圖,從而實(shí)現(xiàn)梯度的關(guān)聯(lián)與累積。該功能在 paddlefsl.utils 中封裝為接口 clone_model ():

同樣是在基于梯度的 MAML 與 ANIL 方法中,由于模型主體參數(shù)梯度累積后調(diào)整與微調(diào)最上層的矛盾,在內(nèi)層循環(huán)的微調(diào)中不可以直接使用模型的優(yōu)化器進(jìn)行梯度下降,而應(yīng)該手動設(shè)置固定的步長(inner_loop_learning_rate)進(jìn)行不干預(yù)優(yōu)化器的梯度下降。該功能封裝在 paddlefsl.utils 中,提供接口 gradient_descent ():

除了舉例的三種低層次操作接口外,paddlefsl 還提供了更多豐富的工具函數(shù)。用戶可以在源碼或樣例中查看并體驗(yàn)(https://github.com/tata1661/FSL-Mate/tree/master/PaddleFSL/paddlefsl/utils)

  小樣本學(xué)習(xí)資源庫

PaddleFSL 代碼整合在小樣本學(xué)習(xí)綜述與前沿論文追蹤項(xiàng)目 FSL-Mate 中共同開源發(fā)布。FSL-Mate 項(xiàng)目是一個旨在整合小樣本學(xué)習(xí)研究成果與最新研究進(jìn)展的資源倉庫,該項(xiàng)目基于王雅晴博士于 2020 年 6 月發(fā)表在 ACM Computing Surveys (CSUR)上的小樣本學(xué)習(xí)綜述文章 Generalizing from a few examples: A survey on few-shot learning 擴(kuò)展而來。CSUR 是計(jì)算機(jī)領(lǐng)域權(quán)威頂刊,JCR1 區(qū),Core A* ,該小樣本學(xué)習(xí)綜述為 CSUR 2019-2021 年間最高引論文,也是 ESI 2021 高引論文。我們將持續(xù)更新和維護(hù)該倉庫,攜手對小樣本學(xué)習(xí)感興趣的開發(fā)者和研究人員,共同推進(jìn)小樣本學(xué)習(xí)領(lǐng)域的發(fā)展,敬請關(guān)注與下載體驗(yàn)!

  歡迎大家點(diǎn)開 Github 鏈接學(xué)習(xí)源碼或獲取工具包!

  項(xiàng)目鏈接:

  https://github.com/tata1661/FSL-Mate/tree/master/PaddleFSL

 ?。硗猓溄觾?nèi)附贈高質(zhì)量領(lǐng)域理解手冊【小樣本學(xué)習(xí)綜述】 ESI 2021 高引論文 / CSUR 2019-2021 最高引論文)

  項(xiàng)目作者:

  王雅晴,PaddleFSL 負(fù)責(zé)人、飛槳高級開發(fā)者技術(shù)專家(高級 PPDE)。2019 年博士畢業(yè)于香港科技大學(xué)計(jì)算機(jī)科學(xué)及工程學(xué)系。通過百度公司 AIDU 計(jì)劃加入百度研究院商業(yè)智能實(shí)驗(yàn)室,現(xiàn)任資深研發(fā)工程師及研究員。研究方向?yàn)闄C(jī)器學(xué)習(xí),并主要聚焦小樣本學(xué)習(xí)、稀疏和低秩學(xué)習(xí)、生物計(jì)算等方向?,F(xiàn)有多篇一作成果發(fā)表在 ICML、NeurIPS、WWW、EMNLP、TIP 等頂會頂刊上。

參考文獻(xiàn):

  [1] Wang Y, Yao Q, Kwok J T, Ni L M. Generalizing from a few examples: A survey on few-shot learning[J]. ACM Computing Surveys (CSUR), 2020, 53(3): 1-34.

  [2] Arnold S M R, Mahajan P, Datta D, et al. learn2learn: A library for meta-learning research[J]. arXiv preprint arXiv:2008.12284, 2020.

  [3] Lake B M, Salakhutdinov R, Tenenbaum J B. Human-level concept learning through probabilistic program induction[J]. Science, 2015, 350(6266): 1332-1338.

  [4] Vinyals O, Blundell C, Lillicrap T, et al. Matching networks for one shot learning[J]. Advances in neural information processing systems, 2016, 29: 3630-3638.

  [5] Ren M, Triantafillou E, Ravi S, et al. Meta-learning for semi-supervised few-shot classification[J]. arXiv preprint arXiv:1803.00676, 2018.

  [6] Bertinetto L, Henriques J F, Torr P H S, et al. Meta-learning with differentiable closed-form solvers[J]. arXiv preprint arXiv:1805.08136, 2018.

  [7] Oreshkin B N, Rodriguez P, Lacoste A. Tadam: Task dependent adaptive metric for improved few-shot learning[J]. arXiv preprint arXiv:1805.10123, 2018.

  [8] Wah C, Branson S, Welinder P, et al. The caltech-ucsd birds-200-2011 dataset[J]. 2011.

  [9] Han X, Zhu H, Yu P, et al. Fewrel: A large-scale supervised few-shot relation classification dataset with state-of-the-art evaluation[J]. arXiv preprint arXiv:1810.10147, 2018.

  [10] Finn C, Abbeel P, Levine S. Model-agnostic meta-learning for fast adaptation of deep networks[C]//International Conference on Machine Learning. PMLR, 2017: 1126-1135.

  [11] Raghu A, Raghu M, Bengio S, et al. Rapid learning or feature reuse? towards understanding the effectiveness of maml[J]. arXiv preprint arXiv:1909.09157, 2019.

  [12] Snell J, Swersky K, Zemel R S. Prototypical networks for few-shot learning[J]. arXiv preprint arXiv:1703.05175, 2017.

  [13] Sung F, Yang Y, Zhang L, et al. Learning to compare: Relation network for few-shot learning[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 1199-1208.

  [14] Koch G, Zemel R, Salakhutdinov R. Siamese neural networks for one-shot image recognition[C]//ICML deep learning workshop. 2015, 2.

  [15] Li Y, Zhao Y, Hu B, et al. GlyphCRM: Bidirectional Encoder Representation for Chinese Character with its Glyph[J]. arXiv preprint arXiv:2107.00395, 2021.

  [16] Liu, Xiao, Yanan Zheng, Zhengxiao Du, Ming Ding, Yujie Qian, Zhilin Yang, and Jie Tang. “GPT Understands, Too.” ArXiv:2103.10385 [Cs], March 18, 2021.

  [17] Wang, Sinong, Han Fang, Madian Khabsa, Hanzi Mao, and Hao Ma. “Entailment as Few-Shot Learner.” ArXiv:2104.14690 [Cs], April 29, 2021.

  [18] Wang, S., Fang, H., Khabsa, M., Mao, H., and Ma, H., “Entailment as Few-Shot Learner”, ArXiv:2001.07676 [Cs], 2021.

 

 

責(zé)任編輯:張燕妮 來源: 量子位
相關(guān)推薦

2020-10-06 16:28:49

AI

2023-11-30 18:25:57

數(shù)據(jù)訓(xùn)練

2024-03-18 09:22:43

AI模型

2022-10-30 15:00:40

小樣本學(xué)習(xí)數(shù)據(jù)集機(jī)器學(xué)習(xí)

2010-05-28 14:30:15

ibmdw業(yè)務(wù)應(yīng)用

2021-08-19 15:48:05

增量攻擊網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2021-01-27 11:36:34

代碼開發(fā)工具

2025-01-27 00:57:43

2021-07-28 11:54:09

阿里云AI自然語言理解

2019-05-13 09:22:21

微軟開源機(jī)器學(xué)習(xí)

2021-03-25 15:32:21

深度學(xué)習(xí)編程人工智能

2018-05-03 09:03:16

微軟工具包Windows

2013-07-08 10:08:40

海量樣本篩選大數(shù)據(jù)

2022-02-09 07:44:30

Go源碼工具

2019-11-04 15:00:01

DatatableR語言數(shù)據(jù)科學(xué)

2022-01-26 07:18:57

工具GoGo 項(xiàng)目

2018-12-27 10:52:10

Facebook 開發(fā)開源

2020-06-18 15:45:54

AWS機(jī)器學(xué)習(xí)人工智能

2020-07-29 10:55:07

數(shù)據(jù)庫工具技術(shù)

2010-05-28 14:15:29

ibmdw數(shù)據(jù)庫架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號