【问题标题】:How to implement triplet loss in my project?如何在我的项目中实现三元组损失?
【发布时间】:2020-04-09 06:42:35
【问题描述】:

我正在做一个关于说话人识别的项目,我有音频文件的数据集,我将声音的特征(1x13 的数组)作为输入和输出,我为每个说话人选择一个随机整数(比如说说话人 1 -输出 = 1 个扬声器 2 输出 = 2...)

有人建议我使用三元组损失来获得更好的准确性,但我不明白我们如何在张量流中实现它(根本没有示例)

根据我到目前为止的理解,我为每个扬声器取 2 个正值和一个负值(例如,同一扬声器的 2 个音频文件的 2 个特征,以及我将创建的另一个扬声器的合成音频文件的一个特征波网)

但是为了实现三元组损失,我如何使用这些功能,这意味着我如何使用张量流真正实现它

【问题讨论】:

    标签: python tensorflow neural-network speech-recognition loss-function


    【解决方案1】:

    Triplet 损失函数的工作原理在以下步骤中进行了说明。

    训练数据:
    就像你说的,每个训练样本都需要三元组,Anchor,Positive,Negetive

    模型架构:

    我们的想法是让 3 个相同的网络具有相同的神经网络架构,并且它们应该共享权重。

    模型学习:

    该模型不仅学会了同时为不同类别制定集群,而且还成功地将外观相似的数据投影到其邻域区域。在分类架构的情况下,模型试图学习一对类之间的决策边界,但模型不关心类中相似和不同数据之间的完整性。

    您可以关注此link 和此link,它在 TensorFlow 上实现了三元组损失,您可以对您的数据采用相同的架构并对其进行一些更改。

    希望对你有所帮助,学习愉快!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-21
      • 2021-07-18
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多