brunch

You can make anything
by writing

C.S.Lewis

by 철학이야기 Mar 09. 2022

철학이야기 주간 뉴스레터 #8-1

기술 비평을 위한 가벼운 딥러닝 -2편: 인공지능의 신뢰성과 설명 가능성

Intro

오랜만입니다! PHLSPHY3입니다.

지난 글에서 우리는 신경망이 선형 회귀의 중첩으로 이뤄진 통계 모델이며, 우리 뇌의 신경세포와 흡사한 구조를 차용하고 있지만, 만능이 아니라는 점을 살펴보았습니다. 방대한 용량 때문에 다루기가 너무 무겁다는 점뿐만 아니라, 신뢰하기 어렵다는 치명적인 단점이 있었죠. 이러한 이유로 신경망의 신뢰성설명가능성이 신경망 연구분야의 하나로 대두되었습니다. 학자들은 신경망 연산의 특성을 통해 신뢰성, 설명가능성에 대한 여러 문제를 포착해왔으며, 또한 이를 해결하기 위한 많은 방안이 제안되었습니다. 신경망 연구의 세부분야는 서로 복잡하게 얽혀 있으며 명확하기 구분하기 어렵기 때문에, 

어떤 연구 주제가 신뢰성과 설명가능성에 대한 것인지 단언하기는 어렵습니다. 예를 들어, 수학[1,2], 통계학, 심지어는 신호 처리 이론의 관점[3,4]에서 신경망을 해석하는 것 역시 신경망의 능력에 대한 통찰을 제공하므로 큰 관점에선 여전히 신뢰성, 설명가능성과 유관합니다. 따라서 이 글에서는 먼저 신경망의 성능을 단순하게 받아들이면 안 되는 이유에 대해 소개하고, 신경망의 위험성을 나타내는 척도에 대해 살펴봅니다. 그리고 다음 편에는, Blackbox 문제에도 불구하고 인공지능의 결과를 설명할 수 있는 여러 방법론을 소개하려 합니다.


정확도를 믿어도 되는가?

신경망의 성능은 특히 분류 문제(데이터가 어느 카테고리에 속한 것인지 결정하는 것)에서 탁월하다고 잘 알려져 있습니다. 분류 문제에서 성능을 평가할 때 주로 사용하는 지표는 정확도(accuracy)입니다. 정확도는 시험 점수와 같습니다. 전체 문제 중에 몇 개를 맞추었는지를 퍼센티지로 표현합니다. 예를 들어, 사진을 보고 개와 고양이를 구별하도록 훈련된 신경망이 1000개의 시험 사진들 중에서 950개의 정답을 맞히었다고 합시다. 즉, 950개의 사진에 대해선 그 이미지가 고양이인지 개인지 맞추었다고 합시다. 이 경우 정확도는 95%입니다. 

개와 고양이를 분류하는 신경망의 모사. 학습 데이터엔 각 사진이 개인지 고양이인지 정답이 적혀있어 신경망이 개와 고양이 사진들로부터 특징을 배울 수 있다.

이러한 분류 문제에서 신경망의 정확도는 지난 10년간 40% 가까이 상승하여 약 90%에 이르게 되었습니다. 이쯤 되면 인간의 분류 능력과 큰 차이가 없는 수준이라 할 수 있습니다. 실제로 의료영상 분야에 이런 신경망 모델을 활용하면 전문의만큼 뛰어난 성능을 발휘한다고 합니다. [5]

지난 10년간 신경망 모델의 정확도를 나타낸 그래프

