늦깎이 공대생의 인공지능 연구실

[해석할 수 있는 기계학습(7-2)]픽셀 속성 - Pixel Attribution(중요영역 지도 - Saliency Maps) 본문

해석할 수 있는 기계학습/7. 신경망 해석

[해석할 수 있는 기계학습(7-2)]픽셀 속성 - Pixel Attribution(중요영역 지도 - Saliency Maps)

Justin T. 2021. 7. 12. 23:17

 

 픽셀 속성(Pixel Attribution) 방법은 신경망에 의한 특정 영상 분류와 관련된 픽셀을 강조 표시합니다. 다음의 이미지는 이러한 설명의 예입니다.

 이 포스팅의 뒷부분을 통해 특정한 이미지에서 무슨 일이 일어나고 있는지 볼 수 있습니다. 픽셀 속성법은 감도 지도(Sensitivity Map), 중요영역 지도(Saliency map), 픽셀 속성 지도(Pixel Attribution Map), 기울기 기반 속성 방법(Gradient-based Attribution), 특성 관련성(Feature Relevance), 특성 속성(Feature Attribution), 특성 기여(Feature Contribution) 등 다양한 이름으로 확인할 수 있습니다.

 

 픽셀 속성은 특성 속성의 특수한 경우이지만, 이는 이미지의 경우를 말합니다. 특성 속성은 예측이 얼마나 바뀌었는지(양수 혹은 음수)에 따라 각 입력 특성을 귀속시켜 개별 예측을 설명합니다. 특성은 입력 픽셀, 표 형식 데이터 또는 워드(Word)가 될 수 있습니다. SHAP, 섀플리값LIME은 일반적인 특성 속성 방법의 대표적 예입니다.

 

 예측치로 출력하는 신경망을 길이 \(C\)의 벡터라고 간주하며, 여기서 \(C=1\)의 회귀를 포함합니다. 이미지 I에 대한 신경망의 출력을 \(S(I)=[S_1(I),\ldots,S_C(I)]\)라 합시다. 이러한 모든 방법은 입력 \(x\in\mathbb{R}^p\)(이미지 픽셀, 표 형식 데이터, 워드 등일 수 있음)로 사용되며 특성 p와 출력에 대해 각 p 입력 특성에 대한 관련값을 \(R^c=[R_1^c,\ldots,R_p^c]\)와 같이 설명합니다. c는 c번째 출력 \(S_C(I)\)에 대한 관련성을 나타냅니다.

 

픽셀 속성 접근 방식은 다소 혼란스럽습니다. 속성 방법에는 두 가지 유형이 있습니다.

 

폐색(Occlusion) 혹은 작은 변화(Perturbation) 기반: SHAPLIME과 같은 방법은 이미지의 일부를 조작하여 설명을 생성합니다(모델 불특정법).

 

