Notice
Recent Posts
Recent Comments
Link
Koo's.Co
[ML] 머신러닝 시스템의 종류 본문
머신러닝 알고리즘의 종류는 매우 다양합니다. 이들을 넓은 범주에서 분류하고 사용한다면 이해하는 데 도움을 줄 수 있습니다.
- 사람의 감독하에 훈련하는 것인지의 여부: 지도, 비지도, 준지도, 강화 학습
- 실시간으로 점진적 학습을 하는지 여부: 온라인 학습, 배치 학습
- 저장하고 있는 데이터와 새로운 데이터를 비교 or 데이터에서 패턴을 발견 해 예측 모델을 만드는지: 사례 기반 학습, 모델 기반 학습
위 범주들은 서로 배타적이지 않습니다.
(ex) 지도학습이며 배치 학습이며 사례 기반 학습인 머신러닝 알고리즘)
1. 지도학습과 비지도 학습
- "학습하는 동안의 감독 형태나 정보량" 에 따라 분류
- 지도 학습, 비지도 학습, 준지도 학습, 강화 학습으로 구분
① 지도학습
- 훈련 데이터가 레이블을 포함하고 있음
- 분류 알고리즘과 회귀 알고리즘으로 나뉨
- 분류: 기존의 데이터 셋을 이용해 새로운 데이터를 다른 범주로 분류하도록 학습
- 회귀: 독립 변수를 사용해 타깃이 되는 종속 변수의 수치를 예측
- K-최근접 이웃, 선형 회귀, 로지스틱 회귀, SVM, 결정 트리/ 랜덤 포레스트, 신경망 ...
② 비지도학습
- 훈련 데이터가 레이블을 포함하고 있지 않음
- 군집
- K-means clustering
- DBSCAN
- 계층 군집 분석
- 이상치/특이치 탐지
- One-class SVM
- 아이솔레이션 포레스트
- 시각화 / 차원 축소
- 주성분 분석(PCA)
- 커널 PCA
- 지역적 선형 임베딩
...
③ 준지도학습
- 레이블이 있는 데이터와 없는 데이터를 사용해 학습
- 대부분의 준지도 학습 알고리즘은 지도 학습과 비지도 학습의 조합으로 구성
④ 강화 학습
- 에이전트(학습하는 시스템)가 환경을 관찰한 후 행동을 실행, 그에 따른 보상을 받음
- 가장 큰 보상을 얻기 위해 최상의 전략(정책)을 학습하는 것이 목표
- 보행 로봇, 알파고, ...
2. 배치학습과 온라인학습
- 입력 데이터 스트림으로부터 점진적으로 학습할 수 있는지 여부를 나타냄
① 배치학습
- 시스템이 점진적으로 학습할 수 없음
- 한 번 데이터로 시스템을 학습시킨 후에는 별도의 학습이 없음
- 새로운 데이터에 대해 학습하려면 전체 데이터와 새로운 데이터를 이용해 처음부터 다시 훈련해야 함
② 온라인학습(점진적 학습)
- 데이터를 순차적으로 한 개씩 또는 미니배치라 부르는 작은 묶음 단위로 시스템을 훈련
- 빠른 변화에 스스로 적응해야 하는 시스템에 적합
- 컴퓨터의 메모리의 크기를 넘어서는 큰 데이터셋을 학습하는 경우 유용
- 컴퓨팅 자원이 제한된 경우에 유용
- 학습한 데이터는 더 이상 필요하지 않음
- 나쁜 데이터가 주입되는 경우 성능이 점진적으로 감소
- 학습률(변화하는 데이터에 얼마나 빠르게 적응할 것인지)이 중요
- 학습률이 높은 경우: 시스템에 빠르게 적응하지만 이전 데이터를 금방 잊어버림
- 학습률이 낮은 경우: 시스템의 관성이 커져 더 느리게 학습
3. 사례 기반 학습과 모델 기반 학습
- 어떻게 일반화 되는가에 따라 분류
① 사례 기반 학습
- 훈련 데이터를 기억함으로써 학습
- 유사도 측정을 통해 새로운 데이터와 학습한 데이터를 비교하는 방식으로 일반화
- ex) K-최근접 이웃
② 모델 기반 학습
- 샘플들을 이용해 모델의 하이퍼 파라미터 값을 조정해 모델을 통해 예측하는 방식으로 일반화
머신러닝 알고리즘의 분류에 대해 정리해 보았습니다. 아직 공부하는 중이라 정확한 개념 이해에 부족함이 있을 수 있는데 점차 공부해가며 내용도 조금씩 다듬어 가려합니다.
참고 서적
- Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow 2판, Aurélien Géron
'DataScience' 카테고리의 다른 글
[ML] 모델 파라미터와 모델 하이퍼 파라미터 차이 (Difference between a model parameter and a model hyper parameter) (0) | 2022.08.02 |
---|---|
[ML] K-NeighborsClassifier(K-최근접 이웃) (0) | 2022.07.30 |
[Numpy] Poly1d 그래프 plot (0) | 2022.07.14 |
[Matplotlib] PieChart(파이차트) (0) | 2022.07.11 |
모집단과 표본집단, 표본평균의 의미 (0) | 2022.07.07 |
Comments