정답 데이터를 어떻게 표현해야 할까?

in artificial-intelligence •  7 years ago 

Mirrored feed : http://hugman.re.kr/blog/ref_design/

이번 글에서는 저번글에 이어서, 분류(Classification) 문제에 있어서, "정답을 어떻게 표현해야 할까?" 에 대해서 다루겠습니다.

감성분석을 훈련시키기 위한 데이터를 모았다고 할 때, 각 문장들에 대한 감성의 정도를 어떻게 표현해야 할까요?

감성이 매우 긍정이면 10점, 조금 긍정이면 5점, 중립이면 0점, 부정이면 -10점. 이런식으로 해야할까요? 물론 그렇게 접근해볼 수도 있습니다. 그러나 이런식으로 접근하면, 사람마다 같은 문장을 해석할 때 감성의 정도를 표현하는 방법이 다 다르기 때문에 일관성 있는 데이터를 모으기는 힘들게 됩니다.

근본적으로 이러한 분류 문제의 정답을 기술하기 위해서는 3가지 조건이 만족되어야 합니다.

단순하면서도 일관성이 있어야 할 것
사람이 읽을 수 있어야 할 것 (읽을 수 있어야, 태깅도 가능하겠죠?)
숫자여야 할 것
위의 3가지를 다 만족하면서도, 완벽한 표현체계는 없습니다. 그러나 표현의 자유도를 어느정도 포기하면, 그럭저럭 만족할만한 표현의 틀을 생각해 볼 수 있습니다. 바로 One-Hot 표현체계입니다.

One-Hot 표현 체계는, 우리가 표현하고자 하는 class(이 글에서는 감성) 만 1.0 이고, 나머지는 모두 0.0 으로 표현하는 방법입니다. 즉 아래와 같이 표현하는 것이죠.

  • 긍정(Positive) = [1,0,0,0]
  • 부정(Negative) = [0,1,0,0]
  • 중립(Neutral) = [0,0,1,0]
  • 객관(Objective)=[0,0,0,1]

이런 표현 방식은 매우 단순하면서도, 사람도 어느정도 읽을 수 있고, 동시에 벡터형태의 숫자로도 표현이 가능합니다. 숫자도 scale 을 0아니면 1로만 제한하였기 때문에, 같은 class 항목을 두고 이견이 생길 여지도 없습니다. 간단히 정리하면 아래의 그림과 같습니다.

자, 이제 훈련 데이터가 가져야 할 정답 값도 알게 되었습니다. 이제 우리가 만든 감성분석기 결과가 정답과 얼마나 다른지, 그 오차를 계산하는 방법을 배워볼 차례입니다. 오차가 얼마인지를 알아야, 오차를 줄이는 방향으로 Machine Learning 할 수 있겠죠. 다음 글에서는 지금까지 논의된 것들을 바탕으로 인공지능을 Data 변형의 틀로서 설명해보도록 하겠습니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!