✨Visualizing & Understanding

­3zu·2022년 6월 16일
0

딥러닝

목록 보기
15/18
post-thumbnail

Visualize filters of last layer

Filter의 값을 feature라고 한다.

AlexNet이 학습되어 있으면 image 넣어보면 feature를 얻을 수 있음.
AlexNet은 classifier이기 때문에 같은 picture마다 비슷한 feature가 나옴.

같은 코끼리를 담은 그림이어도 엄청나게 차이가 나는 information을 가지고 있는데 그림 자체가 굉장히 큰 transform이 있는데 feature space에서는 굉장히 닮음.

Feature상에서 similarity가 높다는 것은 같은 class로 분류되었을 것이란 의미임.
AlexNet은 classifier니까.

Feature의 dimension을 2차원으로 줄이기 위해서 가장 쉬운건 앞의 2개만 남겨두고 나머지는 버리는거임.
4096개의 정보를 최대한 많이 남기고 줄일수록 좋은데 3차원 5차원 다 가능하지만 visualization을 위해 2차원으로 줄이는데 같은 class의 image는 feature map이 비슷한 위치에 grouping됨.
feature map이 grouping됨!

Dimension을 낮출 때 비슷한, 같은 class의 애들이 근처로 grouping되도록 찢어야함.
최대한 비슷한 애들이 근처에 위치하도록.

Which Pixels Matter: Saliency via Occlusion

특정 부분을 masking out 해서 loss가 변하는지 비교한다.

바닥을 가려도 elephant일 확률은 0.95이기 때문에 바닥은 classification에 중요한 부분이 아니다.
하지만 코끼리의 얼굴을 가리면 elephant일 확률이 0.75로 상당히 감소하기 때문에 이 부분은 classification에 중요한 부분이다.

이런 식의 확률값을 표현하는 것을 hitmap이라고 한다.
확률이 높을 수록 진한 색으로, classification에 중요한 부분이다.

이전과 똑같은 방법을 다르게 씀.
Input image를 그냥 숫자로 생각하면 input image의 값들이 바뀔 때 loss가 얼마나 바뀌는지 체크할 수 있고 그게 gradient임.
Input의 값이 바뀔 때 loss가 어떻게 바뀌는지 관찰함. dw가 아니라 dL/d_input 이런 식으로.

Gradient magnitude를 계산해서 밝은 영역은 gradient가 크고 어두운 영역은 gradient가 작음.
밝은 영역을 건드리면 변화가 크기 때문에 중요한 부분임. 그리고 그 흰색 영역이 object 영역과 비슷함. 이 부분을 건드리면 loss가 크게 변함.
이 방법을 쓰면 masking할 부분의 크기 같은걸 고려할 필요가 없음.

Visualizing CNN Features: Gradient Ascent

Loss를 낮추는 image를 찾는게 아니라 score를 maximize하는 imsage를 찾고 싶어서 gradient ascent임.


입력 image를 input이라고 생각하는데 그걸 zero라고 생각하고 변수로 두고 계속 training함. image를 계속 update하면 아래와 같은 image가 얻어짐.

AlexNet은 이 이미지들에 가장 높은 점수를 줌.

0개의 댓글