• Chanwoo Park

AI가 내린 결정, 얼마나 믿을 수 있을까

AI는 많은 분야에서 전통적인 알고리즘 보다 월등한 성능을 보여주고 있습니다. 성능이 더 좋아졌다면 바로 현실에 도입할 수 있을까요? 그 판단은 AI를 적용하려는 분야에 따라 달라질 것 같습니다. 스마트폰 음성 인식이나, 넷플릭스 영화 추천 등에서는 기존 95% 정확도가 97%로 올라갔다면 사용하지 않을 이유가 없을 것 입니다. 하지만 의료 영상 분석, 자율 주행, 자산 투자 등 위험에 민감한 분야에서는 알고리즘을 선택하는데 정확도가 최우선 기준이 아닐 수도 있습니다. 딥러닝 모델이 보통 생각하는대로 “Black box”기 때문에 이런 예측을 왜 했는지, 그 예측을 얼마나 신뢰할 수 있는지가 명확하지 않다면 산업 현장에서는 AI 도입에 적극적이지 않을 수 있습니다. 그래서 최근에는 XAI(Explainable AI), Trustworthy AI 등의 중요성이 더욱 부각되고 있습니다. 또한 ML 모델의 예측 결과를 내놓았을 때 그 결과를 사람이 어느 정도 신뢰할 수 있는지 정량화 해서 보여주는 Uncertainty estimation이 중요한 연구 분야로 자리 잡고 있습니다. 이번 포스팅에서는 AI에서 Uncertainty estimation이 왜 중요하며 어떤 알고리즘을 사용해 볼 수 있는지 간단히 살펴보도록 하겠습니다.

그림 1. 학습 데이터가 충분하지 않은 영역에서 예측의 신뢰성 문제

그림 1에서 파란색 실선이 우리가 학습하고자 하는 Ground Truth 함수이고, 이 때 학습을 위해 주어진 데이터는 검은색 점이라고 가정하겠습니다. 양 끝은 데이터가 충분히 있지만 가운데 영역(-1< X < 4)에는 학습 데이터가 충분하지 않은 것을 확인할 수 있습니다. 주어진 데이터로 학습된 ML 모델은 데이터가 충분한 양 끝 영역에서는 예측의 신뢰성이 높을 것이고 가운데 영역은 데이터를 한 포인트 밖에 관측하지 못했기 때문에 예측의 신뢰성이 낮을 것으로 쉽게 예상할 수 있습니다. 그렇다면 이러한 예측의 Uncertainty를 사람이 보고 해석할 수 있도록 어떻게 정량화하여 표현할 수 있을까요?


Bayesian Neural Network

먼저 전통적인 ML 모델에 대해 갖고 있던 고정관념을 잠깐 깨보겠습니다. 데이터가 주어졌을 때 학습이 완료된 ML 모델의 weight가 하나의 고정된 값(fixed value)이 아니라 확률분포(probability distribution)로 존재한다는 것 입니다. 데이터가 주어졌을 때 그 데이터를 표현할 수 있는 weight의 조합은 하나가 아니라 여러 combination이 가능하다고 생각하면 당연히 정답 weight가 하나의 값이 아닌 어떤 분포로 존재한다고 가정할 수 있을 것입니다. 이 확률분포를 posterior, p(w|D)라고 부르며, 아래 식과 같이 weight에 대한 prior와 주어진 데이터에 대한 likelihood를 이용해 구할 수 있습니다.

이 때 새로운 input x*에 대한 예측 y*는 다음과 같이 Probable한 모든 weight에 대한 적분으로 표현할 수 있습니다. 이러한 형태의 신경망을 BNN(Bayesian Neural Network)라고 부릅니다.

그림 2. Weight가 고정된 값인 전통적인 신경망(왼쪽)과 확률분포로 존재하는 베이지안 신경망(오른쪽) [2]

Weight가 하나의 값이 아니라 확률분포로 표현 된다니 약간 추상적이죠? 어렵게 생각하실 것 없이 학습된weight가 각각 Gaussian 분포를 따르고 우리는 학습을 통해 weight 값 자체를 업데이트 하는 것이 아닌 Gaussian 분포의 (mean, variance)를 업데이트 한다면 간단하게 BNN을 학습할 수 있습니다. 하나의 모델에 weight가 100개가 있다면 기존 전통적인 방식은 학습이 끝나고 100개의 fixed value가 남겠지만, Gaussian 분포를 사용하는 BNN의 경우 각각의 weight에 해당하는 100개의 Gaussian 분포가 남게 됩니다.


