머신 러닝은 크게 3가지의 기준으로 분류를 할 수 있습니다. 각 기준에 따라 머신 러닝의 특징을 붙일 수 있습니다.
1. Supervision 유형 기준
2. 실시간으로 새롭게 들어오는 데이터 접근 방식
3. 모델의 추론 방식
1) Training Supervision
학습 과정에서 머신 러닝 시스템이 어떻게 관리되는지에 따라 다르게 구분할 수 있습니다.
- Supervised Learning (지도학습)
알고리즘에 문제와 정답(라벨)을 모두 제공하는 것은 지도학습에 속하게 됩니다. 지도학습을 사용하는 대표적인 경우는 1) 어떠한 카테고리에 속하는지를 결정하는 classification 문제와, 2) 주어진 특징(features)들을 바탕으로 값을 추론해내는 regression 문제가 있습니다.
* 값을 기준으로 분류하게 되면 regression을 classigication에 사용한 것으로, 로지스틱 회귀 (logistic regression)이 그 예시입니다.
** 타겟과 라벨은 유사한 의미를 가지는데, 보통 타겟이라는 단어는 regression에 사용되고 라벨은 classification에 사용됩니다.
- Unsupervised Learning (비지도학습)
비지도학습에는 모든 데이터들이 라벨링이 되어 있지 않은 경우입니다.
많은 데이터들을 그룹지어서 보는 알고리즘인 clustering은 비지도학습의 예시 중 하나입니다. clustering을 통해 데이터들이 어떠한 특징을 기준으로 구분되는지 볼 수 있는데, 더 구체적인 visualization을 통해 데이터들이 가지고 있는 패턴들을 더 명시적으로 볼 수 있습니다.
서로 뚜렷하게 관련이 있는 특징들은 하나로 묶어서 보는 dimensionality reduction은 중복적인 정보를 제거함으로써 데이터의 관계들을 더 선명하게 보여줍니다. feature extraction으로도 불리는 이 과정은 알고리즘의 계산 복잡도를 줄이기 위한 용도로도 자주 활용됩니다. 특징들이 가지는 관계를 포착하는 분야인 association rule learning과도 연결됩니다.
비지도학습이 사용되는 또 다른 분야로는 anomaly detection (이상 탐지)가 있습니다. 일반적인 값과 다른 값이 들어왔을 때를 판단하여 비정상적인 상황을 탐지하거나 outlier를 제거하는데 쓰일 수 있습니다. 비슷한 분야로 novelty detection이 있는데, anomaly detection보다 더 느슨하게 탐지하는 것으로 기존 데이터에서 한번도 학습하지 못했던 것을 찾아내는데 사용됩니다. (anomaly detection에서는 비슷한 것을 학습했더라도 큰 그룹/경향성 안에 포함되지 못하면 비정상적인 것으로 판단합니다.)
- Semi-supervised Learning (준지도학습)
준지도학습은 데이터의 일부만 라벨링이 되어 있는 경우입니다. 보통 Supervised Learning과 Unsupervised Learning을 결합한 형태로 먼저 Unsupervised Learning 방법으로 그룹을 지어놓은 뒤, 일부 존재하는 라벨들을 바탕으로 Supervised Learning 방법을 연계하게 됩니다. 구글 포토가 대표적인 예시인데, 몇 개의 사진에 대해서 라벨을 통해 비슷한 그룹에 존재하는 사진들을 모두 분류하는 방식을 채택합니다.
- Self-supervised Learning (자기지도학습)
자기지도학습은 라벨링이 없는 데이터셋을 input으로 받으면 원본 데이터셋을 라벨처럼 사용하고, 어떤 작업을 수행한 데이터셋을 input으로 사용하는 경우입니다. 예시를 들면 라벨링이 없는 고양이 사진들의 데이터셋을 받으면 마스킹 작업을 취한 것을 input으로 사용하고, 원본 데이터를 라벨(정답)으로 사용해서 모델을 학습시키는 것입니다.
이렇게 학습된 모델은 이미지 생성이나 원하지 않는 부분을 선택해서 삭제하는 것 자체로도 유용하지만, 학습 과정에서 알게 된 고양이의 특징들을 통해 분류와 같은 다른 작업에서도 활용할 수 있습니다. 이렇게 학습한 지식을 다른 작업에 활용하는 것을 transfer learning (전이 학습)이라고 부릅니다.
- Reinforcement Learning (강화학습)
강화학습은 agent의 개념을 도입해서 주어진 환경을 관찰하고 특정 행동을 취했을 때의 결과(reward, penalty)를 보면서 최적의 전략 policy를 만드는 것입니다. 로봇이 걸어가는 방법을 배울 때 자주 활용되는 것이 강화학습이고, 알파고를 학습할 때도 사용되었습니다.
2) Batch Versus Online Learning
새로운 데이터가 실시간으로 추가될 때, 모델이 어떻게 접근하는지에 따라 크게 두가지로 구분할 수 있습니다.
① Batch Learning (Offline Learning)
Batch Learning의 경우, 학습 과정에서 주어진 데이터들을 모두 사용해서 학습하고 배포되었을 때는 학습을 하지 못하는 모델입니다. 따라서 새롭게 추가되는 데이터를 학습하고자 한다면, 기존에 데이터셋에 추가한 다음에 학습을 처음부터 다시 시켜야 한다는 단점이 있습니다. 그리고 큰 데이터셋일수록 학습하는데 필요한 자원(CPU, 시간)이 커지기 때문에 효율성 관점에서는 좋지 않습니다.
② Online Learning
Online Learning의 경우, 새롭게 들어오는 데이터들을 개별적으로나 mini-batch로 그룹지어서 계속해서 학습이 가능한 모델입니다. 실시간으로 학습하기 때문에 새로운 변화되는 데이터에 강하고, 변화에 민감한 정도도 weight를 설정하여 조정이 가능합니다.
mini-batch의 개념은 Batch Learning (Offline Learning)에도 활용될 수 있습니다. 만약 데이터셋이 너무 클 때, 데이터셋을 작은 mini-batch로 쪼개서 학습하는 것으로도 변형해서 활용할 수 있습니다.
3) Instance-Based Versus Model-Based Learning
3번 기준은 머신 러닝 모델이 어떻게 일반화해서 예측을 하는지, 그 추론 방식에 따라 구분합니다. 크게 두가지로 구분할 수 있습니다.
① Instance-Based Learning
이 방법은 가장 단순하게 새로운 데이터가 주어졌을 때, 유사도 값을 바탕으로 가장 가까운 데이터의 값을 가진다고 추론하는 것입니다. 추론 과정은 매우 단순하지만, 데이터들이 가지는 패턴이나 경향성은 무시되어 정확도는 떨어지게 됩니다.
② Model-Based Learning
반대로 Model-Based Learning은 주어진 데이터들을 바탕으로 예측 모델을 만들게 됩니다. 하나의 예시로 선형 모델을 만들어서 분류를 하는 기준을 세운 뒤에, instance 기준이 아닌 분류하는 모델에 따라서 새로운 데이터의 카테고리를 예측할 수 있습니다. 모델을 학습시키고 정확도를 높이는 방법으로는 utility function이나 cost function으로, 주어진 데이터들을 가장 잘 설명하는 모델을 찾아내는 것입니다.
'AI > ML' 카테고리의 다른 글
[ML] 모델 파인튜닝 (0) | 2024.08.14 |
---|---|
[ML] 데이터셋 준비 (0) | 2024.08.13 |
[ML] 모델의 평가와 검증 (Test, Evaluation) (0) | 2024.07.26 |
[ML] 머신 러닝의 성능 저하 요인 (1) | 2024.07.24 |
[ML] 머신 러닝 소개 (0) | 2024.07.21 |