Triplet Loss

前言

透過定義Triplet Loss,才能評估Siamese Network是否有正確的學習similarity function。

內容

  • Learning Objective

  • anchor跟positive的的距離要比anchor跟negative的小。
  • 導入margin的原因:
    • 避免模型乾脆不學,模型都判斷距離為0,導入margin後,模型就必須進行學習。
  • Loss function

  • 將上面的公式轉化成我們Loss function的核心部分。
  • 當核心公式小於0,則loss會取0(max)

    • 在反向傳遞時,就會強化目前的parameters。
  • 當核心公式大於0,則loss會取核心公式(max)

    • 在反向傳遞時,就會弱化目前的parameters。
  • Choosing the triplets A,P,N

  • 訓練時,每個不同的人必須要有多張圖片,否則就沒有A,P的對應,模型就無法有效訓練。
  • 測試時,一個人只一張圖是沒有問題。
  • Training set using triplet loss

  • 訓練時,也不能對A,P,N做隨機選擇。
    • 因為即是A,P確保時同一人,但A,N若差異很大,則核心公式很容易就被滿足了。之後如果遇到P,N很相似的圖片,模型則毫無辨識能力。
    • 盡量選擇d(A,P)接近d(A,N),讓模型必須認真學習更新其參數。

該學到的

  • loss function為何要有margin。
  • 為何訓練時,數據樣本要多人數 ?
  • 為何訓練時,不能隨機進行挑選 ?

results matching ""

    No results matching ""