딥러닝 안에서 일어나는 과정을 해석하는 설명가능 인공지능 기술

안녕하십니까.

2019 파이콘 튜토리얼 2일차 에 참석 하였습니다.

2019/08/16일 금요일 14:00~18:00 사이에 진행하는 파이콘 튜토리얼 "딥러닝 안에서 일어나는 과정을 해석하는 설명가능 인공지능 기술"에 대하여 리뷰를 합니다.



주최하는 단체는 유니스트 대학의 XIAC(Explainable Artificial Intelligence Center) 입니다.
링크 : http://xai.unist.ac.kr/Tutorial/2018/

설명 가능한 인공지능이란?

최근 인공지능의 발전으로 인하여 여러 인식 분야에서는 꽤 좋은 성능을 보이고 있습니다.
예를 들어서 이미지 인식 분야는 이미 사람의 성능을 뛰어넘고 있다고 하고 있고, 더 나아가 이미지 생성을 하고 있습니다.(Generative Model)

이에 더 나아가 점프하는 로봇, 도로를 주행하는 자율 주행등 기술의 진보는 끊임이 없는데요.

그렇지만 딥러닝은 블랙박스로써 왜 자율 주행을 하고 있고, 왜 점프를 뛰고 있는지 설명이 불가능했던 분야 입니다.

이는 주어진 데이터를 통해서 학습을 할 뿐, 파라미터가 수만, 수십만 갯수가 넘어가니 시각화가 어렵던 분야 인데요.

하지만 자율 주행자동차는 여전히 가끔 사고 소식이 들려오는 만큼 왜 해당 루트에서 해당 결정을 내리게 되었는지 이해가 필요 합니다.

따라서 아래의 그림과 같이 자율주행 자동차가 인식을 하는 방식을 시각화 하는 것도 이미 많이 연구가 되고 있습니다.

자율 주행 인식

미국에서는 범죄에 대한 형량등을 결정을 할때 AI의 도움을 받는 연구가 진행중에 있다고 합니다.
아래의 두 백인종, 황인종 범죄자의 대하여 
왼쪽의 범죄자는 약물을 섭취한 범죄 이력이 있고 살짝 눈이 풀린 느낌도 납니다.
오른쪽의 범죄자는 단순 범죄이며 왼쪽의 범죄자보다 이력도 단순한데요.

인공지능은 오른쪽 범죄자를 더 높은 위험요소라고 판단하였습니다.

이러한 경우는 보통 백인의 데이터에 bias가 있어서 그럴 수도 있습니다.

그렇지만 인공지능이 설명해주지 않는 이상 우리는 이것에 대하여 좋게 받아드릴 수 가 있을까요?

약물을 한 백인 범죄자에 비하여 체포에 불응한 흑인종을 더 나쁘게 평가


이에 더 나아가 의류, 제조, 국방, 금융등 결정 하나하나가 중요한 분야에서는 설명이 가능하지 않으면 도입이 어려울 수 있습니다.

이러한 문제를 해결하고자 아래와 같이 EU 집행법으로는 AI 알고리즘에 대하여 설명을 요구할수 있는 법안이 이미 발효되었다고 합니다.
AI 알고리즘에 대하여 설명을 요구하는 법안

Layer-wise Relevance Propagation(LRP)

Layer wise Relevance Propagation 알고리즘은 딥러닝 각 딥러닝 activation function에 대하여 이전 layer에서 얼마나 영향을 주는지에 대한 relevancy score를 구하여 해결한다고 합니다.
이는 딥러닝 수식이 앞으로 전파하는 방식이기에 역으로 뒤의 activation들이 얼마나 영향을 주는지 수식을 구할 수 있습니다.
Layer-wise Relevance Propagation


Nvidia의 PilotNet의 설명가능한 딥러닝 예시.
이렇게 하지 말고
Gradient 기반 방식으로 미분하면 어디가 가장 영향을 받는다 정도를 알아보는 방식이 있다고 함.
Relevancy Score가 더 정교하지 않을까 라고 하심.
PatternNet
가중치에 Noise가 있을수 있는데 이에 대하여 잡음을 삭제하는 방식을 삭제하여 잡음을 내지 않는 가중치를 학습?

Relative Attribution Propagation(RAP)

LRP가 relu기반으로 함 -> 만약 양성이 아닌 음성을 리턴하는 activation이 있을 수 있음. 만약 음성이 나오는 경우를 사용하면 relevance를 잘못 찾게되는 경우가 있을 수 있음.

XCAD

유방암을 발생하는 영역을 찾는다고 하면 알고리즘이 사람이 찾는 방식으로 찾지 않아줄 수 있음. 예를 들어서 좁은 픽셀을 기준으로 찾아주는데 의사선생님들은 크게 볼수 있음.
이러한 영역을 generative하게 생성해줌.

