본문 바로가기

CNN3

Various Normalizations on CNN Normalization 기법은 Batch normalization 부터 시작하여 다양하게 분화되고 사용되고 있다.이러한 normalization 기법들이 CNN에서 어떻게 적용되는지 확인해보도록 하자.  기본적으로 normalization은 feature들에 대해서 scaling을 해주는 것이다.그리고 각 기법에 따라 어떤 feature를 대상으로 normalization을 할지가 달라지게 된다. CNN은 convolutional filter를 통해서 이미지로부터 여러 feature map을 얻게된다. CNN에서의 normalization은 이 feature map의 값에 대해서 적용한다.feature map에 대해 각각 normalization이 어떻게 적용되는지를 시각화해보면 아래와 같다.  Bat.. 2024. 8. 7.
CNN Filter Visualization DNN(Deep Neural Network)은 성능면에서는 이미 검증이 된 머신러닝 기법이다.하지만 DNN이 어떠한 결론을 내렸을 때 어떠한 과정을 통해 그러한 결론을 내렸는지를 이해하는 것도 중요하다. 이번 포스팅에서는 CNN이 이미지에서 어떻게 물체를 인식하는지를 확인하기 위해 CNN 필터가 반응하는 패턴을 시각화하는 방법에 대해 알아보도록 하겠다. (예제 코드는 여기에서 확인할 수 있다) Concept먼저 필터가 어떤 패턴에 반응하는지를 확인하려면 어떻게 해야할까?필터의 출력인 활성화 값을 최대화시키는 이미지 데이터를 찾으면 된다.그 이미지는 필터의 패턴에 가장 많이 반응하는 것이기 때문에 해당 필터의 패턴을 나타내는 이미지라고 볼 수 있을 것이다. 그러면 활성화 값을 최대화시키는 이미지 데이터.. 2024. 6. 16.
CNN에서 layer가 깊어질 수록 channel size를 키우는 이유 아래와 같이 많은 CNN 기반 모델들이 layer가 깊어질 수록 channel size를 점점 늘려주는 형태를 갖는다.물론 실험적으로 증명되었기 때문에 굳어진 하나의 패턴이겠지만 왜 이런 구조를 사용하게 되었을까?  그 이유와 관련해서는 크게 2가지 의견이 있다. 1. Convolution layer와 Pooling layer를 거치면서 줄어든 feature map의 만큼 정보의 양이 줄어드는데,    channel size를 늘려줌으로서 줄어든 정보의 양을 보상시켜준다는 것이다. 2. CNN에서 앞단의 레이어에서는 저차원적인 패턴(e.g. 엣지, 코너 등)을 학습하고, 뒷단의 레이어에서는 앞단의 패턴을 결합하여 통해 좀 더 고차원적인 패턴(e.g. 특정 물체의 부분, 신체 부위 등)을 학습하게 된다. .. 2024. 5. 31.