본문 바로가기
AI와 화학물질

그래서 AI가 얼마나 정확한건데?

by Good.PhD 2024. 11. 20.

정확도. 중요하다. 평가하는 방법? 모델이 하는 일마다 다르다. QSAR 모델은? 실험 값과 예측 값을 비교해야 된다. 즉 실험값이 없으면 정확도 또한 판단할 수 없다는 뜻. 정확도를 파악하고 싶다면? 정답지 먼저 준비하는 것이 우선이다. OECD QSAR validation guideline 4번째 원칙. 모델의 정확도를 투명하게 공개할 것! 이 원칙은 굉장히 중요하고, 요즘엔 이렇게 안 하는 사람이 없다. 하지만 1900년대 후반이나 2000년대 초반에 발표된 QSAR 논문을 보면 모델 정확도를 공개하지 않은 경우가 있다. 그 당시에는 잘 몰라서 그랬나보다. 검증은 어떻게 해야 할까?

 

VEGA의 간 독성 예측 모델의 QMRF 문서를 보자. 먼저 internal validation과 external validation으로 나눠져있다. 내부 검증과 외부 검증이라는 의미. 왜 둘로 나눠져 있을까? 내부 검증이란 모델을 훈련할 때 사용한 데이터로 모델을 검증했다는 의미다. 여기서는 훈련 데이터 (training data)에 대한 예측 정확도를 의미한다. 외부 검증은? 훈련할 때 사용한 적이 없는 데이터로 모델을 검증했다는 의미다. 훈련할 때 사용한적이 없는 데이터를 테스트 데이터 혹은 검증 데이터라고 부른다. 그래서 모델의 훈련에 사용한 데이터에 대한 예측 정확도는 내부 검증. 모델 훈련에 사용되지 않은 데이터에 대한 예측 정확도는 외부 검증. 이렇게 나뉜다. 둘 다 보는 이유? 간혹... 아주 간혹.. 훈련 데이터는 잘 못 맞추면서 테스트 데이터에서만 이상하게 높은 정확도가 나오기도 한다. 이런 경우 훈련이 제대로 되서 예측이 잘 되었다고 보기 어렵다. 보통은 훈련 데이터에서는 높은 정확도를 갖게 된다. 그렇다고 해서 검증 데이터에서도 정확도가 높은 것은 아니다. 그러니 확인을 해줘야 한다.

 

https://www.vegahub.eu/vegahub-dwn/qmrf/QMRF_HEPA_IRFMN.pdf

 

VEGA QMRF 문서에서는 먼저 어떻게 데이터를 준비했는지부터 설명한다. 지금부터는 위 링크에 있는 문서를 같이 보면서 확인하시길 바란다. 6.6에 대한 설명을 보면 일단 2개의 데이터를 취합해왔다. 사람 데이터만 모았고, 이 두 데이터를 취합해서 총 950개의 물질을 정리했다. 전부 다 유기 화합물이고 단일 성분 물질이다. (유기 화합물이 아닌 경우도 포함되어 있었던 것 같다. 유기 화합물은 탄소와 수소 위주로 구성되어 있는 화합물을 의미한다. 단일 성분이라고 명시한 이유는 간혹 혼합물도 있기 때문이다. 2-3가지 성분이 섞여 있는 경우는 어떤 물질이 주요한 영향을 나타낸 것인지, 아니면 함께 섞여 있을 때 안 좋은 영향을 나타낸 건지 파악이 안된다. 그래서 보통 혼합물 결과는 데이터에서 제외된다.) 데이터는 임의로 (randomly) 나눠졌고, 80%를 훈련 데이터로 사용하고 20%를 검증 데이터로 사용했다.

 

6.7번은 모델의 성능을 어떻게 평가했는지 설명한다. 먼저는 데이터를 논문에서 가져왔기 때문에 논문에 언급된 모델 정확도를 설명하고 있다. 데이터 출처 (논문)에서는 내부검증은 80%인 760개의 물질에 대해서 이루어졌다. 여기서는 263개의 물질이 true positive라고 소개한다. true positive는 positive로 알려진 물질이 positive로 예측된 경우를 말한다. 여기서는 독성이 있는 물질을 독성이 있다고 예측한 경우. 독성이 있는 물질을 정확하게 예측한 경우를 의미한다. 그리고 144개 물질은 true negative다. 독성이 없는 물질을 독성이 없다고 예측한 것이다. 그 외 물질은 예측이 틀렸다는 의미. 72개는 간독성이 없지만, 독성이 있다고 예측이 되었다. false positive는 가짜 positive라는 의미다. 예측이 positive라고 되었지만 틀렸다는 뜻이다. 독성이 있다고 예측을 했으나 틀렸다는 의미. 18개는 간 독성이 있는 물질인데 간 독성이 없다고 예측이 되었다. 그래서 정확도가 81%라고 한다. 근데 개수를 따져보면 뭔가 잘 안 맞는다..? 왜냐하면 정확도는 (정확하게 예측한 데이터 개수 / 전체 데이터 개수)이기 때문이다. 정확하게 예측한 개수 (263+144)/ 전체개수 (760)는? 53.55%... 뭔가 계산이 이상하다.

 

