Pytorch로 시작하는 딥러닝 입문(05-01. 원-핫 인코딩/One-Hot Encoding)

2024. 3. 1. 09:11딥러닝 모델: 파이토치

♣ 원-핫 인코딩이란?

원-핫 인코딩은 선택해야 하는 선택지의 개수만큼의 차원을 가지면서, 각 선택지의 인덱스에 해당하는 원소에는 1, 나머지 원소는 0의 값을 가지도록 하는 표현 방법이다. 

 

예를 들어 강아지, 고양이, 햄스터라는 3개의 선택지가 있다고 가정해보자. 

우선 각 선택지에 순차적으로 정수 인덱스를 부여한다. 임의로 강아지는 0번, 고양이는 1번, 햄스터는 2번 인덱스를 부여한다. 각 선택지에 대해서 원-핫 인코딩 된 벡터는 아래와 같다. 

 

강아지 = [1, 0, 0]

고양이 = [0, 1, 0]

햄스터 = [0, 0, 1]

 

총 선택지는 3개였으므로 위 벡터들은 모두 3차원의 벡터가 되었다. 이와 같이 원-핫 인코딩으로 표현된 벡터를 원-핫 벡터(one-hot vector)라고 한다. 

 

 

♣ 원-핫 벡터의 무작위성

실제값을 원-핫 벡터로 표현해야만 다중 클래스 분류 문제를 풀 수 있는 것은 아니다. 하지만 대부분의 다중 클래스 분류 문제에서 각 클래스 간의 관계가 균등하기 때문에 원-핫 벡터는 클래스를 표현하기에 적절한 방법이다. 

 

특히 각 클래스가 순서의 의미를 갖고 있지 않을 때 각 클래스 간의 오차가 균등해야 하고, 이를 나타내기에는 원-핫 벡터가 적절하다.