Loading...
2023. 6. 24. 01:53

CNN visualization6 - grad CAM -

1. motivation ResNet과 GoogleNet은 이미 CAM구조를 가지고 있어서 상관없는데 AlexNet은 global average pooling이 아닌 flatten을 사용했고 fully connected layer도 2개나 사용 이것을 억지로 CAM 구조로 바꾸고 사용한다면 모델 구조가 바뀌면서 parameter size가 호환이 안될 수 있는 문제부터 재학습까지 해야하고 결과적으로 전체적인 모형 성능이 떨어질 수 있음 그래서 특별히 구조를 변경하지도 않고 재학습도 하지 않으면서 CAM을 뽑는 괴물같은 방법이 등장했다 image를 넣으면 CAM처럼 어디 보고 고양이나 개를 판별했는지 heatmap을 그려준다 당연하지만 guided backpropagation saliency map보다 해..

2023. 6. 24. 01:26

CNN visualization5 - Class Activation Map(CAM) -

1. motivation 주어진 이미지의 어떤 부분을 특히 참조하여 class를 판단했는지 heatmap 형태로 표현 이것의 또 다른 의미는 중요한 부분을 bounding box로 처리하여 사용할 수도 있다는 점 색이 잘 나온 부분을 bounding box로 처리하여 사용할 수도 있다 2. CAM 구조 convolutional layer를 최종적으로 통과하고 나온 feature map을 global average pooling(gap)을 통과시키고 fully connected layer를 통과시켜 task를 하는 부분을 CAM 구조라고 한다 3. idea CNN을 통과하면 k개의 channel을 가지는 feature map이 나온다고 하자 global average pooling이란 그러한 feature..

2023. 6. 21. 02:08

CNN visualization3 - occlusion map & backpropagation saliency map

1. occlusion map 1-1) motivation 이제부터는 모형이 특정 입력을 어떻게 바라보고 출력을 내는지 알아볼 것 saliency test라는 것은 각 이미지의 class를 판정하기 위해 모델이 중요하게 생각하는 부분들을 알아보는 과정 1-2) occlusion map 주어진 코끼리 이미지에서 occlusion patch라는 것으로 가려서 모델에 넣어줌 동일한 코끼리 이미지를 서로 다른 occlusion patch로 가렸을 때 각각이 코끼리라고 분류할 조건부 확률을 구해본다면 당연하지만 코끼리로 판단하는데 중요한 부분을 가릴수록 코끼리라고 할 확률이 떨어진다 occlusion patch로 어디를 가리느냐에 따라 score가 다르다. 중요한 부분을 가리면 score가 급격하게 떨어지고 큰 ..

2023. 6. 20. 02:35

CNN visualization2 - layer activation & class visualization

1. layer activation mid level feature와 high level feature를 분석하는 방법 모델의 layer의 activation map을 분석하여 layer가 어디에 집중하고 있는지를 파악하고자 했다 1-1) idea 분석하고자하는 특정 CNN layer의 채널을 선택 예시로 conv5 layer의 256개 채널중 14번째 채널을 선택 convolutional layer의 채널은 이미지를 받으면 그 이미지에 대해서 hidden node들이 얼마나 반응하는지 계산한 activation map을 출력한다 이미지를 넣어서 선택한 layer의 채널의 activation map을 저장 maximum activation value의 receptive field에 해당하는 input i..

2023. 6. 18. 01:46

Nearest neighbor search vs. t-sne를 이용한 차원 축소 기법

1. Nearest neighbor search - idea high level에서 나온 feature에 대한 분석 여러가지 이미지 데이터를 주고 데이터 베이스에 저장된 데이터중 이들과 가장 비슷한 데이터를 유사도에 따라 정렬 왼쪽이 input으로 준 이미지 데이터이고 오른쪽이 유사한 정도에 따라 정렬한 결과 이 결과를 잘 살펴보면 코끼리 같은 경우 코끼리라는 의미로 비슷한 이미지들이 clustering되어있는 것을 확인 가능 이 모형이 이미지의 의미를 잘 파악했구나로 생각 가능하다 비슷한 이미지 검색을 어떻게 했을지 생각해본다면 단순하게 두 이미지 사이에서 대응하는 pixel별로 거리가 가까운 걸 고를수있는데 그렇게 한 경우 마지막 줄에 주어진 개 이미지의 경우 포즈가 거의 비슷한 개만 출력해야하는데 ..

2023. 6. 18. 01:18

CNN visualization1 - First filter visualization

1. CNN visualization의 기본 CNN은 단순히 학습가능한 convolution layer와 nonlinear activation의 연속으로 이루어진 연산기 학습을 잘하면 인간 성능 이상으로 좋은 성능을 보이기도 하는데 도대체 왜 잘되는 걸까? 단순히 학습을 하니까? 학습을 통해 convolution filter은 도대체 무엇을 배우길래 잘하는 걸까? 혹은 어떤 경우는 쉽게 안되는 경우도 많고 성능도 잘 안나오는 경우도 많은데 그것은 왜 안되는걸까? CNN이라는 건 입력이 주어지면 출력이 나오는 black box같은 기계로 생각할 수 있다 왜 안되는지 알고자 그 안을 뜯어보면 복잡한 가중치와 복잡한 연결들로 이루어져 사람이 이해하기가 어렵다 만약 CNN안에서 무슨 일이 일어나는지 사람이 이해..