무말랭이 숙성중

[COURSERA] ML strategy3 본문

DEEP LEARNING/COURSERA

[COURSERA] ML strategy3

손혜정 2018. 4. 23. 01:16


ML 에서, hyperparameter들을 튜닝하거나 여러 알고리즘을 적용해서 성능을 향상시키고자 할 때 한번에 한개의 평가지표 대해서만 확인을 해나가면, 새로운 것이 좋은지 아니면 더 나쁜지에 대해 더 빠르게 파악할 수 있다.


Using single number evaluation metric

일반적으로 새로운 idea에 대한 적용 과정은 다음과 같다.


 Idea -> code -> experiment


experiment를 통해 나온 경험으로 Idea를 수정하여 위의 과정을 반복한다.

예를들어서, Classifier A,B가 있다고 하자. 어떤 Classifier가 더 좋다고 볼 수있을까? 그리고 또 어떻게 수정해야 성능을 높일 수 있을까?


           Precision              Recall

 A            95%                  90%

 B            98%                  85%



 [참고] Precision, Recall?

  Precision = TP / (TP+FP) 

   * 실제 Positive로 분류된 값들 / 실제 Positive로 분류된 값 + Positive로 잘못 분류된 값 => Positive로 분류된 값들 중 실제로 Positive인 값들


 Recall = TP / TP + FN

  * 실제 Positive로 분류된 값들 / 실제 Positive로 분류된 값 + Positive로 분류됬었어야 하는 값 => 실제 Positive인 데이터들 중 Positive로 분류된 값들



 사실, 두가지만 봐서는 어떤 모델(Classifier 모델)이 좋은지 알 수 없다. 종합적인 성능 측정값으로 'F값'이 등장한다.

 그중 F1은 Harmonic mean이라고 불리며 아래와 같이 표현한다.


 F1 = 2 * (P*R) / (P+R)



그럼 성능을 다시 한번 보자.


           Precision              Recall              F1 Score

 A            95%                  90%                 92.4%

 B            98%                  85%                 91.0%


A의 F1 Score가 더 높다는 것을 알 수 있다!

많은 ML Team들이 잘 정의된 Dev set (Precision, Recall...)과 Single (real) number evaluation metric(평가지표)를 가지고 있다. 이를 통해 매우 빠르게 ML의 성능을 높혀나간다.



또다른 예를 보자.

이번에는 Classifier가 각각의 언어에 따라 error율결과가 다르게 나오는 경우이다. 


         US         China         India        Other

A        3%          7%           5%            9%

B        5%          6%           5%            10%

C   .......

D

E

F


이 error율이 합리적인 단일 error 평가 metric이라면, average error를 계산하여 어느 알고리즘이  오류가 제일 적은지 찾을 수 있다. 



'DEEP LEARNING > COURSERA' 카테고리의 다른 글

[COURSERA] ML strategy6  (0) 2018.05.08
[COURSERA] ML strategy5  (0) 2018.04.23
[COURSERA] ML strategy4  (0) 2018.04.23
[COURSERA] ML strategy2  (0) 2018.04.23
[COURSERA] ML strategy  (0) 2018.04.19