기울기(Gradient) 기반: 많은 방법들은 입력 특성에 대한 예측값(또는 분류 점수)의 기울기를 계산합니다. (많은 방법이 있는)기울기 기반 방법은 기울기 계산 방법에 따라 대부분 다릅니다.

 

 두 가지 접근 방식 모두 설명이 입력 이미지와 동일한 크기(또는 최소한 입력 이미지에 의미 있게 투영될 수 있음)를 가지며 각 픽셀에 해당 이미지의 예측 또는 분류에 대한 픽셀의 관련성으로 해석될 수 있는 값을 할당합니다.

 픽셀 속성 방법에 대한 또 다른 유용한 분류는 기준선 문제(Baseline Question)입니다.

 

 기울기 전용(Gradient-only) 방법을 사용하면 픽셀의 변화가 예측 r값을 변경할 수 있는지 여부를 알 수 있습니다. 예를 들어 Vanilla Gradient 및 Grad-CAM이 있습니다. 기울기 전용 속성의 해석은 다음과 같습니다. 특성 픽셀을 변경하면 예측된 클래스 확률이 상승(양의 기울기의 경우) 또는 하강(음의 기울기의 경우)합니다. 기울기의 절대값이 클수록 이 픽셀의 변경 효과가 더 강해집니다.

 경로 속성(Path-attribution) 방법은 현재 이미지를 기준 이미지와 비교합니다. 기준 이미지는 완전히 회색인 영상과 같은 인공 "0" 이미지일 수 있습니다. 실제 예측과 기준선 예측의 차이는 픽셀 사이에서 나뉩니다. 기준 이미지도 여러 이미지, 즉 이미지 분포가 될 수 있습니다. 이 카테고리에는 Deep Taylor 및 Integrated Gradients와 같은 특정 모델(Model-sepcific) 기울기 기반 방법과 LIME 및 SHAP와 같은 모델 불특정(Mode-agnostic) 방법이 포함됩니다. 일부 경로 속성 방법은 "완료"입니다. 즉, 모든 입력 특성에 대한 관련값의 합계는 이미지의 예측결과에서 기준 이미지의 예측을 뺀 차이 입니다. 예로는 SHAP 및 Integrated Gradients가 있습니다. 경로 속성 방법의 경우 항상 기준선에 대해 해석을 수행합니다. 실제 이미지와 기준 이미지의 분류 점수 차이는 픽셀에서 기인합니다. 기준 이미지(분포)의 선택은 설명에 큰 영향을 미칩니다. 일반적인 가정은 "중립" 이미지(분포)를 사용하는 것입니다. 당연한 말이지만, 여러분이 가장 좋아하는 카메라 앱으로 셀카를 찍는 것은 확실히 가능하지만, 여러분은 그 앱을 사용할 때 그 앱이 만든 사진이 말이 되는지 스스로 물어봐야 합니다. 그것은 확실히 다른 애플리케이션 프로젝트 구성원들 사이에서 우세를 점할 것입니다.

 이러한 점을 덧붙여 보통 이러한 방법들이 어떻게 동작하는지에 대한 직관인 방법을 알려드리지만, Vanilla Gradient 방법으로 시작하는 것이 가장 좋다고 생각합니다. 왜냐하면 이 알고리즘은 다른 많은 방법들이 따르는 일반적인 레시피를 잘 보여주기 때문이지요.

Vanilla Gradient(중요영역 지도)

 Karen Simonyan이 최초의 픽셀 속성 접근법 중 하나로 도입한 Vanilla Gradient의 아이디어는 이미 역전파를 알고 있다면 매우 간단합니다. (저자들은 자신들의 접근 방식을 "이미지별 클래스 중요영역(Image-Specific Class Saliency)"이라고 불렀지만, 여기서는 Vanilla Gradient라 하겠습니다. 참고로 Vanilla는 '평범한'이라는 의미도 가지고 있습니다.) 입력 픽셀에 대해 관심 있는 클래스에 대한 손실 함수의 기울기를 계산합니다. 이를 통해 음의 값에서 양의 값을 가진 입력 특성의 크기에 대한 지도를 얻을 수 있습니다.

 

 이 접근법은 다음과 같습니다.

 

  1. 관심 이미지의 전방 전달(Forward Pass)를 수행합니다.
  2. 입력 픽셀을 기준으로 관심 클래스 점수의 기울기를 계산합니다. $$E_{grad}(I_0)=\frac{\delta{}S_c}{\delta{}I}|_{I=I_0}$$ 여기서 다른 모든 클래스는 0으로 설정합니다.
  3. 기울기를 시각화합니다. 절대값을 표시하거나 음수 및 양수의 기여를 별도로 강조 표시할 수 있습니다.

 좀 더 공식적으로, 우리는 이미지 I를 가지고 있고 합성곱 신경망은 클래스 C에 대해 점수 \(S_c(I)\)를 줍니다. 점수는 이미지의 매우 비선형적인 함수입니다.  기울기의 기본 개념은 1차 테일러 확장을 적용하여 그 점수에 근사치를 계산할 수 있다는 것입니다.

$$S_c(I)\approx{}w^T{}I+b$$

 여기서 w는 점수에 대한 미분을 나타냅니다.

$$w = \frac{\delta S_C}{\delta I}|_{I_0}$$

 이제 ReLU(Rectifying Linear Unit)와 같은 비선형 단위가 음수를 "제거"하므로 기울기를 역방향 통과시키는 방법이 모호해집니다. 따라서 역전달을 할 때 활성화 여부를 양극으로 할지 음극으로 할지 알 수 없습니다. 저의 놀라운 ASCII 아트 기술을 사용하여 ReLU 함수를 _/와 같이 나타낼 수 있고요, \(X_n\) 계층에서 \(X_{n-1}\)계층으로 전달될 때 \(X_{n+1}(x)=max(0,X_n)\)로 정의됩니다. 이것은 뉴런의 활성화가 0일 때, 우리는 어떤 값을 역전달해야 할지 모른다는 것을 의미합니다. Vanilla Gradient의 경우 모호성은 다음과 같이 해결됩니다.

