본문 바로가기
Artificial Intelligence

Classification Labeling (One Hot Encoding)

by HanByol Jang 2021. 12. 9.
728x90

Classification Label

Image Classification은 위 그림처럼 이미지가 모델에 들어왔을때 어떤 class에 속하는지를 분류하는 작업을 의미합니다.

그러므로 우리가 classification 학습을 위해 데이터를 구성하려면 이미지와 그에 대응하는 카테고리 형태의 정답(Label)이 필요합니다.

 

일반적으로 개, 고양이, 팬더 같이 문자로 카테고리가 구성이 될텐데, 학습을 진행하는 컴퓨터는 이러한 문자열을 인식하지 못합니다. 그러므로 컴퓨터가 인식할 수 있게 숫자 형태로 변환을 시켜줘야합니다.

 

간단하게 생각할수 있는 방법은 개 -> 0, 고양이 -> 1, 팬더 -> 2  이런식으로 숫자를 할당할 수 있습니다. 하지만 이렇게 숫자 순서대로 할당하게 되면 개, 고양이, 팬더 같이 순서나 랭크가 존재하지 않았던 데이터가 순서가 있는 데이터로 바뀌게 됩니다. 이러한 순서 정보가 학습에 영향을 미칠 위험성이 존재합니다.

 

그러므로 머신러닝이나 딥러닝에서 카테고리형 데이터를 처리할때 가장 많이 사용하는 방법은 바로 One Hot Encoding입니다.


One Hot Encoding

One hot encoding이란, 하나의 카테고리만 True(= 1)이고 나머지는 False(= 0)형태로 변환하는 것입니다.

데이터 개 카테고리 고양이 카테고리 팬더 카테고리
고양이 0 1 0
팬더 0 0 1
1 0 0

위처럼 데이터가 해당 카테고리에 속하면 1을 주고 속하지 않으면 0을 주면됩니다.

즉, 개는 [1, 0, 0], 고양이는 [0, 1, 0], 팬더는 [0, 0, 1]로 변환됩니다.

 

전체 class의 갯수가 n개일때, classification label을 만들기 위해서는 먼저 길이가 n이고 0의 값을 가지는 list를 만듭니다. 그리고 데이터가 속하는 카테고리의 값만 1로 바꿔주면 됩니다. (ex. [0, 0, 0, 1, 0, ..., 0, 0])

728x90

'Artificial Intelligence' 카테고리의 다른 글

Loss Function (손실 함수)  (0) 2022.07.08
Activation Function (활성화 함수)  (0) 2022.06.28
Dataset 분리  (0) 2022.06.20
인공지능이란  (0) 2021.07.01

댓글