딥러닝

왜 자꾸 f1-score을 강조하는 것일까?

문학적 딥러닝 2024. 11. 9. 22:44

f1-score을 좀 이해하기 위해서는 우선 "조화평균"에 대해서 알아야 한다. (실제로는 단위를 맞추는게 중요하니, 구간별로 다르다는 것을 고려해야 하니 뭐니 좀 생각할게 많은데, 한 분야만 공부하는 장점은 하나의 성질만 파면 된다는 것이 있다 -> 아님 슬프고)

 

일반적인 평균(산술평균)은 값이 큰 값에 영향을 많이 끼치는 성질이 있다.

 

반면 조화 평균의 목적은 여러 변수를 조화롭게 (-> 어떻게 보면 다수의 의견을 따르겠다는 의미) 나타내는 선을 구하고 싶은 것이다.

어떻게 보면, 누군가에게는 극단적으로 차별을 느끼게 할 수 있겠지만, 그럼에도 다수의 의견을 존중하는 것이다. 

 

공식은 다음과 같다.

 

그렇다면 f1-score은 Recall과 Precision의 조화로운 값을 구하는 목표를 가지고 있다.

 

여기서 우리는 Recall과 Precision의 조화로운 값을 구하는 이유를 알기 위해서는 각각 서로 다른 의도를 가지고 있다는 것을 알아야 한다. 우선 혼동 행렬에 대해 바라보자. (개인적으로 recall이 재현율, precision이 정밀도 라고 한글로 기억하는건 크게 의미가 없었다)

 

혼동 행렬은 실제 값과 예측 값의 관계를 살펴보는 관계도 이며, 이를 통해서 Recall과 Precision을 구하는 것이다.

앞에 T가 있으면 실제와 예측이 동일한 결과를 얻은 것이고, 앞에 F가 있으면 실제와 예측이 다르다는 것을 의미한다. 

 

여기서 T만 고려 하는 것을 흔히 사용하는 Accuracy(정확도)이며, 딥러닝에서 이것만 맹신했다가는 큰일이 날 수 있다. 따라서 Recall과 Precision이 중요한 이유를 알아보고, 각각 어떤 의미를 가지고 있는지 알아보자. 

 

 

 

 

 

Recall의 의미: 실제로 Positive(맞다)인데 예측을 잘한 경우를 뜻한다.

Recall이 중요한 이유: 암과 같은 질병을 질병이 아니라고 예측하는 것을 방지하기 위해. Recall은 "에이~ 맞다고 했으면서, 아니잖아~"하는 경우가 자주 일아나도 괜찮은 경우 사용한다

 

 

 

 

 

 

 

Precision의 의미: Positive(맞다)라고 예측한 것 중에서 진짜로 맞는(Positive한)것

Precision이 중요한 이유: "나쁜 녀석들을 놓치되, 선량한 사람을 감옥에 넣지는 말자"와 같은 무고한 희생이 발생하는 것을 방지하는 것이다. "아씨~ 실패했어~! 괜찮아... 한번 더 해보지 뭐.." 같은 경우를 볼 수 있다.

 

예를 들면 몸에 있는 세포들 사이에서 바이러스를 추출하는 기계가 있다고 하면, 이 기계는 바이러스를 잡는 것보다 더 중요한 것이 다른 세포들을 바이러스라고 오해해서 잡으면 안되는 것이다. 기계가 여러번 바이러스를 잡으려는 시도를 하더라도, 기존의 멀정한 세포를 없애면 안된다.

 

 

 

이 두녀석을 조화롭게 바라보자, 하는 것이 바로 f1-score이다. 둘다 비슷하게 중요한 경우, 즉 완만하게 나쁘지 않은 경우를 구하고 싶을때 F1-Score을 사용한다는 것이다.