이어서 설명을 읽어보면 VEGA에 구현되어 있는 모델에 대한 설명이 나온다. 760개 물질 중에서 265개는 예측이 되지 않았다. (unknown으로 분류되었다고 한다.) 그러니 정확도를 평가할 때 760개 중에서 265개는 제외되어야 한다. 그리고 true positive가 261개, true negative가 144개다. 그러니 VEGA에 구현된 모델의 정확도를 다시 계산하면 다음과 같다. 전체 개수: 261+144 / 데이터 전체 개수: 760-265 (예측이 안된 물질은 제외하고 정확도를 계산해야 하니...) 이렇게 계산하면 81.81%의 정확도가 나온다. 정확도인 accuracy 다음에 sensitivity와 specificity에 대한 계산이 나온다. senstivity는 전체 positive 데이터 중에서 positive를 몇개나 맞췄는지 확인한다. specificity는 전체 negative 데이터 중에서 negative를 몇개나 맞췄는지 확인한다. 독성이 있는 물질에 대한 정확도와 독성이 없는 물질에 대한 정확도는 왜 따질까?

정확도 값만으로 모델 정확도를 정확하게 파악하기 어렵기 때문이다. 예를 들어 1000개 데이터가 있는데, 800개가 독성이 없고, 200개가 독성이 있다. 이 데이터로 훈련을 하면  모델이 훈련이 잘 안된다. 왜냐하면 모든 물질에 대해서 독성이 없다고 예측하면 80%의 정확도를 달성할 수 있기 때문이다. 1000개 중에 800개가 독성이 없으니... 모든 물질이 독성이 없다고 우기면 200개 밖에 안 틀린 셈.. 그러니 정확도는 80%가 된다. 그렇지만 sensitivity를 따지면 0% specificity는 100%가 된다. 독성이 있는 건 다 틀리고 독성이 없는 건 다 맞춘다? 이건 그냥 답안지 번호 하나로 몰아서 찍은 거랑 같다. 그래서 정확도에 속으면 안된다. 데이터의 라벨 (독성 값)별로 구분이 있어야 한다.

 

VEGA 모델에서 true positive는 261개. true negative는 144개. false positive는 72개. false negative는 18개. 그러면 이 데이터에서 positive는 총 몇개일까? 독성이 있는 화합물의 개수는? 261+18이다. 왜냐하면 true positive는 간독성이 있는데 간독성이 있다고 예측한 것이다. 그러니 정답지도 간독성이 있는 물질이다. false negative는 간독성이 없다고 예측이 되었으나 예측이 틀린것이다. 그 말은 실험값은 간독성이 있는 물질이라는 의미다. 그래서 데이터 셋 중에서 279개가 독성이 있다는 의미다. 반대로 negative는 총 몇개일까? 독성이 없는 물질의 개수? 144+72다. 독성이 없다고 제대로 예측된 물질이 144개고, 예측이 틀린 false positive가 72개이기 때문이다. 그래서 합치면 216개가 된다. 279개와 216개를 더하면 495개, 즉 전체 데이터(760)에서 예측이 안된 물질(265)을 제외한 760-265의 값이다. 이 모델은 훈련데이터만 봤을 때는 간 독성이 있는 물질은 잘 찾아냈지만 간 독성이 없는 물질은 예측력이 떨어지는 편이다.

 

외부 검증 결과도 위와 동일하게 따져보면 되는데, 결과는 비슷비슷하다. 정확도가 검증 데이터에서 더 낮게 나왔다. 개인적으로 VEGA 모델 검증을 해본적이 있는데, external validation 결과인 63~66%의 정확도와 비슷하게 나왔다. 이게 좋은건가..? 훌륭한 모델은 아니라고 할 수 있지만,, 간독성 예측 모델 성능은 대부분 비등비등했다. 간독성은 참 예측하기 어려운 값이다. 4.3에 소개된 모델의 표현자 (descriptor)값을 보면 간독성이 있는 구조패턴과 간독성이 없는 구조 패턴이 소개되어 있다. 13개의 패턴을 사용하는데, 간독성이 있는 패턴이 11개 / 간독성이 없는 패턴이 2개다. 애초에 모델은 간독성이 있는 값을 찾는데 초점이 맞춰져 있다는 것을 알 수 있다. 그래서 검증 결과도 간독성이 있는 물질에 대한 정확도가 높게 나온 것으로 보인다. 모델이 사용되는 시나리오를 생각해보면 모델의 성능은 나쁘지 않다. 이 모델은 실제로 간독성이 있는 물질을 찾아내야 한다. 간독성 예측 모델은 임상시험에 들어가기 전에 임상에서 간독성으로 문제를 일으킬 가능성이 있는 물질을 찾아내서 떨어뜨리는 것이 목표다. 그러니 당연히 간독성이 있는 물질을 잘 찾아내야 쓸모가 있다. 간독성이 없는 물질을 잘 맞춰도 좋겠지만... 그것은 그렇게 핵심적인 기능은 아니다. 그래서 이런 전략대로 사용하기에 좋은 모델이 만들어졌다고 본다.

 

결론: 모델의 활용 전략에 따라 적절한 개발 방법과 검증 방법이 필요하다. 모델 성능 검증 또한 모델의 활용 방법과 높은 연관성을 갖는다.