$$\frac{\delta f}{\delta X_n} = \frac{\delta f}{\delta X_{n+1}} \cdot \mathbf{I}(X_n > 0)$$

 여기서 \(\mathbf{I}\)는 요소별 지시 함수(Indicator Function)이며, 하위 계층에서의 활성화가 음수였던 경우에는 0이고, 양수 또는 0인 경우에는 1입니다. Vanilla Gradient는 지금까지 역방향으로 전파된 기울기를 n+1번째 계층까지 적용한 다음, 아래의 계층에서 활성화가 음수인 경우 기울기를 0으로 설정합니다.

 한 예제로 계층 \(X_n\)과 \(X_{n+1}=ReLU(X_{n+1})\)이 있다고 가정했을 때, \(X_n\)에서 다음과 같은 가상의 활성화가 발생했다고 합시다.

$$\begin{pmatrix}
1 & 0 \\
-1 & -10 \\
\end{pmatrix}$$

 그리고 \(X_{(n+1)}\)에서의 기울기는

$$\begin{pmatrix}
0.4 & 1.1 \\
-0.5 & -0.1  \\
\end{pmatrix}$$

이 경우 \(X_n\)에서의 기울기는 다음과 같이 나타낼 수 있습니다.

$$\begin{pmatrix}
0.4 & 0 \\
 0 & 0  \\
\end{pmatrix}$$

Vanilla Gradient의 문제점들

 Vanilla Gradient에는 포화 문제가 있습니다(Avanti et al., 2017) ReLU를 사용하고 활성값 0 이하로 내려가면 활성화 상한선이 0이 되고 더 이상 변경되지 않습니다. 활성함수가 포화 상태가 된 것입니다. 예를 들어 다음과 같습니다. 가중치 \(-1\)과 \(-1\), 그리고 편향치(Bias)가 \(1\)인 두 개의 뉴런이 입력값으로 러에어에 주어졌다고 가정합니다. ReLU 층을 통과할 때, 양쪽 뉴런의 합이 1보다 작을 경우 활성화는 뉴런1 + 뉴런2가 됩니다. 둘의 합계가 1보다 크더라도 활성화 값은 1의 포화 상태를 유지합니다. 또한 이 지점의 기울기는 0이 될 것이고, Vanilla Gradient는 이 뉴런이 중요하지 않다고 말할 것입니다.

 자 여러분, 이제 다른 방법을 배워볼까요. DeconvNet에 대해 가감없이 알아봅시다.

DeconvNet

 Zeiler와 Fergus (2014)의 DeconvNet은 Vanilla Gradient와 거의 동일합니다. DeconvNet의 목표는 신경망을 되돌리는 것이며, 이 논문은 필터링(Filtering), 풀링(Pooling), 활성화 계층의 역방향 연산을 제안합니다. 이 문서를 살펴보면 Vanilla Gradient와 매우 다르게 보이지만 ReLU 레이어의 역방향을 제외하면 DeconvNet은 Vanilla Gradient 접근 방식과 동일합니다. Vanilla Gradient은 DeconvNet의 일반화로 볼 수 있습니다. DeconvNet은 ReLU를 통해 기울기를 역전파하기 위해 다른 선택을 합니다.

$$R_n=R_{n+1}\mathbb{I}(R_{n+1}>0)$$

 여기서 \(R_n\)과 \(R_{n+1}\)은 재구성된 계층입니다. n번째 계층에서 n-1번째 계층으로 역전파할 때, DeconvNet은 n번째 계층에서 어떤 활성화가 전방 전달에서 0으로 설정되었는지 "기억"하고 계층 n-1에서 0으로 설정합니다. x번째 계층에서 음수 값이 있는 활성화값은 n-1번째 계층에서 0으로 설정됩니다. 이전의 예제인 기울기 \(X_n\)은 다음과 같이 나타낼 수 있습니다.

$$\begin{pmatrix}
0.4 & 1.1 \\
0 & 0  \\
\end{pmatrix}$$

