Day 25: 8-4, 8-5 Padding, stride, pooling and CNN feature map

2023. 3. 16. 23:24딥러닝 이론

오늘 공부한 내용은 ch. 8-4, 8-5 CNN에 관한 내용들입니다:

- ch. 8-4 padding, strinde, and pooling

- ch. 8-5 CNN feature map분석

 

이제 갈 길이 멀지 않았네요. 이번에는 convolution말고도 CNN의 다른 요소들을 공부해봐요.

1. ch. 8-4 padding, stride, and pooling

Padding은 말 그대로 convolution을 할 때 image에 대해 padding을 넣어 주는 것입니다. Padding = 2면 2겹의 padding을 입어 줘서 convolution을 할 때 image size가 유지되도록 하는 것입니다. 물론 가장자리에 있는 부분 (padding이 있는 부분)은 의미가 덜 하겠지만 이건 padding을 쓰는 부작용이라 할 수 있겠습니다. Convolution작업을 너무 많이 거치고 나면 이미지가 거의 없어지는 일이 없도록 padding을 keep하면 됩니다.

 

 

Stride는 convolution마다 간격을 얼마로 정할 것인가를 정하는 parameter입니다. 지금까지는 그냥 1으로 가정하고 공부를 했지만 사실은 자기가 정하는 것입니다. Square이미지를 가정하면 일반적으로 vertical, horizontal stride를 통일 합니다. Stride가 높으면 당연히 convolution후의 size는 줄어들 것입니다.

 

마지막으로 Pooling입니다. Pooling은 max pooling, average pooling이 있는데 이는 convolution과 별개로 image의 max나 average를 대표로 정하는 것입니다. 사진을 보면 이해가 쉬울 것 같네요:

2. ch. 8-5 CNN feature map분석

Feature map은 쉽게 말해 convolution -> pooling -> convolution -> pooling을 여러번 돌린 후 받는 결과값입니다. Convolution을 결과값을 보면 AI가 어떤 이미지를 어떻게 해석 하고 있는냐를 볼 수 있어 재밌고 직관을 갖는데에 큰 도움이 됩니다.

Feature map은 보통 low-level features, middle-level features, high-level features로 나누는 경우가 있는데 이는 해석에 따라 주관적입니다.

 

그럼 오늘 여기까지 하겠습니다. 수고하셨습니다~