📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다.


목차

  1. Filter와 Kernel의 구분
  2. Kernel size 특징
  3. Kernel size와 Receptive field
  4. Feature Map
  5. CNN에서 Filter 값의 결정

Filter와 Kernel의 구분

 

  • CNN에서 FilterKernel은 거의 혼용되어서 사용된다.
  • 하지만 명확히 구분하자면 필터는 여러개의 Kernel로 구성되어 있으며 개별 Kernel은 필터내에서 서로 다른 값을 가질 수 있다.
  • kernel의 개수가 바로 channel의 개수이다.

 

Conv2D(filter=32, kernel_size=3)(input_tensor) : 3x3 인 정방행렬을 가지는 필터 32개를 input_tensor에 적용하겠다.


Kernel size 특징

  • Convolution Filter 를 Kernel로도 지칭.
  • Kernel Size(크기)라고 하면 면적(가로x세로)을 의미하며 가로와 세로는 서로 다를 수 있지만 보통은 일치시킨다.
  • Kernel 크기가 크면 클수록 입력 Feature Map(또는 원본 이미지)에서 더 큰(또는 더 많은) Feature 정보를 가져올 수 있다.
  • 하지만 큰 사이즈의 Kernel로 Convolution 연산을 할 경우 훨씬 더 많은 연산량과 파라미터가 필요하다.

Kernel size와 Receptive field

Receptive Field

 

Receptive Field : 입력 (Image 또는 Feature map) 에서 Feature 를 만드는 영역의 기본 크기 (Size)

 

레이어를 한층 한층 더 들어갈수록 하나로 합쳐지게 된다.

결국 마지막 레이어에서는 처음 input 데이터의 5x5의 정보를 모두 다 가지고 있다.

따라서 Receptive field에는 Kernel size가 모두 mapping이 된다고 볼 수 있다.


Feature Map(Activation Map)

Convolution layer를 적용할 때마다 새로운 Feature map이 만들어진다.

그러면 원본 Feature map의 크기가 줄어들고, 개수는 똑같다.

다음에는 Filter가 6개인 Convolution을 적용한다.

 

즉, Convolution 연산을 거칠때마다 결과로 나오는 것이 Feature map 이다.

 

이렇게 서로 다른 Filter를 적용하여 여러개의 Feature map을 생성한다.


CNN에서의 Filter 값 결정

  • 일반적으로 Vision영역에서 filter는 사용자가 목적에 맞는 특정 필터를 스스로 만들거나 기존에 설계된 다양한 필터를 선택하여 이미지에 적용한다.
  • Deep Learning CNNFilter값을 사용자가 만들거나 선택할 필요 없다. Deep Learning Network 구성을 통해 이미지 분류 등의 목적에 부합하는 최적의 filter값을 학습을 통해 스스로 최적화 한다.

 

예를 들어 웨딩 사진의 카메라는 웨딩 사진에 맞게끔 필터가 적용되어 있다.

그러나 딥러닝에서는 필터값이 사실은 정해져 있지 않고 랜덤으로 정해진다. 

사용자가 필터를 설정할 필요 없이 딥러닝이 자동으로 필터값을 최적화 시킨다.

 

'🖼 Computer Vision > CNN' 카테고리의 다른 글

CNN - Conv2D 와 Pooling 적용 실습  (0) 2022.02.18
CNN - Stride, Padding, Pooling  (0) 2022.02.15
CNN - Convolution 연산의 이해  (0) 2022.02.15
CNN - Callback  (0) 2022.02.14
CNN - Fashion_MNIST 분석  (0) 2022.02.12
복사했습니다!