LG AImers 2기 7일차

은영·2023년 1월 24일
0

LG AImers 2기

목록 보기
7/10

해당 포스팅에 관한 모든 저작권은 LG Aimers에 있습니다.


이번 강의는 설명 가능한 AI, XAI에 관한 강의이다. 인공지능 관련 공부를 하면서 들어본 적은 있으나 자세히 알지는 못 하였는데 이렇게 XAI만을 위한 강의를 듣게 돼서 좋다.

딥러닝은 대용량 데이터를 통해 학습하면서 모델이 점점 복잡해지고 이해하기 어려워졌다. 그렇기 때문에 딥러닝 모델이 내린 결과에 대한 설명력이 부족해질 경우 신뢰성이 떨어진다.

예를 들어 편향된 데이터를 가진 경우(예를 들어 흑인 여성을 고릴라라고 인식하는 경우, 동양인 이미지를 눈을 감고 있다고 인식하는 경우)에는 딥러닝 모델의 결정을 신뢰할 수 있다고 판단하기 어렵다.

그렇기 때문에 딥러닝 모델이 내린 결과에 대한 설명을 할 수 있는 Explainable AI가 나타나게 되었다. 그렇다면 이러한 XAI를 이용하여 인공지능 학습이 잘못되었음을 판단하게 된 사례를 한 번 보자.

XAI 기법으로 PascalVOC 데이터셋을 학습시켰을 때

출처:LG Aimers module5 강의 자료

왼쪽 아래 파란 계열 이미지에서 빨간 부분이 데이터를 분류할 때 중요하게 본 부분을 표시한 영역이다. 해당 모델의 경우 말 데이터를 올바르게 말이라고 분류하였으나 빨간 부분이 모두 말의 위치가 아닌 그림 아래쪽을 가리키고 있는 것을 알 수 있다. 즉, 위 모델은 말 데이터의 말 그림을 보고 이미지를 분류한 것이 아닌 말 이미지 데이터에만 있던 아래 워터마크를 보고 말이라고 인식하고 분류한 것이다. 그렇기에 실제 다른 말 데이터가 들어오면 말이라고 분류할 수 있는 확률이 떨어지게 된다.

위에서 봤듯 XAI 기법 이용 시, 모델의 학습이 잘못되었음을 확인할 수 있으며 이외에도 편향된 데이터로 학습하였을 경우도 확인할 수 있다.

'설명력'이란 단어를 설명할 적절한 문장도 달리 존재하지 않기 때문에, XAI가 무엇인지 공통적으로 정의된 것은 없다. 하지만 XAI는 인간이 인공지능을 더 이해하고 신뢰할 수 있도록 하는 기계 학습 기술이 되어야 한다.


XAI 기법의 분류

  • Local vs Global
    - Local : 각 데이터의 예측 결과를 설명
    - Global : 모델의 전체적인 동작에 대한 설명
  • White-box vs Black-box
    - White-box : 모델의 내부 구조를 알고 있을 때 설명
    - Black-box : 입출력 데이터만을 보고 설명
  • Intrinsic vs Post-hoc
    - Insrinsic : 모델의 복잡도를 훈련하기 이전부터 설명하기 용이하도록 제안한 뒤 학습시키고 해당 모델로 설명하는 방식
    - Post-hoc : 모델이 학습을 다 마친 후 기법을 적용하여 모델의 행동을 설명하는 방식
  • Model-specific vs Model-agnostic
    - Model-specific : 특정 모델에만 적용할 수 있는 기법
    - Model-agnostic : 모델의 구조가 어떻든 적용시킬 수 있는 기법

기존의 선형 모델, 의사결정트리의 경우 >>> Global, White-box, Intrinsic, Model-specific

그렇다면 다른 예시는?

Grad-CAM

출처:LG Aimers module5 강의 자료
Local : 각 이미지의 분류 결과에 대한 설명
White-box : 가중치 계수 등 모델의 내부 구조에 대해 알고 있어야 가능
Post-hoc : 모델이 모두 학습을 마친 후 설명
Model-agnostic : 모델의 구조가 어떻든 적용 가능


Simple Gradient Method

Grad-CAM처럼 이미지 분류 모델에서 가장 중요하게 작용한 부분을 하이라이트 하는 방식에서 가장 쉬운 방법은 바로 '입력 데이터에 대한 모델의 gradient를 설명으로 제공하는 것'

즉, 이미지의 각 픽셀에 대한 gradient를 구해 그 값을 각 픽셀에 대한 중요도로 해석하는 방법.

출처:LG Aimers module5 강의 자료

위 이미지를 통해 정답 클래스를 가리키는 객체에 하이라이트를 잘 해내고 있음을 확인할 수 있다.

이러한 gradient를 활용하는 방법에서의 장단점을 알아보자.

  • 장점 : 계산이 쉽다. 딥러닝의 경우 back-propagation으로 손쉽게 구함
  • 단점 : 노이즈가 발생한다. 예를 들어 사람 눈으로는 미세한 차이이지만 그에 대한 gradient는 크게 차이가 나타남.

SmoothGrad

위의 간단한 gradient 방법의 노이즈 발생 문제를 해결하기 위해 나온 기법.

출처:LG Aimers module5 강의 자료

x라는 이미지 데이터가 주어졌을 때, 가우시안 데이터를 노이즈로 넣어 여러번 gradient를 구하고 그에 대한 평균을 사용하는 기법


출처:LG Aimers module5 강의 자료

왼쪽에서 2번째의 경우, simple gradient method를 사용, 3번째의 경우 SmoothGrad를 사용한 것인데 이미지로 보았을 때 SmoothGrad가 더 객체를 잘 찾아냈음을 알 수 있다.

  • 장점 : 간단히 평균을 내는 과정을 통해 더 명확한 결과를 가질 수 있음
  • 단점 : 노이즈를 섞어 여러번 연산하는 만큼 계산 과정이 복잡해진다.

CAM(Class Activation Map)


출처:LG Aimers module5 강의 자료

GAP(Global Average Pooling) Layer을 사용하여 설명을 제공한다. 그렇다면 global average pooling은 뭘까? '모든 activation map의 activation의 평균을 내는 계층' 해당 연산을 통해 나온 결과를 softmax 함수를 취해준 후 클래스 별 확률을 계산해준다.

위 이미지에서 보듯 GAP layer에서 나타난 이미지를 원래 데이터에 잘 결합할 경우, 정답을 가리키는 객체를 잘 하이라이트 하는 모습을 볼 수 있다.

연산 과정

출처:LG Aimers module5 강의 자료

  • 장점 : 시각적으로 확실하게 확인할 수 있다.
  • 단점 : GAP layer을 가진 한정적인 모델에 한해서만 사용할 수 있다.
    마지막 layer에서만 얻어낼 수 있기에 visualization 해상도가 떨어질 수 있다.

Grad-CAM

CAM을 gradient를 활용해 확장한 설명 방식. GAP Layer이 없어도 적용 가능.


출처:LG Aimers module5 강의 자료

어느 activation map이든 그 activation map의 gradient를 구한 후, 그것의 global average pooling 값으로 w를 적용.


출처:LG Aimers module5 강의 자료

  • 장점 : 모델의 내부 구조가 어떻든 CNN일 경우 다 사용 가능
  • 단점 : gradient를 평균을 내서 사용하는 것이기 때문에 부정확할 수 있다.

LIME(Local Interpretable Model-agnostic Explanations)


출처:LG Aimers module5 강의 자료

모든 비선형 분류는 아주 작게 볼 경우 모두 선형 분류가 가능하다는 것에서 출발. 입출력 데이터만을 가지고 설명하기 때문에 black-box, 특정한 모델 구조에서만 사용할 수 있는 것이 아니기 때문에 Model-agnostic 하다는 특징이 있다.



출처:LG Aimers module5 강의 자료

1) 슈퍼 픽셀로 interpretable component를 얻는다.
2) 이러한 슈퍼 픽셀들을 교란 시킨다.
3) 교란된 다양한 그림들로 정답에 대한 스코어를 얻는다.
4) 각 슈퍼 픽셀을 학습할 수 있는 선형계수 만들어낸다.
5) 선형계수를 바탕으로 슈퍼 픽셀을 다시 결합한다.
6) 결합된 이미지를 통해 분류에 영향이 큰 부분 확인 가능

  • 장점 : 입출력 데이터만으로 설명이 가능한 black-box 해석 방식
  • 단점 : 데이터들을 교란시킨 후 그에 대한 선형 계수를 계산하는 등 연산이 복잡해진다.
    일부 모델에 적용이 어렵다(아무리 작게 보아도 선형 분류가 되지 않을 때)

RISE(Randomized Input Sampling for Explanation)

이름 그대로 설명을 위해 입력 데이터를 랜덤하게 가려진 이미지를 샘플링하여 사용하는 모델.


출처:LG Aimers module5 강의 자료

