스터디/AI

[논문] Evaluation of Pooling Operations in Convolutional Architectures for Object Recognition

_leezoee_ 2023. 1. 29. 23:53

ann, cnn 강의 도중 참고하면 좋은 논문들이 있어서 읽어보았다.

영어로 되어있기 때문에 띄엄띄엄 한국어로 번역하고, 내용서치와 대략적인 이해에 중점을 두었다.(오역주의)

 

제목은 Evaluation of Pooling Operations in Convolutional Architectures for Object Recognition (객체 인식을 위한 컨볼루션 아키텍처의 풀링 작업 평가)로 저자는 Dominik Schere, Andereas Muller, Sven Behnke 이다.

 

Scherer, Dominik, Andreas Müller, and Sven Behnke. "Evaluation of pooling operations in convolutional architectures for object recognition." Artificial Neural Networks–ICANN 2010: 20th International Conference, Thessaloniki, Greece, September 15-18, 2010, Proceedings, Part III 20. Springer Berlin Heidelberg, 2010.

 

 

요약

객체 인식 모델에서 불변 기능을 얻는 일반적인 방법은 작은 이웃에 대해 여러 하위 수준 기능을 집계하는 것이다. 그러나 이러한 모델 간의 차이로 인해 서로 다른 집계 함수의 속성을 비교하기 어렵다. 우리의 목표는 몇 가지 일반적인 객체 인식 작업에 대한 고정 아키텍처에서 직접 비교하여 다양한 기능에 대한 통찰력을 얻는 것이다. 경험적 결과는 최대 풀링 작업이 서브샘플링 작업보다 훨씬 뛰어난 성능을 보인다는 것을 보여준다. 이동 불변 속성에도 불구하고 겹치는 폴링 창은 비연속 풀링 창에 비해 크게 개선되지 않는다. 이 지식을 적용하여 NORB normalized-uniform 데이터 세트에서 4.57%, NORB jittered-cluttered 데이터 세트에서 5.6%의 최신 오류율을 달성했다.

 

 

관련작업

LeNet-5 같은 컨볼루션 신경망(CNN)에서 시프트 불변성은 서브샘플링 계층으로 달성된다. 이 층의 뉴런은 이전 층의 작은 겹치지 않는 수용 필드로부터 입력을 받는다. 각 뉴런은 입력의 합을 계산하고, 훈련 가능한 계수를 곱하고, 훈련 가능한 편향을 추가하고, 비선형 전달함수를 통해 결과를 전달한다. 반복되는 신경 추상화 피라미드[1]에서 비슷한 계산이 수행된다.
최근 CNN의 서브샘플링 작업은 최대 풀링 작업으로 대체 되었다. 여기서, 수용필드 내의 최대 값만 다음 레이어로 전파 된다. 
 ... Gist 모델 설명, SIFT(스케일 불변기능 변환) 키포인트 설명자 ...

[1. 신경추상화 피라미드]

 

 

 

모델 아키텍처

컨볼루션 신경망(CNN)의 틀 내에서 평가를 수행.CNN은 손글씨 숫자 인식, 얼굴 탐지, 구글 스트리트뷰에서 얼굴과 번호판을 난독화 하기 우해 상업 시스템에 배치된다.

3.1 기본모델
CNN은 고해상도로 로컬 기능을 추출하고 더 낮은 해상도에서 더 복잡한 기능으로 연속적으로 결합하는 다단계 Hubel-Wiesel 아키텍처의 대표이다. 공간 정보의 손실은 상위 계층에서 증가하는 속성 맵의 수로 보상된다. CNN은 컨볼루션 레이어(C layers),  풀링 레이어(P layers)로 구성된다. 컨볼루션 레이어는 필터 커널을 사용해 소스 이미지에서 이산 2D 컨볼루션 작업을 수행하고 비선형 전송 기능을 수행한다. 풀링 레이어는 작은 공간 이웃의 뉴런을 요약해 입력의 크기를 줄인다. CNN을 선택한 주된 이유는 주로 레이어 풀링으로 수행된 작업이 아키텍처를 수정하지 않고 쉽게 교환할 수 있다는 사실이다.

3.2 컨볼루션 레이어
컨볼루션 레이어의 순전파, 역전파에 대한 계산은 표준 절차를 따르며 속성 맵 당 훈련 가능한 필터와 하나의 훈련 ㄱ능한 바이어스가 있다. 하이퍼볼릭 탄젠트 함수는 활성화 함수로 적용된다. 본 연구는 특정 맵 간의 희소한 연결이 매개변수의 수가 같은 한 완전히 연결된 특징 맵에 비해 인식 성능을 향상시키지는 않는다고 보여주었고, 컨볼루션 레이어에서 각 맵은 이전의 모든 속성에 연결되어있다고 가정한다.

