繁体   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