深度學習筆記(25):Few-Shot Learning

Image for post
Image for post

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有哪些。

Image for post
Image for post

細談Siamese Network

我們有X1和X2兩張圖片,透過了h1和h2的卷積網路後,經過Dense Layers,最後輸出sigmoid函數去判斷X1和X2之間的相似度有多高,我們希望這個Loss越低越好,這樣就代表著,我們的預測值和實際值相當接近。

Image for post
Image for post

除此之外,我們還學習到了一個叫作Triplet Loss的概念。X+代表正樣本;Xa代表anchor;X-代表負樣本。

我們分別將這3個sample透過f這個function得出了結果,再透過距離計算公式(正、負樣本與anchor之間的距離),得出d+、d-。

我們希望我們的anchor離正樣本的距離越小越好,代表越相似;離負樣本的距離越大越好,代表我們的預測結果能明顯分出跟負樣本間的差異。

Image for post
Image for post

回顧:

上下兩張投影片分別回顧了整個系列課程影片的內容

Image for post
Image for post

Written by

Machine Learning / Deep Learning / Python / Flutter cakeresume.com/yanwei-liu

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store