3.3 풀링 레이어
풀링 레이어의 목적은 피처 맵의 해상도를 줄임으로 써 공간 불변성을 달성하는 것이다. 풀링된 각 속성 맵은 이전 레이어의 하나의 속성 맵에 해당한다.

3.4 역전파
cnn모델의 모든 계층은 오차역전파 알고리즘을 사용해 훈련된다. 완전 연결된 컨볼루션 및 하위 샘플링 계층의 오차 전차 및 가중치 적응을 위해 본 연구는 표준절차를 따른다. 

 

 

 

실험 결과

본 연구의 목적은 세가지 이다.
① 최대 풀링이 서브샘플링보다 우수하다는 것을 증명
② 겹치는 풀링 창이 인식 성능을 향상시킬 수 있는지 결정
③ 절절한 창 기능을 찾기 위해 모든 연구는 명시되지않는 한 무작위 초기화로 실행
본 연구는 CUDA 프레임워크를 사용해 GPU 환경에서 실험되었다고 한다.

4.1 데이터셋
본 연구는 Caltech-101 및 NORB 데이터 세트에서 풀링 작업을 평가했다.
Caltect-101 데이터 세트는 101개의 객체 범주와 하나의 배경 범주로 구성되어있고, 약 300*300 픽셀에 대한 다양한 크기의 총 9144개의 이미지가 있다. 본 연구는 종횡비를 유지하면서 140*140 이미지 프레임에 맞게 이미지를 사전처리 하였다. 패딩은 각 색상 채널의 이미지 평균으로 채워졌다. 이미지 가장자리로 인한 부작용을 제거하기 위해 이미지 테두리를 패딩으로 페이드 하였다. 결과 이미지는 학습을 가속화 하기 위해 평균이 0, 분산이 1이 되도록 채널당 정규화 되었다.

4.2 최대폴링 vs 서브샘플링
본 연구에서 NORB의 경우 96*96 크기의 두 개의 속성 맵이 있는 입력 레이어는 5*5필터와 92*92 크기의 16개의 맵이 있는 컨볼루션 레이어 C1이 뒤따른다. P2는 크기를 23*23으로 줄이는 4*4 풀링 레이어이다. 컨볼루션 레이어 C3는 6*6필터를 사용하며 18*18 픽셀 크기의 32개의 지도를 가지고 있다. 3*3 풀링 창이 있는 풀링 레이어 P4는 100개의 숨겨진 뉴런에 완전 연결된 6*6개의 속성 맵을 산출한다. 출력 레버는 100개의 뉴런 모두에서 입력을 받고 5개의 뉴런으로 객체 클래스를 인코딩힌다. 
[컨볼루션과 풀링 레이어로 구성된 NORB 실험을 위한 CNN 아키텍쳐. 풀링 레이어로 서브샘플링 or 최대 풀링을 구현할 수 있다.]


네트워크의 두 가지 변형이 훈련되었다. 첫 번째의 경우, 풀링 레이어는 서브 샘플링 작업을 수행했고, 두 번째 경우 최대풀링으로 대체되었다. 하위 샘플링 네트워크는 훈련 가능한 스칼라와 편향으로 인해 약간 더 많은 매개 변수를 가지고 있다. 60개의 패턴의 배니 미니 배치로 1000개의 역전파 훈련을 한 후, 인식률 사이에는 현저한 불일치가 있다. 각 네트워크에 대해 무게 초기화가 다른 다섯번의 시험이 수행되었고, 평균오차율과 표준편차를 측정하였다. 서브샘플링 네트워크는 최대풀링 네트워크 5.22%(+- 0.52%)에 비해 7.32%(+- 1.27%)의 테스트 오차율을 보였다.

Caltech-101의 경우, 입력 계층은 크기 140*140의 세 가지 속성 맵으로 구성되어 있으며, 16*16 필터와 16가지 속성 맵이 있는 컨볼루션 레이어 C1이 이어진다.
후속 풀링 레이어 P2는 5*5 겹치지 않는 풀링 창이 있는 125*125 맵을 25*25픽셀 크기로 줄인다. 컨볼루션 층 C3 6*6필터는 크기 20*20의 128개의 속성 맵으로 구성되어있다. 풀링 레이어 P4는 5*5 겹치지 않는 풀링 창을 사용한다. 크기 4*4의 128개 특징 지도의 뉴런은 102개의 출력 단위에 완전 연결 되어있다.
서브샘플링 작업을 사용한 네트워크는 65.9%의 테스트 오차율을 달성하였고, 최대 풀링 작업을 사용한 네트워크는 55.6%의 오차율을 달성하였다.
 NORB와 Caltech-101 모두 최대 풀링 작업을 가진 아키텍처가 서브샘플링 작업을 가진 아키텍처보다 좋은 성능을 보였다.