정확도는 신경망 모델의 성능을 직관적으로 파악할 수 있는 방법이지만, 최선의 지표는 아닙니다. 우선, 정확도 외의 다른 지표가 필요한 상황이 있을 수 있습니다. 먼저 이진 분류 문제, 즉 주어진 데이터의 분류 결과가 참 또는 거짓(ex: 개와 개가 아닌 것을 분류)인지 판단하는 문제에서는 정밀도나 재현율 등이 분류 성능 지표로 쓰일 수 있습니다. 정밀도는 모델이 내놓은 정답이 참인 것들 중 실제로 참인 것(정답)의 비율을, 재현율은 실제로 정답이 참인 것들 중 모델이 참으로 분류한 것의 비율을 의미합니다. 예를 들어, 사람이 질병에 걸렸는지 판단하는 모델의 경우 질병이 없는 사람을 있는 것으로 잘못 분류하더라도, 질병에 실제로 걸린 사람을 최대한 걸렸다고 판단해야 합니다. 그렇다면 이 경우 재현율(실제로 질병에 걸린 사람 중 모델이 질병이 있다고 판단한 사람의 비율)이 높아야 하는 것이죠.

두 번째로, 정확도를 높게 하는 것은 모델을 데이터에 편향적으로 만들 수 있습니다. 데이터에 편향된다는 말이 무슨 뜻일까요? 예를 들어 보겠습니다. 신경망이 학습한 데이터 셋에 오리 사진이 여러 장 있다고 합시다. 대부분의 오리 사진은, 오리가 물에 떠있는 사진입니다. 발바닥을 내밀고 땅에서 걸어 다니는 오리의 사진은 물에 떠 있는 사진에 비해 상대적으로 적은 편이죠. 이 신경망이 오리가 땅에 있던 물에 있던 오리 사진을 오리로 분류한다면 정말 좋겠지만, 신경망 모델이 소수의 ‘땅 오리’ 사진을 보고서 오리는 발이 달려있고, 땅에서 걸어 다닐 수도 있다고 배우기란 어려운 일입니다. 따라서 신경망이 정확도를 높이기 위해서, 잘못된 선택을 할 수도 있습니다. 어떤 사진이 오리 사진인지 판별하기 위해, 물까지 오리의 일부라고 착각하는 것이죠. 그렇게 하면 적어도 물에 있는 오리들은 더 정확하게 분류할 테니까요.

오리의 각 부분에 따른 모델의 ‘오리’ 판별 확률을 나타낸 그림. 오리의 발보다 물이 더 높은 확률 값을 낼 수 있다. 사진 출처: [6]

또한 한 연구[7]에 의하면, 신경망 구조의 층이 깊고 파라미터의 개수가 많을수록 모델이 정확도를 높이기 위해 확률을 극단적으로 출력하는 과확신(overconfidence) 현상이 발생합니다. 이 현상은 모델이 데이터의 분류 결과를 확률 값으로 표현할 때, 높은 정확도를 내기 위해 분류하기 애매한 경우에도 1이나 0에 치우친 확률 값을 내는 현상입니다. 예를 들어, 오리인지 아닌지 애매한 경우에도 0.5, 0.7 같은 적당한 확률 값이 아닌 1이나 0에 가까운 확률을 출력한다는 것이죠. 이러한 이유로, 신경망은 높은 정확도를 보임에도 불구하고 섣불리 신뢰하기가 어려운 것입니다.

1998년 모델과 2016년 모델의 확신도(confidence)와 정확도의 차이를 비교한 그림. 층이 깊고 파라미터가 많은 오늘날의 모델은 정확도에 비해 확신도가 지나치게 높다.

불확실성

(이 문단의 내용은 [8]을 참조했습니다.) 앞 문단에서 우리는 신경망 모델이 정확도가 높음에도 쉽게 신뢰할 수 없는 구체적인 사례들을 살펴보았습니다. 그렇다면 이제는 신경망이 얼마큼 정답을 맞히는지가 아니라, 위험성에 대해서도 주의를 기울여야 할 때입니다. 이 위험성을 정량적으로 어떻게 나타낼까요? 불확실성(Uncertainty)이 그 대표적인 척도입니다. 불확실성은 확률 변수의 분산으로 정의됩니다. 분산이 높으면 불확실성이 높은 것이죠. 예를 들어, 똑같이 시험 점수의 평균이 50점인 두 학급이 있더라도, 반의 아이들의 점수가 모두 50점인 학급은 분산이 0이고, 극단적으로 0점인 학생들과 100점인 학생들만 존재하는 학급은 분산이 매우 높습니다. 이와 비슷하게, 어떤 신경망 모델의 예측 결과가 준수한 결과를 내기도 하지만, 사실 분산이 매우 높다면, 모든 결과를 믿을 수 없을 것입니다. 그만큼 불안정할 모델일 테니까요. 이 문제는 인공지능의 윤리적 문제와도 직접적으로 연결됩니다. 예컨대, 몇 년 전 구글 포토에 쓰인 모델은 한 흑인의 사진을 고릴라라고 인식하여 논란을 일으킨 적이 있었습니다. 또한, 자율 주행 자동차와 같은 곳에서도 사고 예방을 위해 모델의 판단 결과의 불확실성을 측정하는 것이 주요한 이슈입니다.

