深度學習筆記(25):Few-Shot Learning
3 min readJul 15, 2020
Few-Shot Learning
我們有1張圖片(query,是未知的class),要去預測其class為何。這時候,透過訓練一個Siamese的神經網路,來進行圖片(support set)相似度的預測或者比較其與support set間的距離。
Support set有兩個參數,k-way代表k個class,n-shot代表每個class有n張圖片(samples)。
通常來說,k越小越容易,準確度越高;n越多,準確度也會越高。
值得注意的是,我們的訓練集不包含K classes,也就是說,其實我們的訓練集並不知道classes有哪些。
細談Siamese Network
我們有X1和X2兩張圖片,透過了h1和h2的卷積網路後,經過Dense Layers,最後輸出sigmoid函數去判斷X1和X2之間的相似度有多高,我們希望這個Loss越低越好,這樣就代表著,我們的預測值和實際值相當接近。
除此之外,我們還學習到了一個叫作Triplet Loss的概念。X+代表正樣本;Xa代表anchor;X-代表負樣本。
我們分別將這3個sample透過f這個function得出了結果,再透過距離計算公式(正、負樣本與anchor之間的距離),得出d+、d-。
我們希望我們的anchor離正樣本的距離越小越好,代表越相似;離負樣本的距離越大越好,代表我們的預測結果能明顯分出跟負樣本間的差異。
回顧:
上下兩張投影片分別回顧了整個系列課程影片的內容