4.3 겹치는 풀링 윈도우
본 연구는 겹치는 풀링 창의 단계 크기가 인식 속도에 어떤 영향을 미치는지 평가하기 위해 이전과 동일한 아키텍처를 사용해 진행했다.
그러나 스텝 크기를 조정하면 속성 맵의 크기와 훈련 가능한 매개변수의 총 수와 완전 연결된 가중치와 공유 가중치 사이의 비율이 변경 된다.  따라서 그에 따라 입력 속성 맵의 크기를 늘리고, 입력 패턴을 속성 맵의 중앙에 배치하고 제로 패딩을 실시 하였다. 예를 들어, NORB 아키텍처에서 두 단계 크기를 선택하면 입력 속성 맵은 106*106 크기이다.
스텝 크기가 증가하면 성능이 저하된다. 이것은 풀링 윈도우가 겹치면 정보 이득이 없다는 사실 때문일 수 있다. 겹치는 창 영역의 최대는 다음 레이어에서 복제될 뿐이며 이웃 픽셀은 더 큰 상관관계가 있다.

4.4 창 기능
입력 이미지의 작은 변형과 풀링 창의 테두리를 지나는 이동은 표현을 극적으로 바꿀 수 있다. 이러한 이유로 본 연구는 더 부드럽고 겹치는 풀링 창을 가지고 실험했다. 창 기능은 종종 신호처리 응용 프로그램에서 입력 신호를 부드럽게 하는데 사용된다.
NORB와 Caltech-101 창 기능을 다르게 한 결과  가장자리에 overlapping 창 기능을 적용하는 것은 no overlap보다 지속적으로 더 안좋은 오차율을 보였다.

 

4.5 다른 데이터 세트에 대한 결과
본 연구는 또한 MNIST 데이터 세트와 NORB jittered-cluttered  데이터 세트를 통해 최대 풀링 창으로 네트워크 모델을 적용해보았다.
MNIST는 다소 얕은 아키텍처로 0.99의 테스트 오차율을ㄹ 달성했다. 여기서 28*28 입력 레이어는 9*9필터와 112가지 속성 맵이 있는 컨볼루션 레이어 C1이 뒤따랐다. 후속 최대 풀링 레이어 P2에서 각 단위는 5*5창에서 입력을 받고 10개의 출력 뉴런 각각에 연결된다. 본 연구는 60번의 에포크를 통해 역전파로 이 아키텍처를 훈련 시켰다. 
 NORB jittered-cluttered 데이터는 108*108 크기의 스테레오 입력 패턴, 5*5 필터가 있는 C1에서 16개의 속성 맵으로 결합되어 있으며 최대 9*9 창과 4픽셀의 중첩이 있는 P2에서 풀링된다. 13*13 크기의 32개의 속성 맵을 생성하기 위해 C3에서 8*8개의 필터와 결합된다. 레이어 P4는 3픽셀이 겹치는 5*5창에서 풀링하여 크기를 5*5 픽셀로 줄인다. 100개의 뉴런과 6개의 출력 뉴런이 있는 두 개의 완전히 연결된 층이 아키텍처를 마무리 한다. 이 모델은 60개 패턴의 미니 배치로 7번의 에포크를 통해 훈련되었고, 5.6%의 테스트 오차율을 기록했다. 

 

 

결론

본 연구는 최대 풀링 작업이 서브샘플링 작업에 비해 이미지와 같은 데이터의 불변성을 캡쳐하는데 훨씬 우수하다는 것을 보여주었다. 여러 데이터 세트의 경우, 동등한 아키텍처를 가진 인식 결과는 서브샘플링 작업보다 크게 향상되었다. NORB normalized-uniform 은 4.57%의 오차율을 NORB jittered-cluttered는 5.6%의 오차율을 달성했다.
그러나 다른 겹치는 풀링 창을 사용하는 것은 인식률을 향상시키지 않음을 보였다. 향후 적절한 창 기능을 찾기 위해 더 조사할 예정이다. 

 

 

 

 

 

 

'스터디 > AI' 카테고리의 다른 글

[Imple] Flask를 이용한 api 샘플  (0) 2023.02.13
[이론] 딥 강화학습  (0) 2023.02.07
[이론] 순환신경망 이론 RNN  (0) 2023.01.27
[이론] 컨볼루션 신경망 이론 CNN  (2) 2023.01.27
[이론] 인공신경망 이론 (ANN)  (0) 2023.01.19