불확실성에는 여러 종류가 있습니다. Aleatoric Uncertainty는 데이터에 필연적으로 발생하는 불확실성으로, 예를 들어 데이터 수집을 위한 측정 도구가 불안정하거나, 데이터에 근본적으로 다른 영향을 줄 수 있는 변수가 고려되지 않는 경우입니다. Out-of-Distribution Uncertainty는 모델이 시험 환경에서 낯선 데이터를 맞닥뜨리는 상황에서 발생하는 불확실성을 의미합니다. 예를 들어, 학습용 데이터 세트에 없던 새로운 종류의 데이터나, 잘못된 오류 데이터가 들어오는 경우를 의미합니다. 마지막은 Epistemic Uncertainty입니다. 이 불확실성은 바로 우리 모델의 파라미터에 의한 불확실성입니다. 이 과정에서 파라미터의 값을 고정된 것이 아닌 어떤 확률 분포로부터 뽑은 값으로 바라봐야 하는 수학적 문제(분산을 측정해야 하므로)가 생기긴 하지만, 이 글에서는 이러한 수학적 과정을 통해 파라미터에 의한 모델 예측 결과의 불확실성을 측정할 수 있게 되었다는 점만 짚고 가겠습니다. 우리는 Epistemic Uncertainty와 Aleatoric Uncertainty를 정량적으로 측정할 수 있게 되었고, 모델이 학습하면서 이 두 Uncertainty를 줄이도록 할 수 있습니다. [9]


나가는 글

오늘 우리는 신경망을 쉽게 신뢰할 수 없는 이유에 대해 사례를 통해 살펴보고, 모델의 위험을 측정하는 척도인 불확실성에 대해서도 살펴보았습니다. 다음 글에서는 신경망이 낸 결과를 살펴볼 수 있는 방법론들에 대해 살펴보겠습니다.



참고문헌

[1] Leshno, M. et al, Multilayer feedforward networks with a nonpolynomial activation function can approximate any function, Neural Networks, 1993.

[2] Hornik, K. et al, Multilayer feedforward networks are universal approximators, 1989

[3] Huttunen, H., Deep Neural Networks: A Signal Processing Perspective, Handbook of Signal Processing Systems. Springer, 2019

[4] Ye, J. et al, Deep convolutional framelets: A general deep learning framework for inverse problems, 2018

[5] https://journalofbigdata.springeropen.com/articles/10.1186/s40537-019-0276-2#Sec26

[6] Choe, J. et al, Evaluating Weakly Supervised Object Localization Methods Right, CVPR, 2020

[7] Guo, C. et al, On Calibration of Modern Neural Networks, ICML, 2017

[8] https://blog.evjang.com/2018

[9] Kendall. A and Gal, Y. , What uncertainty do we need in bayesian deep learning for computer vision? , NIPS, 2017



✔️ 이번 뉴스레터는 어떠셨나요? 뉴스레터를 평가해주세요! 

✔️ 뉴스레터를 구독하시면 매주 새로운 레터를 이메일로 쉽게 확인하실 수 있어요! 뉴스레터 구독하기

✔️ 철학이야기 카카오톡 오픈채팅도 운영하고 있습니다! 철학이야기 오픈채팅

작가의 이전글 철학이야기 주간 뉴스레터 #7-2
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari