본문 바로가기

인공지능

Densely Connected Convolutional Networks

https://arxiv.org/abs/1608.06993

 

Densely Connected Convolutional Networks

Recent work has shown that convolutional networks can be substantially deeper, more accurate, and efficient to train if they contain shorter connections between layers close to the input and those close to the output. In this paper, we embrace this observa

arxiv.org

 

초록(Abstract)

최근 연구에 따르면, 컨볼루션 네트워크는 입력층과 출력층 사이의 연결이 짧으면 짧을수록 훨씬 더 깊고 정확하며 효율적으로 훈련될 수 있습니다. 본 논문에서는 이러한 관찰을 바탕으로, Dense Convolutional Network(이하 DenseNet)를 소개합니다. DenseNet은 각 층을 피드포워드 방식으로 모든 다른 층과 연결합니다. 전통적인 컨볼루션 네트워크는 L층을 가질 때 L개의 연결을 가지며, 각 층과 그 후속 층 간의 연결이 존재합니다. 반면, DenseNet은 L(L+1)/2개의 직접 연결을 가집니다. 각 층에서는 모든 이전 층의 특성 맵이 입력으로 사용되며, 자신의 특성 맵은 모든 후속 층의 입력으로 사용됩니다. DenseNet은 몇 가지 매력적인 장점을 제공합니다: 기울기 소실 문제를 완화하고, 특성 전파를 강화하며, 특성 재사용을 장려하고, 파라미터 수를 상당히 줄입니다. 우리는 제안하는 아키텍처를 네 가지 매우 경쟁적인 객체 인식 벤치마크 과제(CIFAR-10, CIFAR-100, SVHN, ImageNet)에서 평가했습니다. DenseNet은 대부분의 과제에서 최첨단 기술보다 현저한 개선을 달성하면서 높은 성능을 얻기 위해 필요한 계산량을 줄입니다. 코드와 사전 훈련된 모델은 여기에서 확인할 수 있습니다.

 

그림 1: 성장률이 있는 5층 밀집 블록

1. 서론(Introduction)

컨볼루션 신경망(CNN)은 시각적 객체 인식에서 지배적인 기계 학습 접근 방식이 되었습니다. CNN은 20년 이상 전에 처음 소개되었지만, 최근의 컴퓨터 하드웨어와 네트워크 구조의 개선 덕분에 비로소 진정으로 깊은 CNN의 훈련이 가능해졌습니다. 원래의 LeNet5는 5층으로 구성되었고, VGG는 19층을 특징으로 했으며, 지난해에는 Highway Networks와 Residual Networks(ResNets)가 100층을 초월했습니다.

 

CNN이 점점 더 깊어짐에 따라 새로운 연구 문제가 발생합니다: 정보나 기울기가 많은 층을 통과하면서 소멸되거나 네트워크의 끝(또는 시작)까지 도달할 때 "사라지게" 됩니다. 최근의 많은 연구들은 이 문제나 관련 문제를 다루고 있습니다. ResNets와 Highway Networks는 신호를 한 층에서 다음 층으로 우회시키기 위해 항등(identity) 연결을 사용합니다. Stochastic depth는 훈련 중에 무작위로 층을 생략하여 ResNets를 단축시킴으로써 더 나은 정보와 기울기 흐름을 가능하게 합니다. FractalNets는 여러 개의 병렬 층 시퀀스를 반복적으로 결합하여 큰 명목상의 깊이를 얻으면서도 네트워크 내에 많은 짧은 경로를 유지합니다. 이러한 다양한 접근 방식은 네트워크 토폴로지와 훈련 절차에서 차이가 있지만, 모두 중요한 공통 특성을 공유합니다: 초기 층에서 후속 층으로의 짧은 경로를 생성한다는 점입니다.

 

이 논문에서는 이 통찰력을 간단한 연결 패턴으로 압축한 아키텍처를 제안합니다: 네트워크 내의 층 간 최대 정보 흐름을 보장하기 위해, 우리는 모든 층(특징 맵 크기가 일치하는)을 서로 직접 연결합니다. 피드포워드 성격을 유지하기 위해, 각 층은 모든 이전 층으로부터 추가 입력을 얻고 자신의 특징 맵을 모든 후속 층에 전달합니다. 그림 1은 이 레이아웃을 도식적으로 설명합니다. 중요한 점은, ResNet과는 달리, 우리는 층에 입력되기 전에 특징을 덧셈을 통해 결합하지 않고, 대신 특징을 연결하여 결합합니다. 따라서 번째 층은 모든 이전 컨볼루션 블록의 특징 맵으로 구성된 개의 입력을 가지며, 자신의 특징 맵은 모든 L-l 후속 층으로 전달됩니다. 이는 전통적인 아키텍처에서는 L개의 연결만 가지지만, L층 네트워크에서는 L(L+1)/2개의 연결을 도입합니다. 이 밀집 연결 패턴 때문에 우리는 이 접근 방식을 Dense Convolutional Network (DenseNet)이라고 부릅니다.

 

이 밀집 연결 패턴의 의외의 효과는 전통적인 컨볼루션 네트워크보다 적은 수의 파라미터를 요구한다는 것입니다. 이는 중복된 특징 맵을 다시 학습할 필요가 없기 때문입니다. 전통적인 피드포워드 아키텍처는 상태를 가진 알고리즘으로 볼 수 있으며, 이 상태는 층에서 층으로 전달됩니다. 각 층은 이전 층에서 상태를 읽고 후속 층으로 상태를 작성합니다. 상태를 변경하지만 보존해야 하는 정보도 전달합니다. ResNet은 이 정보 보존을 덧셈 항등 변환을 통해 명시적으로 구현합니다. ResNet의 최근 변형들은 많은 층이 거의 기여하지 않으며 훈련 중에 무작위로 생략될 수 있음을 보여줍니다. 이는 ResNet의 상태를 (풀려진) 순환 신경망과 유사하게 만들지만, 각 층이 자체 가중치를 가지므로 ResNet의 파라미터 수는 상당히 더 큽니다. 우리의 제안된 DenseNet 아키텍처는 네트워크에 추가되는 정보와 보존되는 정보를 명시적으로 구분합니다. DenseNet의 층은 매우 좁고(예: 각 층당 12개의 필터), "집단적 지식"에 작은 집합의 특징 맵만 추가하고 나머지 특징 맵은 변경하지 않으며, 최종 분류기는 네트워크의 모든 특징 맵을 기반으로 결정을 내립니다.

 

DenseNet의 주요 장점 중 하나는 매우 향상된 파라미터 효율성과 함께 네트워크 전체에서 정보와 기울기의 흐름이 개선된다는 점입니다. 이러한 특성 덕분에 DenseNet은 훈련이 용이합니다. 각 층은 손실 함수로부터의 기울기와 원래 입력 신호에 직접 접근할 수 있으며, 이는 암묵적인 깊은 지도 학습(deep supervision)을 제공합니다. 이로 인해 더 깊은 네트워크 아키텍처의 훈련이 용이해집니다. 또한, 밀집 연결(dense connections)은 정규화 효과를 발휘하여 작은 훈련 세트 크기를 가진 작업에서 과적합을 줄이는 데 도움을 줍니다.

 

우리는 DenseNet을 네 가지 매우 경쟁적인 벤치마크 데이터셋(CIFAR-10, CIFAR-100, SVHN, ImageNet)에서 평가했습니다. 우리의 모델은 유사한 정확도를 유지하면서 기존 알고리즘보다 훨씬 적은 파라미터를 요구하는 경향이 있습니다. 더 나아가, 우리는 대부분의 벤치마크 작업에서 현재의 최첨단 결과를 크게 능가합니다.

2. 관련 연구(Related Work)

네트워크 아키텍처 탐색은 신경망이 처음 발견된 이후부터 신경망 연구의 일환으로 진행되어 왔습니다. 최근 신경망의 인기가 다시 상승하면서 이 연구 분야도 부활하였습니다. 현대 네트워크에서 층 수가 증가함에 따라 아키텍처 간의 차이가 더 두드러지게 나타나며, 다양한 연결 패턴의 탐색과 오래된 연구 아이디어의 재조명이 이루어지고 있습니다.

 

우리의 제안된 밀집 네트워크 레이아웃과 유사한 계단식 구조는 1980년대 신경망 문헌에서 이미 연구되었습니다 [3]. 그들의 선구적인 작업은 층별로 훈련되는 완전히 연결된 다층 퍼셉트론에 중점을 두었습니다. 최근에는 배치 경량 하강법을 사용하여 훈련되는 완전히 연결된 계단식 네트워크가 제안되었습니다 [40]. 이 접근법은 작은 데이터셋에서 효과적이지만, 몇 백 개의 파라미터를 가진 네트워크로만 확장됩니다.

 

[9, 23, 31, 41]에서는 CNN에서 스킵 연결을 통해 다층 특징을 활용하는 것이 다양한 비전 작업에 효과적임을 발견했습니다. 우리의 작업과 평행하게, [1]은 우리와 유사한 층 간 연결을 가진 네트워크를 위한 순수 이론적 프레임워크를 도출했습니다.

 

Highway Networks [34]는 100층 이상의 엔드 투 엔드 네트워크를 효과적으로 훈련할 수 있는 방법을 제공하는 최초의 아키텍처 중 하나였습니다. 우회 경로와 게이팅 유닛을 사용하여 수백 개의 층을 가진 Highway Networks는 문제 없이 최적화할 수 있습니다. 이러한 우회 경로가 매우 깊은 네트워크의 훈련을 용이하게 만드는 핵심 요소로 추정됩니다. 이 점은 순수 항등 매핑을 우회 경로로 사용하는 ResNets [11]에 의해 더욱 지지됩니다. ResNets는 ImageNet과 COCO 객체 탐지와 같은 많은 도전적인 이미지 인식, 위치 추정 및 탐지 작업에서 인상적이고 기록적인 성능을 달성했습니다 [11]. 최근에는 1202층 ResNet을 성공적으로 훈련하기 위한 방법으로 Stochastic Depth가 제안되었습니다 [13]. Stochastic Depth는 훈련 중에 무작위로 층을 생략함으로써 깊은 잔차 네트워크의 훈련을 개선합니다. 이는 모든 층이 필요하지 않을 수 있음을 보여주며, 깊은(잔차) 네트워크에 상당한 양의 중복이 있음을 강조합니다. 우리 논문은 이 관찰에 부분적으로 영감을 받았습니다. 또한, pre-activation을 사용하는 ResNets는 1000층 이상의 최신 네트워크 훈련을 용이하게 합니다 [12].

 

네트워크를 더 깊게 만드는 방법으로 (예를 들어, 스킵 연결을 활용하는 방식) 네트워크의 너비를 증가시키는 접근법도 있습니다. GoogLeNet [36, 37]은 다양한 크기의 필터가 생성한 특징 맵을 연결하는 “Inception 모듈”을 사용합니다. [38]에서는 넓은 일반화된 잔차 블록을 가진 ResNet의 변형이 제안되었습니다. 사실, ResNet의 각 층에서 필터의 수를 단순히 증가시키면 깊이가 충분할 경우 성능이 향상될 수 있습니다 [42]. FractalNets는 넓은 네트워크 구조를 사용하여 여러 데이터셋에서 경쟁력 있는 결과를 달성합니다 [17].

 

DenseNet은 매우 깊거나 넓은 아키텍처에서 표현 능력을 얻는 대신, 특징 재사용을 통해 네트워크의 잠재력을 활용하여 훈련이 쉽고 파라미터 효율성이 높은 응축된 모델을 제공합니다. 서로 다른 층에서 학습된 특징 맵을 연결하면 후속 층의 입력에서 변동성이 증가하고 효율성이 개선됩니다. 이는 DenseNet과 ResNet 사이의 주요 차이점입니다. 다양한 층에서 특징을 연결하는 Inception 네트워크 [36, 37]와 비교할 때, DenseNet은 더 간단하고 효율적입니다.

 

경쟁력 있는 결과를 낸 다른 주목할 만한 네트워크 아키텍처 혁신들도 있습니다. Network in Network (NIN) [22] 구조는 컨볼루션 층의 필터에 미세한 다층 퍼셉트론을 포함시켜 더 복잡한 특징을 추출합니다. Deeply Supervised Network (DSN) [20]에서는 내부 층이 보조 분류기에 의해 직접 지도 학습을 받아, 초기 층이 받는 기울기를 강화할 수 있습니다. Ladder Networks [27, 25]는 오토인코더에 측면 연결을 도입하여 반지도 학습 작업에서 인상적인 정확도를 제공합니다. [39]에서는 서로 다른 기본 네트워크의 중간 층을 결합하여 정보 흐름을 개선하는 Deeply-Fused Nets (DFNs)가 제안되었습니다. 또한, 재구성 손실을 최소화하는 경로로 네트워크를 증강하는 것이 이미지 분류 모델을 개선하는 데 효과적임을 보여주었습니다 [43].

 

그림 2: 세 개의 밀집 블록을 가진 깊은 DenseNet

이 그림은 세 개의 밀집 블록이 포함된 깊은 DenseNet을 보여줍니다. 두 인접 블록 사이의 층을 **전이 층(transition layers)**이라고 하며, 이들은 컨볼루션과 풀링을 통해 특징 맵의 크기를 변경합니다.

 

3. DenseNets

Convolutional Network Structure

ResNets

Dense Connectivity

Composite Function

Pooling Layers

식 (2)에서 사용된 연결 연산은 특징 맵의 크기가 변경될 때 적용할 수 없습니다. 그러나 컨볼루션 네트워크에서 중요한 부분은 특징 맵의 크기를 변경하는 다운샘플링 층입니다. 우리의 아키텍처에서 다운샘플링을 용이하게 하기 위해, 우리는 네트워크를 여러 개의 밀집 블록으로 나누어 구성합니다; 그림 2를 참조하십시오. 블록 사이의 층을 전이 층(transition layers)이라고 하며, 이들은 컨볼루션과 풀링을 수행합니다. 실험에서 사용된 전이 층은 배치 정규화 층과 1×1 컨볼루션 층, 그 후에 2×2 평균 풀링 층으로 구성됩니다.

 

Growth Rate

각 함수 H_lk개의 특징 맵을 생성하면, l번째 층은 k_0+k×(ℓ−1)k_0 개의 입력 특징 맵을 가지게 됩니다. 여기서 k_0는 입력 층의 채널 수입니다. DenseNet과 기존 네트워크 아키텍처의 중요한 차이점은 DenseNet이 매우 좁은 층을 가질 수 있다는 점입니다 (예: k=12). 우리는 하이퍼파라미터 k를 네트워크의 성장률(growth rate)이라고 부릅니다. 우리는 섹션 2에서 상대적으로 작은 성장률이 테스트한 데이터셋에서 최신 기술 결과를 얻기에 충분하다고 보여줍니다. 이는 각 층이 블록 내의 모든 이전 특징 맵에 접근할 수 있으며, 따라서 네트워크의 “집합적 지식”에 접근할 수 있기 때문입니다. 특징 맵을 네트워크의 전역 상태(global state)로 볼 수 있습니다. 각 층은 이 상태에 k개의 새로운 특징 맵을 추가합니다. 성장률은 각 층이 전역 상태에 얼마나 많은 새로운 정보를 기여하는지를 조절합니다. 전역 상태는 작성된 후 네트워크 내의 어디에서나 접근할 수 있으며, 전통적인 네트워크 아키텍처와는 달리 층별로 복제할 필요가 없습니다.

Bottleneck Layers

각 층이 k개의 출력 특징 맵만 생성하더라도, 일반적으로 더 많은 입력을 갖습니다. [37, 11]에서는 각 3×3 컨볼루션 앞에 1×1 컨볼루션을 도입하여 입력 특징 맵의 수를 줄이고 계산 효율성을 개선할 수 있다고 언급했습니다. 우리는 이 설계가 DenseNet에 특히 효과적이라고 생각하며, 이러한 병목(bottleneck) 층이 포함된 네트워크를 DenseNet-B라고 부릅니다. 우리의 실험에서는 각 1×1 컨볼루션이 4k개의 특징 맵을 생성하도록 설정했습니다.

 

Compression

모델의 압축성을 더욱 개선하기 위해, 우리는 전이 층에서 특징 맵의 수를 줄일 수 있습니다. 밀집 블록이 m개의 특징 맵을 포함하고 있다면, 다음 전이 층에서 생성되는 출력 특징 맵의 수를 ⌊θm⌋로 설정합니다. 여기서 0<θ≤1은 압축 계수(compression factor)라고 불립니다. θ=1일 때, 전이 층의 특징 맵 수는 변경되지 않습니다. θ<1인 DenseNet을 DenseNet-C라고 부르며, 우리의 실험에서는 θ=0.5로 설정했습니다. 병목 층과 θ<1인 전이 층을 모두 사용할 때, 우리는 모델을 DenseNet-BC라고 부릅니다.

Implementation Details

ImageNet을 제외한 모든 데이터셋에서, 실험에 사용된 DenseNet은 세 개의 밀집 블록을 가지며 각 블록은 같은 수의 층을 갖습니다. 첫 번째 밀집 블록에 들어가기 전에 입력 이미지에 대해 16개의 (또는 DenseNet-BC의 경우 성장률의 두 배) 출력 채널을 가지는 컨볼루션이 수행됩니다. 3×3 크기의 커널을 가진 컨볼루션 층에서는 입력의 각 측면이 한 픽셀씩 제로 패딩되어 특징 맵 크기를 고정합니다. 우리는 두 개의 연속 밀집 블록 사이에서 1×1 컨볼루션과 2×2 평균 풀링을 전이 층으로 사용합니다. 마지막 밀집 블록의 끝에서는 글로벌 평균 풀링을 수행하고, 이후 소프트맥스 분류기가 연결됩니다. 세 개의 밀집 블록에서의 특징 맵 크기는 각각 32×32, 16×161, 8×8입니다. 우리는 기본 DenseNet 구조를 다음과 같은 구성으로 실험합니다: {L=40,k=12}, {L=100,k=12}, {L=100,k=24}. DenseNet-BC의 경우, 다음과 같은 구성으로 네트워크를 평가합니다: {L=100,k=12}, {L=250,k=24}, {L=190,k=40}.

 

ImageNet에서의 실험에서는 224 × 224 입력 이미지에 대해 4개의 밀집 블록을 가진 DenseNet-BC 구조를 사용합니다. 초기 컨볼루션 층은 크기가 7×7이고 보폭이 2인 2k개의 컨볼루션으로 구성됩니다; 나머지 모든 층의 특징 맵 수는 k 설정에 따라 결정됩니다. ImageNet에서 사용된 정확한 네트워크 구성은 표 1에 나와 있습니다.

 

4. 실험

표 2: CIFAR 및 SVHN 데이터셋에서의 오류율(%).


여기서 k는 네트워크의 성장률을 나타냅니다. 모든 경쟁 방법을 초월하는 결과는 굵게 표시되어 있으며, 전체적으로 가장 좋은 결과는 파란색으로 표시됩니다. "+"는 표준 데이터 증강(번역 및/또는 미러링)을 나타냅니다. "*"는 우리가 직접 실행한 결과를 나타냅니다. 데이터 증강 없이 DenseNet은 Dropout을 사용하여 얻은 결과입니다. DenseNet은 ResNet보다 적은 매개변수를 사용하면서도 더 낮은 오류율을 달성합니다. 데이터 증강 없이 DenseNet이 큰 폭으로 더 나은 성능을 보입니다.

 

우리는 DenseNet의 효과를 여러 벤치마크 데이터셋에서 실험적으로 입증하고, 특히 ResNet 및 그 변형들과 최신 기술 아키텍처와 비교합니다.

 

4.1 데이터셋

CIFAR.
CIFAR 데이터셋 두 개는 32×32 픽셀 크기의 컬러 자연 이미지로 구성되어 있습니다. CIFAR-10 (C10)은 10개의 클래스에서 추출된 이미지를 포함하고, CIFAR-100 (C100)은 100개의 클래스에서 추출된 이미지를 포함합니다. 훈련 세트와 테스트 세트는 각각 50,000개와 10,000개의 이미지로 구성되며, 5,000개의 훈련 이미지를 검증 세트로 따로 보관합니다. 이 두 데이터셋에 대해 널리 사용되는 표준 데이터 증강 방식(미러링/이동)을 채택합니다 [11, 13, 17, 22, 28, 20, 32, 34]. 이 데이터 증강 방식을 데이터셋 이름 끝에 “+” 마크로 표시합니다(예: C10+). 전처리 단계에서는 채널 평균과 표준편차를 사용하여 데이터를 정규화합니다. 최종 실행에서는 50,000개의 모든 훈련 이미지를 사용하고, 훈련이 끝난 후 최종 테스트 오류를 보고합니다.

 

SVHN.
Street View House Numbers (SVHN) 데이터셋 [24]은 32×32 크기의 컬러 숫자 이미지로 구성되어 있습니다. 훈련 세트에는 73,257개의 이미지, 테스트 세트에는 26,032개의 이미지, 추가 훈련을 위한 이미지로는 531,131개가 포함되어 있습니다. 일반적인 관행 [7, 13, 20, 22, 30]에 따라 모든 훈련 데이터를 사용하며, 6,000개의 이미지를 훈련 세트에서 분리하여 검증 세트를 만듭니다. 훈련 중 가장 낮은 검증 오류를 보이는 모델을 선택하고 테스트 오류를 보고합니다. 픽셀 값은 [42]를 따라 255로 나누어 [0, 1] 범위로 변환합니다.

 

표 3: ImageNet 검증 세트에서의 top-1 및 top-5 오류율, 단일 크롭 / 10 크롭 테스트 결과.

 

그림 3:
DenseNet과 ResNet의 top-1 오류율 비교 (단일 크롭 테스트) - ImageNet 검증 데이터셋에서 학습된 매개변수의 함수로서의 오류율(왼쪽)과 테스트 시 FLOPs(오른쪽).

 

ImageNet.
ILSVRC 2012 분류 데이터셋 [2]은 1,000개의 클래스에서 훈련용 120만 개의 이미지와 검증용 50,000개의 이미지로 구성되어 있습니다. 우리는 [8, 11, 12]에서 사용된 것과 동일한 데이터 증강 방식을 훈련 이미지에 적용하며, 테스트 시에는 크기가 224×224인 단일 크롭 또는 10 크롭을 사용합니다. [11, 12, 13]을 따르며 검증 세트에서의 분류 오류율을 보고합니다.

 

4.2 훈련

모든 네트워크는 확률적 경량 하강법(SGD)을 사용하여 훈련됩니다. CIFAR와 SVHN에서는 배치 크기를 64로 설정하고 각각 300과 40 에포크 동안 훈련합니다. 초기 학습률은 0.1로 설정하고, 전체 훈련 에포크의 50%와 75% 지점에서 학습률을 10배 줄입니다. ImageNet에서는 배치 크기를 256으로 설정하고 90 에포크 동안 모델을 훈련합니다. 초기 학습률은 0.1로 설정하고, 에포크 30과 60에서 학습률을 10배 줄입니다. DenseNet의 단순 구현은 메모리 비효율성을 초래할 수 있으므로, GPU에서의 메모리 소비를 줄이기 위한 기술 보고서를 참조하십시오 [26].

 

[8]을 따라, 우리는 10^-4의 가중치 감쇠와 0.9의 Nesterov 모멘텀 [35]을 사용하며 감쇠는 적용하지 않습니다. 우리는 [10]에서 소개된 가중치 초기화를 채택합니다. 데이터 증강이 없는 세 가지 데이터셋(C10, C100, SVHN)에서는 각 합성곱 층(첫 번째 층 제외) 뒤에 드롭아웃 레이어 [33]를 추가하고 드롭아웃 비율을 0.2로 설정합니다. 테스트 오류는 각 작업과 모델 설정에 대해 한 번만 평가합니다.

 

4.3 CIFAR와 SVHN에서의 분류 결과

DenseNet은 다양한 깊이(L)와 성장률(k)을 가지는 모델로 훈련되었습니다. CIFAR와 SVHN에서의 주요 결과는 표 2에 나와 있습니다. 기존의 최첨단 결과를 초과하는 모든 결과는 굵은 글씨로 표시되며, 전체 최상의 결과는 파란색으로 표시됩니다.

 

정확도.
가장 주목할 만한 경향은 표 2의 하단 행에서 나타납니다. DenseNet-BC(L=190, k=40)는 모든 CIFAR 데이터셋에서 기존의 최첨단 결과를 일관되게 초과합니다. C10+에서 3.46%, C100+에서 17.18%의 오류율을 기록하며, 이는 넓은 ResNet 아키텍처 [42]의 결과보다 유의미하게 낮습니다. 데이터 증강 없이 C10과 C100에서의 최상의 결과는 FractalNet과 drop-path 정규화 [17]보다 30% 가까이 낮습니다. SVHN에서는 드롭아웃을 사용한 DenseNet(L=100, k=24)이 현재 가장 좋은 결과를 초과합니다. 그러나 250층 DenseNet-BC는 성능이 더 짧은 모델보다 더 나아지지 않았습니다. 이는 SVHN이 상대적으로 쉬운 작업이며, 매우 깊은 모델이 훈련 세트에 과적합될 수 있음을 설명합니다.

 

용량.
압축 또는 병목층이 없는 경우, DenseNet은 L과 k가 증가할수록 성능이 향상되는 경향이 있습니다. 이는 주로 모델 용량의 증가 때문이라고 생각됩니다. 이는 C10+와 C100+ 열에서 가장 잘 나타납니다. C10+에서 오류율은 5.24%에서 4.10%로, 그리고 3.74%로 감소합니다. C100+에서도 유사한 경향이 관찰됩니다. 이는 DenseNet이 더 크고 깊은 모델의 표현력을 활용할 수 있음을 시사합니다. 또한 DenseNet은 ResNet [11]의 과적합이나 최적화 문제를 겪지 않는 것으로 보입니다.

 

매개변수 효율성.
표 2의 결과는 DenseNet이 대안 아키텍처(특히 ResNet)보다 매개변수를 더 효율적으로 사용하는 것을 나타냅니다. 병목 구조와 전환 층에서의 차원 축소가 있는 DenseNet-BC는 특히 매개변수 효율성이 높습니다. 예를 들어, 250층 모델은 15.3M 매개변수를 가지고 있지만, 30M 이상의 매개변수를 가진 FractalNet과 Wide ResNet보다 일관되게 성능이 우수합니다. 또한 DenseNet-BC(L=100, k=12)는 1001층 사전 활성화 ResNet과 유사한 성능을 달성하면서도 90% 적은 매개변수를 사용합니다. 그림 4(오른쪽 패널)는 C10+에서 두 네트워크의 훈련 손실과 테스트 오류를 보여줍니다. 1001층 깊은 ResNet은 더 낮은 훈련 손실 값에 수렴하지만 유사한 테스트 오류를 보입니다. 이 효과를 아래에서 자세히 분석합니다.

 

과적합.
매개변수를 더 효율적으로 사용하는 것의 긍정적인 부작용 중 하나는 DenseNet이 과적합에 덜 취약하다는 경향입니다. 데이터 증강이 없는 데이터셋에서 DenseNet 아키텍처의 개선이 특히 두드러집니다. C10에서는 오류율이 7.33%에서 5.19%로 29% 감소합니다. C100에서는 28.20%에서 19.64%로 약 30% 감소합니다. 실험에서 단일 설정에서 과적합의 잠재적 가능성을 관찰했습니다: C10에서 매개변수 수를 k=12에서 k=24로 4배 증가시키면 오류율이 5.77%에서 5.83%로 약간 증가했습니다. DenseNet-BC의 병목 및 압축 층은 이 경향에 효과적으로 대응하는 방법으로 보입니다.

 

Figure 4:

왼쪽: C10+에서 DenseNet 변형 간의 매개변수 효율성 비교.
중앙: DenseNet-BC와 (사전 활성화) ResNet 간의 매개변수 효율성 비교. DenseNet-BC는 유사한 정확도를 달성하기 위해 ResNet의 약 1/3에 해당하는 매개변수만 필요합니다.
오른쪽: 1001층 사전 활성화 ResNet [12]의 훈련 및 테스트 곡선과 0.8M 매개변수만 가진 100층 DenseNet의 훈련 및 테스트 곡선.

 

4.4 ImageNet에서의 분류 결과

DenseNet-BC를 다양한 깊이와 성장률로 ImageNet 분류 작업에 평가하고, 최첨단 ResNet 아키텍처와 비교합니다. 두 아키텍처 간의 공정한 비교를 보장하기 위해, [8]에서 제공하는 공개적으로 사용 가능한 Torch 구현을 채택하여 데이터 전처리 및 최적화 설정의 차이를 제거했습니다. 우리는 단순히 ResNet 모델을 DenseNet-BC 네트워크로 교체하고, ResNet에서 사용된 것과 동일한 실험 설정을 유지했습니다.

 

표 3은 ImageNet에서 DenseNet의 단일 크롭 및 10 크롭 검증 오류를 보고합니다. 그림 3은 매개변수 수(왼쪽)와 FLOPs(오른쪽)의 함수로서 DenseNet과 ResNet의 단일 크롭 top-1 검증 오류를 보여줍니다. 그림에 나타난 결과는 DenseNet이 최신 ResNet과 동등한 성능을 발휘하면서도, 유사한 성능을 달성하기 위해 훨씬 적은 매개변수와 연산을 요구한다는 것을 드러냅니다. 예를 들어, 20M 매개변수를 가진 DenseNet-201 모델은 40M 이상의 매개변수를 가진 101층 ResNet과 유사한 검증 오류를 제공합니다. 오른쪽 패널에서 볼 수 있는 것처럼, FLOPs 수의 함수로서 검증 오류를 나타내면, ResNet-50과 같은 연산을 요구하는 DenseNet이 두 배의 연산을 요구하는 ResNet-101과 동등한 성능을 발휘합니다.

우리의 실험 설정은 ResNet에 최적화된 하이퍼파라미터 설정을 사용하였지만 DenseNet에는 최적화되지 않았다는 점을 주목할 가치가 있습니다. 더 광범위한 하이퍼파라미터 검색이 ImageNet에서 DenseNet의 성능을 더욱 향상시킬 가능성이 있습니다.

 

5. 논의

겉보기에는 DenseNet과 ResNet이 매우 유사해 보입니다. Eq. (2)는 Eq. (1)과 달리, Hℓ(⋅)에 대한 입력이 합산되는 대신 연결(concatenation)되는 점만 다릅니다. 그러나 이 겉보기에 작은 수정이 두 네트워크 아키텍처의 동작 방식에 상당히 다른 결과를 가져옵니다.

 

모델 압축성 (Model Compactness):
입력 연결의 직접적인 결과로, DenseNet의 모든 레이어에서 학습된 특징 맵은 모든 후속 레이어에서 접근할 수 있습니다. 이는 네트워크 전체에 걸쳐 특징 재사용을 촉진하며, 더 컴팩트한 모델을 만들어냅니다.

 

그림 4의 왼쪽 두 개의 플롯은 DenseNet의 모든 변형 (왼쪽)과 비교 가능한 ResNet 아키텍처 (중간)를 비교하기 위한 실험 결과를 보여줍니다. 우리는 C10+에서 다양한 깊이의 여러 작은 네트워크를 훈련시키고, 네트워크 매개변수에 따른 테스트 정확도를 플로팅했습니다. AlexNet [16]이나 VGG-net [29]과 같은 다른 인기 있는 네트워크 아키텍처와 비교할 때, 사전 활성화된 ResNet은 일반적으로 더 적은 매개변수로 더 좋은 결과를 달성합니다 [12]. 따라서 DenseNet (k=12)을 이 아키텍처와 비교합니다. DenseNet의 훈련 설정은 이전 섹션과 동일하게 유지됩니다.

 

그래프는 DenseNet-BC가 일관되게 가장 매개변수 효율적인 DenseNet 변형임을 보여줍니다. 또한, 동일한 정확도 수준을 달성하기 위해 DenseNet-BC는 ResNet의 약 1/3에 해당하는 매개변수만 필요합니다 (중간 플롯). 이 결과는 Figure 3에서 제시한 ImageNet의 결과와 일치합니다. Figure 4의 오른쪽 플롯은 0.8M의 훈련 가능한 매개변수를 가진 DenseNet-BC가 10.2M 매개변수를 가진 1001층 (사전 활성화) ResNet [12]과 유사한 정확도를 달성할 수 있음을 보여줍니다.

 

암묵적 깊은 감독 (Implicit Deep Supervision):
DenseNet의 개선된 정확도를 설명하는 하나의 이유는 개별 레이어가 짧은 연결을 통해 손실 함수로부터 추가적인 감독을 받기 때문일 수 있습니다. DenseNet은 일종의 "깊은 감독"을 수행한다고 해석할 수 있습니다. 깊은 감독의 이점은 이전에 깊게 감독된 네트워크(DSN; [20])에서 보여졌습니다. 이러한 네트워크는 각 숨겨진 레이어에 분류기를 추가하여 중간 레이어가 차별화된 특징을 학습하도록 강제합니다.

 

DenseNet은 암묵적인 방식으로 유사한 깊은 감독을 수행합니다. 네트워크 상단에 있는 하나의 분류기가 최대 두 개 또는 세 개의 전이 레이어를 통해 모든 레이어에 직접적인 감독을 제공합니다. 그러나 DenseNet의 손실 함수와 기울기는 훨씬 덜 복잡합니다. 왜냐하면 모든 레이어가 동일한 손실 함수를 공유하기 때문입니다.

 

확률적 vs. 결정론적 연결 (Stochastic vs. Deterministic Connection):
DenseNet과 Residual 네트워크의 확률적 깊이 정규화 간에는 흥미로운 연결이 있습니다 [13]. 확률적 깊이에서, residual 네트워크의 레이어는 무작위로 드롭되며, 이는 주변 레이어 간의 직접 연결을 생성합니다. 풀링 레이어는 절대 드롭되지 않으므로, 네트워크는 DenseNet과 유사한 연결 패턴을 가지게 됩니다: 같은 풀링 레이어 간에 두 레이어가 직접 연결될 작은 확률이 존재합니다—모든 중간 레이어가 무작위로 드롭될 경우. 방법들은 궁극적으로 꽤 다르지만, DenseNet의 확률적 깊이에 대한 해석은 이 정규화 기법의 성공에 대한 통찰을 제공할 수 있습니다.

 

특징 재사용 (Feature Reuse):

