본문 바로가기
대학원 수업 요약 정리

시스템공학세미나1(장동식교수님)(5)-Supervised Learning, Unsupervised Learning, Target, Features, Data Science Workflow, Evaluation Metirc, Training, Inference, Overfitting, Underfitting

by 지식광부키우기 2020. 4. 30.

Supervised Learning

 

 

Supervised Learning(지도학습)?

 

데이터 포인트의 답이 있는 것

Outcome이 뭔지 알고 있음

 

 

Unsupervised Learning(비지도학습)?

 

데이터 포인트의 답이 없음

Outcome이 뭔지 모름

 

 

Target?

 

예측하려는 대상

아이리스 데이터에서 예측하려는 꽃의 품종

 

 

Features?

 

예측을 위해 사용하는 데이터들의 특징

아이리스 데이터에서 예측을 위해 사용하는 꽃의 특징

 

 

Example: Supervised Learning Problem?

 

목표: 이메일이 스팸인지 스팸인지 아닌지 예측

데이터 : 스팸이나 스팸이 아닌 레이블로 구분된 그동안의 이메일들 

Target: 스팸 or 스팸 아님

Features: 이메일 텍스트, 주제, 보낸 시간 등 

Example2: Supervised Learning Problem?

 

목표: 교통 표지판의 bounding box 위치 예측

데이터: bounding box 위치 이미지

Target: bounding box의 Corners

Features: 이미지 픽셀

 

 

Data Science Workflow?

 

Problem Statement: What problem are you trying to solve?(문제가 뭐냐)

Data Dollection: What data do you need to solve it?(어떤 데이터가 활용되어야 하냐)

Data Exploration & Preprocessing: How should you clean your data so your model can use it?(데이터를 노이즈가 없게 만들고 다음 모델이 돌아가기 위해서 어떻게 해야 하냐)

Modeling: Build a model to solve your problem?(그 문제를 풀기위해 어떤 모델을 쓸 것이냐)

Validation: Did I solve the problem?(그 모델이 성과가 좋냐)

Decision Making & Deployment: Communicate to stakeholders or put into production?

모델링과 벨리데이션 포커스 

 

 

Supervised Learning Problem?

 

레이블된 데이터셋을 수집(features와 target labels)

모델을 선택

모델 성과 측정 방법 선택

가장 좋은 성과 내는 모델과 평가 지표 선택(Optimization method)

 

 

Which Model?

 

Ex1: Decision tree: yes/no로 계속 전개해서 답 제공

Ex2: Nearest neighbor: 가까운 것끼리 묶어지게 함

모델 선택시 고려사항

학습을 하는 데 걸리는 '시간'

예측을 하는 '속도'

필요한 데이터의 '양'

데이터의 '타입'(노이즈가 많은 데이터인가?)

복잡한 문제 여부

복잡한 문제를 풀 수 있는 능력

심플한 것을 복잡하게 만드는 경향

 

 

Evaluation Metirc?

 

답이 얼마나 틀렸는지

Accuracy: true values에 맞게 얼마나 잘 예측했는지

Mean Squared Error: 예측값과 true value 사이의 평균 제곱 거리

세상은 type1, type2 error가 상충됨

둘 다 잡을 수는 없음

예시: 스팸인지 스팸이 아닌지 accuracy

학습에서 100개 중 99개가 실제로 스팸이라 가정하면 스팸 예측 모델은 99% accuracy를 가질 것

높은 accuracy metric을 가진 것보다 스팸이메일을 스팸으로 정확하게 분류하는 게 더 중요 

스팸인데 스팸이 아닌 걸로 분류 vs 스팸이 아닌데 스팸으로 분류

후자의 경우 비용이 많이 발생해 초점 둬야함

 

 

Training?

 

Training Data: 모델을 훈련시키기 위해 사용하는 데이터셋

Optimization: 가장 성능이 좋은 모델을 구분

인간, 자전거, 딸기 이미지 주고 학습시킴

학습 과정에서 학습 정확도 높이도록 계속 모델 수정(뉴랄 넷)

 

 

Inference?

 

새로운 Data가 주어지면 학습된 모델을 기반으로 예측

New Data -> Model -> Prediction

 

 

Traning vs Inference?

 

Inference할 때 주어진 새 데이터에 성능이 좋아야 함

 

 

Supervised Learning Overview?

 

Training: known 데이터를 가지고 학습을 시킴

레이블된 데이터 + 모델 -> fit -> 학습된 모델

Inference: unknown 데이터 가지고 예측 시행

레이블 모르는 데이터 + 학습된 모델 -> predict -> 예측 답

Curve Fitting: Overfitting vs Underfitting Example?

 

목표: 데이터에 맞게 curve를 fit

 

 

Curve Fitting: Underfitting Example?

 

cuve가 너무 간단

underfitting으로 부름

training data에 poor fit

unseen data에 poor fit

주어진 데이터와 모델이 맞지 않음

 

 

Curve Fitting: Overfitting Example?

 

curve가 너무 복잡

overfitting으로 부름

training data에 good fit

unseen data에 poor fit

모델이 너무 민감

학습 데이터의 노이즈까지 fit

 

 

Curve Fitting Problem?

 

문제: training동안에 없던 unseen data

얼마나 well fit하느냐가 가장 중요한 이슈

 

 

Solution: Split Data Into Two Sets?

 

Training Set: training 과정에서 사용하는 데이터

Test Set: 성능 측정을 위한 데이터, simulating unseen data

 

 

Train-Test Split?

 

실제 추론을 하기 전에 학습된 모델을 평가 위함

 

 

Why Python?

 

General purpose language

많은 사람이 쓰는 프로그램을 써야 소통하기 쉬움

라이브러리도 많고 무료로 배울 코스도 많음

댓글