우리는 앞서 이미지 분류를 위한 기본적인 레이어에 대해 살펴보았다.
여기서 우리는 더 깊은 이해를 위해 자료를 찾을 것이고
폴링 Pool Layer
에는 적어도 두가지 존재하는 것을 알게 된다.
❝ Max Pooling 과 Average Pooling 을 볼 수 있다. ❞
여기서 찾아보면
❝ Global Average Pooling 을 볼 수 있을 거다. ❞
같은 레이어 Layer
지만 개념과 목적이 다른
다소 혼란스러운 개념에 대해 이야기 해보고자 한다.
먼저 폴링 Pooling Layer
의 목적은 최적화 파라미터 개수를 줄이기 위함이다.
그러나 우리는 목적에 따라 폴링을 두가지 형태로 구현할 수 있다.
Max Pooling
Average Pooling
최대값 Max
을 활용하면 가장 두드러지는 특징을 찾을 수 있다고 했다.
❝ 그렇다. 최대값이라는 개념을 활용한다면 특징을 잘 찾아낼 수 있다. ❞
반대로 평균 Average
은 덜 중요한 요소를 포함할 수 있다.
❝ 그럼에도 왜 사용하는 것일까 ? 왜냐하면 분산을 사용할 수 있기 때문이다. ❞
평균과 분산 개념을 활용하여 물체 위치를 보다 쉽게 파악할 수 있기 때문이다.
따라서 우리는 객체 탐지 Object Detection
분야에서 Average Pooling
을 효과적으로 활용할 수 있다.
Flatten
은 다차원 데이터를 1
차원 데이터로 변경하는 역할을 한다고 했다.
❝ 그렇다면 Global Pooling 과 Flatten 어떤 연관성이 있을까 ? ❞
우선 Global Pooling
은 Pooling
과 달리 사진 한장을 하나의 숫자로 출력할 수 있다.
따라서 Flatten
의 출력과 Global Pooling
출력은 비슷하다.
다만 Max
또는 Average
개념을 포함시킬 수 있으며 출력 길이가 다른 특징이 있다.
또한 Global Average Pooling 은 이미지 설명에도 활용되며
Flatten
에 비해 성능이 좋다고 알려져있다.
한줄로 정리하자면
❝ Global Average Pooling 과 Flatten 은 같은 일을 하며 GAP 를 적용하면 성능 향상을 기대할 수 있다. ❞
추후 포스트에서 구현과 함께 보다 자세히 알아보도록 하자.
다음 포스트에서는 본격적으로 이미지 분류를 살펴볼 것이다.