簡體   English   中英

如何在我的項目中實現三元組損失?

[英]How to implement triplet loss in my project?

我正在做一個關於說話人識別的項目,我有音頻文件的數據集,從中我將聲音特征(1x13 數組)作為輸入和輸出,我為每個揚聲器選擇一個隨機整數(假設揚聲器 1 - 輸出 = 1揚聲器 2 輸出 = 2...)

我被提議使用三元組損失以獲得更好的准確性,但我不明白我們如何在張量流中實現它(根本沒有例子)

從我到現在的理解,我為每個揚聲器取 2 個正值和一個負值(例如,同一揚聲器的 2 個音頻文件的 2 個特征,以及我將使用 wavenet 創建的另一個揚聲器的合成音頻文件的一個特征)

但是我用這個特性做了什么以實現三元組損失,這意味着我如何使用張量流來真正實現它

Triplet 損失函數的工作在以下步驟中進行了解釋。

訓練數據:
就像你說的,每個訓練樣本都需要有三元組, Anchor,Positive,Negetive

模型架構:

這個想法是讓 3 個相同的網絡具有相同的神經網絡架構,並且它們應該共享權重。

在此處輸入圖片說明

模型學習:

該模型不僅學會了同時為不同類別制定集群,而且還成功地將外觀相似的數據投影到其鄰域區域。 在分類架構的情況下,該模型嘗試學習一對類之間的決策邊界,但該模型不考慮類內相似和不同數據之間的完整性。

您可以點擊此鏈接以及此鏈接,該鏈接在 TensorFlow 上實現了三元組損失,您可以遵循相同的數據架構,並對其進行一些更改。

希望對你有幫助,祝學習愉快!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM