Explainable AI - 기능 시각화



여기에 이미지 설명 삽입

1. 최대 활성화 반응의 시각화

이미지 인식에서 흔히 볼 수 있는 컨볼루션 신경망의 경우 네트워크 구조의 각 계층의 기본 단위는 컨볼루션 커널로 구성됩니다. 현재 대부분의 기능 시각화 작업은 이러한 컨볼루션 커널을 시각화하는 것입니다.입력 이미지의 내용이 다르면 각 컨볼루션 커널에서 생성하는 기능 활성화 맵도 다릅니다. 서로 다른 컨볼루션 커널의 활성화 강도, 활성화 특성 및 수용 필드도 다릅니다.

문헌 [2, 3]에 다음과 같이 나와 있습니다.네트워크의 얕은 곳에서 깊은 곳까지 서로 다른 계층의 컨볼루션 커널이 그림의 로컬 콘텐츠에 대한 선택성이 다르며 각 컨볼루션 커널을 의미론적 검출기로 분석할 수 있습니다.

최대 활성화 응답의 시각화(최대 활성화 영역의 시각화) 방법의 원리는 다음과 같습니다. 서로 다른 입력 그림에 대해 서로 다른 활성화를 생성하는 컨볼루션 커널을 기반으로 입력 배치 그림을 큰 것에서 작은 것으로 활성화 강도에 따라 정렬하여 이 컨볼루션 커널에 해당하는 최대 활성화 이미지 샘플을 찾습니다. 그래서 우리는 할 수있다신경망의 각 컨볼루션 커널에서 학습한 기능 시각화

네트워크 계층의 수가 증가함에 따라 컨볼루션 커널에 해당하는 시맨틱이 점점 더 구체화되는 것을 관찰할 수 있습니다.
[3]에서는 장면 인식을 담당하는 컨볼루션 신경망 표현 내부에서 다양한 객체 감지기가 자발적으로 나타나는 것으로 나타났습니다. 이러한 시각적 이미지를 수동으로 표시하여 각 컨볼루션 커널의 의미 레이블을 추가로 얻을 수 있습니다.


특정 방법 :

  1. 수천 개의 이미지가 포함된 데이터 세트를 준비합니다. 이 데이터 세트의 사진은 네트워크의 훈련 세트의 사진과 유사해야 하며 검증 세트나 테스트 세트의 사진을 사용할 수 있지만 훈련 세트의 사진은 포함하지 않아야 합니다.
  2. 모든 그림을 회선 신경망에 배치로 보내고 해당 회선 커널의 활성화 응답 맵을 기록합니다. 활성화-반응 그래프의 최대 활성화 값을 이 이미지의 최대 활성화 값으로 가져옵니다.
  3. 컨볼루션 커널에 해당하는 모든 픽처의 최대 활성화 값을 큰 것부터 작은 것으로 정렬하고 활성화 응답 값이 가장 큰 처음 몇 개의 픽처를 선택합니다.
  4. 그림에서 특정 최대 응답 영역을 더 시각화하기 위해 활성화 응답 맵을 그림 크기로 업샘플링할 수 있습니다. (그래서 텍스처, 모서리, 색상 등과 같이 컨볼루션 커널이 학습한 이미지의 기능을 알 수 있습니다.)

그림에서 보는 바와 같이 Places 장면 분류 데이터베이스에서 훈련된 AlexNet 네트워크의 Conv5 계층의 4개의 컨볼루션 커널에 해당하는 최대 활성화 응답 시각화 결과와 각각의 컨볼루션 커널 입력에 해당하는 5개의 최대 활성화 이미지.
여기에 이미지 설명 삽입



2. 네트워크 해부 및 기능 의미 분석

최대 활성화 응답 시각화 방법은 간단하지만 각 컨볼루션 커널에 해당하는 의미론적 개념을 자동으로 보정할 수 없고, 이 개념을 탐지하는 정확도를 정량화할 수 없다는 단점이 있다. 컨볼루션 커널의 의미론적 수용 필드 특성과 해석 가능성을 더 정량화하기 위해 문헌[4]은 "네트워크 해부" 방법.

