안녕하세요. 지난 포스팅의 [IC2D] CondenseNet: An Efficient DenseNet using Learned Group Convolution (CVPR2018)에서는 DenseNet을 기반으로 모든 특징 맵들을 연결하는 것이 아니라 필요없는 연결 (가중치)들을 끊어내는 Learned Group Convolution을 제안한 CondenseNet에 대해서 소개시켜드렸습니다. 이를 통해, CondenseNet의 baseline이 되는 DenseNet보다 약 10배 빠른 모델을 만들게 되었죠. 오늘은 Neural Architecture Seaching이라는 분야의 시작을 알렸다고 할 수 있는 NASNet에 대해서 소개시켜드리도록 하겠습니다.
Background
지금까지 저희가 봤던 모든 모델들은 전부 다 사람이 하나하나 블록을 빼고 넣고 하면서 구성하면서 학습하고 평가하는 과정을 거쳐서 만든 모델들 입니다. 이러한 모델들은 사람의 노력이 아주 많이 들어가기 때문에 굉장히 힘든 작업이 됩니다. 여기서 궁금한 점은 굳이 사람이 만드는 것이 아니라 데이터셋에 최적화된 모델을 학습하는 방식을 생각해볼 수 있지 않을까요? 이것이 바로 Neural Architecture Searching (NAS)의 기본 개념입니다.
여기서 중요한 것은 NAS가 이전에도 제안되었다는 점 입니다. 하지만, 이전에 NAS를 ImageNet을 적용하였기 때문에 굉장히 오랜시간 동안 학습을 수행해야하기 때문에 비효율적이라는 것 입니다. 실제로 본 논문에서 제안하는 NASNet을 찾는 데 약 4일 정도 걸렸는데, 이 시간이 기존의 NAS 방법보다 7배나 빠른 방법이라고 합니다. 즉, 이전 방법은 거의 1달동안 학습했다는 점이죠. 즉, 본 논문에서 제안하는 NASNet은 기존의 NAS를 빠르고 효율적으로 학습하는 방법입니다.
Method
1). Neural Architecture Search Framework
그림 1은 NAS의 전체적인 모습을 보여주고 있습니다. 핵심은 controller RNN이 존재하고 해당 RNN을 기반으로 최적화된 모델을 찾는 것이 목표입니다. 이를 위해, RNN에서는 무작위로 몇 개의 모델을 샘플링하게 됩니다. $B$개가 선택되었다고 가정하면 이 중에서 성능이 가장 높은 블록을 선택하여 깊게 쌓기 시작합니다. 이 과정은 강화학습 (Reinforcement Learning)으로 구현될 수 있으며 보상은 각 모델들의 검증 데이터셋에 대한 성능 $R$로 정의합니다.
2). NASNet
이제 NAS에 대한 간단한 개념을 이해했으니 본격적으로 NASNet에 대한 이야기를 하도록 하겠습니다. NASNet의 핵심은 2가지라고 보시면 될 거 같습니다.
(1). CIFAR10에서 학습하여 최적화된 모델을 찾은 뒤 해당 모델을 ImageNet에 전이학습을 수행
(2). Convolutional Cell 구조를 도입하여 Searching Space의 감소
기존의 NAS 들이 문제인 것은 시간이 너무 오래걸린다는 것 입니다. 이와 같이 시간이 너무 오래걸리는 이유는 대용량, 고해상도 데이터셋인 ImageNet에서 학습을 수행하기 때문에 최적화 시간이 굉장히 많이 늘어나게 됩니다. 본 논문에서는 이러한 점을 지적하며 CIFAR10에서 최적화된 모델을 찾은 뒤 ImageNet으로 전이학습을 수행하는 것을 제안합니다. 물론, ImageNet에 직접적으로 최적화하면 성능이 더 좋기는 하겠지만 학습 시간을 줄이는 것이 오늘 논문의 목적입니다.
저희가 ResNet을 구현할 때 동일한 구조를 가지는 블록들을 여러 번 깊게 쌓아서 만드는 것을 보셨을 겁니다. 본 논문에서는 이러한 패턴에 주목하여 합성곱 계층 + 비선형 함수를 하나로 묶은 블록을 하나의 Convolutional Cell로 정의하였습니다. 이를 NASNet Seach Space라고 정의하였습니다.
여기서, Convolutional Cell은 Normal Cell과 Reduction Cell 두 가지로 나뉩니다. Normal Cell은 입력 특징 맵과 출력 특징 맵의 해상도가 동일한 Cell이고 Reduction Cell은 절반으로 감소하는 Cell 입니다.
그림2는 CIFAR10에서의 NASNet (왼쪽)과 ImageNet에서의 NASNet (오른쪽)을 보여주고 있습니다. 두 구성의 차이점은 CIFAR10의 NASNet에서 $3 \times 3$ 크기의 필터를 가지는 합성곱 계층 (stride = 2)에 Reduction Cell이 2번이 가장 앞에 추가된다는 점 입니다. 이와 같이 구성되는 이유는 저희가 CIFAR10에 학습한 뒤 ImageNet으로 전이학습을 해야하는 데 두 데이터셋의 해상도가 각각 $32 \times 32$와 $224 \times 224$로 8배 차이나기 때문입니다. ImageNet의 NASNet에서 첫번째 합성곱의 stride가 2이기 때문에 해상도는 절반으로 감소합니다. 이후에 Reduction Cell이 2번 적용되기 때문에 ImageNet의 해상도는 32로 줄어들어 이후에 Fully-Connected Layer에서도 문제점이 사용할 수 있는 것이죠.
그림3은 NASNet의 전체적인 학습 과정을 보여주고 있습니다. 왼쪽 그림은 Controller RNN을 이용해서 모델을 선택하는 기준을 보여주고 오른쪽 그림은 선택된 하나의 블록의 예시를 보여주고 있습니다. 총 5개의 블록으로 구성되고 각 블록에 해당하는 RNN Cell 모두 독립된 softmax 연산을 포함하고 있습니다.
STEP1. 모든 Convolutional Cell은 2개의 입력을 받는다. 따라서, hidden state (feature map) 두 개를 임의로 선택한다. hidden state는 바로 직전의 Convolutional Cell의 input $h_{i}$와 그 전 단계의 Convolutional Cell의 input $h_{i - 1}$이 된다.
STEP2. STEP1에서와 동일하게 hidden state를 하나 선택한다.
STEP3. 위 연산들 중에서 STEP1에서 선택된 hidden state에 적용할 연산을 하나 선택한다.
STEP4. 위 연산들 중에서 STEP2에서 선택된 hidden state에 적용할 연산을 하나 선택한다.
STEP5. STEP3와 STEP4에서 선택된 연산이 적용된 hidden state들을 하나로 combine할 연산을 add 또는 concat 중에서 선택한다.
그림7은 위 과정을 전체적으로 요약해서 보여주고 있습니다. 블록이 진행됨에 따라서 hidden state set에 점점 hidden state가 쌓이게 되고 연산도 바뀌고 있습니다. NASNet에서는 이러한 과정의 반복횟수를 $B$라고 정의하였습니다. 그리고 예측할 때 Normal Cell과 Reduction Cell 역시 함께 예측하도록 구성하였기 때문에 총 $2 \times 5B$만큼의 예측결과를 얻을 수 있습니다.
그림4는 위 과정을 통해 얻은 Normal Cell과 Reduction Cell입니다.
3). Scheduled DropPath
본 논문에서는 추가적으로 DropPath의 변형인 Scheduled DropPath라는 방법을 제안하여 학습하였습니다. 이 방법은 학습이 진행될 수록 깊게 쌓이면서 모델의 학습이 어려워질것은 대비하여 처음 학습할 때는 drop rate를 조금만 주고 학습이 진행될수록 drop rate를 점점 늘리는 방식입니다.
4). Variants of NASNet
본 논문에서는 NASNet을 CIFAR10에서 최적화할 때 복잡도에 제한을 두어 3개의 변형 모델을 구성하여 각각 NASNet-A, NASNet-B, NASNet-C라고 정의하고 비교합니다.
Experiment Results
본 논문에서는 CIFAR10, ImageNet에서 영상 분류 실험을 수행하고 COCO 데이터셋에서 객체 탐지 실험을 수행하였습니다.
1). CIFAR10 Classification Results
DenseNet과 비교해보면 25.6M개의 파라미터를 가지는 모델과 3.3M개의 파라미터를 가지는 NASNet-A가 거의 유사한 성능을 보이고 있습니다. 유사한 개수의 파라미터로 제한하면 27M개의 파라미터에 대해서 DenseNet은 3.74%, NASNet-A는 2.97%의 오류율을 가지게 됩니다. 이는 기존에 제안된 NAS보다도 훨씬 좋은 성능을 가지고 있음을 볼 수 있습니다.
2). ImageNet Classification Results