Grad-CAM

 Grad-CAM은 CNN의 결정에 대한 시각적 설명을 제공합니다. 다른 방법과 달리 기울기는 이미지까지 역전파하지 않고 (일반적으로) 마지막 합성곱 계층까지 전달되어 이미지의 중요한 영역을 강조 표시하는 대략적인 지역화 맵을 생성합니다.

 Grad-CAM은 Gradient-weighted Class Activation Map을 나타냅니다. 그리고 이름에서 알 수 있듯이, 이는 신경망의 기울기를 기반으로 합니다. Grad-CAM은 다른 방법과 마찬가지로 관심 결정을 위한 관련성 점수를 각 뉴런에 할당합니다. 이러한 관심 결정은 클래스 예측이 될 수 있지만 이론적으로 신경망의 다른 계층이 될 수 있습니다. Grad-CAM은 이 정보를 마지막 합성곱 계층으로 역전달합니다. Grad-CAM은 다양한 CNN과 함께 사용할 수 있습니다. 완전히 연결된 계층, 자막 및 다중 작업 출력과 같은 구조화된 출력, 강화 학습에 사용할 수 있습니다.

 

 Grad-CAM을 직관적으로 확인해볼까요? Grad-CAM의 목적는 이미지의 어느 부분에서 특정 분류를 "보이는"지를 이해하는 것입니다. CNN의 첫 번째 합성곱 레이어는 이미지를 입력으로 가져가 학습된 특성을 인코딩하는 특성 맵을 출력합니다(학습된 특성 - Learned Features 참조). 상위 수준의 합성곱 계층은 동일한 작업을 수행하지만, 이전 합성곱 계층의 특성 맵을 입력으로 사용합니다. CNN이 결정을 내리는 방법을 이해하기 위해 Grad-CAM은 마지막 합성곱 레이어의 특성 맵에서 활성화되는 지역을 분석합니다.

 

 마지막 합성곱 레이어에는 k 특성 맵이 있는데, 이를 \(A_1, A_2, \ldots, A_k\)라고 합시다. 어떻게 하면 특성 맵에서 합성곱 신경망이 특정한 분류를 수행하었는지 "확인"할 수 있을까요? 첫 번째 접근법으로 각 특성 맵의 본래 값을 시각화하기만 하면 특성 맵을 통해 평균을 내고 이미지에 오버레이하여 겹쳐볼 수 있습니다. 특성 맵은 모든 클래스에 대한 정보를 인코딩하기 때문에 유용하지는 않지만, 특정 클래스에는 관심이 있습니다. Grad-CAM은 우리가 관심 있는 각 k 특성 지도가 클래스 c에 얼마나 중요한지 결정해야 합니다. 특성 지도를 평균화하기 전에 각 특성 지도의 픽셀에 기울기 가중치를 매겨야 합니다. 관심 등급에 양의 값 또는 음의 값으로 영향을 미치는 영역을 강조하는 열 지도(강조되는 부분이 빨갛게 나타내어짐)를 제공합니다. 이 열 지도는 ReLU 함수를 통해 전송됩니다. 이는 모든 음의 값을 0으로 설정한다는 의미입니다. Grad-CAM은 ReLU 함수를 사용하여 모든 음수 값을 제거하며, 다른 클래스가 아닌 선택한 클래스 c에 기여하는 부분에만 관심이 있다는 인수를 사용합니다. (풀링 단위로 인해) 특성 맵이 이미지보다 작지만 원래 이미지에 다시 매핑되기 때문에 픽셀이라는 단어가 오해를 살 수 있습니다. 그런 다음 시각화를 위해 Grad-CAM 맵의 배율을 [0,1] 간격으로 조정하고 원본 이미지에 덮어씌웁니다.

 

Grad-CAM의 레시피를 살펴보겠습니다. 우리의 목표는 다음과 같이 정의된 지역화 맵을 찾는 것입니다.

$$L^c_{Grad-CAM} \in \mathbb{R}^{u\times v} = \underbrace{ReLU}_{\text{Pick positive values}}\left(\sum_{k} \alpha_k^c A^k\right)$$

