独热
![本页使用了标题或全文手工转换](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
二进制 | 格雷码 | 独热码 |
---|---|---|
000 | 000 | 00000001 |
001 | 001 | 00000010 |
010 | 011 | 00000100 |
011 | 010 | 00001000 |
100 | 110 | 00010000 |
101 | 111 | 00100000 |
110 | 101 | 01000000 |
111 | 100 | 10000000 |
独热[1](英语:One-hot)在数字电路和机器学习中被用来表示一种特殊的比特组或向量,该字节或向量里仅容许其中一位为1,其他位都必须为0[2]。其被称为独热因为其中只能有一个1,若情况相反,只有一个0,其余为1,则称为独冷(One-cold)[3]。在统计学中,虚拟变量代表了类似的概念。
应用
有限状态机
独热码常常被用来表示一个有限状态机的状态。如果使用二进制或格雷码来代表状态,则需要用到解码器才能得知该码代表的状态。使用独热码来代表状态的话,则不需要解码器,因为若第个比特为1,就代表机器目前在第个状态。
一个有限状态机的例子是由15个状态构成的环状计数器。使用独热编码来实现此状态机的话,可以将15个正反器串联在一起,每个正反器的Q输出接到下一个正反器的D输入,而第一个正反器的D输入则是接到第15个的Q输出,形成一个环状。第一个正反器代表机器的第一个状态,第二个正反器代表第二个状态,依此类推。当机器被归零重置时,第一个正反器的值为1,其余为0。当一个主频边缘抵达正反器时,会将1推进到下一个正反器。依照这种方式,1可一步步推进到第15个正反器,亦即第15个状态,再之后则重新回到第一个状态。
地址解码器可以将二进制或格雷码转换成独热码,而优先编码器则是作用相反。
与其他编码的差异
优点
- 决定状态机目前状态的时间成本低,因为读取一个正反器的时间成本固定。
- 改变机器的状态所需时间成本也是固定,因为每次只需要改变两个正反器的值。
- 设计及设计变更容易。
- 容易侦测出非法状态。
- 可以有效率地使用FPGA的大量正反器[4]。
相较于其他编码,使用独热码来实现状态机通常可以达到更高的时钟频率[4][5]。
缺点
- 比起其他编码,需要更多的正反器,使得其在PAL设备上不切实际。
- 会有很多非法状态存在[6]。这是由于个正反器构成的计数器总共有个状态(每个正反器可以是0或1,所以总共种可能状态),但是合法状态却只有个(即同一时间只允许一个正反器是1,其他必须为0),所以总共会有个可能的非法状态。
自然语言处理
在自然语言处理中,若有个字典或字库里有个单字,则每个单字可以被一个维的独热向量代表[7]。譬如若字库里仅有apple(苹果)、banana(香蕉)以及pineapple(凤梨)这三个单字,则他们各自的独热向量可以为:
由于电脑无法理解非数字类的数据,独热编码可以将类别性数据转换成统一的数字格式,方便机器学习的算法进行处理及计算。而转换成固定维度的向量则方便机器学习算法进行线性代数上的计算。另外由于一个独热向量中,绝大部分的数字都是0,所以若使用稀疏矩阵的数据结构,则可以节省存储器的使用量。
参见
参考文献
- ^ 梁, 杰; 陈, 嘉豪; 张, 雪芹; 周, 悦; 林, 家骏. 基于独热编码和卷积神经网络的异常检测. 清华大学学报 (自然科学版). 2019, 59 (07): 523–529 [2022-05-22]. doi:10.16511/j.cnki.qhdxxb.2018.25.061. (原始内容存档于2022-05-31).
- ^ Harris, David and Harris, Sarah. Digital design and computer architecture 2nd. San Francisco, Calif.: Morgan Kaufmann. : p.129. ISBN 978-0-12-394424-5.
- ^ Event Extraction Based on Deep Learning in Food Hazard Arabic Texts. arXiv:2008.05014
.
- ^ 4.0 4.1 Xilinx Inc. Appendix A Accelerate FPGA Macros with One-Hot Approach. HDL Synthesis for FPGAs Design Guide (PDF). 1995 [2019-09-09]. (原始内容存档 (PDF)于2020-05-15) (英语).
- ^ Xilinx Inc. Section 3-13. Encoding State Machines. HDL Synthesis for FPGAs Design Guide (PDF). 1995 [2019-09-09]. (原始内容存档 (PDF)于2020-05-15) (英语).
- ^ Cohen, Ben. Real Chip Design and Verification Using Verilog and VHDL. Palos Verdes Peninsula, CA, US: VhdlCohen Publishing. 2002: p.48. ISBN 0-9705394-2-8.
- ^ Arnaud, Émilien; Elbattah, Mahmoud; Gignon, Maxime; Dequen, Gilles. NLP-Based Prediction of Medical Specialties at Hospital Admission Using Triage Notes. 2021 IEEE 9th International Conference on Healthcare Informatics (ICHI). Victoria, British Columbia: 548–553. 2021-08 [2022-05-22]. doi:10.1109/ICHI52183.2021.00103. (原始内容存档于2022-06-04).