1) 랜덤하게 가린 이미지를 여러 개 샘플링한다.
2) 샘플링한 데이터를 정답 클래스에 대한 예측 확률 측정
3) 해당 확률을 가중치로 사용하여 샘플링 데이터와 결합

RISE를 사용했을 때 결과는 아래와 같다.

출처:LG Aimers module5 강의 자료

이는 gradCAM이나 LIME보다 더 명확한 설명을 보여준다.

출처:LG Aimers module5 강의 자료

  • 장점 : 명확하게 설명한다.
  • 단점 : 계산량 많으며, 샘플링하는 과정에서 노이즈가 발생할 수 있다.

Influence function-based

위에서 계속 나온 정답 클래스 객체에 하이라이트 하는 방식과는 다른 방식으로, 모델에 대한 결정에 대한 설명으로 학습 시 가장 영향을 많이 미친 train 이미지를 보여주는 방식


출처:LG Aimers module5 강의 자료

이는 Infuluence function을 활용하고 있다. test 데이터가 train 데이터에 없을 때, 각 train 이미지를 하나씩만 삭제한 후 다시 훈련을 시키고 예측 결과 스코어에 변화가 가장 큰 경우를 확인한다.


출처:LG Aimers module5 강의 자료


그렇다면 이 많은 XAI 기법 중 어떤 게 좋은 설명 방법인지 알 수 있을까?

AMT(Amazon Mechanical Turk) test

: 사람이 직접 XAI의 설명을 평가하는 것


출처:LG Aimers module5 강의 자료

위 그림과 같이 test 이미지와 XAI 기법으로 설명된 그림을 함께 보여준 후 어떤 클래스를 가리키는지 사람이 직접 골라보거나


출처:LG Aimers module5 강의 자료

위 그림과 같이 어떤 모델의 XAI 설명이 더 사람에 대한 설명을 잘하고 있는지 사람이 직접 고르는 문제 등

여러 사람이 직접 평가하며 그에 대한 수치로서 평가한다. 하지만 이의 경우 많은 사람을 필요로 하고 계산 시간도 오래 걸린다.

Human annotaion

: 사람이 만든 데이터를 활용하여 그를 ground truth로 두어 평가


출처:LG Aimers module5 강의 자료

위 식에서 B(i)dml 경우 사람이 만들어낸 객체가 존재한다고 표시한 bounding box의 픽셀들을 의미하며 p(i)의 경우 test 이미지에서 XAI기법으로 인공지능이 중요하다고 표시한 픽셀들을 의미한다. 즉, XAI 모델이 중요하다고 표시한 픽셀이 바운딩 박스 안에 있냐를 보고 평균을 내 확인하는 문제.


출처:LG Aimers module5 강의 자료

위 그림에서 맨 왼쪽이 사람이 만들어낸 annotation, 가운데 그림들이 실제 데이터, 맨 오른쪽이 XAI가 중요하다고 표시한 픽셀들을 하이라이트 한 것이다. 해당 그림은 XAI가 제대로 설명하고 있음을 확인할 수 있다.

이 점도 역시 단점이 존재하는데 AMT에 비해 사람의 개입이 적어졌다고 하지만 사람이 직접 제공한 어노테이션을 활용하기에 어려움이 있다. 또한 사람이 만들어낸 어노테이션이 명확하지 않을 수 있다.

Pixel perturbation

: 픽셀을 교란하여 모델 출력 값을 확인함으로써 평가

  • Motivation

    출처:LG Aimers module5 강의 자료

    모델이 중요하다고 가리키는 부분을 지운 후 다시 테스트를 해보았을 때 스코어 변화를 통해 평가한다.

  • AOPC(Area Over the MoRF Perturbation Curve)
    1) 주어진 이미지에 대해 각 XAI 기법 설명 제공
    2) 설명의 중요도 순서대로 픽셀 정렬
    3) 순서대로 픽셀 교란
    4) 분류 스코어가 얼마나 빨리 바뀌는지 측정

    1~4 과정을 거쳐서 측정한 값이 AOPC 값. 즉, AOPC 값이 클수록 스코어가 빨리 변화한다는 것.


    출처:LG Aimers module5 강의 자료

즉 위 그래프는 교란한 픽셀의 수에 따른 AOPC 변화를 보여주는데, 커브가 클수록 교란한 픽셀 수가 많은 수록 AOPC 값이 증가한다는 의미이고 그럴수록 XAI가 중요한 픽셀을 잘 골라냈다는 것을 알 수 있다.

  • Insertion & Deletion
    - Insertion : 백지 상태의 그림에서 중요한 픽셀을 하나씩 그려가면서 스코어를 확인하고 그에 대한 그래프를 그려 확인
    - Deletion : 주어진 이미지에서 중요한 픽셀을 하나씩 지워가면서 그에 대한 스코어를 그래프로 그려 확인


