【问题标题】:What is embedding_column doing in tensorflowembedding_column 在 tensorflow 中做什么
【发布时间】:2018-08-19 19:07:00
【问题描述】:

在我看来,从文档来看,它使用嵌入矩阵将单热编码(如稀疏输入向量)转换为密集向量。但这与仅使用全连接层有何不同?

【问题讨论】:

  • 不同之处在于每个 one-hot 编码向量都映射到(可能)不同的密集向量。本质上它就像一个查找表。例如,当您想用密集的嵌入向量表示每个单词(即编码为一个热向量)时,它具有应用程序。阅读 Cross Validated 上的 this 和 Stackoverflow 上的 this 了解更多信息。
  • 我认为它们与 Dense 层的区别可以用效率来概括:它们更快(因为查找而不是矩阵乘法)并且数据效率更高(如果使用索引向量而不是一个-热向量)。

标签: tensorflow machine-learning embedding


【解决方案1】:

从 cmets 到这里总结答案。 主要区别在于效率。使用 embedding_column 无需在这些非常长的 one hot 向量中编码数据点并进行矩阵乘法,您可以使用索引向量并进行矩阵查找。

【讨论】:

    【解决方案2】:

    表示类别。

    one-hot encoding 和 embedding 列都是表示分类特征的选项。

    one-hot 编码的一个问题是它不编码类别之间的任何关系。它们是完全独立的,所以神经网络无法知道哪些是相似的。

    这个问题可以通过使用嵌入来表示分类特征来解决 柱子。这个想法是每个类别都有一个较小的向量。这些值是权重,类似于用于神经网络中基本特征的权重。

    更多:

    https://developers.googleblog.com/2017/11/introducing-tensorflow-feature-columns.html
    

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 2016-04-09
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 2023-03-24
      • 2014-04-29
      相关资源
      最近更新 更多