논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Going deeper with convolutions

1 Introduction

  • 영상 인식과 객체 검출에서 컨볼루셔널 네트워크는 많은 진전을 이루었습니다.
  • 이는 하드웨어 뿐 아니라 새로운 아이디어, 알고리즘, 그리고 네트워크 구조를 통해서 이루어낸 결과입니다.
  • 다른 한 측면으로는 모바일과 임베딩 컴퓨터을 위한 알고리즘의 효율성을 추구하는 것입니다. 특히 전력과 메모리를 얼마나 소모하는지가 중요하게 되었습니다.
  • 이 논문의 실험에서는 15억번의 곱-덧셈 연산 수준으로 실제 구현되어 사용할 수 있는 수준을 보였습니다.
  • 여기에서는 컴퓨터 비전을 위한 효율적인 깊은 신경망 구조인 Inception를 보입니다.

2 Related Work

  • 컨볼루셔널 층을 쌓은 뒤 fully connected 층을 얹은 CNN은 거의 표준적인 구조로 사용되고 있습니다.
  • Lin이 제안한 Network In Network에서는 신경망의 표현력을 높이기 위하여 컨볼루셔널 층을 적용할 때, 1x1 컨볼루셔널 층을과 rectified linear activation을 더한 모델을 적용하였습니다.
  • 하지만 여전히 적용하기에는 너무 큰 구조였습니다.
  • 그럼에도 1x1 컨볼루션은 두가지 목적으로 이 논문에서도 사용되었는데, 계산의 병목을 줄이기 위한 차원 축소와 망의 크기를 제한하기 위한 목적이 그것입니다.
  • 객체 검출을 위한 최신의 방법은 Region with Convolutional Neural Networks (R-CNN)입니다.
  • 이 방법은 검출 문제를 두개의 부분 문제로 변환하였습니다.
  • 먼저 색이나 수퍼픽셀와 같은 저 수준의 신호를 이용하여 카테고리에 관계 없는 객체 후보가 있을만한 곳을 탐색한 뒤, CNN 분류기를 이용하여 해당 위치에 어떤 객체가 있는지를 확인합니다.
  • 논문에서는 객체 검출을 위해 이와 비슷한 구조로 Inception을 적용하였습니다. 하지만 Multi-box와 같은 다른 접근법에 대해서도 실험해 보았습니다.

3 Motivation and High Level Considerations

  • 깊은 신경망의 성능을 올리기 위해서는 깊이를 늘리는 방법과 폭을 늘리는 방법이 직접적으로 작용하는 방법들입니다.
  • 하지만 큰 크기의 신경망은 더 많은 파라미터의 수를 의미합니다. 이는 곧 신경망의 오버피팅 문제를 야기합니다.
  • 특히 트레이닝 셋의 수에 제한이 있다면 이는 주된 병목으로 작용해버립니다.
  • 다른 병목의 지점은 신경망의 크기가 늘어남은 곧 필요한 컴퓨터 자원의 증가를 의미합니다.
  • 이 두가지 문제를 해결하기 위해서는 완전히 연결된 구조에서 희소하게(sparsely) 연결된 구조로 이동하는 것입니다.
  • Arora의 연구에서, 만약 확 률 분포가 크고 희소한 깊은 신경망에서 표현될 수 있다면, 최적의 신경망 연결은 최종 출력 층 활성값의 코릴레이션 통계를 분석하여 연결 구조를 만들 수 있다고 하였습니다.
  • 이는 곧, 잘 알려진 Hebbian 원리를 떠오르게 합니다.
  • 한편, 요즘의 컴퓨팅 환경은 일정하지 않은 희소 데이터 구조를 계산하기에는 매우 비효율적입니다.
  • 오히려 CPU와 GPU의 발전으로 보통의 꽉 찬 행렬 곱에 대한 계산이 매우 빨리지게끔 되었습니다.
  • 더군다나 컨볼루션 연산은 패치에 대한 여러 꽉찬 연결로 구현되곤 하기 때문에 병렬 최적화에 걸맞습니다.
  • 이런 이유들 때문에 만약 가능하다면, 필터레벨에서라도 높은 희소성을 유지하면서도 계산은 꽉찬 행렬 계산으로 할 수 없는지에 대한 의문이 생겼습니다.
  • Inception 구조는 희소한 구조를 꽉찬 구조로 근사화하려는 연구에서 출발하였고, 기존의 연구들에서 유용하다는 것을 보았습니다.

4 Architectural Details

  • Inception 구조는 꽉찬 요소들로 구성된 최적의 지역 희소 구조를 찾는 것에 기본 아이디어가 있습니다.
  • Arora는 마지막 츠의 결과를 분석하여 높은 코릴레이션을 보이는 유닛끼리 그룹핑하여 이를 토대로 층간 구조를 제안하였습니다.
  • 여기서 저자는 이전 레이어에서 온 각 유닛은 입력 이미지에 어떤 영역과 대응한다고 보고 그 유닛들은 필터 뱅크로 그룹핑된다고 보았습니다.
  • 이는 결국, 한 영역에 집중된 많은 클러스터를 구하고 이를 Network In Network에서처럼 1x1컨볼루션으로 커버하는 것을 의미합니다.
  • 패치의 정렬 문제를 해결하기 위해 Inception 구조는 필터 크기를 1x1, 3x3, 5x5로 제한하였습니다.
  • 그리고 그 결과들은 출력 필터 뱅크들을 적용한 모든 층들을 하나의 벡터로 출력하여 다음 단계의 입력으로 사용하게 됩니다.
  • Pooling 연산은 요즘 컨볼루셔널 네트워크의 필수적이므로 각 단계에서 각각 적용합니다.
  • 이 구조에서도 5x5 컨볼루션은 많은 필터를 적용하기에는 여전히 부담이 됩니다.
  • 때문에 차원을 축소하여 프로젝션 하는 아이디어를 적용하였습니다. 1x1 컨볼루션을 이용하여 3x3, 5x5 컨볼루션 전에 차원 축소를 적용하였습니다.
  • Inception 네트워크는 이러한 Inception 모듈에 max-pooling 층과 stride 2를 적용한 것을 쌓아 구성한 네트워크입니다.
  • 이 구조의 장점은, 각 단계에서 유닛의 수를 늘리면서도 계산 복잡도가 폭발적으로 증가하지 않는다는 점입니다.
  • 또 다른 장점은 시각 정보가 직관적으로 여러 스케일에서 처리된 뒤 통합되어 다음 단계로 넘어가므로, 다음 단계에서 여러 스케일에 대해 한꺼번에 특징을 추상화할 수 있게 됩니다.

5 GooLeNet

6 Training Methodology

7 ILSVRC 2014 Classification Challenge Setup and Results

8 ILSVRC 2014 Detection Challenge Setup and Results

9 Conclusions


Add a Comment Trackback