최대 활성화 응답 시각화 방법과 유사하게 네트워크 해부 방법은 Broden 테스트 세트의 각 그림을 컨볼루션 신경망에 입력으로 공급한 다음 각 컨볼루션 커널에 해당하는 활성화 응답 맵을 기록합니다. 각 입력 이미지는 픽셀 보정이 있는 시맨틱 개념이므로 컨볼루션 커널을 사용하여 각 시맨틱 분할의 정확도를 계산할 수 있습니다. 정확도를 측정하기 위해 IoU(Intersection over Union) 값을 사용하여 분할된 이미지 영역과 보정된 이미지 영역의 일치 정도를 계산할 수 있습니다. IoU 정렬 시맨틱을 통해 컨볼루션 커널에 해당하는 가장 정확한 시맨틱 개념을 얻을 수 있습니다. 모든 컨볼루션 커널이 정확한 시맨틱을 가지고 있는 것은 아니라는 점에 주목할 필요가 있습니다. 이 방법은 최대 IoU가 0.04보다 큰 컨볼루션 커널만 시맨틱 해석이 가능하다고 가정합니다.

Broden 테스트 세트의 각 그림에는 색상 및 질감에서 개체 및 장면에 이르는 총 약 1,300개의 의미 개념을 포함하여 픽셀 수준에서 정확한 주석이 있습니다.

네트워크 해부 방법은 계층적 의미론적 해석 가능성 분석 및 서로 다른 네트워크의 해석 가능성을 비교하는 정량적 실험에 더 적용됩니다.




3. 역전파 기반 입력 재구성 시각화

입력 재구성 시각화에 대한 역전파 기반 접근법최적화 기반 접근법, 컨볼루션 커널의 특정 레이어의 활성화 강도 또는 마지막 분류 레이어의 예측된 출력 값을 최적화 및 증가시키는 것과 같은 특정 최적화 목표가 주어지면 역전파를 통해 입력 이미지를 반복적으로 업데이트하여 최적화 목표를 달성합니다.

입력 재구성 시각화 방법은 컨볼루션 커널에 해당하는 의미론적 개념을 대략적으로 생성할 수 있으므로 네트워크 내부에서 학습된 지식을 분석하는 데 편리합니다. 또한 이 방법은 그림 편집과 같은 시나리오에서도 사용됩니다. 입력이 임의 노이즈 그림이 아니라 특정 그림인 경우 역전파를 통해 그림을 최적화하면 그림의 로컬 의미 내용이 변경될 수 있습니다.

자세한 내용은 참조 기사 [5]를 참조하십시오.



4. 캠/졸업 캠

4.1 캠

CAM(Class Activation Mapping) 방법 [6] ^{[6]}[ 6 ]은
이미지 분류를 위한 일반적인 속성 방법이다이 방법은 예측 결과와 가장 관련성이 높은 입력 이미지 영역을 강조 표시할 수 있어 사람들이 예측 결과를 쉽게 알 수 있습니다.

논문에 따르면 CAM은이미지의 서로 다른 위치에 있는 시각적 패턴의 선형 가중 합계, 단순히 클래스 활성화 맵을 입력 이미지의 크기로 업샘플링하여 특정 클래스와 가장 관련이 있는 이미지 영역을 식별할 수 있습니다.

예를 들어 분류 작업을 위한 다음 CNN 네트워크의 경우 가장 왼쪽이 입력이고 중간에 많은 컨볼루션 레이어가 있습니다.
여기에 이미지 설명 삽입

GAP는 CAM에 어떻게 적용됩니까?

위의 예를 계속 살펴보십시오. 마지막 컨볼루션 레이어의 특징 맵 출력에 5개의 채널이 있고 GAP 후에 5 × 1 5 \times 1 이 된다고 가정합니다.5×1 벡터이고 각 요소는 채널에 해당하며 분류하려는 범주의 수가 2라고 가정하면2 × 5 2 \times 5가2×5 가중치 행렬 W.

(편향 항 b는 분류 성능에 거의 영향을 미치지 않으므로 여기에서 0으로 설정됩니다.)

o 1 = w 11 x 1 + w 12 x 2 + w 13 x 3 + w 14 x 4 + w 15 x 5 o_1 = w_{11}x_1 + w_{12}x_2 + w_{13}x_3 + w_{14}x_4 + w_{15}x_5영형1=11엑스1+12엑스2+13엑스3+14엑스4+15엑스5

o 2 = w 21 x 1 + w 22 x 2 + w 23 x 3 + w 24 x 4 + w 25 x 5 o_2 = w_{21}x_1 + w_{22}x_2 + w_{23}x_3 + w_{24}x_4 + w_{25}x_5영형2=21엑스1+22엑스2+23엑스3+24엑스4+25엑스5


출력 y ^ = softmax ( o ) \widehat{\pmb{y}} = softmax(\pmb{o})와이와이 .=그래서 f t 최대 x (영형o ) , 其中y ^ i = exp ( oi ) ∑ kexp ( ok ) \widehat{y}_i = \frac{exp(o_i)}{\sum_k exp(o_k)}와이 .=케이엑스피 ( _ _케이)엑스피 ( _ _)

범주 2에 해당하는 확률이 가장 크다고 가정하면 o 2 o_2영형2이 행의 가중치가 클수록 결과에 대한 이 채널 평균의 기여/중요도가 커집니다. 그리고 이 평균값은 특징 맵의 해당 채널에서 가져오므로 예측 결과에 대한 특징 맵의 다른 채널의 기여도를 알 수 있습니다.

따라서 해당 가중치를 사용하여 기능 맵의 해당 레이어를 곱합니다. 즉, w 1 × 레이어 1 + w 2 × 레이어 2 + ... + wn × 레이어 n = CAM w_1\times layer 1 + w_2\times layer 2 + ... + w_n\times layer n = CAM1×레이어 1+2×레이어 2+...+×레이어 n=씨엠 _ _

따라서 CAM은 이미지의 서로 다른 위치에 있는 시각적 패턴의 선형 가중 합계입니다.

일반적으로 특징 맵과 입력 이미지의 크기가 같지 않기 때문에 클래스 활성화 맵을 원본 이미지 크기로 업샘플링한 다음 원본 이미지에 중첩해야 네트워크가 출력하는 이미지 영역을 관찰할 수 있습니다.


4.2 Grad-CAM

논문: Grad-cam: 그래디언트 기반 현지화를 통한 딥 네트워크의 시각적 설명
코드 참조: https://github.com/jacobgil/pytorch-grad-cam

Grad-CAM [ 7 ] ^{[7]}[ 7 ] 정식 명칭은 Gradient-weighted Class Activation Mapping입니다. Grad-CAM은 CAM과 유사합니다. 특정 범주에 대한 네트워크의 관심 영역을 분석할 수 있습니다. 네트워크 관심 영역을 통해 네트워크가 올바른 기능이나 정보를 학습했는지 분석할 수 있습니다.

이전 작업 CAM과 비교하여 Grad-CAM은 네트워크 구조를 수정하거나 재교육하지 않고도 모든 구조의 CNN을 시각화할 수 있습니다.

Grad-CAM은 CNN의 마지막 컨볼루션 레이어로 흐르는 그래디언트 정보를 사용하여 특정 주의 결정을 위해 각 뉴런에 중요도 값을 할당합니다.

CNN의 마지막 컨볼루션 레이어로 유입되는 그래디언트 정보를 사용하는 이유:

아래 그림의 작업을 참조하십시오 Image Classification.먼저 네트워크는 기능 레이어 AA 를 얻기 위해 순방향 전파를 수행합니다.A (일반적으로 마지막 컨벌루션 레이어의 출력을 의미함) 및 네트워크 예측 값yyy (여기서는 softmax 활성화 전 값을 나타냄).

여기에 이미지 설명 삽입
범주에 대한 네트워크 의 예측 값이 ycy^ctiger cat 라고 가정하고 이 범주에 대한 네트워크의 관심 영역을 보고 싶다고 가정합니다.tiger cat와이c 다음에ycy^c와이c는 역전파를 수행하고 역전파 피처 레이어AAA 의 기울기 정보A'A' , 피처 레이어AAA 각 채널의 중요성. 그런 다음 R e LU ReLU를통해 가중 합계를 계산합니다.R e LU 면 충분하고 최종 결과는 Grad-CAM입니다.

ReLU : f( x ) = 최대값( 0 , x ) f(x) = 최대값(0,x)에프 ( 엑스 )=최대 x ( 0 ,x )

Grad-CAM의 요약은 다음 공식입니다.LG rad − CAM c = ReLU ( ∑ k α kc A k ) L^c_{Grad-CAM} = ReLU(\sum\limits_k \alpha^c_k A^k)학년 - C A M _ _ _=( _케이케이케이 )

