我正在做一个关于说话人识别的项目,我有音频文件的数据集,从这些文件中,我将声音特征(1x13的数组)作为输入,作为输出,我为每个说话者选择一个随机整数(假设说话者1-输出= 1个扬声器2个输出= 2 ...)
有人提议我使用三重态损失来获得更好的精度,但我不明白我们如何在张量流中实现它(根本没有示例)
据我了解,到目前为止,我为每个扬声器获取2个正值和一个负值(例如,同一扬声器的2个音频文件的2个功能,以及将与之建立另一个扬声器的合成音频文件的一个功能) wavenet)
但是我如何使用此功能来实现三重态损失,这意味着我如何真正使用张量流实现它
答案 0 :(得分:0)
在以下步骤中说明了三重态损失函数的工作原理。
培训数据:
就像您说的那样,您需要为每个训练样本Anchor,Positive,Negetive
使用三元组。
模型的体系结构:
这个想法是让3个相同的网络具有相同的神经网络架构,并且它们应该共享权重。
模型学习:
该模型不仅学会了同时为不同类别创建聚类,而且还成功地将外观相似的数据投影到其邻域中。在分类架构的情况下,该模型尝试了解一对类之间的决策边界,但该模型并未考虑类中相似和异类数据之间的完整性。
您可以遵循此link和此link(在TensorFlow上实现了三元组丢失的实现),可以对数据遵循相同的体系结构并进行一些更改。
希望这对您有帮助,祝您学习愉快!