獨熱
![本頁使用了標題或全文手工轉換](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).