For instance
- 사람의 감독하에 훈련하는 것인지 그렇지 않은 것인지(지도, 비지도, 준지도, 강화 학습)
- 실시간으로 점진적인 학습을 하는지 아닌지(온라인 학습과 배치 학습)
- 단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지 아니면 과학자들이 하는 것처럼 훈련 데이터셋에서 패턴을 발견하여 예측 모델을 만드는지(사례 기반 학습과 모델 기반 학습)
<지도 학습과 비지도 학습>
학습하는 동안의 감독 형태나 정보량에 따라 분류: 지도 학습, 비지도 학습, 준지도 학습, 강화 학습
- 지도 학습
- 알고리즘에 주입하는 훈련 데이터에 label이라는 원하는 답 포함
- Classification이 전형적인 지도 학습 작업 ex) spam filter on e-mail
- Predictor variable(예측 변수)라 불리는 Feature(특성)을 사용하여 Target 수치를 예측
- 위와 같은 작업들을 Regression(회귀)라 불림
- ML에서 Attribute(속성)는 데이터 타입을 말한다. Feature는 문맥에 따라 여러 의미를 갖지만 일반적으로 Attribute와 값이 합쳐진 것을 의미. 하지만 대부분 Attribute와 Feature를 구분하지 않고 사용
- 비지도 학습
- 훈련 데이터에 label이 없다. → system이 아무런 도움 없이 학습해야 한다
- Hierarchical clustering(계층 군집) 알고리즘 사용시 각 그룹을 더 작은 그룹으로 세분화 가능
- Visulization 알고리즘도 비지도 학습 알고리즙의 좋은 예 → Label이 없는 대규모의 고차원 데이터를 넣으면 도식화가 가능한 2D나 3D 표현을 만들어줌
- Dimentionality reduction(차원 축소): 너무 많은 정보를 잃지 않으면서 데이터를 간소화 → 상관관계가 있는 여러 특성을 하나로 합치는 것. 이를 Feature extraction(특성 추출)이라고 한다
- Outlier detection(이상치 탐지): System은 훈련하는 동안 대부분 정상 샘플을 만나 이를 인식하도록 훈련. 그다음 새로운 샘플을 보고 정상 데이터인지 혹은 이상치인지 판단
- Novelty detection(특이치 탐지): 훈련세트에 있는 모든 샘플과 달라 보이는 새로운 샘플을 탐지하는 것이 목적
- Association rule learning(연관 규칙 학습): 대량의 데이터에서 특성 간의 흥미로운 관계를 찾는 것
- 준지도 학습
- 데이터에 Label을 다는 것은 일반적으로 시간과 비용이 많이 들기 때문에 Label이 없는 샘플이 많고 Label된 샘플은 적은 경우가 많다. 어떤 알고리즘은 일부만 Label이 없는 데이터를 다룰 수 있다.
- 대부분의 준지도 학습 알고리즘은 지도 학습과 비지도 학습의 조합으로 이뤄짐
- 강화 학습
- 학습하는 system을 Agent라고 부르며 envinorment를 관찰해서 action을 실행하고 그 결과로 reward를 받음. 시간이 지나면서 가장 큰 reward를 얻기 위해 policy라고 부르는 최상의 전략을 스스로 학습
<배치 학습과 온라인 학습>
- 배치 학습(Off-line학습)
- system이 점진적으로 학습할 수 없다
- 가용한 데이터를 모두 사용해 훈련
- 시간과 자원을 많이 소모하므로 보통 Off-line에서 수행
- 먼저 system을 훈련시키고 그런 다음 제품 system에 적용하면 더 이상의 학습없이 실행
- 즉, 학습한 것을 단지 적용함. 이를, Off-line 학습이라고 한다
- On-line 학습
- 데이터를 순차적으로 한 개씩 또는 미니배치라 부르는 작은 묶음 단위로 주입하여 system을 훈련
- 매 학습 단계가 빠르고 비용이 적게 들어 system은 데이터가 도착하는 대로 즉시 학습
- 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야 하는 system에 적합
- 중요한 파라미터 하나는 변화하는 데이터에 얼마나 빠르게 적응할 것인지이다. 이를 Learning rate(학습률)라고 한다
- Learning rate를 높게 하면 system이 데이터에 빠르게 적응하지만 예전 데이터를 금방 잊어버린다
- 낮게 하면 system의 관성이 더 커져서 더 느리게 학습되지만, 새로운 데이터에 있는 잡음이나 대표성 없는 데이터 포인트에 덜 민감
- 가장 큰 문제점은 system에 나쁜 데이터가 주입되었을 때 system 성능이 점진적으로 감소한다.
<사례 기반 학습과 모델 기반 학습>
- 사례 기반 학습
- 단순히 기억하는 것
- system이 훈련 샘플을 기억함으로써 학습하고 유사도 측정을 사용해 새로운 데이터와 학습한 샘플을 비교하는 식으로 일반화
- 모델 기반 학습
- 샘플들의 모델을 만들어 예측에 사용하는 것
- Linear model
- y=ax+b 형태의 모델에서 파라미터는 a와 b이며, 모델 사용전 a와 b를 정의
- 모델이 얼마나 좋은지를 측정하는 utility function을 정의하거나 얼마나 나쁜지 측정하는 cost function을 정의
- Linear Regression에서 보통 linear model의 예측과 훈련 데이터 사이의 거리를 재는 cost function을 말하며 이 거리를 최소화하는 것이 목표
- 알고리즘에 훈련 데이터를 공급하면 데이터에 가장 잘 맞는 linear model의 파라미터를 찾는다. 이를 model을 training시킨다고 말한다.
'둘 > [ Machine Learning ]' 카테고리의 다른 글
MNIST (0) | 2020.12.03 |
---|---|
Overfitting (0) | 2020.12.02 |
Why do some pandas commands end with parentheses, and others don't? (0) | 2020.11.26 |
How do I select a pandas Series from a DataFrame (0) | 2020.11.26 |
How do I read a tabular data file into pandas? (0) | 2020.11.26 |