【问题标题】:How to add one hot vectors?如何添加一个热向量?
【发布时间】:2025-12-26 05:00:06
【问题描述】:

我有几个大小为 48 的热向量(超过 2 个)。我怎样才能添加它们?有没有具体的方法或者简单的算术加法?如果算术加法,我应该如何处理进位?

我知道这可能是一个非常基本的问题,但我是人工智能领域的新手,需要帮助。

【问题讨论】:

  • 添加 one-hot 向量的目的是什么?
  • @KonstantinosKokos 我正在尝试复制一篇论文的工作,其中作者添加了一个热向量。他们添加了几个大小为 48 的向量,并得到了相同大小的输出向量。我不明白他们是怎么做到的。
  • 让我换个说法——作者这样做的动机是什么?添加 one-hot 向量听起来完全违反直觉,因为它们只是编码不同分类对象的基向量。你想通过添加它们来达到什么目的?

标签: machine-learning one-hot-encoding


【解决方案1】:

一个热向量基本上是向量。同样的求和也适用于它们,也适用于法线向量。

要添加或减去两个向量,请添加或减去相应的分量。

令 u=⟨u1,u2⟩ 和 v =⟨v1,v2⟩ 为两个向量。 那么,u和v之和就是向量

u+v=⟨u1+v1,u2+v2⟩

【讨论】:

    【解决方案2】:

    添加一个热向量并不是一种常见的做法。它完全以任务为中心。发布此问题时,我正在处理时间序列数据。

    假设您有三个一热向量[0,1,0,0][1,0,0,0][0,1,0,0]。我遵循的添加过程是以位方式添加这些向量,即[0+1+0, 1+0+1, 0+0+0, 0+0+0]。结果向量将是[1,2,0,0]

    但是,主要的问题(有非常多的向量)是加法产生进位的情况。在这种情况下,可以简单地将两位(或三位)数字视为一个,即[12,2,0,100]

    PS:这是一种高度以数据为中心的方法。可能存在更好的建议。

    【讨论】: