본문 바로가기
지식공학/기계학습

지도학습과 비지도학습

by Eric87 2023. 6. 17.
반응형

기계학습에서 종종 등장하는 용어인 지도학습과 비지도학습에 대해 설명하고자 한다.


주어진 데이터에서 어떤 특정한 패턴을 찾아내는 것이 기계학습이다. 컴퓨터 알고리즘을 활용하여 데이터의 규칙성을 자동적으로 찾아내고, 이 규칙성을 이용하여 데이터를 각각의 카테고리로 분류하는 등의 일을 하는 분야이다.
손글씨로 쓰인 숫자를 인식하는 예시를 살펴보도록 하자.

MNIST dataset

각 숫자는 28 $\times$ 28픽셀 이미지이며, 784개의 숫자로 구성된 벡터로 표현할 수 있다. 목표는 벡터 $x$를 입력값으로 받았을 때 숫자 0~9중 하나의 값을 올바르게 출력하는 기계를 만드는 것이다. 손글씨는 쓰는 사람에 따라서 여러 다양한 형태를 이는 그리 만만한 문제가 아니다.
N개의 숫자들 $\{x_1,\cdots,x_N\}$을 훈련집합($\textit{training set}$)으로 활용해서 변경 가능한 모델의 매개변수들을 조절하는 방법이다. 훈련 집합에 있는 숫자들의 카테고리는 보통 각각을 직접 검사한 후 사람이 수동으로 부여한다. 각 숫자의 카테고리를 표적 벡터($\textit{target vector}$) $t$로 표현할 수 있다. 이 벡터 $t$는 해당 숫자의 정체가 실제로 무엇인지를 나타낸다. 각각의 숫자 이미지 $x$에 대한 표적 벡터 $t$는 하나다.

머신 러닝 알고리즘의 결과물은 함수 $y(x)$로표현할 수 있다. $y(x)$는 새로운 숫자의 이미지 $x$를 입력값으로 받았을 때 대상 벡터와 같은 방식으로 부호화된 벡터 $y$를 출력하는 합수이다. 함수 $y(x)$의 정확한 형태는 훈련 단계($\textit{training phase}$)에서 훈련 집합을 바탕으로 결정된다. 훈련 단계는 학습 단계($\textit{learning phase$)라고 불리기도 한다. 일단, 한 번 훈련되고 난 모델은 시험 집합($\textit{test set}$)이라고 불리는 새로운 숫자 이미지들의 정체를 찾아내는 데 활용할 수 있다. 훈련 단계에서 사용되지 않았던 새로운 예시들을 올바르게 분류하는 능력을 일반화($\textit{generalization}$) 성능이라고 한다. 실제 적용에서는 입력 벡터의 가변성이 상당히 크므로 훈련 데이터는 가능한 모든 입력 벡터의 극히 일부분밖에 커버하지 못한다. 따라서 기계학습에서 보통 가장 중요한 목표는 바로 일반화이다.

대다수 실용 어플리케이션에서 원려 입력 변수들을 천처리($\textit{preprocessed}$)하여 새로운 변수 공간으로 전환활 수 있는데, 이렇게 함으로써 패턴 인식 문제를 더 쉽게 해결할 수 있다. 예를 들어, 우리의 손글씨 숫자 인식 문제에서 일반적으로 숫자 이미지들을 각각의 숫자가 고정된 크기의 박스에 들어가도록 변환, 축소, 확대한다. 이는 각 숫자 클래스 내에서의 가변성을 상당히 줄이게 된다. 이러한 전처리 과정은 특징 추출($\textit{feature extraction}$) 과정이라고도 불리기도 한다. 훈련 집합에서 사용한 것과 같은 전처리 과정을 새로운 시험 데이터에도 동일하게 적용해야 한다. 계산 과정의 속도를 높이기 위해서 전처리 과정을 활용하는 경우도 있다. 예를 들어, 높은 해상도의 비디오 스트림에서 실시간으로 얼굴을 인식해야 하는 경우를 생각해 보자. 컴퓨터는 초마다 상당히 많은 수의 픽셀을 다뤄야 하며, 이 픽셀 데이터를 복잡한 패턴 인식 알고리즘에 바로 적용하는 것은 계산적으로 실행 불가능할 일일 수도 있다. 그러나 모든 데이터를 다 사용하는 대신, 얼굴과 얼굴이 아닌 것들을 구별하는 차별적인 정보를 가지고 있으면서 동시에 빠르게 계산하는 것이 가능한 유용한 특징들을 찾아내어 사용할 수도 있을 것이다. 이러한 특징들의 수는 이미지의 전체 픽셀의 수보다 적다. 따라서 이런 종류의 전처리를 차원 감소($\textit{dimensionality reduction}$)라고 하기도 한다. 전처리 과정에서 정보들을 버리게 되는데, 만약 버려진 정보가 문제의 해결에 중요한 것이었을 경우는 시스템의 전반적인 정확도가 악화될 수도 있기 때문에 주의를 기울어야 한다. 

주어진 훈련 데이터가 입력 벡터와 그에 해당하는 표적 벡터로 이루어지는 문제들을 지도 합습($\textit{supervised learning}$) 문제라고 한다. 위에서 살펴본 숫자 인식 예시에서처럼 각각의 입력 벡터를 제한된 숫자의 분리된 카테고리 중 하나에 할당하는 종류의 지도 학습 문제는 분류($\textit{classification}$) 문제라고 한다. 그리고 기대되는 출력값이 하나 또는 그 이상의 연속된 값일 경우에는 회귀($\textit{regression}$) 문자라고 부른다. 반응 물질의 농도, 온도, 압력이 주어졌을 경우 화학반응을 통해 결과물이 얼마나 산출될 것인지를 예측하는 것이 이러한 회귀 문제의 예시이다. 

훈련 데이터가 해당 표적 벡터 없이 오직 입력 벡터 $x$로만 주어지는 경우의 패턴 인식 문제는 비지도 학습($\textit{unsupervised learning}$) 문제라고 일컫는다. 데이터 내에서 비슷한 예시들의 집단을 찾는 집단화($\textit{clustering}$) 문제, 입력 공간에서의 데이터의 분포를 찾는 밀도 추정($\textit{density estimation}$) 문제, 높은 차원의 데이터를 이차원 또는 참차원에 투영하여 이해하기 쉽게 만들어 보여 주는 시각화($\textit{visualization}$) 등의 비지도 학습 문제의 예시이다.

반응형

댓글