더 간단한 예시로 학습에 많이 사용하고 계시는 Dropout을 생각해보겠습니다. Dropout은 학습할 때 랜덤하게 노드를 끊었다가 연결했다를 반복할 뿐인데 이것도 확률분포라고 해석할 수 있을까요? 네 그것도 여러분들이 잘 알고 계시는 정해진 확률, p에 따라 0 아니면 1의 값을 갖는 베르누이(Bernoulli) 분포로 볼 수 있습니다. 이제 간단하게 Inference 할 때 Dropout을 적용하기만 하면 여러분은 베르누이 분포를 이용한 BNN을 완성할 수 있는 것 입니다. 이처럼 weight의 복잡한 posterior 분포를 우리가 다루기 쉬운 간단한 가우시안, 베르누이 분포로 근사하여 Bayesian inference를 하는 방법을 특별히 Variational Inference라고 합니다. Variational Inference는 앞선 예시와 같이 쉽고 간단히 사용할 수 있지만 KL divergence의 특성, mean-field approximation 사용 등으로 실제 Uncertainty를 과소평가 될 수 있다는 단점이 있습니다. 이에 bias가 없이 더 정확한 posterior 분포 추정을 위해 MCMC(Markov chain Monte Carlo)를 활용할 수 있지만 Deep learning에 바로 적용하기에는 scalability 이슈가 해결되어야 하기 때문에 이를 위한 연구도 지속되고 있습니다[4]. 이제 간단한 예시를 보고 마무리 하도록 하겠습니다. 처음에 보여드렸던 함수를 MC Dropout [3]을 이용해 Uncertainty estimation을 해보도록 하겠습니다.

그림 3. MC Dropout을 이용한 Uncertainty estimation

예상한대로 가운데 데이터가 없는 부분에서 모델의 예측(빨간 실선)과 실제 값(파란 실선)이 차이가 많이 발생하는 것을 볼 수 있습니다. 하지만 다행히도 예측 값이 많이 어긋나는 부분에서 Uncertainty가 잘 표현되었기 때문에 사용자가 이를 종합적으로 참고하여 의사 결정을 내릴 수 있을 것 입니다. 알세미 AI팀도 반도체 모델링 분야에서 모델의 정확도 향상 뿐만 아니라 예측에 대한 Uncertainty를 표현하는 등 사용자가 더 신뢰할 수 있는 AI 기술을 개발하기 위해 연구를 지속하고 있습니다.


[Reference]

  1. Uncertainty in Deep Learning (Yarin Gal, 2016)

  2. Weight Uncertainty in Neural Networks (C. Blundell et al., ICML 2015)

  3. Dropout as a Bayesian Approximation (Y. Gal and Z. Ghahramani, ICML 2016)

  4. Cyclical Stochastic Gradient MCMC for Bayesian Deep Learning (R. Zhang et al., ICLR 2020)


Recent Posts

See All

반도체 산업의 발전 자율 주행 자동차, 빅데이터, 그리고 사물 인터넷과 같이 수많은 반도체 제품을 필요로 하는 시장의 수요를 충족시키기 위해, 반도체 제품을 구성하는 트랜지스터는 그림 1과 같이 나노 단위의 작은 크기 그리고 더 높은 성능을 가지는 구조로 발전해 왔습니다. 그 결과, 동일한 면적의 웨이퍼 위에 수 십, 혹은 수 백 억 개에 달하는 트랜지스

현재 미국 전기차 업체 테슬라는 상당한 수준의 자율주행 능력을 보여주는데 그 배경에는 Multitask-learning의 개념이 뒷받침 되어있습니다. 자율주행 자동차는 부착된 카메라를 통해 받아오는 실시간 도로 상황의 이미지를 이용해 사물분류, 차선감지, 표지판 탐색, 그리고 도로 마크인식 등등 여러 문제를 동시에 풀어야 합니다. (Andrej Kapath

지난 십수년 동안, AI 모델은 거대한 양의 데이터로 보다 정확하고 정밀하게 주어진 임무를 수행하는 방향으로 발달해 왔습니다. 지난 수차례 이 블로그에서도 언급된 바와 같이, 빅 데이터로부터 학습된 neural network는 학습 데이터 뿐 아니라 unseen 영역에서도 뛰어난 성능을 보임이 밝혀져 (generalisation) 이에 대한 연구가 활발히