Network Dissection

그나마 가장 상용 가능한 기술. 각 뇌세포가 땅을 인식하는 뇌세포, 비행기를 인식하는 뇌세포가 있다고 하면 그런것을 찾아주는 것을 함.
Sementic Segmentation은 최종적으로 각 위치의 영역을 설명하는게 필요하니까. Resolution이 많이 줄어들지는 않음.
세그멘테이션과 네트워크의 유사도에 따라서 그 레이어가 해당 기능을 한다고 설명을 함?

GAN Dissection

어떤 뇌세포가 어떤 이미지를 생성하는지.

Debugging Improving GAN : 특정 노드를 만드는 레이어를 꺼봄.

Generative Boundary Aware Sampling : 
각 레이어들을 벡터 공간에 넣은다고 하면 같은 hyperplane들은 같은 오브젝트를 인식 가능함. 거기에 있는 오브젝트들을 한번 찾아봄.
이를 통해서 모델 내의 outlier를 찾을 수 있음.

Explaining Deep Reinforcement Learning (DRL)

강화 학습은 시간이 없어서 대충 넘어감

강화학습의 State를 알고 싶음.
Quantized Bottleneck Insertion.
중간에 binary로 변환하는데 이를 통해서 알수 있는게 많은 노드가 필요하지 않음을 알 수 있음.

Explaining by Combining Explainable Models

Automatic Statistician
-> 설명 가능한 모델 두개를 합쳐서 더 복잡한 설명가능한 모델을 만듬.
Relational Automatic
설명가능한 머신러닝 모델.
Decision Tree를 보면 단순 if else이기 때문에 설명이 가능함.
이후로 생략.

Finding Local Explanation ~
SRI - DARE : Deep Attentional Representation for Explantation
새의 부리를 blur하면 당연히 못찾음. 근데 이를 generative를 통해서 약간 수정을 하면 인식률이 올라감.
Smallest Supporting Region : 어떤 영역을 가지고 있으면 인식률이 떨어지지 않는 부분.
Smallest Deletion Region : 새가 되는 이미지중에서 제일 적을 픽셀을 지움으로 인해서 새가 되지 않는 부분.

Model Agnostic Explanation
이미지를 지우는게 코끼리를 지역적으로 코, 다리 보는것과 같음?
Coalitional game : 누가 기여를 많이 했는지 적게 했는지 찾기를 힘듬. 이때 랜덤으로 팀을 짜서 보상에 따라 나누어진다고 하면 잘하는 사람이 있는 팀은 좋은 결과를 얻을 수 있음.
이를 통해서 잘 계산하면 기여도를 찾을 수 있음.
SHAP이라는 패키지에서 구현을 하였음.

설명 가능한 인공지능 데이터를 만드는데 기여 하고 있다고 함.

마지막으로 XAI 워크샵이 있다고 하셨음
http://xai.unist.ac.kr/workshop/2019/

실습

http://xai.unist.ac.kr/ -> 이벤트 -> 2019 파이콘 튜토리얼
github : https://github.com/OpenXAIProject/PyConKorea2019-Tutorials
해당 페이지에 있는 notebook을 colab을 통해서 실행

LRP with CNN

구글 드라이브에 들어가게된 프로젝트 중에서 LRP -> CNN example 노트북을 실행.
이미지를 고양으로 변경하여서 고양이로 인식을 하였음.
아래와 같이 인식 결과를 분석함


LRP with LSTM

LSTM 원본 코드는 약간 어려워서 쉽게 변형하셨고 영어 -> 한국어로 데이터셋 변경.
데이터는 네이버 영화 리뷰 데이터셋.
아래와 같이 긍정 부정의 영향도에 따라 색을 부여

SHAP

DeepExplainer
아래와 같이 CNN 모델에 대하여 인식하는데에 영향을 준 부분을 보여줌.
KernelExplainer
딥러닝 레이어가 아닌 일반 머신러닝에서 사용 가능.
데이터는 꽃에 대한 데이터인듯
아래에서 각 feature들에 대한 shapley value를 알려줌?
TreeExplainer
보스톤 집값 데이터인듯.
아래는 하나의 데이터에 대한 shapley value를 설명하고

아래는 전체 데이터에 대한 shapley value를 설명함

red wine quality
와인 퀄리티 데이터에 대하여 위의 예시처럼 돌려보는 예제.
아래는 낮은 퀄리티의 와인

아래는 높은 퀄리티
아래는 전체 데이터
아래는 feature 설명

댓글

이 블로그의 인기 게시물

포켓몬 고 17셀 확인 포고맵 사용 방법

HTTP 오류 500.19 - Internal Server Error 에러 처리법

고려대학교 야간대학원 중간 후기