출처:LG Aimers module5 강의 자료

픽셀을 교란하여 평가하는 방식은 사람이 만들어낸 지표가 아닌 정량적인 지표를 사용한다는 장점이 있으나 단점도 존재한다.

단점은 특정 픽셀을 지우고 입력을 넣었을 때 훈련 데이터와 달라지기 때문에 출력 스코어가 항상 정확하다고 보기 어렵다는 점이 있으며 교란시킨 형태때문에 일부 다른 클래스로 분류하는 경우가 생기기도 한다.


출처:LG Aimers module5 강의 자료

원 모양으로 이미지를 가려 동그란 모양을 풍선으로 잘못 인식하는 경우

ROAR(RemOve And Retain)

: 학습이 다 끝난 후 XAI 모델이 중요하다고 한 픽셀을 지운 후 다시 재학습시킨 후 정확도가 떨어지는 정도로 평가

여러 번 학습시켜야 하기 때문에 계산 복잡도가 매우 높아진다는 단점이 있다.


그렇다면 마지막으로 이렇게 개발된 XAI를 사람인 우리가 얼마나 신뢰할 수 있을까?


출처:LG Aimers module5 강의 자료

우리는 지금까지 대부분의 XAI 기법들을 분류한 이미지들에서 정답 클래스를 가리키는 객체에 하이라이트 하는 방식으로 설명하고 있다. 그런데 이 하이라이트들이 edge detector처럼 하이라이트 되는 경향이 있다. 이러한 형태의 설명을 신뢰할 수 있을까?

  • Model randomization test
    : 모델의 각 레이어의 계수를 랜덤하게 임의로 바꾼 후 그에 대한 XAI 설명을 통해 확인


출처:LG Aimers module5 강의 자료

1번째 열에 있는 이미지들은 모델 그대로의 설명이고 순서대로 레이어의 계수를 랜덤하게 변경한 후 설명이다. 즉 점점 오른쪽으로 갈수록 완전히 랜덤한 기존의 모델 계수와는 다른 모델인 것이다. 정상적인 모델이라면 오른쪽으로 갈수록 아무 의미 없는 설명이 나와야 하지만 gudied backpropagation이나 guided gradCAM의 경우 새 부분을 여전히 하이라이트 하는 것을 확인할 수 있다. 이 모델들은 예측 결과에 대한 설명으로 주요한 부분을 하이라이트 한 것이 아닌 그림의 엣지만을 찾아 하이라이트한 것임을 알 수 있다. 이러한 모델들은 신뢰성이 떨어진다.

  • Adversarial attack
    : XAI 기법에 대해 적대적인 공격도 가능하다...?


출처:LG Aimers module5 강의 자료

왼쪽 열의 경우 입력 데이터를 그대로 주었을 때 XAI가 제대로 강아지의 형태를 하이라이트 한다. 하지만 오른쪽의 경우 일부 픽셀을 약간만 변경해준 상태인데 출력값의 경우 강아지로 바르게 인식하였으나 XAI 설명은 완전히 다르게 나타나게 하는 것이 가능하다. 이렇게 만들 수 있기 때문에 모델이 나타내는 설명을 신뢰하기 떨어진다는 이야기


출처:LG Aimers module5 강의 자료

이런 공격이 가능한 이유는 해당 모델의 decision 바운더리가 부드럽지 않은 모양이기 때문에 작은 노이즈에도 예민하게 반응하는 것이다.

이런 적대적 공격에 강건하게 대응하기 위해, 활성 함수로 소프트플러스 함수를 사용 시 조금 더 부드러운 형태를 띠어 해결할 수 있다고.

  • Adversarial model manipulation
    : 위에서 말한 적대적 공격이 입력 데이터에 대한 변화만 주는 것이 아니라 모델 자체를 조작할 수 있다...?

만약 XAI 기법을 통해 해당 모델이 편향적인지 아닌지를 확인하고자 할 때, 개발자가 모델이 편향적인 결과를 나타내고 있음에도 재학습을 시키는 것이 아니라 모델 계수를 조금씩만 변경해 예측 결과에는 변화가 없지만 XAI가 가리키는 설명만 공정한 모델이라고 설명하게 충분히 만들어낼 수 있다는 점.

아직 많이 연구되고 있는 분야라 수많은 논문들이 나오고 있는 상태, 제대로 정의되지 않았다...!!!!

0개의 댓글