데이터 마이닝 : 대용량의 데이터를 분석하여 숨겨진 패턴을 발견하는 것
머신러닝이 뛰어난 분야
- 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
- 전통적인 방식으로는 해결 방법이 없는 복잡한 문제
- 유동적인 환경 - 항상 최신 상태를 유지하는 머신러닝 시스템
- 복잡한 문제와 대량의 데이터에서 인사이트 얻기
머신러닝 시스템의 종류
- 훈련 지도 방식 (지도, 비지도, 준지도, 자기 지도, 강화 학습)
- 실시간으로 점진적인 학습을 하는지 아닌지 (온라인 학습, 배치 학습)
- 사례 기반 학습 및 모델 기반 학습
훈련 지도 방식
1) 지도 학습 (Supervised learning)
훈련 데이터에 레이블이 포함되어 있다.
Classification / Regression (feature - 예측 변수/속성 을 사용해 target값 예측)
일부 분류 알고리즘을 회귀에 사용할 수 있다. (Logistic regression - class에 속할 확률 출력)
2) 비지도 학습 (Unsupervised learning)
훈련 데이터에 레이블이 없다.
Clustering / Visualization (고차원 데이터로 2D, 3D 표현)
Dimensionality reduction (상관관계가 있는 여러 특성을 하나로 합침 → Feature extraction)
Outlier detection (이상치 탐지) / Novelty detection (특이치 탐지 - 훈련 세트의 모든 샘플과 달라보이는 새로운 샘플 탐지)
Association rule learning (연관 규칙 학습 - rule-based)
3) 준지도 학습 (Semi-supervised learning)
훈련 데이터의 일부에만 레이블이 존재한다.
대부분은 지도 학습과 비지도 학습의 조합으로 구성되어있다.
ex. 군집 알고리즘 → 레이블 없는 샘플에 클러스터에서 가장 많이 등장하는 레이블 할당 → 지도 학습
4) 자기 지도 학습 (Self-supervised learning)
레이블이 전혀 없는 데이터셋에서 레이블이 완전히 부여된 데이터셋을 생성한다.
ex. 레이블 없는 이미지의 일부분 random masking → 원본 이미지 복원. 마스킹된 이미지가 input, 원본 이미지는 label.
훈련하는 동안 (생성된) 레이블을 사용한다.
5) 강화 학습 (Reinforcement learning)
Agent라는 학습하는 시스템이 환경을 관찰해서 행동을 실행하고 그 결과로 reward 또는 penalty를 받는다.
Policy는 주어진 상황에서 Agent가 어떤 행동을 선택해야 할지 정의하는 것으로, 시간이 지나면서 가장 큰 보상을 얻기 위해 스스로 학습하는 전략이다.
배치 학습 / 온라인 학습
분류 기준 : 입력 데이터의 stream으로부터 점진적으로 학습 가능한가?
1. 배치 학습
점진적으로 학습불가능하며, 가용한 데이터를 모두 사용해 훈련시켜야 한다.
시간과 자원을 많이 소모하므로 오프라인에서 수행된다.
model rot(또는 data drift) 문제 해결 방법 → 최신 데이터에서 모델을 정기적으로 재훈련!
새로운 데이터에 대해 학습하려면 전체 데이터를 사용하여 시스템의 새로운 버전을 처음부터 다시 훈련하고 이전 모델을 새 모델로 교체해야한다.
2. 온라인 학습
데이터를 순차적으로, mini-batch라는 단위로 주입하여 시스템을 훈련시킨다.
매 학습 단계가 빠르고 비용이 적게 들어 데이터가 도착하는대로 시스템은 즉시 학습가능하다.
빠른 변화에 적응해야 하는 시스템이나 모바일 디바이스 같이 컴퓨팅 자원이 제한된 경우에 좋은 선택
Learning rate : 낮을수록 시스템의 관성이 더 커져 느리게 학습하고, 잡음이나 대표성 없는 데이터 포인트에 덜 민감해진다.
단점 : 나쁜 데이터 주입 시 시스템 성능이 감소 → 입력 데이터 모니터링하여 학습 중지시켜야 한다.
사례 기반 학습 / 모델 기반 학습
분류 기준 : 어떻게 일반화되는가?
1. 사례 기반 학습
시스템이 훈련 샘플을 기억함으로써 학습 → 유사도 측정 사용해 새로운 데이터와 학습한 샘플 비교하여 일반화
ex. k-nearest neighbors regression
2. 모델 기반 학습
훈련 샘플의 모델을 만들어 예측에 사용한다.
모델의 종류, 완전히 정의된 모델 구조, 훈련된 최종 모델을 선택 → 성능 측정 지표(효용 또는 비용 함수)를 바탕으로 모델 파라미터 조정 → 추론
머신러닝의 주요 도전 과제
1. 충분하지 않은 양의 훈련 데이터
2. 대표성 없는 훈련 데이터
샘플이 작으면 우연에 의해 생기는 ‘sampling noise’ 발생하고, 샘플이 매우 크면 표본 추출 방법에 따라 ‘sampling bias’ 발생 가능 → 일반화에 어려움이 생긴다.
3. 낮은 품질의 데이터
오류, 이상치, 결측치, 성능이 낮은 측정 장치로 인한 잡음 → 훈련 데이터 정제 필요!
4. 관련없는 특성
feature engineering - feature selection, feature extraction, data collection
5. 훈련 데이터 과대적합(overfitting)
훈련 데이터의 양과 잡음에 비해 모델이 너무 복잡할 때 발생!
해결 방법
- 단순화 : 파라미터 수가 적은 모델을 선택하거나,훈련 데이터에 있는 특성 수를 줄이거나, 규제(regularization)를 한다.
regularization의 양은 ‘학습 알고리즘’의 파라미터인 hyperparameter가 결정한다. - 훈련 데이터를 더 많이 모은다.
- 훈련 데이터의 잡음을 줄인다. (오류 데이터 수정, 이상치 제거 등)
6. 훈련 데이터 과소적합(underfitting)
모델이 너무 단순해서 데이터의 내재적 구조를 학습하지 못할 때 발생한다.
→ 모델 파라미터가 더 많은 모델 선택, 학습 알고리즘에 더 좋은 특성 제공, regularization parameter 감소.
테스트와 검증
훈련 세트와 테스트 세트로 나눈 후, generalization error(또는 out-of-sample error) 라는 새로운 샘플에 대한 오차 비율에 대한 추정값을 얻는다.
validation 세트와 테스트 세트는 대표성을 가진 데이터로만 구성돼야 한다.
Hyperparameter 튜닝
Holdout validation : 훈련 세트의 일부로 validation(또는 development) 세트를 만들어 여러 후보 모델을 평가한다. 이후 최상의 모델 재훈련!
Cross-validation : 작은 검증 세트를 여러 개 사용해 반복적으로 수행한다. 단점은 훈련 시간이 검증 세트의 수에 비례한다는 것이다.
Train-dev set : 훈련 세트로 모델을 훈련한 후, train-dev 세트에서 평가. 만약 잘 작동한다면 validation 세트에서 평가할 수 있다. 잘 작동하지 않는다면 모델을 규제하거나, 더 많은 데이터를 모으거나, 훈련 데이터 정제를 시도해봐야한다.
'Book Review > 핸즈온 머신러닝 3판' 카테고리의 다른 글
4장 - 모델 훈련 (0) | 2024.04.13 |
---|---|
3장 - 분류 (3) | 2024.03.02 |
2장 - 머신러닝 프로젝트 처음부터 끝까지 (0) | 2024.02.29 |