분류(Classification)는 미리 배운 레이블(Label)을 바탕으로, 주어진 데이터가 어느 그룹에 속하는지 찾는 방법입니다. 앞서 우리가 다루었던 개와 고양이에 관한 예시는 분류의 대표적 사례라고 볼 수 있습니다. 수많은 개와 고양이 사진을 학습한 뒤, 주어진 사진이 개인지 고양이인지 확인하는 것이지요. 만약 개, 고양이, 토끼라는 3가지 레이블을 학습했다면, 컴퓨터는 주어진 데이터를 개, 고양이, 토끼 중에 가장 비슷한 레이블로 분류하게 됩니다. 개, 고양이, 토끼만 학습했기 때문에 코끼리 사진을 보여주더라도 세 가지 중에 가장 비슷한 것을 골라 대답하게 됩니다. 즉, 학습한 레이블 안에서만 답을 내릴 수 있으며, 코끼리라는 새로운 레이블이 갑자기 생기는 경우는 발생하지 않습니다.
그렇다면 컴퓨터는 어떤 원리로 분류 문제를 학습할까요? 먼저 ‘개’와 ‘고양이’로 분류된 각각의 데이터들의 특징(Feature)을 파악합니다. 그러다보면 개인지 고양이인지를 판가름할 수 있는 결정적인 특징들을 찾게 됩니다. 여러분은 어떤 특징이 떠오르나요? 꼬리의 길이일 수도 있고, 입이 튀어나온 정도일 수도 있습니다. 뒷다리나 귀의 모양일지도 모릅니다. 컴퓨터는 우리처럼 ‘꼬리’나 ‘귀’를 알아보지는 못하지만, 데이터를 분석함으로써 개인지 고양이인지를 결정할 수 있는 경계점을 찾습니다. 그리고 이에 근거하여 새로운 데이터가 개인지 고양이인지를 판가름합니다. 따라서 분류 문제의 정확도가 높아지려면, 학습된 데이터를 잘 분류할 수 있는 함수를 찾는 것이 중요합니다. 학습 데이터의 특징을 명확히 구분할 수 있는 함수일수록 새로운 데이터를 잘 구분할 가능성이 높겠죠?
이처럼 분류는 주어진 데이터에 대한 답을 학습한 레이블 중 하나로 정할 때 사용됩니다. 토끼와 사자의 중간, 0과 6의 중간과 같은 애매한 답을 내리는 것이 아니라, 더 가까운 레이블을 찾아 답으로 정합니다. 마치 보기는 5개이고, 답은 하나인 문제를 푸는 것과 같습니다. 정답이 3번인지 4번인지 헷갈리더라도 우리는 반드시 하나의 답을 정해야 합니다. 당연히 더 정답일 것 같은 보기를 고를 수밖에 없겠죠?