머신러닝 시스템의 종류는 굉장히 많기 때문에, 넓은 범주에서 분류하면 도움이 된다.
- 사람의 감독하에 훈련하는 것인가? (지도, 비지도, 준지도, 강화 학습)
- 실시간으로 점진적인 학습을 하는가? (온라인 학습과 배치 학습)
- 단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인가? 아니면 훈련 데이터셋에서 패턴을 발견하여 예측 모델을 만드는가? (사례 기반 학습과 모델 기반 학습)
1. 지도 학습과 비지도 학습>
머신러닝 시스템은 학습하는 동안의 감독 형태나 정보량에 따라 분류할 수 있다.
이 기준에 따라 지도 학습, 비지도 학습, 준지도 학습, 강화 학습 등 네 가지 주요 범주로 분류할 수가 있다.
지도 학습 (Supervised Learning)
: 지도 학습에는 알고리즘에 주입하는 훈련 데이터에 레이블(label)이라는 원하는 답이 포함된다.
지도 학습에는 classfication과 regression 이 있다.
(1) 분류(classification)
: 분류는 전형적인 지도 학습 작업이다. 대표적인 예시로는 스팸 필터가 있다. 스팸 필터는 많은 메일 샘플과 소속 정보(스팸인지 아닌지)로 훈련되어야 하며 어떻게 새 메일을 분류할지 학습한다.
(2) 회귀(Regression)
: 회귀는 예측 변수(predictor variable)이라 불리는 특성을 사용해 타깃(target) 수치를 예측하는 것이다.
일부 회귀 알고리즘은 분류에 사용할 수 있으며, 반대로 일부 분류 알고리즘을 회귀에 사용할 수도 있다.
예를 들어, 분류에 널리 쓰이는 로지스틱 회귀는 클래스에 속할 확률을 출력한다.
다음은 가장 중요한 지도 학습 알고리즘들이다.
- k-nearest neighbors : K-최근접 이웃
- linear regression : 선형 회귀
- logistic regression : 로지스틱 회귀
- support vector machine(SVM) : 서포트 벡터 머신
- decision tree & random forest : 결정 트리 & 랜덤 포레스트
- neural networks : 신경망
비지도 학습(Unsupervised Learning)
: 비지도 학습에는 훈련 데이터에 레이블이 없다. 시스템이 아무 도움 없이 스스로 학습하는 것이다.
다음은 가장 중요한 비지도 학습 알고리즘들이다.
- clustering 군집
- k-means : k-평균
- DBSCAN
- hierarchical cluster analysis(HCA) : 계층 군집 분석
- outlier detection & novelty detection : 이상치 탐지 & 특이치 탐지
- one-class SVM : 원-클래스
- isolation forest : 아이솔레이션 포레스트
- visualization & dimensionality reduction : 시각화 & 차원 축소
- principal component analysis (PCA) : 주성분 분석
- kernal PCA : 커널 PCA
- locally-linear embedding(LLE) : 지역적 선형 임베딩
- t-distributed stochastic neighbor embedding : t-SNE
- association rule learning : 연관 규칙 학습
- Apriori : 어프라이어리
- Eclat : 이클렛
준지도 학습(Semisupervised Learning)
: 준지도 학습이란, 일부만 레이블이 있는 데이터를 다룰 수 있는 알고리즘이다.
데이터에 레이블을 다는 것은 일반적으로 시간과 비용이 많이 들기 때문에 레이블이 있는 샘플은 적고 레이블이 없는 샘플은 많은 경우가 많다. 이때 준지도 학습은 일부만 레이블이 있는 데이터를 다룰 수 있다.
대표적으로, 구글 포토 호스팅 서비스가 있다. 구글 포토 호스팅 서비스는 여러 개의 사진 속에서 사람 A는 사진 1,5,11에 있고 사람 B는 2,5,7에 있다고 자동으로 인식한다. 이는 비지도 학습(군집)이다.
이제 필요한 것은 어떤 사람인가에 대한 정보이다. 이때 사람마다 레이블을 하나만 추가하면 사진에 있는 모든 사람의 이름을 알 수 있고, 편리하게 사진을 찾을 수 있다.
대부분의 준지도 학습 알고리즘은 지도 학습과 비지도 학습의 조합으로 이루어져 있다.
강화 학습 (Reinforcement Learning)
: 강화학습은 매우 다른 종류의 알고리즘이다. 학습하는 시스템을 에이전트라고 부르는데, 이 에이전트는 환경(environment)을 관찰해서 행동(action)을 실행하고 그 결과로 보상(reward) 또는 부정적 보상인 벌점(penalty)를 받는다. 시간이 지나면서 가장 큰 보상을 얻기 위해 정책(policy)이라고 부르는 최상의 전략을 스스로 학습한다. 정책은 주어진 상황에서 에이전트가 어떤 행동을 선택해야 할지 정의한다.
2. 배치 학습과 온라인 학습
머신러닝 시스템을 분류하는데 사용하는 다른 기준은 입력 데이터의 스트림(stream)부터 점진적으로 학습할 수 있는지의 여부이다. 이 기준에 따라 배치 학습과 온라인 학습으로 분류할 수 있다.
배치 학습 (batch learning)
배치 학습에서는 시스템이 점진적으로 학습할 수 없다. 가용한 데이터를 모두 사용해서 훈련시켜야 한다.
일반적으로 이 방식은 시간과 자원을 많이 소모하므로 보통 오프라인에서 수행된다. 먼저 시스템을 훈련시키고 그 다음 제품 시스템에 적용하면 더 이상의 학습 없이 실행된다. 즉, 학습한 것을 단지 적용만 한다. 이를 오프라인 학습(offline learning)이라고 한다.
배치 학습 시스템이 새로운 데이터에 대해 학습하려면 새로운 데이터뿐만 아니라 이전 데이터도 포함한 전체 데이터를 사용하여 시스템의 새로운 버전을 처음부터 다시 훈련해야 한다. 그 다음 이전 시스템을 중지시키고 새 시스템으로 교체한다.
온라인 학습 (online learning)
온라인 학습에서는 데이터를 순차적으로 한 개씨 또는 미니배치(mini-batch)라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킨다. 매 학습 단계가 빠르고 비용이 적게 들어서 시스템은 데이터가 도착하는대로 즉시 학습할 수 있다.
온라인 학습은 주식 가격처럼 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야 하는 시스템이 적합하다. 또한, 새로운 데이터 샘플을 학습하면 학습이 끝난 데이터는 더는 필요하지 않으므로 이전 상태로 되돌릴 수 있도록 데이터를 재사용하기 위해 보관할 필요가 없다면 버리기 때문에 많은 공간을 절약할 수 있다.
온라인 학습 시스템에서 중요한 파라미터 하나는 변화하는 데이터에 얼마나 빠르게 적응할 것인가 이다. 그리고 이를 학습률(learning rate)라고 한다. 학습률을 높게 하면 시스템이 데이터에 빠르게 적응하나, 예전 데이터를 금방 잊어버린다. 반대로 학습률이 낮으면 더 느리게 학습되나, 새로운 데이터에 있는 잡음이나 대표성 없는 데이터 포인트에 덜 민감해진다.
온라인 학습의 가장 큰 문제점은 시스템에 나쁜 데이터가 주입되었을 때 시스템 성능이 점진적으로 감소한다는 점이다. 이런 위험을 줄이기 위해서는 시스템을 면밀히 모니터링 하고 성능 감소가 감지되면 즉각 학습을 중지시켜야 한다. 또는 입력 데이터를 모니터링해서 비정상 데이터를 잡아낼 수도 있다.
3. 사례 기반 학습과 모델 기반 학습
머신러닝 시스템은 어떻게 일반화되는가에 따라 분류할 수도 있다. 일반화란 곧 새로운 데이터에서 좋은 예측을 만드는 것이다. 대부분의 머신 러닝 작업은 예측을 만드는 것이 목표이다. 즉, 주어진 훈련 데이터로 학습하고 훈련 데이터에서는 본 적 없는 새로운 데이터에서 좋은 예측을 만들어야 한다는 것이다. 훈련 데이터에서 높은 성능을 낸다고 좋은 모델이 아니라, 새로운 샘플에서 잘 작동하는 것이 중요하다.
이때 일반화를 위한 두 가지 접근법이 있는데, 바로 사례 기반 학습과 모델 기반 학습이다.
사례 기반 학습 (instance-based learning)
사례 기반 학습은, 시스템이 훈련 샘플을 기억함으로써 학습한다. 그리고 유사도 측정을 사용해 새로운 데이터와 학습한 샘플 또는 학습한 샘플 중 일부를) 비교하는 식으로 일반화한다.
예를 들어, 스팸 필터를 생각해보자.
사례 기반 학습을 적용한 스팸 필터는 스팸 메일과 매우 유사한 메일을 구분하도록 스팸 필터를 프로그래밍한다. 이를 위해 두 메일 사이의 유사도(similarilty)를 측정한다. 가장 간단한 유사도 측정 방법은 공통으로 포함한 단어의 수를 세는 것이다. 스팸 메일과 공통으로 가지고 있는 단어가 많으면 스팸으로 분류한다.
모델 기반 학습 (model-based learning)
모델 기반 학습이란, 샘플들의 모델을 만들어 예측에 사용하는 것이다.
여기서 모델이란, 모델의 종류(ex. 선형 회귀) 나 완전히 정의된 모델 구조(ex. 하나의 입력과 하나의 출력을 가진 선형 회귀) 나 예측에 사용하기 위해 준비된 훈련된 최종 모델(ex.
= 4.85,
= 4.91 * 10 인 입력 하나와 출력 하나를 가진 선형 회귀)를 의미할 수 있다. 그리고 모델 선택은 모델의 종류나 완전히 정의된 모델 구조를 선택하는 것이다. 마지막으로 모델 훈련은 훈련 데이터에 가장 잘 맞는, 그리고 새로운 데이터에 좋은 예측을 만드는 모델 파라미터를 찾기 위해 알고리즘을 실행하는 것을 의미한다.
마지막으로, 머신러닝 프로젝트의 전형적인 형태는 다음과 같다.
1. 데이터를 분석한다.
2. 모델을 선택한다.
3. 훈련 데이터로 모델을 훈련시킨다. 즉, 학습 알고리즘이 비용 함수를 최소화하는 모델 파라미터를 찾는다.
4. 새로운 데이터에 모델을 적용해 예측을 하고, 이 모델이 잘 일반화되기를 기대한다.
출처: 핸즈온머신러닝
핸즈온 머신러닝 : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com
'인공지능 > 머신러닝' 카테고리의 다른 글
Support Vector Machine(SVM) (0) | 2023.01.18 |
---|---|
로지스틱 회귀 (0) | 2023.01.14 |
Simple Linear Regression : Gradient Descent Method (0) | 2023.01.11 |
validation set & K-fold cross validation (0) | 2023.01.09 |
편향과 분산 (0) | 2023.01.06 |