본문 바로가기

콘텐츠/강승우의 머신러닝 이야기

[강승우의 머신러닝 이야기] 설명 가능한 AI를 위한 기술

[강승우의 머신러닝 이야기] 설명 가능한 AI를 위한 기술

강승우 위데이터랩 인공지능연구소장

바둑 게임에서 인간의 능력을 넘어선 현재의 머신러닝 기술은 물체 탐지, 장애 예측 등 다양한 산업 현장에 도입되고 있다. 근래에는 대기업의 이력서 검토에도 머신러닝 기술이 사용되고 있다.(참고 : 허위 스펙·표절 자소서… AI는 알고 있다 - 부산일보 (busan.com) )

그러나 딥러닝, 랜덤 포레스트 등 많은 머신러닝 모델은 판단과 예측의 이유를 알 수 없는 ‘블랙박스(black box)’ 모델이다. 과정을 설명할 수 없는 머신러닝의 판단은 공감하고 신뢰하기 어렵다. 특히, 이력서 검토 등과 같이 인간에 대한 판단의 경우에는 판단의 공정성 문제가 발생할 수 있다. 이에 따라서 유럽 연합은 블랙박스 같은 AI의 판단에 대해서 투명성과 설명성을 요구하고 있다. ( 참고 : Why EU regulators are pushing for more explainable AI - FinTech Futures )

머신러닝이라는 블랙박스 안을 들여다보려는 노력은 어느 정도 성과를 거두고 있다. 이번에는 ‘설명가능한 AI (XAI – eXplainable AI)’ 로 가는 몇 가지 기술을 살펴보겠다.

머신러닝 모델은 디시전 트리(Decision Tree)와 같이 판단 결과에 대한 설명이 쉬운 모델과, 딥러닝과 같이 판단 결과에 대한 설명이 어려운 모델이 존재한다.

만일 블랙박스 유형의 머신러닝 모델의 결과와 비슷한 설명가능한 머신러닝 모델을 만들 수 있다면, 이 모델을 이용하여 해당 블랙박스 모델의 판단을 설명할 수 있다. 물론, 딥러닝과 같이 복잡한 모델과 완전하게 동일한 디시전 트리 모델을 만들 수는 없다.

그러나, 특정 부분의 데이터에 대해서 유사한 결과를 보이는 모델은 만들 수 있다. 이렇게 만들어진 설명가능한 모델을 이용하여 설명할 수 없는 모델의 판단 과정을 유추해 볼 수 있다. 이와 같은 접근법이 LIME(Local Interpretable Model-agnostic Explanations : 모든 모델에 적용할 수 있는 국소 해석 가능한 대리 모델)이다. 아래의 링크는 붓꽃(Iris)의 종류를 판별하는 랜덤포레스트에 대응하는 LIME 모델의 예제이다.

붓꽃 품종을 판별하는 랜덤 포레스트에 대한 XAI 예제를 살펴보자. 우선 아래의 링크에 연결해보자.

https://colab.research.google.com/drive/1xzaSJL447v26C_5LcaDBjzRFPha6SGwC?usp=sharing

설명가능한 AI(XAI)에 대한 다른 접근법은 CAM(Class Activation Map : 클래스 활성화 맵)이다. 이는 미분이 가능한 모델에 대해 적용할 수 있는 모델로 입력값이 판단에 영향을 주는 정도를 계산하는 방법이다.

아래의 그림은 입력된 자동차 사진에 대해 판단을 하는 합성곱 신경망(CNN : Convolutional Neural Network)을 표현한 것이다. 입력된 사진 정보는 여러 층의 합성곱 층을 거쳐서 출력층(output)에서 판단을 내리게 된다. 

입력과 출력 사이에 여러 개의 층이 존재하지만, 그 사이의 평균 기울기(gradient)를 구할 수 있다면, 입력(input)값과 그 기울기를 곱하면 입력된 각 부분의 판단에 대한 기여 정도를 살펴 볼 수 있다.

다음의 그림은 합성곱 신경망이 90.9%의 신뢰도로 아프리카 코끼리라고 판단했다. 사진의 붉은 색 부분은 판단에 영향이 큰 부분을, 그리고, 파란색 부분은 영향이 작은 부분을 의미한다. 아래의 결과는 아기 코끼리의 귀 부분과 엄마 코끼리의 상아 부분이 판단에 대한 영향이 크다는 것을 보여준다. 

아래의 링크는 위에서 설명한 CAM에 대한 예제 코드이다. 수행을 위해서는 코끼리 사진을 직접 다운로드 받아야 한다. 

https://colab.research.google.com/drive/14sHruOfVPrRgj6HcVCBzISZPrzvVI7T5?usp=sharing

 

필자 강승우 위데이터랩 인공지능연구소장 겸 부사장은 펜타 컴퓨터를 거쳐 BEA, Oracle에서 최고 기술 아키텍트로서 기업의 IT 시스템 문제가 있는 곳의 해결사 역할을 해왔다. 글로벌에 통하는 한국 소프트웨어 개발에 대한 열정으로 S전자 AWS 이벤트 로그 분석을 통한 이상징후 탐지, R사의 건축물 균열 탐지 등의 머신러닝 프로젝트를 진행했다. 현재는 딥러닝을 이용한 소프트웨어 취약점 탐지 자동화 연구와 머신러닝과 딥러닝강의를 진행하고 있으며, 비즈니스화에도 노력을 기울이고 있다. 최근 저서로 '머신러닝 배웠으니 활용해볼까요?'가 있다.