[CH05] 01. 원-핫 인코딩

SoYeong Gwon·2022년 6월 28일
0

DeepLearning Introduction

목록 보기
8/12
post-thumbnail
  • 원-핫 인코딩: 범주형 데이터를 처리할때 레이블을 표현하는 방법

01. 원-핫 인코딩(One-Hot Encoding)이란?

  • 원-핫 인코딩은 선택해야하는 선택지의 개수만큼의 차원을 가지면서, 각 선택지의 인덱스에 해당하는 원소에는 1, 나머지 원소는 0의 값을 갖도록 표현하는 방법.
  • (예시) 강아지, 고양이, 냉장고라는 3개의 선택지가 있을 때 원-핫 인코딩으로 표현하면,
분류012
강아지100
고양이010
냉장고001
  • 총 선택지는 3개였으므로 위 벡터들은 전부 3차원의 벡터가 되었음.
  • 이와 같이 원-핫 인코딩으로 표현된 벡터를 원-핫 벡터(one-hot vector) 라고 함.

02. 원-핫 벡터의 무작위성

  • 다중 클래스 분류 문제가 각 클래스 간의 관계가 균등하다는 점에서 원-핫 벡터는 적절하게 표현할 수 있음.
  • 다수의 클래스를 분류하기 위해서는 2개의 숫자 레이블이 아니라(이진분류) 클래스의 개수만큼 숫자 레이블이 필요함.
  • 일반적인 다중 클래스 분류 문제에서 원-핫 인코딩을 사용하는 것이 클래스의 성질을 잘 표현할 수 있음.
  • 정수 인코딩 예시 (1)
    • Banana, Tomato, Apple라는 3개의 클래스가 존재하는 문제
    • 레이블은 정수 인코딩을 사용하여 각각 1,2,3을 부여했음.
    • 손실함수로 MSE를 사용
      Loss  function=1nin(yiyi^)2Loss\;function = \frac {1}{n} \sum_i^n (y_i - \widehat{y_i})^2
    • 실제값이 Tomato(2)일때 예측값이 Banana(1)이었다면 제곱 오차는 다음과 같음.
      (21)2=1(2-1)^2=1
    • 실제값이 Apple(3)일때 예측값이 Banana(1)이었다면 제곱 오차는 다음과 같음.
      (31)2=4(3-1)^2=4
    • Banana과 Tomato 사이의 오차보다 Banana와 Apple의 오차가 더 큼.
    • 이는 기계에서 Banana가 Apple보다는 Tomato에 더 가깝다는 정보를 주는 것임.
  • 정수 인코딩 예시 (2)
    • 더 많은 클래스에 대해서 정수 인코딩을 수행해보자.
{Banana:1, Tomato:2, Apple:3, ... Watermelon:10}

* 이 정수 인코딩은 Banana가 Watermelon보다는 Tomato에 더 가깝다는 의미를 담고 있지만, 이는 사용자가 부여하고자 했던 정보가 아님.
* 이러한 정수 인코딩의 순서 정보가 도움이 되는 분류문제는 존재하지만, 각 클래스는 순서의 의미를 갖고 있지 않으므로 
**각 클래스 간의 오차는 균등한 것이 옳음**
  • 원-핫 인코딩 예시

    • 세 개의 카테고리에 대해서는 원-핫 인코딩을 통해서 레이블을 인코딩했을때 각 클래스 간의 제곱 오차가 균등함을 볼 수 있음.

      ((1,0,0)(0,1,0))2=(10)2+(01)2+(00)2=2((1,0,0) - (0,1,0))^2 = (1-0)^2 + (0-1)^2 + (0-0)^2 =2

      ((1,0,0)(0,0,1))2=(10)2+(00)2+(01)2=2((1,0,0) - (0,0,1))^2 = (1-0)^2 + (0-0)^2 + (0-1)^2 =2

    • 다르게 표현하면 모들 클래스에 대해서 원-핫 인코딩을 통해 얻은 원-핫 벡터들은 모든 쌍에 대해서 유클리드 거리를 구해도 전부 동일함.

    • 각 클래스 표현방법이 무작위성을 가진다는 점을 표현할 수 있음.

    • 이는 오히려 단어의 유사성을 구할 수 없다는 단점으로 언급됨.

0개의 댓글