지도학습(Supervised Learning)

정의

지도학습은 가장 널리 사용되는 머신러닝 방법 중에 하나입니다. 지도학습의 특징은 입력(Input)과 출력 데이터(Label)가 존재한다는 것이죠. 기존에 존재하는 Input/Label 데이터 들을 통해서 어떤 알고리즘을 만들고 새로운 데이터가 들어왔을 때에 만들어진 알고리즘에 기반하여 출력값을 내는 것을 의미합니다.

말이 좀 복잡하지만 쉽게 말해서 지도학습이란 그 말 자체에서 처럼 “학습자(여기서는 컴퓨터와 같은 Machine)에게 데이터의 특징과 이에 대한 정확한 답변을 주고 그 특징을 학습시킨 후에 새로운 데이터를 주었을때 학습의 결과로 어떤 결과값을 예측하는 것”이라고 할 수 있겠습니다.

반대의 경우를 비지도학습(Unsupervised Learning)이라고 하는데 이런 경우는 학습자에게 데이터 외에는 아무것도 알려주지 않고 스스로 학습하는 과정을 통해 새로운 데이터가 주어졌을때 결과값을 예측하는 것입니다.

지도학습의 종류

지도학습의 종류는 크게 분류(Classification) 문제와 회귀(Regression) 문제가 있습니다. 간단히 말하면 분류는 입력 데이터가 있을 경우 미리 정의된, 가능성 있는 여러 클래스 레이블 중에 어디에 들어가는가를 예측하는 하는 것입니다. 둘 중에서 어느 그룹에 속하는 것인가를 다르는 것을 이진 분류(Binary Classification)이라고 하고 둘 이상의 그룹 중에서 어디에 들어가는 것인가를 예측하는 것이 다중 분류(Multiclass Classification)이라고 합니다.

실제로 이 분류의 문제는 상당히 많은 곳에서 사용되고 있습니다.

이진분류는 “예/아니오”의 문제를 푸는 것이라고 할 수 있겠습니다. 이 분류는 많은 부분에서 사용되고 있습니다. 이메일에서 스팸을 분류 한다거나, 신용카드 회사에서 이것이 정상적인 거래인가 비정상적인 거래인가를 예측하는 것도 이런 이진 분류의 문제입니다.

반면에 다중 분류의 경우로 가장 많이 알려진 예제는 바로 붗꽃 데이터 예제입니다. 앞으로 다뤄볼 예제이기도 합니다. 해당 데이터는 꽃 받침과 꽃 잎의 길이와 넓이 정보로 해당 붗꽃이 setosa / versicolor / virginica 세개의 품종 중에 어디에 속하는가를 예측하는 분류입니다.
이 외에도 와인의 산도나 당도를 통해서 와인의 종류를 예측하는 문제도 있습니다. 이 외에도 분류의 문제는 다양한 곳에 적용됩니다. 이미지를 통해서 개와 고양이를 분류한다던가 고객이 물건을 구입하거나 하지 않거나를 예측하기도 합니다.

반면 회귀는 연속적인 숫자를 예측하는 것입니다. 몇가지 특징을 통해서 어떤 값을 예측하는 경우를 예측해보면 우리 일상에도 다양한 분야에 적용할 수 있습니다.

예를 들어서 방의 갯수, 면적 등을 통해서 집값을 예측한다거나 교육의 수준, 나이, 주거지 등을 통해서 연간 소득을 예측한다거나 하는 것도 회귀 분석의 예입니다. 이 밖에도 농장에서 전년도 수확량, 날씨, 고용 인원을 통해서 수확량을 예측해보는 것도 회귀 분석의 예입니다.

이 두분석의 가장 큰 차이는 예측값이 정성적 자료 형태 즉, 범주와 순서의 형태인가 아니면 정량적 자료 형태 즉, 어떤 연속적인 수치형태를 가지는가를 생각해보면 쉽게 구분할 수 있습니다.

실제로 어떤 문제를 해결할 때에 “이것을 분류의 문제인가 혹은 회귀의 문제인가”에 대한 정의를 하지 못해서 잘못된 알고리즘을 적용하는 경우가 종종 있습니다.

만약 내가 연소득, 수확량 등의 값을 예측한다면 회귀의 문제입니다. 반면 어떤 직군, 어떤 종류에 속하는가를 예측하는 것은 분류의 문제입니다.

일반화, 과대적합, 과소적합

지도학습이 잘 이뤄진 경우는 훈련 데이터를 통해서 그 데이터셋의 특징을 정확히 파악해서 모델을 만들고 새로운 데이터가 들어왔을 때에 모델을 통해서 정확도가 높은 예측값을 출력해 낼 수 있습니다. 이런 것을 일반화(Generalization)이라고 합니다.

그러나 훈련용 데이터 셋이 너무 복잡하거나 너무 빈약한 경우에 모델이 일반화 되지 않고 단지 훈련용 데이터만 잘 반영하는 일이 발생하기도 합니다. 이런 경우에는 훈련용 데이터로는 정확한 예측을 해내지만 새로운 데이터가 들어왔을 경우에는 정확도가 낮은 값을 예측하게 됩니다. 이런 경우를 모델이 과대적합(Overfitting)되어 있다라고 이야기합니다.

반대로 모델이 너무 간단하면 이러한 모델을 통해서는 지나치게 대략적인 정보만 얻을 수 밖에 없기 때문에 이를 통한 예측 역시 어떤 의미를 찾기 어려울 수도 있습니다. 이런 경우는 과소적합(Underfitting)되어 있다라고 합니다.

다시 말하면 모델을 훈련을 많이 할 수록 예측도는 높아집니다. 그러면서 일반화는 높아지게 됩니다. 그러나 너무 훈련을 많이하게되면 모델이 데이터셋에 지나치게 민감해저 과대적합이 일어나게 됩니다. 그렇다고 모델을 훈련을 적게 한다면 과소적합이 일어납니다. 머신러닝을 통해서 훈련하게 되면 이런 일반화 곡선이 최대가 되는 점을 찾아야 합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다