이 문서는 AI, ML, 그리고 DL의 정의와 이들 간의 차이점을 설명하며,
특히 ML의 supervised learning에서 가장 많이 다루는 task인 classification의 종류와 metrics를 설명함.
Classifier (분류기):
- 정의: 주어진 데이터 포인트(or Sample, Case)를 사전에 정의된 Categories 또는 Classes 중 하나로 분류하는 알고리즘 또는 모델
- 예시: 이메일을 "스팸" 또는 "정상"으로 분류하거나, 이미지를 "고양이", "개", "새" 등으로 분류하는 작업에 사용됨.
Metrics (평가지표):
- 정의: 특정 목표나 성과를 평가하기 위해 사용되는 양적 또는 질적 기준.
- 예시: DL에서 Classification Model(=Classifier)의 성능을 평가하기 위해 accuracy, precision, recall 등의 지표를 사용하는 것.
0. 시작하기 앞서서: AI, ML, 그리고 DL
이 문서의 주제인 classification은 오늘날 ML (or DL)을 통해 해결하는 주요 task 중 하나임.
참고로,
AI, ML, DL은 서로 연관이 되어 있으나 각각 같은 의미를 가지고 있지 않음.
다음 문서는 이들간이 차이점을 설명하고 있음.
https://dsaint31.me/mkdocs_site/ML/ch00/ch00_00_intro/
이를 간단히 요약하면 다음과 같음.
0-1. ML에서 classification은 어디에 속하나
이 문서의 주제인 classification은 ML의 4가지 종류 중 하나인 supervised learning 에서 가장 많이 다루는 task임.
다음 문서는 ML의 종류를 설명하고 있음.
https://dsaint31.me/mkdocs_site/ML/ch00/ch00_12_type_of_ml/
인간의 개입(Human Supervision)의 정도에 따라 다음으로 구분됨.
1. Supervised Learning (지도학습)
2. Semi-supervised Learning (반지도학습)
3. Unsupervised Learning (비지도학습)
4. Reinforcement Learning (강화학습, 로봇제어 및 자율주행 분야에서 주로 이용됨)
최근들어 semi-supervised or unsupervised learning에 대한 연구가 활발해지며 중요해지고 있는 추세임.
- 하지만 아직까지도 현재 ML에서 가장 많이 사용되는 방법은 supervised learning 이며,
- application에 대한 연구에서는 특히 supervised learning이 가장 많이 사용되고 있음.
그중에서도 의료분야로 국한할 때, 진단 등의 application에서는
supervised learning의 classification이 가장 많이 다루어지는 task임.
0-2. Classification (분류) 이란
Discrete(이산적인)한 category를 label로 가지면서,
- 특정 data sample에 대해 해당 category를 할당하는 task.
- exclusive하게 category가 할당될 수도 있지만,
- 여러 label이 하나의 data sample에 할당될 수도 있음.
참고: Discrete(이산적인)한 category(범주)
- 명확히 구분되는 고유한 값을 가지는 범주를 의미.
- 이러한 범주들은 서로 중복되지 않으며, 연속적이 아닌 구분된 값을 가짐.
0-3. 참고: DL에서의 주요 Tasks
DL에서 supervised learning의 경우,
기존의 classification과 regression 외에도 segmentation과 object detection등의 Task도 많이 다루어짐.
다음은 이들간의 차이점을 설명하는 문서임.
https://dsaint31.me/mkdocs_site/ML/ch00/ch00_20_supervised/#deep-learning-tasks
image 관련 DL에서 segmentation의 경우,
- 해당 label 데이터를 통해, object detection, classification 등에도 활용가능하다는 장점을 가지나,
- labeling이 가장 어려운 task가 segmentation임.
1. Classification의 종류
이 문서의 주제인 classification은 크게 4가지로 나누어짐.
1. Binary Classification
2. Multiclass Classification
3. Multilabel Classification
4. Multioutput Classification
다음은 이들 구분을 자세히 소개한다.
https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_types/
2. Classification에 대한 metrics : 성능 체크
ML 모델을 학습시키기 위해서는 model의 성능을 하나의 scalar값으로 나타내는 loss function이 사용되지만,
이를 사용하여 optimization알고리즘을 통해 학습된 model의 성능을 인간이 파악할 때는
loss function이 아닌 다른 여러 metrics가 사용된다.
다음은 classification에서 성능 평가에 주로 사용되는 metrics를 소개한다.
https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/
3. 결론
classification은 DL의 supervised learning에서 가장 많이 다루는 task이기 때문에,
이를 위한 모델의 정확한 평가를 위해서 관련 metric을 확실하게 이해하는게 좋다.
대부분의 경우, scikit-learn 에서 해당 metrics를 정확하게 구현해주므로
이에 대한 계산법 보다는 그 값의 의미를 이해하고 해당하는 모델의 성능을 파악하는 것을 우선적으로 갖춰야 한다.
'Python' 카테고리의 다른 글
[Python] Ex: Relative Path Import 시 주의할 점 (0) | 2024.06.04 |
---|---|
[Python] PIL, Pillow, OpenCV, and Scikit-image (0) | 2024.06.03 |
[DL] Dataset: CIFAR-10 (0) | 2024.05.30 |
[DL] Classification 을 위한 Activation Func. 와 Loss Func: PyTorch (0) | 2024.05.23 |
[ML] Dataset: Wisconsin Breast Cancer Dataset (0) | 2024.05.18 |