안녕하세요
지난글에 이어 이번에도 의료 인공지능에서 사용하는 대표적인 지표들에 대해 소개하려고 합니다.
(↓↓↓지난 글 확인↓↓↓)
https://89douner.tistory.com/253
이전 글에서 설명했던 예시를 기반으로 글을 작성하도록 하겠습니다. 예시를 요약하면 아래와 같습니다.
- COVID-19를 분류하는 딥러닝 모델
- Positive class: COVID-19
- Negative classes: Pneumonia, Normal
※ 이전에 작성해둔 PPT로 설명하는게 좋다고 판단하여, 해당 PPT 슬라이드를 이미지로 올렸습니다.
1. Specificity = Selectivity = TNR(True Negative Rate))
Specificity 지표가 낮다는건 TN에 비해 FP 비율이 높다는 것을 의미합니다.
FP가 높다는 건 실제 음성환자를 양성이라고 오진하는 경우가 많다는 것인데,
이러한 비율이 높다면 환자가 불필요한 비용을 지불한 사례가 많았다고 볼 수 있습니다.
이러한 문제가 생긴다면 의료소송이 많아질 수 도 있겠네요.
만약 아래 논문에서 나온 specificity 값이 좋은 수치라고 가정해보겠습니다.
그렇다면 이 논문에서 제시한 딥러닝 모델을 하용해야 할까요?
결과부터 말씀드리면, 아직까진 섣불리 사용하긴 어렵습니다.
왜 일까요?
예를 들어 보겠습니다.
- 암을 진단하는 병원의 기계가 너무 구식이면 최신 기계에 비해 다양한 암을 발견해내기 힘듭니다.
- A라는 병원이 정말 오래된 구식 기계를 사용한다고 가정해 보겠습니다.
- 해당 병원의 경우 진료를 받으로 온 사람 대부분을 음성이라고 판단할 것 입니다.
- 즉, 음성(=Negative)이라고 판단 할 확률이 높기 때문에 FP는 줄어들게 되겠죠.
- 극단적인 예를 들어, 구식 기계가 모두 음성이라고 판정 했다고 한다면 FP은 0이 됩니다. 왜냐하면, 양성(Positive)으로 진단한 case가 없기 때문이죠.
2. Sensitivity = Recall = TPR(True Positive Rate))
감염관련 질병을 다룰 때는 sensitivity가 굉장히 중요한 지표가 될 수 있습니다.
현재 COVID-19을 진단하는 RT-PCR 진단방식을 기준으로 왜 sensitivity가 중요한 지표가 되는지 설명해보도록 하겠습니다.
- RT-PCR의 문제점을 지적하는 부분중 하나는 낮은 sensitivity 성능 지표입니다.
- Sensitivity(=TP/(TP+FN))가 낮다는 것은 FN(False Negative)가 높다는 것을 의미합니다.
- False Negative가 의미하는 바는 실제 COVID-19 환자에게 음성이라고 (=COVID-19이 아니라고) 진단한 케이스인데, 감염학에 있어서 FN이 높다는 것은 굉장한 문제가 됩니다.
- 왜냐하면, 실제 COVID-19 환자가 안심하고 여러 사람을 접촉하면서 바이러스를 전파시킬 확률이 매우 높기 때문이죠.
- RT-PCR에서 대상을 FN으로 판별하는 경우는 아래와 같습니다.
- 이전에 음성으로 반단했지만 반복검사 끝에 양성으로 바뀐 경우
만약 아래 논문에서 나온 specificity 값이 준수하다고 해보겠습니다.
그렇다면 sensitivity 지표를 준수하게 기록한 딥러닝 모델을 사용하면 될까요?
결과부터 말씀드리면, 이 모델 역시 섣불리 사용하긴 어렵습니다.
왜 일까요?
예를 들어 보겠습니다.
- 암환자를 진단할 때, 성급하거나 겁이 많은 의사는 아주 조금의 징후만 보여도 암인 것 같다고 할 것 입니다.
- 즉, 양성이라고 판단 할 확률이 높기 때문에 FN은 줄어들게 되겠죠.
- 극단적인 예를 들어, 성급한 의사가 모두 양성이라고 판정 했다고 한다면 FN은 0이 됩니다. 왜냐하면, 음성(Negative)으로 진단한 case가 없기 때문이죠.
- 이런 경우, TPR은 1에 가까워지지만 FNR은 반대로 매우 낮아집니다.
- 음성인 사람도 다 암이라고 하니까 음성으로 진단한 case가 없어지기 때문이죠.
3. Fall-out = FPR(False Positive Rate)
FPR 지표 역시 예를 들어 설명해 보겠습니다.
- 암환자를 진단할 때, 성급하거나 겁이 많은 의사는 아주 조금의 징후만 보여도 암인 것 같다고 할 것 입니다.
- 즉, 양성이라고 판단 할 확률이 높기 때문에 TN은 줄어들게 되겠죠.
- 극단적인 예를 들어, 성급한 의사가 모두 양성이라고 판정 했다고 한다면 TN은 0이 됩니다. 왜냐하면, 음성(Negative)으로 진단한 case가 없기 때문이죠.
만약 FPR, TPR의 수치가 동시에 높을 경우 우리는 아래와 같은 예측을 해볼 수 있습니다.
"FPR과 TPR 수치가 높을 경우 분류모델(or 의사)이 모든 대상을 양성으로 판단했을 가능성도 있었겠구나"
그렇다면, FPR과 TPR이 차이에는 무엇이 있을까요?
- FPR: 실제 음성인 대상자들 중에 양성이라고 오진할 확률
- TPR: 실제 양성인 대상자들을 (양성이라고) 정확히 진단할 확률
(↓↓↓참고 사이트↓↓↓)
https://newsight.tistory.com/53
4. ROC Curve and AUC
어떤 분류모델을 적용했을 때, FPR, TPR이라는 지표가 아무리 좋게 나왔다고 하더라도, 해당 분류모델을 좋다고 말할 수 없다고 한다면 왜 FPR, TPR을 배울까요?
결론부터 말씀드리면, FPR, TPR 각각의 지표를 통해 얻을 수 있는 정보보다, FPR, TPR 지표간의 관계를 파악함으로써 얻을 수 있는 정보가 굉장히 유의미하기 때문입니다.
예를 통해 알아보도록 하죠. (아래 예는 binary classification을 기준으로 설명하고 있는데, multi-classificaiton 관점에서 보시면 "정상=음성(관심없는 질병+정상)"으로 간주하고 이해하시면 될 것 같습니다)
- 실험을 통해서 실제 정상인 사람들의 기준치와 암인 사람들의 기준치를 조사해보니 아래그림과 같은 분포를 얻었다고 가정하겠습니다 (즉, 정상인 사람들은 기준치 -1을 평균으로 표준편차가 있었고, 암인 환자들은 기준치 1을 평균으로 표준편차가 있었다고 가정하겠습니다).
- X축은 기준치를 뜻합니다. 즉, X축을 기준으로 특정 값 이하는 음성(-), 특정 값 이상은 양성(+)으로 판정하게 되는데, 아래 같은 경우는 기준치 값을 0으로 설정했습니다.
- 위의 분포에서 TP, FP, TN, FN을 표현하면 아래그림과 같습니다.
- False positive 부분을 설명하자면 다음과 같습니다.
- 실제 healthy 한 사람들이 있다고 가정해봅시다.
- 대부분의 healthy 한 사람들은 질병인지 아닌지 측정했을 때 대부분 해당 집단의 평균 값을 갖게 됩니다 (by 중심극한 정리).
- 하지만, healthy(=음성)한 사람 중에서도 소수는 그날 컨디션이 좋지 않아 질병 진단시 기준치 이상으로 나와 양성으로 판정되는 경우가 있을 수 있습니다.
- 보통 False에 해당하는 면적(false negative, false positive)가 적다면 해당 분류모델은 성능이 뛰어나다고 할 수 있겠죠.
- 그런데 저 기준치가 되는 값을 변경해주면 어떻게 될까요? (아래의 그림의 경우 't')
- 어떤 의사가 “그냥 기준치(X축; threshold)를 -5로 설정하고, 그 이상이면 전부 암환자라고 분류하세요”라고 해버린다면 positive 케이스가 많아지기 때문에 TPR, FPR 모두 높게 나옵니다.
- 반대로, 어떤 의사가 “그냥 기준치(X축; threshold)를 5라고 설정하고, 그 이상이면 전부 암환자라고 분류하세요”라고 해버린다면 negative 케이스가 많아지기 때문에 TPR, FPR 모두 낮게 나옵니다.
- 즉, TPR과 FPR이 기준치 값에 따라 비례적인 관계를 갖는다는 점을 알 수 있습니다.
결국 비례적인 관계를 갖는 TPR과 FPR을 기반으로, 그래프를 그릴 수 있게됩니다.
그리고, 이러한 그래프를 통해 의미있는 분석을 할 수 있게 되죠.
이 때 그려지는 그래프가 ROC 커브입니다.
[ROC Curve]
기준치 값을 어떻게 설정하느냐에 따라서 아래와 같이 ROC Curve가 형성되게 됩니다.
아래의 그림을 보면 그래프가 비선형성을 더 강하게 띌 수록 분류기 성능이 더 좋다고 볼 수 있겠죠?
보통은 비선형성의 강도라고 표현하기 보다 해당 그래프 아래의 면적이 더 커지는 경우 분류기 성능이 더 좋다고 이야기 하는데, 해당 면적을 Area Under Curve (AUC) 라고 부르고 있습니다.
[ROC Curve]
- x, y 축 범위는 항상: [0,1]
- ROC curve 아래 면적: AUC (Area Under Curve; AUROC)
- AUC(면적)가 큰 게 더 좋은 성능을 나타냄
- AUC 면적이 1에 가까울 수록 좋은 성능
- 면적이 1에 가까운 ROC curve를 보일 수록 양성, 음성을 분류하는 모델이 더 성능이 좋다는 것을 알 수 있다.
또한, 결국 기준치 값(=threshold; 아래 그림의 ③)이 높을 수록 TPR, FPR이 모두 낮게 나오고, threshold가 낮을 수록 TPR, FPR이 높게 나오는걸 알 수 있습니다.
요약해서 말하자면, ROC커브는 TPR과 FPR관계를 그래프로 표현하여, 어떤 지점을 기준으로 잡을 지 결정하기 쉽게 시각화 한 것이라고 볼 수 있습니다.
그럼 이제 아래와 같이 논문에서 제시되는 성능지표를 파악하고 분석할 수 있으시겠죠?
(↓↓↓ROC Curve에 대한 내용 참고 사이트↓↓↓)
https://angeloyeo.github.io/2020/08/05/ROC.html
(↓↓↓ROC Curve에 대한 내용 참고 사이트↓↓↓)
https://www.youtube.com/watch?v=nMAtFhamoRY
(↓↓↓ROC Curve 추천 영상↓↓↓)
https://www.youtube.com/watch?v=4jRBRDbJemM
5. PPV (Positive Predictive Value)
마지막으로 PPV라는 지표를 알아보고 마무리 하도록 하겠습니다.
PPV는 Precision, 정밀도라는 용어와 동의어로 사용됩니다.
아래 식을 보시면 "분류모델이 양성 환자라고 판별한 대상들 중에서 실제 양성환자를 선별할 확률"을 의미합니다.
양성판별 관점에서는 PPV 하나 만으로도 유용한 지표가 될 수 있기 때문에, 다양한 곳에서 아래 지표를 사용합니다.
이외 F1 score 같은 개념도 사용이 되는데 이러한 개념들은 이미 다룬바가 있기 때문에 굳이 설명은 하지 않도록 하겠습니다. (혹시 필요하시다면 아래 영상을 참고해주세요!)
https://www.youtube.com/watch?v=8DbC39cvvis
'Medical AI research > Background' 카테고리의 다른 글
3-2. DICOM이란? (Feat. DICOM format and Viewer) (4) | 2021.07.03 |
---|---|
3-1. DICOM 파일이란? (Feat. Definition, PACS, digital image 습득과정) (0) | 2021.07.03 |
2-2. 2D 영상의료(medical imaging) 이미지란? (Feat. MRI, PET, 초음파, 내시경 영상이미지) (0) | 2021.06.12 |
2-1. 2D 영상의료(medical imaging) 이미지란? (Feat. X-ray, CT, 전처리) (1) | 2021.06.12 |
1. 의료 인공지능에서 사용하는 대표적인 지표들 (1) - TP, FP, TN, FN, and Confusion matrix (0) | 2021.06.10 |