Machine Learning
- 명시적인 programming 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야
- 데이터를 통해 다양한 pattern을 감지하고 스스로 학습 가능한 model 개발에 초점
Supervised Learning
- 주어진 입력으로부터 출력값을 예측할 때 사용
- 입력과 정답 data를 통해 모델을 학습시킨 후 새로운 input data에 대해 정확한 출력을 예측하도록 하는 것이 목표
- supervised learning algorithm의 학습 data를 만드는 것 자체가 많은 노력과 resources를 필요로 하지만, high performance 기대 가능
Classification & Regression
- supervised learning algorithm은 크게 classification과 regression으로 구분
- classification은 입력 data를 미리 정의된 여러 개의 class 중 하나로 예측
- regression은 class의 개수가 2개인 binary classification과 3개 이상인 multi-class classfication으로 구분
- regression은 연속적인 숫자를 예측하는 것으로 예를 들면, 나이, 농작물의 수확량, 주식 가격 등 출력값이 '연속성'을 갖는다면 regression에 해당
Supervised Learning Algorithm
- Linear Regression
- Logistic Regression
- Support Vector Machine
- K-Nearest Neighbors
- Decision Tree
- Ensemble
- Neural Networks
Unsupervised Learning
- 원하는 출력 없이 입력 데이터를 사용
- 입력 데이터의 구조나 패턴을 찾는 것이 목표
- 미리 정해진 겨로가가 없고 방대한 양의 데이터에서 유용한 insight를 얻을 수 있음
Clustering & Dimensionality Reduction & Association Rules
- Unsupervised Learning Algorithm은 크게 clustering, dimensionality reduction, association rules로 구분
- clustering은 공간 상에서 서로 가깝고 유사한 데이터를 클러스터로 그룹화
- dimensionality reduction은 고차원의 데이터에 대해 너무 많은 정보를 잃지 않으면서 데이터 축소
- association rules는 데이터에서 특성 간의 연관성이 있는 흥미로운 규칙을 찾는 방법
Unsupervised Learning Algorithm
- Clustering : K-Means, DBSCAN, Hierarchical Cluster Analysis, Outlier Detection, Novelty Detection
- Dimensionality Reduction : Principle Component Analysis, Kernel PCA, T-Distributed Stochastic Neighbor Embedding
- Association Rule Learning : Apriori, Eclat
Semi-supervised Learning
- label이 있는 것과 없는 것이 혼합된 경우
- 일반적으로는 일부 데이터에만 레이블이 있음
- semi supervised learning algorithm의 경우 대부분 supervised learning algorithm과 unsupervised learning algorithm의 combination
Reinforcement Learning
- 동적 환경과 함께 상호 작용하는 feedback 기반 학습 방법
- agent가 환경을 관찰하고 행동을 실행하며 reward 또는 penality를 받음
- agent는 이러한 feedback을 통해 자동으로 학습하고 performance를 향상시킴
- 어떤 지도가 없이 일정한 goal 수행
Online Learning VS Batch Learning
- Online Learning : 적은 데이터를 사용해 mini-batch 단위로 점진적 학습, 실시간 시스템이나 메모리 부족의 경우 사용
- Batch Learning : 전체 데이터를 모두 사용해 offline에서 학습, 컴퓨팅 자원이 풍부한 경우 사용
Instance-based Learning VS Model-based Learning
- Instance-based Learning : 훈련 데이터를 학습을 통해 기억, 예측을 위해 데이터 사이의 '유사도' 측정, 새로운 데이터와 학습된 데이터를 비교
- Model-based Learning : 훈련 데이터를 사용해 모델을 훈련, 훈련된 모델을 사용해 새로운 데이터를 예측
Generalization & Overfitting & Underfitting

Generalization
- 일반적으로 supervised learning model은 학습 데이터로 훈련시킨 뒤 평가 데이터에서도 정확하게 예측하기를 기대함
- 훈련된 모델이 처음 보는 데이터를 정확하게 예측한다면 이러한 상태의 model을 generalization 되었다고 함
- 모델이 항상 generalized 는 아님
Overfitting
- 주어진 훈련 데이터에 비해 complicated model을 사용하면 모델은 훈련 데이터에서만 정확한 performance를 보이고 평가 데이터에서는 lower performance를 보임
- 즉, 모델이 주어진 훈련 데이터는 잘 예측하지만 일반적인 특징을 학습하지 못해 평가 데이터에서는 lower performance를 보이는 상태를 overfitting이라고 함
Underfitting
- overfitting과 반대로 주어진 훈련 데이터에 비해 너무 간단한 모델을 사용하면 모델이 데이터에 존재하는 다양한 정보들을 제대로 학습하지 못함
- 이런 경우 모델은 훈련 데이터에서도 bad performance를 보이고 평가 데이터에서도 lower performance를 보여 underfitting 상태라고 함
Model complexity & size of Data Set
- 데이터의 다양성이 클수록 더 복잡한 모델을 사용하면 좋은 성능을 get
- 일반적으로 더 큰 data-set일수록 다양성이 높기 때문에 더 복잡한 모델 사용 가능
- but 같은 데이터를 중복하거나 비슷한 데이터를 모으는 것은 다양성 증가에 도움이 안 됨
- 데이터를 더 많이 수집하고 적절한 모델을 만들어 사용하면 supervised learning을 통해 놀라운 결과 get