DenseNet은 설계상 모든 이전 레이어의 특징 맵에 접근할 수 있게 합니다(때때로 전이 레이어를 통해서도). 우리는 훈련된 네트워크가 이 기회를 활용하는지를 조사하기 위해 실험을 수행했습니다. 먼저, L=40 및 k=12인 DenseNet을 C10+에서 훈련시킵니다. 각 블록 내의 각 합성곱 레이어 에 대해, 레이어 s와의 연결에 할당된 평균 (절대) 가중치를 계산합니다. Figure 5는 모든 세 개의 밀집 블록에 대한 히트맵을 보여줍니다. 평균 절대 가중치는 합성곱 레이어가 이전 레이어에 의존하는 정도를 나타내는 대용물로 사용됩니다. 위치 (ℓ,s)의 빨간 점은 레이어 가 평균적으로 s 레이어 전에 생성된 특징 맵을 강하게 활용함을 나타냅니다. 플롯에서 몇 가지 관찰 결과를 얻을 수 있습니다:

  1. 모든 레이어는 동일 블록 내의 많은 입력에 대해 가중치를 분산시킵니다. 이는 아주 초기 레이어에서 추출된 특징이 같은 밀집 블록 내의 깊은 레이어에서 직접적으로 사용됨을 나타냅니다.
  2. 전이 레이어의 가중치도 이전 밀집 블록 내의 모든 레이어에 걸쳐 가중치를 분산시킵니다. 이는 DenseNet의 첫 번째 레이어에서 마지막 레이어까지 정보가 몇 가지 간접 경로를 통해 흐름을 나타냅니다.
  3. 두 번째 및 세 번째 밀집 블록 내의 레이어는 전이 레이어의 출력(삼각형의 상단 행)에 가장 적은 가중치를 할당합니다. 이는 전이 레이어가 많은 중복된 특징을 생성한다는 것을 나타내며(평균적으로 낮은 가중치), DenseNet-BC의 강력한 결과와 일치합니다. DenseNet-BC에서는 이러한 출력이 정확히 압축됩니다.
  4. 최종 분류 레이어는 전체 밀집 블록에 걸쳐 가중치를 사용하지만, 최종 특징 맵에 집중되는 경향이 있습니다. 이는 네트워크 후반부에서 생성된 높은 수준의 특징이 있을 수 있음을 시사합니다.

 

Figure 5: 훈련된 DenseNet에서의 합성곱 레이어의 평균 절대 필터 가중치. 픽셀 (s,ℓ)의 색상은 밀집 블록 내에서 합성곱 레이어 s을 연결하는 가중치의 평균 L_1 노름(입력 특징 맵의 수로 정규화됨)을 인코딩합니다. 검은색 사각형으로 강조된 세 개의 열은 두 개의 전이 레이어와 분류 레이어에 해당합니다. 첫 번째 행은 밀집 블록의 입력 레이어에 연결된 가중치를 인코딩합니다.

 

6. 결론

우리는 Dense Convolutional Network (DenseNet)이라 부르는 새로운 합성곱 네트워크 아키텍처를 제안했습니다. 이 네트워크는 동일한 특징 맵 크기를 가진 두 레이어 간에 직접 연결을 도입합니다. DenseNet은 수백 개의 레이어로 자연스럽게 확장되며, 최적화 문제를 겪지 않습니다. 우리의 실험에서 DenseNet은 파라미터 수가 증가함에 따라 일관되게 정확도를 향상시키며, 성능 저하나 과적합의 징후 없이 우수한 결과를 보였습니다. 여러 설정에서 DenseNet은 여러 경쟁이 치열한 데이터셋에서 최첨단 성과를 달성했습니다. 또한 DenseNet은 최첨단 성능을 달성하기 위해 필요한 파라미터와 계산을 대폭 줄입니다. 본 연구에서는 잔차 네트워크에 최적화된 하이퍼파라미터 설정을 사용했으므로, 하이퍼파라미터 및 학습률 일정의 세부 조정을 통해 DenseNet의 정확도가 더 향상될 가능성이 있다고 믿습니다.

 

DenseNet은 간단한 연결 규칙을 따르면서 자연스럽게 아이덴티티 매핑, 깊은 감독(deep supervision), 그리고 다양한 깊이(depth)의 특성을 통합합니다. DenseNet은 네트워크 전체에서 특징 재사용을 허용하고, 결과적으로 더 컴팩트하고 우리의 실험에 따르면 더 정확한 모델을 학습할 수 있습니다. DenseNet은 컴팩트한 내부 표현과 감소된 특징 중복으로 인해, 합성곱 특징을 기반으로 하는 다양한 컴퓨터 비전 작업에 좋은 특징 추출기가 될 수 있습니다. 우리는 향후 연구에서 DenseNet을 활용한 특징 전이(feature transfer)를 연구할 계획입니다.

 

감사의 글

저자들은 NSF III-1618134, III-1526012, IIS-1149882, 해군 연구 사무소 Grant N00014-17-1-2175 및 Bill and Melinda Gates 재단의 지원을 받았습니다. GH는 중국 포스트닥터럴 협의회의 국제 포스트닥터럴 교환 장학금 프로그램(No.20150015)의 지원을 받았습니다. ZL은 중국 국가 기초 연구 프로그램 보조금 2011CBA00300, 2011CBA00301 및 NSFC 61361136003의 지원을 받았습니다. 또한, Daniel Sedra, Geoff Pleiss, Yu Sun의 많은 통찰력 있는 논의에 감사드립니다.

 

1608.06993v5.pdf
1.09MB