여기서 u는 폭, v는 설명의 높이, c는 관심 클래스입니다.

  1. 합성곱 신경망을 통해 입력 이미지를 전파시킵니다.
  2. 관심 있는 클래스로부터 원본 점수를 얻은 다음, 소프트맥스 계층 전 뉴런의 활성화값의 평균값을 구합니다.
  3. 관심 있는 클래스를 제외한 모든 클래스의 활성화값을 0으로 설정합니다.
  4. (Fully Connected Layers) 이전의 마지막 합성곱 계층으로 관심 클래스의 기울기를 다음과 같이 역전파합니다: \(\frac{\delta{}y^c}{\delta{}A^k}\)
  5. 각 특성 맵의 "픽셀"을 해당 클래스에 대한 기울기값으로 가중치를 정합니다. 인덱스 i와 j는 너비와 높이 차원을 나타냅니다.$$\alpha_k^c = \overbrace{\frac{1}{Z}\sum_{i}\sum_{j}}^{\text{global average pooling}} \underbrace{\frac{\delta y^c}{\delta A_{ij}^k}}_{\text{gradients via backprop}}$$이는 기울기가 전역으로 풀링되었음을 의미합니다.
  6. 팩셀 당 기중치를 기울기로 하여 특성 맵의 평균을 계산합니다.
  7. 평균화된 특성 맵에 Relu를 적용합니다.
  8. 시각화를 위해 0과 1사이의 간격으로 값을 조정합니다. 그 다음 원본 이미지에 덮어씌웁니다.
  9. Guided Grad-CAM을 위한 추가 단계로 열 지도와 가이드된 역전파를 곱합니다.

Guided Grad-CAM

 Grad-CAM의 설명을 보면 마지막 합성곱 특성 맵의 해상도가 입력 이미지에 비해 훨씬 더 거칠기 때문에 지역화가 매우 거칠다고 추측할 수 있습니다. 반대로 다른 속성 기법은 입력 픽셀까지 역전파합니다. 따라서 훨씬 더 상세하고 예측에 가장 큰 영향을 준 개별 Edge 또는 점을 표시할 수 있습니다. 두 방법의 융합을 Guided Grad-CAM이라고 합니다. 그리고 이는 매우 간단합니다. Grad-CAM 설명과 다른 특성 방법(예: Vanilla Gradient)에서 설명하는 이미지를 계산합니다. 그런 다음 Grad-CAM 출력을 2진수 보간법으로 업샘플링한 다음 두 맵을 요소별로 곱합니다. Grad-CAM은 픽셀 단위 속성 맵의 특정 부분에 초점을 맞춘 렌즈처럼 작동합니다.

SmoothGrad

 Smilkovet. al 2017의 SmoothGrad 아이디어는 이러한 인위적으로 노이즈가 발생된 기울기에 노이즈를 더하고 평균을 내서 기울기 기반 설명의 노이즈을 줄이는 것입니다. SmoothGrad는 독자적인 설명 방법이 아니라 기울기 기반 설명 방법의 확장 방식입니다.

SmoothGrad는 다음과 같은 방식으로 동작합니다.

  1. 관심 있는 여러 버전의 이미지에 노이즈를 추가하여 생성합니다.
  2. 모든 이미지에 대한 픽셀 속성 지도를 생성합니다.
  3. 픽셀 속성 지도를 평균화 합니다.

 보시다시피 간단합니다. 어째서 이러한 방식이 동작할까요? 이 이론은 미분값이 작은 규모로 크게 변동합니다. 신경망은 학습 중에 기울기를 부드럽게 유지하려는 인센티브가 없으며, 이미지를 올바르게 분류하는 것을 목표로 합니다. 여러 지도의 평균을 구하면 이러한 변동을 "완화"할 수 있습니다.

$$R_{sg}(x)=\frac{1}{N}\sum_{i=1}^n{}R(x+g_i),$$

 여기서 \(g_i\sim{}N(0,\sigma^2)\)은 가우시안 분포로부터 샘플화된 노이즈 벡터입니다. "이상적인" 노이즈 수준은 입력 이미지와 네트워크에 따라 달라집니다. 저자들은 10%-20%의 노이즈 레벨을 제안하는데 이는 \(\frac{\sigma}{x_{max} - x_{min}}\)의 값이 0.1에서 0.2 사이를 의미합니다. 극한값 \(x_{max}\)와 \(x_{min}\) 이미지의 픽셀값에 대한 최대값과 최소값을 나타냅니다. 또 다른 파라미터는 샘플 수를 나타내는 n입니다. n = 50을 사용하는 것이 좋습니다. 왜냐하면 이보다 더 작은 샘플을 사용할 경우 값이 줄어들 수 있습니다.

