“Few-shot learning”被翻譯成“小樣本學習”,而不是“Few-dataSet learning”翻譯出來的“小樣本”。
拿文本分類來說,傳統(tǒng)的Deep learning 是讓模型學會在給定的類上對模型input進行分類,利用眾多的(input,label)對進行模型分類功能的擬合:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
F()這個分類模型只知道了在現(xiàn)有類型(label1,label2,...,labeln)對input進行分類,如果input的label類沒在現(xiàn)有的label中,那么就會被標注為None。對于新的未知類型,傳統(tǒng)的Deep learning需要重行訓練并需要大量的標注語料在新類型上。
在小樣本學習中,它的訓練training和測試testing過程與傳統(tǒng)的Deep learning大有不同,在training和testing各自的過程中數(shù)據(jù)又被分出了support_set 和 query_set 。support_set 和 query_set 是沒有交集的兩個數(shù)據(jù)集
對training過程的support_set和query_set數(shù)據(jù)集使用的理解:
? ? ? ? ? ? ?在training中包括使用support_set進行訓練的過程,讓模型學習某種能力,如果是文本分類,就讓模型learning to learn 分類的能力。support_set是讓模型在練習這種能力,query_set是在檢測這種能力學習的效果。?
? ? ? ? ? ? ?在testing中support_set數(shù)據(jù)的類型是training中沒有的,在testing過程中同樣是有訓練的,訓練讓模型快速增加新的知識,這里query_set 是在檢測快速學習的新知識的效果,即快速學習得怎么樣。
小樣本學習過程中最常見的一個問題是過擬合,這個問題是由于Deep learing在n_wey,k_shot上的學習能力太強,一個task的小樣本在神經(jīng)網(wǎng)絡中是肯定會出現(xiàn)過擬合的。所以神經(jīng)網(wǎng)絡需要多個task,如模型在learning to learn “貓和狗”的分類很快就會學會,這時候模型只learning to learn 了分類“貓和狗”,如果來了一個新的區(qū)分類“老鼠和松樹”它不能很快的并準確的遷移學習到這個分類,因為模型只練習了一個分類的task,泛化能力還很弱。這時我們給模型更多的分類的task,如“熊和熊貓”、“老虎和獅子”、“馬和鹿”,除了相似的動物還可以是汽車,如“卡車和轎車”、“自行車和電車”,區(qū)分相似的植物,如“槐樹和楊樹”、“月季花和和玫瑰花”、“小麥和韭菜”、“玉米和高粱”等等。
這時模型learning to learn的多個task,模型就掌握了區(qū)分相似實物的能力,再來一個新的相似物區(qū)分task就能快速正確的分辨。 在training過程中,如果不斷的給模型新的task,它是不是會不斷的增加這種能力應用于更廣范圍的區(qū)分相似實物的能力。這種能力的受限條件應該是神經(jīng)網(wǎng)絡的選擇,如使用bert還是LSTM,更深的神經(jīng)網(wǎng)絡還是淺的神經(jīng)網(wǎng)絡,神經(jīng)網(wǎng)絡是由參數(shù)構成的,這些參數(shù)被叫做神經(jīng)元,當神經(jīng)網(wǎng)絡達到一定的飽和度是參數(shù)的有效性就達到了最佳。
參數(shù)過多會出現(xiàn)過擬合,參數(shù)不足學習能力達不到,出現(xiàn)欠擬合。參數(shù)的有效性需不需要考慮,怎樣考慮這參數(shù)的有效性。