인공지능/머신러닝

[머신러닝 - 이론] XAI - Explainable AI (설명 가능한 인공지능)

바보1 2022. 5. 31. 16:03

만약 여러분이 카드를 발급받을 때 거부당한다면, 은행 직원에게 이유를 물어볼 수 있습니다.
만약 여러분이 특정 질병을 처방 받는다면, 의사에게 이유를 물어볼 수 있습니다.
이처럼 인간은 이해할 수 있는 언어로, 도표나 수치를 동원해서 상대의 이해 수준에 따라 설명 수준을 조절합니다.

하지만 현재의 인공지능은 정반대입니다.
딥러닝으로 압도적이고, 인간을 뛰어넘는 성능을 제공하지만, 설명 기능이 약한 결정적 한계가 있고, 블랙박스라는 비난이 있습니다.
이는 왜 인공지능이 이러한 선택을 했는지에 대한 구체적인 설명이 어렵다는 말과 같습니다.

오히려 옛날의 규칙 기반 방법이나 결정 트리는 성능은 약하지만 설명 기능이 강합니다.


1. 결정 트리



결정 트리는 속이 훤히 보이는 유리 박스 모델입니다.
성능이 낮다는 한계가 있으므로, 성능이 낮은 원인도 살펴보겠습니다.

결정 트리, 즉 Decision Tree는 지도 학습 + 분류 문제를 해결하는 모델입니다.
DT는 모든 노드가 2개 이하의 자식을 가진 Binary Tree와 같습니다.

이때 맨 아래층의 leaf node를 제외하고는 모두 비단말 노드입니다.
이때 비단말 노드에는 질문이 있습니다.
샘플이 노드에 도착하면 질문에 따라 참/거짓을 판별하고, 참이면 왼쪽, 거짓이면 오른쪽으로 이동하는 방식입니다.
이런 과정을 반복하다가 단말 노드에 도착하면 단말 노드에 해당하는 부류로 결정합니다.

그림이 커서 일부만 가져옴

보시다시피 해당 노드에는 중요한 feature를 기준으로 나누고 있습니다.
최상단 노드에서는 X[7]을 기준으로 나누는 모습을 볼 수 있습니다.
gini는 신뢰도로 보시면 됩니다.

아무튼 중요한건 모든 feature가 분류에 사용된 것이 아닙니다.
총 16개의 feature이 있는데, 여기서는 절반에도 못 미치는 4개만 쓰고 있습니다.
따라서 분류에 이용되는 feature가 중요한 특징이라고 할 수 있습니다.

이때 결정 트리의 학습 방법에 대해 간략하게 알아보겠습니다.


2. 결정 트리의 학습 방법



결정 트리의 학습 알고리즘을 알아보겠습니다.
처음에는 노드가 하나도 없는 빈 트리에서 시작합니다.
이때 Train Set을 가지고 질문을 가진 루트 노드를 생성합니다.

이때 질문 만들기는 특징과 임곗값을 정하는 일이고, 훈련 집합을 동질성을 가장 잘 확보하도록 부분 집합 2개로 나누는 질문을 찾아내야 합니다.
동질성이란 같은 부류의 샘플이 같은 자식 노드로 이동하는 것인데, 동질 성은 지니 계수로 측정합니다.

\(gini = 1 - \sum_{i}^{}(\frac{n_i}{n})^2\)

이때 학습은 재귀적으로 이루어집니다.
루트의 왼쪽 자식과 오른쪽 자식을 각각 루트로 간주하고 같은 과정을 재귀적으로 반복합니다.
이때 완전 동질성을 가진 노드를 만나면 단말 노드로 설정하고 멈춥니다.

실제로는 Over Fitting을 방지하기 위해, 완전 동질성이 아니어도 중간에 멈추고 빈도가 가장 높은 부류를 지정합니다.


3. Decision Tree의 설명 능력과 한계



위의 사진을 보면 모델 내부가 훤히 보입니다.
이 사진을 보고 의사는 환자에게 설명할 수 있습니다.

하지만 DT의 설명 능력에는 한계가 있습니다.
암, 특정 질병 데이터처럼 사람이 해석할 수 있는 특징으로 구성된 데이터에서만 설명할 수 있습니다.

영상이나 음성을 구성하는 특징 각각은 의미를 가지지 않기 때문에 결정 트리를 적용하더라도 설명이 불가능합니다.

또한 DT는 하나의 질문으로 공간을 직선(평면)으로 두 부분 공간으로 나눕니다.
따라서 결정 트리는 선형 분류기이고, 낮은 성능에 머뭅니다.
Non-Linear한 데이터에 대해선 분류가 불가능합니다.

또한 인공지능이 다루는 데이터는 영상, 소리 등 개별 특징(하나의 픽셀)은 의미를 가지지 못하며, 변화가 심하고 잡음이 많습니다.
특징 공간은 수백~수만에 이르는 고차원이므로 결정 트리와 같은 단순한 기계 학습 모델로는 높은 성능을 인식할 수 없습니다.


4. 딥러닝



딥러닝은 높은 성능을 보장하지만 설명 기능이 약합니다.
대용량의 덧셈, 곱셈, Activation Function 계산으로 학습과 예측을 수행하기 때문입니다.

최근에는 시각화 수준의 설명 기능이 등장하는 정도입니다.

https://medium.com/daria-blog/%EC%84%A4%EB%AA%85%EA%B0%80%EB%8A%A5%ED%95%9C-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-explanable-ai-xai-%EC%9D%B4%EB%9E%80-4e51d9e7bb59


빨간 부분이 인공지능이 집중한 부분이고, 가장자리는 인공지능이 무시했다고 볼 수 있습니다.



다음 글에서는 CNN에서의 시각화 기능을 설명하겠습니다.
감사합니다.


지적 환영합니다.