예제

 이러한 맵의 모양과 방법의 질적인 비교 예제를 몇 가지 살펴보겠습니다. 예제로 다루고자 하는 네트워크는 VGG-16(Simonyan et al. 2014)으로, ImageNet에서 학습되어 20,000개 이상의 클래스를 구분할 수 있습니다. 다음 이미지에 대해 분류 점수가 가장 높은 클래스에 대한 설명을 다룹니다.

다음은 이미지와 신경망에 의해 분류된 것을 나타냅니다.

 책을 경호하고 있는 훌륭한 강아지가 함께 있는 왼쪽에 있는 이미지는 35%의 확률로 "그레이하운드"로 분류되었습니다. 가운데 이미지는 맛있는 라멘 수프가 담긴 그릇을 보여주며, 50%의 확률로 정확하게 "수프 그릇"으로 분류됩니다. 세 번째 이미지는 해저에 있는 문어를 보여주는데, 이것은 70%의 높은 확률로 "장어"로 잘못 분류된 것을 나타냅니다.

 

 그리고 다음은 분류를 설명하는 것을 목적으로 하는 픽셀 속성입니다.

 안타깝게도, 조금은 엉망진창으로 보입니다. 하지만 개부터 시작해서 각각의 설명을 보도록 하죠. Vanilla Gradient와 Vanilla Gradient + SmoothGrad는 모두 개를 돋보이게 하는데, 이는 확실이 납득이 됩니다. 하지만 알고리즘들은 책 주변 약간의 영역을 강조하는데, 이것은 왜 이런지 이상합니다. Grad-CAM은 책 영역만 강조 표시하고 있는데 이는 전혀 말이 되지 않습니다. 그리고 여기서부터는 알고리즘이 좀 지저분해집니다. Vanilla Gradient 방법은 수프 그릇과 문어 둘 다 감지에 실패한 것 같습니다. 두 이미지 모두 너무 오랫동안 태양을 바라보았을 때의 잔상처럼 보입니다. (궁금하다고 태양을 직접 쳐다보시면 안되요.) SmoothGrad는 원인 분석을 이해하는데 많은 도움이 됩니다. 다른 알고리즘에 비해 최소 영역이 더 정의되어 있습니다. 수프 그릇의 예에서는 계란과 고기, 젓가락 주변과 같은 일부 재료가 강조 표시되어 있습니다. 문어 이미지에서는 대부분 문어 자체가 강조 표시되어 있습니다.

 

 수프 그릇에 Grad-CAM은 달걀 부분과, 어떤 이유에서인지, 그릇의 윗부분을 강조합니다. Grad-CAM의 문어에 대한 설명은 훨씬 더 난잡합니다.

 

 이러한 설명을 신뢰하는지 여부를 평가하는 데 있어서의 어려움을 위의 사례를 통해 확인해 보았습니다. 첫 단계로 이미지의 어느 부분에 이미지 분류와 관련된 정보가 포함되어 있는지 고려해야 합니다. 하지만 신경망이 분류에 어떤 역할을 했는지도 생각해 봐야 합니다 SmoothGrad가 암시하듯이, 수프 그릇은 계란과 젓가락의 조합에 따라 정확히 분류된 것은 아닐까요? 아니면 Grad-CAM이 시사하듯이 신경망이 그릇 모양과 몇몇 성분들을 인식했을 수도 있죠? 우리는 단지 모를 뿐입니다.

 

 그리고 이러한 것들은 모든 알고리즘이 갖고 있는 가장 큰 문제입니다. 우리는 그 설명에 대한 근거 있는 진실을 가지고 있지 않습니다. 우리는 첫 단계에서, 명백히 말이 안 되는 설명을 거부할 수 밖에 없습니다. (심지어 이 단계에서 우리는 강한 신뢰를 갖지 않습니다. 신경망의 예측 프로세스는 매우 복잡하기 때문이지요.)

장점

 위에서 다룬 알고리즘의 설명은 시각적이며 우리는 덕분에 이미지를 빠르게 인식할 수 있습니다. 특히 이 알고리즘이 중요한 픽셀만 강조 표시하는 경우 이미지의 중요한 영역을 즉시 인식할 수 있습니다.

 기울기 기반 방법은 일반적으로 모델 불특정(Model-agnostic) 방법보다 계산 속도가 빠릅니다. 예를 들어 LIMESHAP는 이미지 분류를 설명하는 데에도 사용할 수 있지만 계산 비용이 더 큽니다.

