独热(英语:one-hot)在数字电路和机器学习中被用来表示一种特殊的比特组或向量,该字节或向量里仅容许其中一位为1,其他位都必须为0。其被称为独热因为其中只能有一个1,若情况相反,只有一个0,其余为1,则称为独冷(one-cold)。在统计学中,虚拟变量代表了类似的概念。
独热码常常被用来表示一个有限状态机的状态(英语:State (computer science))。如果使用二进制或格雷码来代表状态,则需要用到解码器才能得知该码代表的状态。使用独热码来代表状态的话,则不需要解码器,因为若第
个比特为1,就代表机器目前在第 个状态。一个有限状态机的例子是由15个状态构成的环状计数器(英语:Ring counter)。使用独热编码来实现此状态机的话,可以将15个正反器串联在一起,每个正反器的Q输出接到下一个正反器的D输入,而第一个正反器的D输入则是接到第15个的Q输出,形成一个环状。第一个正反器代表机器的第一个状态,第二个正反器代表第二个状态,依此类推。当机器被归零重置时,第一个正反器的值为1,其余为0。当一个时脉边缘抵达正反器时,会将1推进到下一个正反器。依照这种方式,1可一步步推进到第15个正反器,亦即第15个状态,再之后则重新回到第一个状态。
地址解码器(英语:Address decoder)可以将二进制或格雷码转换成独热码,而优先编码器则是作用相反。
相较于其他编码,使用独热码来实现状态机通常可以达到更高的时钟频率。
在自然语言处理中,若有个字典或字库里有
个单字,则每个单字可以被一个 维的独热向量代表。譬如若字库里仅有apple(苹果)、banana(香蕉)以及pineapple(凤梨)这三个单字,则他们各自的独热向量可以为:
由于电脑无法理解非数字类的数据,独热编码可以将类别性数据转换成统一的数字格式,方便机器学习的算法进行处理及计算。而转换成固定维度的向量则方便机器学习算法进行线性代数上的计算。另外由于一个独热向量中,绝大部分的数字都是0,所以若使用稀疏矩阵的数据结构,则可以节省电脑存储器的使用量。