【问题标题】:Tensorflow-Deeplearning - Correlation between input and outputTensorflow-Deeplearning - 输入和输出之间的相关性
【发布时间】:2019-02-03 10:52:47
【问题描述】:

我正在尝试使用 TensorFlow 进行语音识别。

我将输入作为波形,将字作为输出。

波形应该是这样的

[0,0,0,-2,3,-4,-1,7,0,0,0...0,0,0,20,-11,4,0,0,1,...]

单词将是一个数字数组,而每个数字代表一个单词:

[12,4,2,3]

训练后我还想找出每个输出标签的输入和输出之间的相关性。

例如我想知道哪些输入神经元 |样本负责第一个标签(这里是 12 个)。

[0,0.01,0.10,0.99,0.77,0.89,0.99,0.79,0.22,0.11,0...0,0,0,0,0,0,0,0,0,...]

输入的原始值将被相关性替换,而 0 表示无相关性,1 表示完全相关性。

目标是获取单词开始时的位置。

张量流中是否有函数可以得到这种相关性?

【问题讨论】:

  • 我认为没有开箱即用的功能可以为您做到这一点。这可能取决于您使用的模型以及如何从中提取“意义”(听起来很抽象)
  • 我正在考虑一些方法来遍历信息从输入神经元到输出神经元的方式,看看每个神经元对每个输出值的参与程度有多“强”。我什至不知道如何称呼这个。那已经有名字了吗?
  • 1) 这是一个非常抽象的讨论,我认为没有人可以在没有看到您在做什么的情况下给您任何建议,并且 2) 这完全取决于您的网络结构。如果您正在做某种 RNN,那么您可能想要研究注意力,如果您正在做某种形式的卷积时间模型,您可能想要研究反卷积层或其他东西
  • 也许这张图片有助于理解,我的意思是:imgur.com/a/lKUliXK
  • 您也许可以使用tf.gradients(即tf.gradients(output,input))。它不会为您提供介于 0 和 1 之间的值,但特定位置的梯度幅度会为您提供有关输入向量的哪些部分对输出影响最大的信息。

标签: tensorflow deep-learning correlation tensor


【解决方案1】:

问题

我有一个数据序列 (X),我想将其转换为另一个数据序列 (Y),并报告 (X) 的哪一部分对 (Y) 有贡献。

回答

这是一个众所周知的问题,Tensorflow.org 实际上有一个很棒的例子neural machine translation with attention

示例代码展示了如何将 X(西班牙语)翻译成 Y(英语),并报告 X 的哪些部分对 Y 的每个部分的决策有贡献(注意)

完全相同的原理和代码可用于将 X(波形数据)转换为 Y(单词),并通过注意力读数报告波形数据的哪一部分对每个单词有贡献。

示例中的注意力层称为attention_layer

【讨论】:

    猜你喜欢
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    相关资源
    最近更新 更多