지도 학습이라 불리는 supervised learning은 input 데이터와 이에 대응하는 정답을 함께 입력으로 받는다. 여기서 정답은 label이라고도 하는데, 주어진 input 데이터와 label로 부터 model을 학습시켜서 새로운 input data가 들어오게 되면, 이에 대응하는 label을 예측하게 된다.
가령 많고 많은 버섯들이 존재할 때, 우리가 먹을 수 없는 버섯에는 labeling을 통해서 먹을 수 없는 표시를 해두고 반대로 먹을 수 있는 버섯과 같은 경우에는 labeling을 통해서 먹을 수 있는 표시를 하는 것이다. 이는 model이 학습하기 전에 미리 labeling 과정이 필요하다.
Machine learning에서 대표적인 supervised learning이라고 한다면 classifcation과 regression이 있을 것이다. Classification은 분류하는 작업으로 대표적인 예시는 우리가 메일을 주고 받을 때 스팸 메일인지 아닌지를 찾아낼 수 있다. Spam filtering이라고도 하는데, 이는 메일이 스팸인지 아닌지 결정하는데 중요한 역할을 한다. Regression은 classification과는 같지만 다른 결과를 만들어낸다. Classification이 이산적인 결과를 내는 반면에 regression은 연속적인 결과를 낸다. 숫자의 범주에서는 실수 범위를 생각하면 된다. 쉽게 사람의 정보를 기반으로 할 때, 키나 몸무게 등이 이에 해당할 수 있을 것이다. 혹은 집값을 예측하는 과정에서도 regression 기반으로 예측을 진행할 것이다.
비지도 학습이라 불리는 unsupervised learning에서는 input으로 오직 입력 데이터만을 필요로 한다. Supervised learning은 입력 데이터에 대응하는 label이 필수적이었지만, unsupervised learning에서는 그렇지 않다. 즉, 우리는 model에게 정답이 없는 학습을 요구하게 되는 것이다. 그래서 dataset을 구성할 때 label이 없이 오로지 입력 데이터만으로 구성하면 된다. 그래서 우리는 분석을 통해서 알지 못하는 패턴을 학습할 수 있게 되어 그 결과로부터 새로운 데이터가 입력으로 주어졌을 때 분류할 수 있게 되는 것이다.
Unsupervised learning의 대표적인 예시로 clustering이 있다. 군집화라고도 불리는 clustering은 개체들이 주어졌을 때, 개체들을 몇 개의 cluster라고 불리는 그룹으로 나누는 과정이다. 개체들을 그룹으로 나누는 과정을 진행하게 되었을 때, cluster 내부에서는 서로 비슷한 개체들을 존재하게 하는 것이 목표이다.
Clustering과 함께 대표적인 예시 중 하나로 generative model이 있다. Generative model은 주어진 학습 데이터를 학습하여 학습한 데이터의 분포를 따르는 유사한 데이터를 생성하는 model이다. Generative model은 학습 데이터의 분포를 대충은 알고 있는 상태에서 생성을 할 수도 있지만, 그렇지 않은 경우에도 생성을 할 수 있는 다양한 model들이 존재한다.
학습 데이터의 픽셀 정보를 어느정도 알고 있는 상태에서 완전하게 동일하진 않지만, 어느정도는 학습 데이터와 꽤 유사한 데이터를 생성해 낼 수 있다. 결국 generative model의 핵심은 학습 데이터의 분포를 학습하는 것이다. 학습 데이터의 분포에 따라서 실제 데이터와 유사한 데이터를 생성할 수도 있지만, 그렇지 못할 수도 있다.
강화 학습이라 불리는 reinforcement learning은 supervised learning, unsupervised learning과 함께 machine learning의 대표적인 3가지 학습방법 중 하나이다. 이후에 자세하게 다룰 것이기 때문에 간단하게만 이야기하면, reinforcement learning은 현재의 상태에서 어떠한 행동을 취하는 것이 최적인지를 학습하는 것이다. 행동을 취할 때마다 외부 환경에서 적절하게 보상이 주어지는데, 이러한 보상을 최대로 하는 방향으로 학습이 진행된다. Reinforcement learning에서 label의 경우는 적절한 실수 값의 보상으로 취하면 된다.
Reinforcement learning에 대해서 이해하기 어렵다면 동물을 훈련하는 상황을 가정해보면 이해하기 쉬울 것이다. 동물들을 훈련시킬 때 사람들이 흔히 사용하는 방법이 맛있는 먹이를 주는 것이다. 그래서 동물들에게 만족감을 주기 위해서 맛있는 먹이를 주는 행동을 최대화 하는 것이 아무래도 좋을 것이다. 반대로 동물들에게 배고픔과 고통을 주는 것은 악영향을 끼치게 된다. 이러한 것은 학습을 진행할 때 최소화 시켜야 하는 것이다.