본문 바로가기

DeepLearning Specialization(Andrew Ng)/Structuring Machine Learning Projects

[Week 1] 2. Setting up your goal

728x90
Setting up your goal
1. Single number evaluation metric
2. Satisficing and optimizing metric
3. Train / dev / test distribution
4. Size of dev and test set
5. When to change dev/test sets and metrics

1. Single number evaluation metric

  Actual N Actual P
predict N TN FN
predict P FP TP

 

precision = TP / TP+FP

 

recall = TP / TP+FN

 

F1 score = 2 / (P^-1 + R^-1)

 

F1 score 는 대표적인 single metric이다. 

 


2. Satisficing and optimizing metric

모델의 성능을 평가할 때, N개의 평가지표가 있는 경우, Optimizing 과 Satisficing metric으로 나누어 살펴본다.

 

Optimizing metric은 우리가 최대화 해야하는 항목이며

Satisficing metric은 최소한 어떤 조건을 만족시켜야 하는 항목으로 전제조건이라 할 수 있다. 

 

ex) accuracy가 Optimizing , running time이 satisficing metric이라 한다면,

running time이 100ms 이하일 때, accuracy가 최대값을 갖는 경우를 최적의 모델이라 평가할 수 있다. 

 


3. Train / dev / test distribution

train은 나중에 얘기하기로 하고, dev와 test set은 같은 분포에서 추출되는게 맞다. 

우리는 dev를 기준으로 모델을 튜닝하는데 갑자기 뜬금없는 test set으로 평가를 한다면 평가의 의미가 퇴색된다. 

(마치 A라는 과녁을 기준으로 연습했다가 B라는 과녁으로 갑자기 바꿔진 경우와 같음)

 

 이를 위해서 dev와 test로 이용할 데이터를 random shuffling 하고 무작위로 나누면 같은 분포에서 추출한 것이 됨.

 


4. Size of dev and test set

 data가 적을 때는 train/test를 70%, 30% 혹은 train/dev/test를 60%, 20%, 20%로 나누곤 했으나, data가 폭발적으로 증가함에 따라 test/dev 의 비중을 대폭 축소하는게 트렌드다.

1%만 해도 100000개가 되는 경우가 있기 때문에...

 

 심지어 평가를 할 필요가 없는 경우, train과 dev set만으로 나누는 경우도 있음.  

 


5. When to change dev/test sets and metrics

 

 1) 분석 목적에 따라 metric을 재설정할 수 있음. 

단순히 metric만으로 모델의 우위를 판단했을 때, 실제 user의 입장에서 적절하지 않는 경우가 있음. 

 

위와 같이 x가 porn 이면 w라는 가중치를 두는 방법을 통해 metric을 재설정하면 기존과는 다르게 B 알고리즘을 더 좋은 모델로 평가할 수 있다.

 

2) 직교화

 

1st. 우선 metric을 정의함으로써 target을 정한다. 

 

2nd. 그리고 그 target에 맞게 최적화한다.

 

위의 두 단계는 구분되어서 작업되는게 좋다. 

 

3) dev/test 에서 잘 작동한다고 실제 사용자의 적용단계에서는 어찌될지 모른다. 실제 사용자가 집어넣는 data는 학습했던 data와는 양상이 많이 다를 수 있기 때문. 

 => metric과 dev/test set을 바꾼다.

 

ex) 고양이 사진으로 학습을 하였지만, 실제 사용자들은 굉장히 흐린 사진들 집어넣을 가능성이 있다. 흐린 사진을 학습하지 않은 모델은 그것을 고양이사진으로 잘 분류할 수 없다. 따라서 우리는 흐릿한 고양이 사진도 dev/test 에 넣어야한다(아직 train set에 대한 얘기는 교수님이 하지 않음).

 

 

 

 

728x90