수학/딥러닝 이론

[딥러닝] 합성곱 신경망(CNN) - 배치 처리와 풀링 계층

AI 꿈나무 2020. 10. 4. 22:55
반응형

사이토고키의 <밑바닥부터 시작하는 딥러닝>을 공부하고 정리해보았습니다.

 


 

 

[딥러닝] 합성곱 신경망(CNN) - 3차원 데이터의 합성곱 연산 - 가중치와 편향

사이토고키의 <밑바닥부터 시작하는 딥러닝>을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리��

deep-learning-study.tistory.com

 이전 포스팅에서는 3차원 데이터의 합성곱 연산에 대해서 공부했습니다.

 이번에는 합성곱 신경망에서 배치 처리와 풀링 계층에 대해서 알아보겠습니다.

 

1. 배치 처리

 신경망 처리에서는 입력 데이터를 한 덩어리로 묶어 배치로 처리했습니다.

 완전연결 신경망을 구현하면서는 이 방식을 지원하여 처리 효율을 높이고, 미니배치 방식의 학습도 지원하도록 했습니다.

 

 합성곱 연산도 마찬가지로 배치 처리를 지원하고자 합니다.

 그래서 각 계층을 흐르는 데이터의 차원을 하나 늘려 4차원 데이터로 저장합니다.

 구체적으로는 데이터를 (데이터 수, 채널 수, 높이, 너비) 순으로 저장 합니다.

 

 데이터가 N개 일 때 배치 처리한다면 데이터 형태가 다음과 같이 됩니다.

 

합성곱 연산의 처리 흐름(배치 처리)

 

 배치 처리 시의 데이터 흐름을 나타낸 위 그림을 보면 각 데이터의 선두에 배치용 차원을 추가했습니다.

 이처럼 데이터는 4차원 형상을 가진 채 각 계층을 타고 흐릅니다.

 

 여기에서 주의할 점으로는 신경망에 4차원 데이터가 하나 흐를 때 마다 N개에 대한 합성곱 연산이 이뤄진다는 것 입니다. 즉, N회 분의 처리를 한 번에 수행하는 것 입니다.

 

2. 풀링 계층

 풀링은 세로, 가로 방향의 공간을 줄이는 연산입니다.

 예를 들어 아래 그림과 같이 2 X 2 영역을 원소 하나로 집약하여 공간 크기를 줄입니다.

 

 또한 합성곱 계층을 거쳐서 활성화 함수 계층 다음 위치로 설계합니다.

 

최대 풀링의 처리 순서

 

 위 그림은 2 X 2 최대 풀링(max poling, 맥스 풀링)을 스트라이드 2로 처리하는 순서입니다.

 최대 풀링은 최댓값을 구하는 연산으로, '2 X 2'는 대상 영역의 크기를 뜻합니다.

 즉 2 X 2 최대 풀링은 그림과 같이 2 X 2 크기의 영역에서 가장 큰 원소 하나를 꺼냅니다.

 

 또, 스트라이드는 이 예에서는 2로 설정했으므로 2 X 2 윈도우가 원소 2칸 간격으로 이동합니다.

 

 참고로, 풀링의 윈도우 크기와 스트라이드는 같은 값으로 설정하는 것이 보통입니다.

 예를 들어 윈도우가 3 X 3이면 스트라이드는 3으로, 윈도우가 4 X 4이면 스트라이드를 4로 설정합니다.

 

 풀링은 최대 풀링 외에도 평균 풀링(average pooling) 등이 있습니다.
 최대 풀링은 대상 영역에서 최댓값을 취하는 연산인 반면, 평균 풀링은 대상 영역의 평균을 계산합니다.
 이미지 인식 분야에서는 주로 최대 풀링을 사용합니다.
 그래서 이 책에서 풀링 계층이라고 하면 최대 풀링을 말합니다.

3. 풀링 계층의 특징

 풀링 계층의 특징에 대해 알아보겠습니다.

 

1. 학습해야 할 매개변수가 없습니다.

 풀링 계층은 합성곱 계층과 달리 학습해야 할 매개변수가 없습니다.

 풀링은 대상 영역에서 최댓값이나 평균을 취하는 명확한 처리이므로 특별히 학습할 것이 없습니다.

 

2. 채널 수가 변하지 않습니다.

 풀링 연산은 입력 데이터의 채널 수 그대로 출력 데이터로 내보냅니다.

 채널마다 독립적으로 계산하기 때문입니다.

 

3. 입력의 변화에 영향을 적게 받습니다.

 입력 데이터가 조금 변해도 풀링의 결과는 잘 변하지 않습니다.

 예를 들어 아래 그림은 입력 데이터의 차이(데이터가 오른쪽으로 1칸씩 이동)를 풀링이 흡수해 사라지게 하는 모습을 보여줍니다.

 

입력 데이터가 가로로 1원소만큼 어긋나도 출력은 같습니다.

 

반응형