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 변형의 틀로서 설명해보도록 하겠습니다.