CS231n Lecture12 정리

류창훈·2023년 10월 8일

CS231n

목록 보기
13/16
post-thumbnail

12강은 활성 layer visualizing의 중요성에 대한 내용입니다.


이 강의에서 말한 시각화의 중요성을 정리하자면,

딥러닝이 동작하는 이유를 시각적으로 설명하기 위함
딥러닝 내부에서 어떤 동작을 하는지 설명하기 위함

입니다.






Alexnet, ResNet-18과 같은 복잡한 딥러닝 Layer를 살펴보면, layer를 많이 거치면 거칠수록,
직관적 무언가를 알아보기에는 굉장히 큰 어려움이 존재하는 것을 알 수 있습니다.

위와 같이, 이미지를 CNN에 넣고 학습을 시키게 되면, 유사한 이미지를 검출할 수 있습니다.



하지만, 마지막에 2차원 축소를 하게 되면,

이런식으로 군집화 되어있는 것을 확인할 수 있습니다.



그래서 모든 Layer에서 무슨 일이 일어나는지 알기 어렵다는 말은 틀립니다.

대략적으로는 알 수 있다.




다음으로,

모델이 어떤 부분에 주목하는지, 어떤 특징이 중요한지 파악하는 방법 몇 가지를 말했습니다.


정리하자면 다음과 같습니다.

Maximally Activating Patches
Occlusion Experiments
Saliency Maps
Gradient Ascent



Maximally Activating Patches

Maximally Activating Patches는 어떤 이미지가 각 뉴런들의 활성화를 최대치로 만드는지 확인하는 방식 입니다.


위의 그림은 Conv5의 17번째 채널을 예시로 든 것이며, 오른쪽의 출력 결과를 보면, 눈을 가장 활성화 한 것으로 추측할 수 있습니다.
그냥 어느정도 추측이지, 이것도 확실하지는 않다.


Occlusion Experiments

이 방식은 위의 코끼리 사진처럼 마스크 처리가 일부분 되어있는 것을 확인할 수 있습니다.

위 처럼, 마스크의 위치를 이리저리 옮겨가면서, 점수에 변화가 있는지, 없는지 확인하는 방식을 Occulation Experiments 라고 합니다.

이 방식에서도 또 세부 방식으로 나뉜다고 하는데, 그거까지는 잘 모르겠다...


Saliency Maps

Saliency Maps는 이미지의 한 픽셀을 보고, 그 부분이 최종 예측에 얼마나 영향을 끼치는지 알아보는 방식 입니다.


성능이 그닥 좋지는 않다고 한다.


Gradient Ascent

이 방식은 전에 나왔던 backpropagation 방식을 feature 시각화에 적용한 방식입니다.

기울기를 구할 때, 역전파 (backpropagation)로 구했었는데, 여기서 weight값을 고정하고, 입력 image를 찾는 방식을 Gradient Ascent 라고 합니다.


방식을 정리하자면,

1. 첫 입력 이미지를 0으로 초기화
2. 이미지의 현재 스코어 계산
3. 이미지를 픽셀 단위로 쪼개고, backpropagation해서 기울기 계산
4. 업데이트(계속 반복)

위의 과정을 거치게 됩니다.






DeepDream

DeepDream 방식은 신경망이 학습한 패턴을 시각화하고, 이미지에 새로운 패턴을 생성하는 기술을 말합니다.


이 방식을 4가지 과정으로 정리하자면,

1. 입력된 이미지를 CNN계층 중간까지만 통과
2. 기울기 저장
3. backpropagation으로 이미지 업데이트
4. Repeat !

이 방식으로 창의적인 이미지 여러개를 뽑아낼 수 있다고 합니다.


이전까지 나왔던 이미지 활성화 layer 시각화와는 조금 다른 느낌인데, 그냥 응용 기술이라고 보면 될 것 같다.


Feature Inversion

Feature Inversion 방식을 통해 각 layer에서 어떤 특징이 포착되고 있는지 짐작 가능합니다.

지정한 layer에서 activation map을 추출하고, 이걸 갖고 위의 그림처럼 이미지를 재구성하는 방식입니다.



Texture Synthesis

텍스트 합성 방식입니다.

지정 layer에서 위의 방식처럼 Activation Map을 추출하고, 'Gram Matrix'를 생성합니다.

여기서 Gram Matrix는 다른 공간에 있는 Channel을 가지고, 계산 후에 새로운 Matrix를 생성하는 것입니다.


기존 방식보다 계산측면에서 참 좋은 방식이라고 한다.


Neural Style Transfer

말 그대로 스타일 변형 입니다.

예술적으로 합성한 것으로 보면 되고,

이 방식은 새로운 이미지 생성에, Control 해줘야 할 것이 참 많다고 합니다.

또한 순전파, 역전파 과정을 반복해야하는 까닭에 이미지 생성에 속도가 상대적으로 느리다는 단점을 갖고 있습니다.




감사합니당 ~ 🦾





참고자료
https://www.youtube.com/playlist?list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv
http://cs231n.stanford.edu/2017/syllabus
profile
Vision AI Researcher

0개의 댓글