픽셀 속성 알고리즘 중에서 선택할 수 있는 많은 방법들이 있습니다.

단점

 대부분의 해석 방법들과 마찬가지로, 설명이 정확한지 알기는 어렵고 평가의 상당 부분은 질적 평가 부분일 뿐입니다

 

 픽셀 속성 방법은 매우 취약할 수 있습니다. Ghorbani et al. (2019)은 여전히 동일한 예측으로 이어지는 작은 (적대적) 변화(perturbation)를 이미지에 적용하는 것이 완전 다른 픽셀이 설명으로 강조되는 결과로 이어질 수 있다는 것을 보여주었습니다.

 

 Kindermanns et al. (2019) 또한 이러한 픽셀 속성 방법의 신뢰성이 매우 낮다는 것을 보여주었습니다. 입력 데이터에 일정한 변화(Shift)를 추가했는데, 이는 모든 이미지에 동일한 픽셀 변경을 추가했음을 의미합니다. 두 개의 신경망, 즉 첫 번째 계층의 bias가 일정한 픽셀 이동에 맞게 변경되는 원래의 신경망과 "변화를 준(Shifted)" 신경망을 비교했습니다. 두 신경망 모두 동일한 예측을 생성합니다. 또한 경사도는 둘 다 동일합니다. 하지만 설명이 바뀌었고, 이는 바람직하지 않은 속성입니다. 그들은 DeepLift, Vanilla Gradient 및 Integrated Gradients를 조사했습니다.

 

 "Sanity Checks for Saliency Maps" 논문에서는 모델 및 데이터에 대한 Saliency 방법이 모델과 데이터에 둔감한지의 여부를 조사했습니다. 둔감도는 "설명"이 모델 및 데이터와 관련이 없다는 것을 의미하므로 매우 바람직하지 않습니다. 모델 및 학습 데이터에 민감하지 않은 방법은 Edge 검출기와 유사합니다. Edge 검출기는 이미지의 강력한 픽셀 색상 변화를 강조하기만 하며 예측 모델이나 이미지의 추상적 특성과는 관련이 없으며 별도의 학습이 필요하지 않습니다. 테스트 방법은 Vanilla Gradient, 기울기 x 입력, Integrated Gradients, Guided Backpropagation, Guided Grad-CAM 및 SmoothGrad(Vanilla Gradient 포함)였습니다. Vanilla Gradient와 Grad-CAM이 감도 검사를 통과했지만 Guided Backpropagation 및 Guided Grad-CAM은 통과하지 못했습니다. 그러나 분별성 검사 자체는 Tomsett et. al (2020)로부터 "Sanity Checks for Saliency Metrics"라는 논문을 통해 일부 비판을 받았습니다. 평가 메트릭스에 대한 일관성이 부족하다는 것을 알게 되었습니다(알고 있습니다. 이제는 상당히 변화하고 있습니다). 다시 시작점으로 돌아왔습니다. 시각적 설명을 평가하기는 여전히 어렵습니다. 이는 전문가에게 매우 어려운 일입니다.

 

 대체로, 이 방법들은 매우 불만족스러운 상황입니다. 우리는 이 주제에 대한 더 많은 연구를 위해 조금 더 기다려야 합니다. 그리고 부디, 더 이상 새로운 방법을 발명하지 말고, 이러한 방법을 평가하는 방법에 대해 철저히 검토해 볼 필요갸 있습니다.

소프트웨어

 픽셀 속성 방법에는 몇 가지 소프트웨어가 구현되어 있습니다. 예를 들어, tf-keras-vis가 있습니다. 가장 포괄적인 라이브러리 중 하나는 Vanilla gradient, Smoothgrad, Deconvnet, Guided Backpropagation, PatternNet, LRP 등을 구현하는 iNNvestigate입니다. 여러 가지 방법이 DeepExplain Toolbox에서 구현됩니다.

 

참고자료: https://christophm.github.io/interpretable-ml-book/pixel-attribution.html

 

7.2 Pixel Attribution (Saliency Maps) | Interpretable Machine Learning

Machine learning algorithms usually operate as black boxes and it is unclear how they derived a certain decision. This book is a guide for practitioners to make machine learning decisions interpretable.

christophm.github.io

 

 

 

 

 

반응형