4-1 One-Shot 學習


One-Shot 學習( One-shot learning)

人臉識別所面臨的一個挑戰就是你需要解決一次學習問題,這意味着在大多數人臉識別應用中,你需要通過單單一張圖片或者單單一個人臉樣例就能去識別這個人。所以在一次學習問題中,只能通過一個樣本進行學習,以能夠認出同一個人。大多數人臉識別系統都需要解決這個問題,因為在你的數據庫中每個雇員或者組員可能都只有一張照片。

有一種辦法是,將人的照片放進卷積神經網絡中,使用 softmax 單元來輸出 4 種,或者說 5 種標簽,分別對應這 4 個人,或者 4 個都不是,所以 softmax 里我們會有 5 種輸出。但實際上這樣效果並不好,因為如此小的訓練集不足以去訓練一個穩健的神經網絡。

而且,假如有新人加入你的團隊,你現在將會有 5 個組員需要識別,所以輸出就變成了6 種,這時你要重新訓練你的神經網絡嗎?這聽起來實在不像一個好辦法。

所以要讓人臉識別能夠做到一次學習,為了能有更好的效果,你現在要做的應該是學習Similarity 函數。詳細地說,你想要神經網絡學習這樣一個用d表示的函數:

$d(img1,img2) = \deg ree\;of\;difference\;between\;images$

它以兩張圖片作為輸入,然后輸出這兩張圖片的差異值。如果你放進同一個人的兩張照片,你希望它能輸出一個很小的值,如果放進兩個長相差別很大的人的照片,它就輸出一個很大的值。所以在識別過程中,如果這兩張圖片的差異值小於某個閾值$\tau$,它是一個超參數,那么這時就能預測這兩張圖片是同一個人,如果差異值大於$\tau$,就能預測這是不同的兩個人, 這就是解決人臉驗證問題的一個可行辦法。

要注意在這過程中你是如何解決一次學習問題的,只要你能學習這個函數d,通過輸入一對圖片,它將會告訴你這兩張圖片是否是同一個人。如果之后有新人加入了你的團隊,你只需將他的照片加入你的數據庫,系統依然能照常工作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM