이번장에서는 cnn에 사용되는 연산 중 하나인 pooling이라는 것을 배우게 될 것이다.
CNN을 보면 알수 있지만 중간 중간 POOL이라는 연산 층이 보인다.
이걸 하는 이유 그리고 방법에 대하여 알아볼 것이다.
Pooling 이란 sampling 이라고도 하며 한개의 layer를 작게 resize를 하는 방법과 같은 것이다.
그럼 어떤 방식으로하냐는 것은 sampling을 하듯이 각각의 layer에서 값을 뽑아내는 방식과 같다.
따라서 한개의 layer를 pooling을 해주게 되면 이미지가 작아지게 되며 깊이 layer의 수는 유지가 된다.
가장 많이 사용하는 방식은 max pool이다. 일정 필터의 크기중에서 가장 큰 값만 뽑아내는 것이다.(참고로 여기에서도 stride 개념이 사용된다. 위에 예시는 stride가 2 라서 저렇게 나온것이다.)
pooling에는 mean 평균을 사용하는 필터 등 다양한 방식이 있으니 차후에 궁금하면 알아보자
요즘은 mean 도 많이 사용한다고 한다.
당연히 저렇게 큰값만 뽑고 나머지는 버리니 이미지가 작아질 수 밖에 없다.
마지막으로 FClayer에 대하여 알아보겠다.
그럼 전반적인 cnn의 흐름은 conv라는 층을 거친 후 relu 연산을 거치고 conv ,relu , pool 과 같은 과정을 쭉 거치게 된다 그런후 마지막층 FC층에서 연산을 하게 되는 데 이러한 FC 층은 완전 연결 층이라고 하며 마지막 입력이 들어와 분류를 하는 작업을 진행하게 된다.
끝
반응형
'AI > 머신러닝(딥러닝) 정리' 카테고리의 다른 글
12. RNN (0) | 2022.05.07 |
---|---|
11-3. CNN case (0) | 2022.05.06 |
11-1. CNN (Convolutional Neural Networks) (0) | 2022.05.06 |
10-3. NN dropout and model ensemble (0) | 2022.05.05 |
10-2. Initialize weights in a smart way (0) | 2022.05.05 |