元學(xué)習(xí)中n_ways,k_shots的n與k選擇
最近在做元學(xué)習(xí)相關(guān)的任務(wù),在運(yùn)行后發(fā)現(xiàn)網(wǎng)絡(luò)好像無法擬合,經(jīng)過分析感覺是數(shù)據(jù)量太少了,在元學(xué)習(xí)中也就是k太小,但我使用元學(xué)習(xí)的目的是為了在遇到少量且未知的樣本情況下,面對(duì)這些“異?!?/span>,模型可以快速擬合。
總結(jié)一下可以分為以下幾種情況:
數(shù)據(jù)集大?。?/strong> 如果數(shù)據(jù)集較小,通常需要選擇較小的n和k值,以免模型過度擬合。例如,n=5、k=1可能是比較好的初始值。
類別數(shù)量: 如果類別數(shù)量較多,你可能需要選擇較小的n,以確保模型能夠更好地學(xué)習(xí)每個(gè)類別之間的差異。例如,n=5適用于類別數(shù)量較多的情況。
任務(wù)復(fù)雜性: 如果任務(wù)比較簡單,可以嘗試較小的n和k值。如果任務(wù)非常復(fù)雜,可能需要增加n和k值,以便模型能夠更充分地學(xué)習(xí)類別之間的變化
模型架構(gòu): 不同的模型架構(gòu)可能對(duì)n和k的敏感度不同。一些模型可能需要更多的數(shù)據(jù)來學(xué)習(xí)復(fù)雜的關(guān)系,而另一些模型可能能夠更有效地從少量樣本中學(xué)習(xí)。
交叉驗(yàn)證: 通過交叉驗(yàn)證來選擇合適的n和k值也是一個(gè)好方法。可以嘗試不同的n和k組合,并在驗(yàn)證集上進(jìn)行評(píng)估,選擇在驗(yàn)證集上表現(xiàn)最好的組合,這種方法可能代價(jià)比較大,但應(yīng)該能找到較優(yōu)解。
我的數(shù)據(jù)集上類(n)相對(duì)較少,根據(jù)上面分析完,可能更符合第三種,本身任務(wù)較復(fù)雜,所以需要提高k的數(shù)量來讓模型盡量達(dá)到初步能夠擬合的程度。
最后再附上一張?jiān)贛eta-Dataset這篇論文中找到的十分不錯(cuò)的圖,闡明了n與k的影響,詳情可以查看引用。

上圖中表明,在n增多(需要分類的種類增多)的時(shí)候,網(wǎng)絡(luò)準(zhǔn)確度都是在下降的,重點(diǎn)是在于k,可以看到k在增多的時(shí)候,proto-maml相較于其他網(wǎng)絡(luò)都存在優(yōu)勢,當(dāng)k大于20之后才開始顯現(xiàn)疲態(tài),準(zhǔn)確度下降不再位居高位,甚至最終比knn都低,這意味著,隨著k值增大(過程越來越接近fine-tune,過擬合情況加深),樣本量增多,越接近fine-tune,對(duì)于maml這類元學(xué)習(xí)算法就越不友好,這也應(yīng)證了maml是適用于少樣本的。
看來n與k的選擇也有點(diǎn)門道。
https://arxiv.org/abs/1903.03096v1