안에:

  • AAA는 특정 피처 레이어를 나타내며 일반적으로 논문의 마지막 컨볼루션 레이어에서 출력된 피처 레이어를 말합니다.
  • ㅋㅋk는 피처 레이어AA를Ak번째k 채널
  • 참조c는 범주 cc를나타냅니다.
  • AK AK^Kk는 피처 레이어AA를Ak번째k 데이터 채널
  • α kc \alpha^c_k케이A k A^k 의 약자k 의 무게

가중치 α kc \alpha^c_k케이계산 공식은 다음과 같습니다.α kc = 1 Z ∑ i ∑ j ∂ yc ∂ A ijk \alpha^c_k = \frac{1}{Z}\sum\limits_i\sum\limits_j\frac{\partial y^c}{\partial A^k_{ij}}케이=1제이Aij케이y

안에:

  • ycy^c와이c는 범주 cc에 대한 네트워크를 나타냅니다.C 예측 점수(여기서는 소프트맥스 활성화가 없음)
  • A ijk A^k_{ij}ij케이피처 레이어 AA를 나타냅니다.A 는 채널kkk 의 좌표 는i , ji,j나는 ,위치 j 의 데이터
  • ZZZ 는 피처 레이어의 너비 × \times와 같습니다.× 높이

그래디언트를 찾기 위해 역전파를 사용하는 방법은 무엇입니까?

다음 예제는 매우 간단한 신경망을 구축합니다: 하나의 컨볼루션 레이어 + 하나의 완전 연결 레이어.

여기에 이미지 설명 삽입
산출:

y 1 = ffc ( fconv 2 d ( X , W 1 ) , W 2 1 ) y_1 = f_{f_c}(f_{conv2d}(X, W_1), W^1_2)와이1=에프에프.( 에프n v 2d _( 엑스 ,1) ,21)

y 2 = ffc ( fconv 2 d ( X , W 1 ) , W 2 2 ) y_2 = f_{f_c}(f_{conv2d}(X, W_1), W^2_2)와이2=에프에프.( 에프n v 2d _( 엑스 ,1) ,22)


컨볼루션 레이어의 출력을O = ( O 11 , O 12 , O 13 , O 14 ) TO = (O_{11}, O_{12}, O_{13}, O_{14})^T영형=( O11,영형12,영형13,영형14)T


( 여기서행렬은 벡터 형태로 확장됨)y 1 = ffc (O , W 2 1 ) = O 11 ⋅ W 2 11 + O 12 ⋅ W 2 12 + O 21 ⋅ W 2 13 + O 22 ⋅ W 2 14 y_1 = f_{f_c}(O, W^1_2) = O_{11} \cdot W^{ 11} _2 + O_{12} \cdot W^{12}_2 + O_{21} \cdot W^{13}_2 + O_{22} \cdot W^{14}_2와이1=에프에프.( ,21)=영형11211+영형12212+영형21213+영형22214


연후 对OO편미분의 경우 O :
여기에 이미지 설명 삽입








참고 :

[1] 可解释人工智能导论
[2] Zeiler MD, Fergus R. Convolutional network 시각화 및 이해[C]//컴퓨터 비전에 대한 유럽 회의. Springer, Cham, 2014: 818-833.
[3] Zhou B, Khosla A, Lapedriza A, 외. 사물 탐지기는 딥 씬 cnns[J]에서 나타납니다. arXiv 프리프린트 arXiv:1412.6856, 2014.
[4] Bau D, Zhou B, Khosla A, et al. 네트워크 해부: 깊은 시각적 표현의 해석 가능성 정량화[C]//컴퓨터 비전 및 패턴 인식에 관한 IEEE 회의 절차. 2017: 6541-6549.
[5] Olah C, Mordvintsev A, Schubert L. 기능 시각화[J]. 디스틸, 2017, 2(11): e7.
[6] Zhou B, Khosla A, Lapedriza A, 외. 차별적 지역화를 위한 심층 기능 학습[C]//컴퓨터 비전 및 패턴 인식에 관한 IEEE 회의 간행물. 2016: 2921-2929.
[7] Selvaraju RR, Cogswell M, Das A, 외. Grad-cam: 그래디언트 기반 현지화를 통한 딥 네트워크의 시각적 설명[C]//컴퓨터 비전에 관한 IEEE 국제 회의 절차. 2017: 618-626.

추천

출처blog.csdn.net/qq_42757191/article/details/126520372