[英]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.