원핫
One-hot| 바이너리 | 그레이 코드 | 원핫 |
|---|---|---|
| 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개의 높은 (1)비트와 다른 모든 낮은(0)[1]비트를 가진 비트뿐입니다.1개의 '0'을 제외한 모든 비트가 '1'인 유사한 구현을 원 [2]콜드라고 부르기도 합니다.통계학에서 더미 변수는 범주형 데이터를 표현하기 위한 유사한 기술을 나타냅니다.
적용들
디지털 회로
원핫 인코딩은 상태 머신의 상태를 나타내기 위해 자주 사용됩니다.바이너리 코드 또는 그레이 코드를 사용하는 경우는, 디코더가 필요하게 됩니다.단, 원핫 스테이트 머신은 n번째 비트가 높은 경우에만 n번째 스테이트이므로 디코더를 필요로 하지 않습니다.
15개의 상태가 순차적으로 정렬된 링 카운터가 스테이트 머신의 예입니다.'원핫' 구현에는 15개의 플립 플랍이 직렬로 연결되어 있으며, 각 플립 플랍의 Q 출력이 다음 플립 플랍의 D 입력에 연결되고 첫 번째 플립 플랍의 D 입력이 15번째 플립 플랍의 Q 출력에 연결됩니다.체인의 첫 번째 플립 플랍은 첫 번째 상태를 나타내고 두 번째 플립 플랍은 두 번째 상태를 나타내며, 마지막 상태를 나타내는 15번째 플립 플랍도 마찬가지입니다.상태 기계를 재설정하면 '1'로 설정된 체인의 첫 번째 플립 플랍을 제외한 모든 플립 플랍이 '0'으로 재설정됩니다.플립 플랍에 도달하는 다음 클럭 에지는 하나의 '핫' 비트를 두 번째 플립 플랍으로 이동합니다.'핫' 비트는 이 방식으로 15번째 상태까지 진행되며, 이후 상태 시스템이 첫 번째 상태로 돌아갑니다.
주소 디코더는 바이너리 또는 그레이 코드에서 원핫 표현으로 변환합니다.priority 인코더는 원핫 표현에서 바이너리 또는 그레이 코드로 변환합니다.
다른 인코딩 방식과의 비교
이점
- 상태를 판별하는 데 1개의 플립플롭에 액세스하기 위한 비용이 낮고 일정합니다.
- 상태를 변경하면 2개의 플립플롭에 액세스하기 위한 비용이 지속적으로 발생합니다.
- 설계 및 수정이 용이함
- 부정 상태 검출이 용이함
- FPGA의 풍부한 플립 플랍을 활용
일반적으로 원핫 실장을 사용하면 스테이트 머신은 [3]그 스테이트 머신의 다른 부호화보다 빠른 클럭환율로 동작할 수 있습니다.
단점들
자연어 처리
자연어 처리에서 원핫 벡터는 어휘 내의 각 단어와 [5]어휘 내의 다른 모든 단어를 구별하기 위해 사용되는 1×N 행렬(벡터)이다.벡터는 단어를 고유하게 식별하는 데 사용되는 셀의 단일 1을 제외하고 모든 셀에서 0으로 구성됩니다.원핫 인코딩을 사용하면 머신러닝에서는 수치가 클수록 중요하다고 가정하지 않습니다.예를 들어, 값 '8'이 값 '1'보다 크지만, 그렇다고 해서 '8'이 '1'보다 더 중요한 것은 아닙니다.단어에 대해서도 마찬가지다: '웃음'의 가치는 '웃음'보다 중요하지 않다.
기계학습 및 통계
기계학습에서 원핫 인코딩은 범주형 데이터를 처리하는 데 자주 사용되는 방법입니다.많은 기계 학습 모형은 입력 변수가 숫자여야 하므로 범주형 변수는 전처리 부분에서 변환해야 합니다.[6]
| 식품명 | 카테고리 번호 | 칼로리 |
|---|---|---|
| 사과 | 1 | 95 |
| 치킨. | 2 | 231 |
| 브로콜리 | 3 | 50 |
| 사과 | 치킨. | 브로콜리 | 칼로리 |
|---|---|---|---|
| 1 | 0 | 0 | 95 |
| 0 | 1 | 0 | 231 |
| 0 | 0 | 1 | 50 |
범주형 데이터는 명목형 또는 [7]서수형일 수 있습니다.서수 데이터는 값의 순위가 매겨져 있기 때문에 서수 인코딩을 통해 [8]숫자 데이터로 변환할 수 있습니다.순서형 데이터의 예로는 A부터 F까지의 범위의 테스트 등급이 있으며, 6부터 1까지의 숫자를 사용하여 순위를 매길 수 있습니다.명목 변수의 개별 값 사이에는 양적 관계가 없기 때문에,[9] 순서형 부호화를 사용하면 데이터에 가상의 순서형 관계를 잠재적으로 만들 수 있습니다.따라서 알고리즘의 성능을 향상시키기 위해 명목 변수에 원핫 부호화가 적용되는 경우가 많습니다.
원래 범주형 열의 각 고유 값에 대해 이 방법으로 새 열이 생성됩니다.이러한 더미 변수는 0과 1(1은 TRUE, 0은 FALSE를 의미)[10]로 채워집니다).
이 공정은 여러 개의 새로운 변수를 생성하기 때문에 원래 열에 고유한 값이 많으면 큰 p 문제(예측 변수가 너무 많음)가 발생하기 쉽습니다.원핫 인코딩의 또 다른 단점은 개별 변수 간에 다중 공선성을 유발하여 모델의 [11]정확도가 저하될 수 있다는 것입니다.
또한 범주형 변수가 출력 변수인 경우 [12]응용 프로그램에 값을 표시하기 위해 값을 범주형 형식으로 다시 변환할 수 있습니다.
실제 사용에서 이 변환은 종종 범주형 데이터를 입력으로 받아 대응하는 더미 변수를 출력하는 함수에 의해 직접 수행됩니다.예를 들어 [13]R에 있는 Carlet 라이브러리의 dummyVars 함수가 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Harris, David and Harris, Sarah (2012-08-07). Digital design and computer architecture (2nd ed.). San Francisco, Calif.: Morgan Kaufmann. p. 129. ISBN 978-0-12-394424-5.
- ^ Harrag, Fouzi; Gueliani, Selmene (2020). "Event Extraction Based on Deep Learning in Food Hazard Arabic Texts". arXiv:2008.05014.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ Xilinx. "FPGA용 HDL 합성 설계 가이드"섹션 3.13: "상태 기계 인코딩"부록 A: "원핫 어프로치를 통한 FPGA 매크로 가속화" 1995.
- ^ Cohen, Ben (2002). Real Chip Design and Verification Using Verilog and VHDL. Palos Verdes Peninsula, CA, US: VhdlCohen Publishing. p. 48. ISBN 0-9705394-2-8.
- ^ Arnaud, Émilien; Elbattah, Mahmoud; Gignon, Maxime; Dequen, Gilles (August 2021). NLP-Based Prediction of Medical Specialties at Hospital Admission Using Triage Notes. 2021 IEEE 9th International Conference on Healthcare Informatics (ICHI). Victoria, British Columbia. pp. 548–553. doi:10.1109/ICHI52183.2021.00103. Retrieved 2022-05-22.
- ^ 브라운리, 제이슨(2017)."머신 러닝에서 데이터를 단일 핫 인코딩하는 이유"기계학습 마스터.https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
- ^ 스티븐스, S. (1946)"측정 척도의 이론에 대하여"과학, 뉴 시리즈, 103.2684, 677–680페이지.http://www.jstor.org/stable/1671815 를 참조해 주세요.
- ^ 브라운리, 제이슨(2020)."카테고리 데이터에 대한 정규 및 원핫 인코딩"을 참조하십시오.기계학습 마스터.https://machinelearningmastery.com/one-hot-encoding-for-categorical-data//
- ^ 브라운리, 제이슨(2020)."카테고리 데이터에 대한 정규 및 원핫 인코딩"을 참조하십시오.기계학습 마스터.https://machinelearningmastery.com/one-hot-encoding-for-categorical-data//
- ^ 야다브주 디네시(2019년)."라벨 인코딩 및 원핫 인코더를 사용한 범주형 인코딩"데이터 사이언스를 향해서.https://towardsdatascience.com/categorical-encoding-using-label-encoding-and-one-hot-encoder-911ef77fb5bd
- ^ 안드레, 예 (2020년)" 범주형 변수의 원핫 인코딩을 중지합니다.". 데이터 사이언스를 위해.https://towardsdatascience.com/stop-one-hot-encoding-your-categorical-variables-bbb0fba89809
- ^ 브라운리, 제이슨(2017)."머신 러닝에서 데이터를 단일 핫 인코딩하는 이유"기계학습 마스터.https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
- ^ 쿤, 맥스 'dummy Vars'RDocumentation(RDocation.https://www.rdocumentation.org/packages/caret/versions/6.0-86/topics/dummyVars