본문 바로가기
IT 지식/인공지능_딥러닝

[논문] DenseNet

by 이민우 2021. 3. 7.
728x90
반응형

arxiv.org/pdf/1608.06993.pdf

 

 

0. Abstract

 최근의 연구는 컨볼루션 네트워크가 입력쪽 계층과 출력쪽 계층간 더 짧은 연결을 포함할 경우 훨씬 더 깊고, 더 정확하고, 더 효율적으로 훈련할 수 있다는 것을 보여주었다.

 본 논문에서는 이러한 관찰을 수용하고 각 레이어를 피드포워드 방식으로 다른 모든 레이어에 연결하는 밀도 컨볼루션 네트워크 (DenseNet)을 소개한다. L 레이어를 사용하는 기존의 컨볼루션 네트워크는 각 레이어와 후속 레이어 사이의 L 연결을 가지지만 해당 네트워크는 L(L+1) 2 직접 연결을 가진다. 각 레이어에 대해, 모든 선행 레이어의 형상 맵이 입력으로 사용되며, 자체 형상 맵은 모든 후속 레이어에 대한 입력으로 사용된다.

 DenseNet은 몇 가지 이점을 가지고 있다. 경사도 소실 문제를 완화하고, 특징 전파를 강화한다. 특징 재사용을 장려하고, 매개 변수의 수를 크게 줄인다. 저자는 네 개의 객체 인식 벤치마크 작업에 대한 제안된 아키텍처를 평가한다. DenseNet은 대부분의 네트워크에서 최첨단 네트워크보다 개선되었고 고성능을 달성하기 위해 더 적은 연산을 사용했다.

 

코드 : github.com/liuzhuang13/DenseNet

 

 

 

1. Introduction

 CNN은 등장한지 20년이 되었지만 컴퓨터 하드웨어와 구조의 향상으로 최근 심층 CNN을 훈련시킬 수 있게 되었고, 시각적 객체 인식을 위한 지배적인 기계 학습법이 되었다. 원래의 LeNet-5는 5개의 층으로 구성되었고, VGG는 19층, 작년에 등장한 Highway Networks와 ResNet은 100층을 넘었다.

 

 CNN이 깊어짐에 따라 새로운 연구 문제가 대두되었다. 정보가 많은 레이어를 거치는 과정에서 사라지거나 제거될 수 있다는 것이다. 최근의 논문들은 이러한 문제를 다루고 있다. ResNet과 Highway는 식별자 연결을 통해 한 계층에서 다음 계층으로 신호를 전파한다. Stichastic depth는 더 나은 정보와 경사 흐름을 허용하기 위해 훈련 중 무작위로 레이어를 떨어뜨려 ResNet을 단축시킨다. FractalNets는 네트워크에서 많은 짧은 경로를 유지하며 서로 다른 수의 합성블록과 여러 병렬 레이어 시퀀스를 반복적으로 결합하여 큰 nomial(명목상의) 깊이를 얻는다. 이러한 다양한 접근 방식은 네트워크 토폴로지 및 트레이닝 과정에서 주요 특성을 공유하는 과정이다. 즉 초기 계층에서 이후 계층까지 짧은 경로를 생성하는 것이다.

 

 본 논문에서는 단순한 연결 패턴으로 이러한 통찰력을 추출하는 아키텍처를 제안한다. 네트워크 내 계층 간의 정보 흐름을 최대화하기 위해 모든 계층(일치되는 특징맵 크기)를 서로 직접 연결한다. 피드 포워드의 특성을 보존하기 위해 각 계층은 이전의 모든 계층에서 추가 입력을 얻고 자신의 특징 맵을 모든 후속 계층으로 전달한다. 그림 1은 이러한 레이어웃을 도식적으로 보여준다.

 결정적으로 ResNet과 달리 저자는 레이어로 전달되며 합산을 통해 특징을 결함하지 않는다. 대신 특징을 Concat하는 방식을 사용한다. 따라서 계층은 모든 선행 합성곱층의 특징 맵으로 구성된 입력을 가진다. 자체 특징맵은 L-후속 레이어로 전달된다.

 이는 전통적인 아키텍처에서와 같이 L-레이어 네트워크에서 L(L+1) 2 연결을 도입한다. 밀집된 연결 패턴 때문에 저자는 이를 밀도 컨벌루션 네트워크라고 부른다.

 

 이 고밀도 연결 패턴은 특징맵을 중복해서 학습할 필요가 없다. 그렇기에 기존의 네트워크보다 매개 변수가 덜 필요하다. 기존의 피드 포워드 아키텍처는 레이어에서 레이어로 전달되는 상태를 가진 알고리즘으로 볼 수 있다. 각 계층은 이전 계층에서 상태를 읽고 후속 계층에 쓴다. 이는 상태를 변화시키며 보존되어야 할 정보는 전달한다. ResNet은 적층 ID 변환을 통해 이 정보 보존을 명시적으로 한다. ResNet의 최근 변형은 많은 계층이 거의 기여하지 않으며 실제로 훈련 중 무작위로 삭제될 수 있음을 보여준다. 이는 ResNet의 상태를 반복 신경망과 유사하게 만들지만 ResNet의 매개 변수 수는 각 계층이 자체 가중치를 가지기에 실질적으로 더 크다.

 DenseNet은 네트워크에 추가된 정보와 보존되는 정보를 명시적으로 구분한다. DenseNet 계층은 매우 좁아 네트워크의 집단적 지식에 작은 특징맵만 추가하고 나머지 특징 맵은 변경하지 않고 그대로 유지하며, 최종 분류자는 네트워크의 모든 특징맵을 기반으로 결정을 내린다.

 

 매개변수 효율성 외에도 DenseNet의 장점 중 하나는 네트워크 전체의 정보 흐름과 경사도가 향상되어 훈련이 쉽다는 것이다. 각 레이어는 손실 함수와 원래 입력에서 경사도에 직접 접근하여 암시적 심층 감독을 이끌어낸다. 이는 보다 심층인 네트워크 아키텍처를 교육하는 데 도움이 된다.

 또한 조밀한 연결이 정규화 효과를 가지기에 훈련 셋의 크기가 작은 작업에 대한 과적합이 감소한다.

 

 저자는 CIFAR-10, 100, SVHN, ImageNet 데이터 셋을 활용해 DenseNet을 평가했다. 유사한 정확도로 기존 알고리즘들보다 훨씬 적은 매개 변수를 요구하는 경향이 있다. 또한 대부분의 벤치마크 작업에서 현재 최첨단 결과를 크게 능가한다.

 

요약

CNN이 깊어지며 정보가 레이어를 거치며 사라지는 현상이 발생했다.
해당 문제를 해결하기 위해 레이어들을 연결한 많은 모델들이 등장했다.

본 논문에서는 각 레이어가 이전의 모든 레이어에서 나온 특징맵들을 입력으로 받는 구조를 만들었다. ResNet과 달리 특징맵간 연결은 concat으로 이루어진다. 이러한 연결은 중복된 특징맵을 재학습하지 않아도 되게 만들고, information flow를 개선하여 경사도 소실 문제를 방지한다.

또한 과적합이 감소하며 기존의 모델들과 유사한 정확도로 적은 매개 변수를 요구한다.

 

 

2. Related Work

 네트워크 아키텍처의 탐색은 초기 발견 이후 신경망 연구의 일부였다. 최근 신경망의 인기가 되살아나며 이 연구 영역도 되살아났다. 현대 네트워크에서 증가하는 계층 수는 아키텍처 간의 차이를 증폭시키고 다른 연결 패턴의 탐색과 오래된 연구 아이디어를 재방문한다.

 

 저자가 제안한 조밀한 네트워크 레이아웃과 유사한 계단식 구조는 이미 1980년대 연구되었다. 이 연구는 계층별 방식으로 훈련된 완전연결 다층 퍼셉트론에 초점을 맞추었다. 보다 최근에는 배츠 경사도 감소로 훈련된 완전연결 캐스케이드 네트워크가 제안되었다. 작은 데이터 셋에 효과적이지만 이 접근 방식은 매개 변수가 수백 개인 네트워크로 확장된다.

 [9, 23, 31, 41]에서 스킵 연결을 통해 CNN의 다단계 기능을 활용하는 것이 다양한 비전 작업에 효과적인 것으로 나타났다. 저자의 연구와 유사하게, [1]은 저자의 것과 유사한 교차 계층 연결을 가진 네트워크에 대한 순수 이론적 프레임워크를 도출했다.

 

 Highway 네트워크는 100개 이상의 계층이 있는 엔드 투 엔드 네트워크를 효과적으로 훈련시키는 수단을 제공한 최초의 아키텍처 중 하나였다. 게이트 장치와 함께 우회 경로를 사용하면 수백 개의 레이어가 있는 Highway 네트워크를 어렵지 않게 최적화할 수 있다. 우회 경로는 이러한 심층 네트워크의 훈련을 용이하게 만들어주는 핵심 요소이다. 이 지점은 ResNet에 의해 추가로 지원되며, 순수 식별자 매핑이 우회 경로로 사용된다.

 ResNet은 ImageNet 및 COCO 객체 감지와 같이 많은 이미지 인식, 지역화 및 감지 작업에서 좋은 성능을 달성했다. 초근에는 1,202 레이어 ResNet을 성공적으로 훈련시키는 방법으로 확률적 깊이가 제안되었다.

 확률적 깊이 (Stochastic Depth)는 훈련 중 계층을 무작위로 떨어뜨려 심층 잔자 네트워크의 훈련을 개선한다. 이는 모든 계층이 필요하지 않음을 보여주며 심층 잔차 네트워크에서 많은 양의 중복성이 있음을 강조한다.

 저자는 그 관찰에 영감을 받았고, 사전 활성화가 있는 ResNet은 1,000개 이상의 계층으로 최첨단 네트워크의 훈련을 용이하게 한다.

 

 네트워크를 더 깊게 만들기 위한 직교 접근법은 네트워크의 폭을 늘리는 것이다. GoogleNet은 다양한 크기의 필터에 의해 생성된 특징맵을 연결하는 인셉션 모듈을 사용한다. 사실 깊이가 충분하다면 ResNet의 각 계층에서 필터 수를 증가시키면 성능을 향상할 수 있다. 또한 FractalNets는 광범위한 네트워크 구조를 사용하여 여러 데이터 셋에서 좋은 결과를 달성했다.

 

 DenseNet은 매우 깊거나 넓은 아키텍처에서 표현력을 끌어내는 대신 재사용을 통해 네트워크의 잠재력을 활용해 훈련하기 쉽고 매개 변수 효율성이 높은 축약된 모델을 산출한다.

 서로 다른 계층에서 학습한 특징맵을 연결하여 후속 계층 입력의 변동을 증가시키고 효율성을 향상시킨다. 이는 DenseNet과 ResNet 사이의 큰 차이를 구성한다. 또한 다른 계층의 특징을 연결하는 인셉션 네트워크와 비교했을 때 DenseNet은 더 간단하고 효율적이다.

 

 좋은 결과를 산출한 다른 주먹할만한 아키텍처 혁신이 있다. NIN (Network in network) 구조는 더 복잡한 특징을 추출하기 위해 마이크로 다층 퍼셉트론을 컨볼루션 레이어의 필터에 포함한다. 심층 감독 네트워크에서 내부 계층은 보조 분류기에 의해 직접 감독되며, 이는 이전 계층에서 수신되는 경사도를 강화할 수 있다.

 Ladder Network는 자동 인코더에 측면 연결을 도입해 준지도 학습에 좋은 정확도를 생성했다. 서로 다른 기본 네트워크의 중간 계층을 결합하여 정보 흐름을 개선하는 심층 융합 네트워크 (DFN)도 있다. 재구성 손실을 최소화하는 경로를 가진 네트워크의 확대도 이미지 분류 모델을 개선한다.

 

요약

DenseNet은 네트워크 내에서 특징맵을 재활용하여 조밀한 모델을 만들어 파라미터 수를 줄이고 쉽게 학습할 수 있도록 한다.

ResNet과 달리 다른 레이어들에서 학습된 특징맵을 서로 concat하여 변동을 증가시키고 효율성을 향상시키고, GoogleNet보다 훨씬 심플하고 효율적인 구조를 가진다.

 

3. DenseNets

 합성곱층을 통과하는 단일 이미지 X0을 생각해보자. 네트워크는 L 계층으로 구성되며, 각 계층은 비선형 변환을 Hi(-)을 구현하며 여기서 l은 계층을 인덱싱한다. Hi(0)는 배치 정규화, ReLU, 풀링 또는 컨볼루션의 복합 함수일 수 있다. 계층의 출력은 x로 나타낸다.

 

ResNets

기존의 컨볼루션 피드포워드 네트워크는 입력으로 계층의 출력일 (i+1)번째 계층에 연결하며 이는 (1) 식과 같은 계층 변환을 일으킨다. ResNet은 식별자 함수를 사용하여 비선형 변환을 바이패스하는 스킵 연결을 추가한다.

 ResNet의 장점은 그라데이션이 식별자 함수를 통해 이후 계층에서 이전 계층으로 직접 흐를 수 있다는 것이다. 그러나 H의 식별자 함수와 출력은 합산에 의해 결합되어 네트워크의 정보 흐름을 방해할 수 있다.

 

요약

ResNet은 특징맵과 출력맵을 합산하는데, 이러한 방식은 네트워크의 정보 흐름을 방해할 수 있다.

 

Dense Connectivity

 계층간 정보 흐름을 더욱 개선하기 위해 다른 연결 패턴을 제안했다. 모든 계층에서 모든 후속 계층으로 직접 연결을 도입한다. 그림 1은 DenseNet의 레이아웃을 도식적으로 보여준다. 결과적으로 계층은 (2)의 수식으로 모든 선행 계층의 특징맵을 수신한다.

 고밀도 연결성 때문에 이 네트워크를 고밀도 컨볼루션 네트워크 (DenseNet)이라고 부른다. 구현의 용이성을 위해 (2) 등식의 Hi(-)의 다중 입력을 단일 텐서로 연결한다.

 

요약

레이어간 정보 흐름을 개선하기 위한 방법으로, 0번째 레이어부터 직전 레이어까지의 모든 특징맵을 concat한 특징 맵을 사용한다.

 

Composite function.

 Hi(-)를 배치 정규화, ReLu및 3*3 컨볼루션의 세 연속 연산의 복합 함수로 정의한다.

 

요약

BN -> ReLU -> 3*3 합성곱 순서대로 사용

 

Pooling layers.

 특징맵의 크기가 변경되면 2번 식에 사용된 연결 작업을 실행할 수 없다. 그러나 컨볼루션 네트워크의 필수적인 부분은 특징맵의 크기를 변경하는 다운샘플링 레이어이다. 아키텍처에서 다운샘플링을 용이하게 하기 위해 네트워크를 여러 조밀하게 연결된 조밀한 블록으로 나눈다. 그림 2을 참조하자.

 블록 사이의 레이어를 변환 레이어로 지칭하며, 이를 컨볼루션과 풀링을 한다. 실험에서 사용된 전환 레이어는 배치 정규화 레이어와 1*1 컨볼루션 레이어에 이어 2*2 평균 풀링 레이어로 구성된다.

 

요약

Concatenation 연산은 특징맵의 높이와 넓이가 일치해야 한다.
그렇기에 DenseNet의 연결은 dense 블록 내에서만 이루어지며, 사이즈를 다운 샘플링 하기 위해 dense 블록 사이에 transition alyer를 추가한다.

transition layer는 BN, 1*1 conv, 2*2 avg 풀링이다.

 

Growth rate.

 각 함수 H가 k 피처맵을 생성하면 계층에는 k0 + k*(t-1)개의 특징맵이 존재한다. 여기서 k0은 입력 계층의 채널 갯수이다. 기존 네트워크와의 차이점은 DenseNet은 k=12와 같은 매우 좁은 계층을 가질 수 있다는 것이다. 하이퍼 파라미터 k를 네트워크의 성장률이라 부른다. 섹션 4에서 상대적으로 적은 성장률로 테스트한 데이터 셋에 대한 결과를 얻기에 충분하다는 것을 보여주었다.

 이에 대한 한 가지 설명은 각 계층이 블록에 있는 이전의 모든 특징맵에 접근하고 따라서 네트워크의 집단적 지식에 접근한다는 것이다. 피처맵을 네트워크의 글로벌 상태로 볼 수 있다. 각 계층은 자체 특징맵을 이 상태에 추가한다.

 성장률은 각 계층이 글로벌 상태에 기여하는 새로운 정보의 양을 조절한다. 글로벌 상태는 일단 작성되면 네트워크 내의 모든 곳에서 액세스할 수 있으며, 기존 네트워크 아키텍처와 달리 계층 간에 복제할 필요가 없다.

 

요약

성장률은 각 합성곱층에서 만들어지는 특징맵의 채널 수를 조절하기 위한 하이퍼파라미터이다.
각 레이어에서 k개의 특징맵을 만들어내개 하며, 모든 합성곱층은 필터의 개수를 k개로 고정한다.

DenseNet에선 이전 레이어의 모든 특징맵을 concat하기에 필연적으로 학습이 진행될수록 특징맵의 채널 수가 많아지게 된다.

 

Bottleneck layers.

 각 계층은 k개의 특징맵을 생성하지만 더 많은 입력을 가지고 있다. 입력 특징맵의 수를 줄이고 계산 효율성의 향상을 위해 3*3 컨볼루션 전에 1*1 컨볼루션으로 병목을 도입할 수 있다. 이 설계가 DenseNet에 특히 효과적이라고 생각하며, 이러한 병목을 가진 네트워크, 즉 DenseNet-B와 같은 BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3) 버전을 만들었다. 실험에서,  각 1×1 컨볼루션에서 4k 피처 맵을 생성하도록 한다.

 

요약

Bottleneck이 DenseNet에 효과적이라고 생각하여 DenseNet-B에서 도입했다.

 

Compression.

 모델의 조밀함을 개선하기 위해 전환 계층에서 특징맵 수를 줄일 수 있다. 조밀한 블록에 m 피처 맵이 포함되어 있는 경우, 다음 전환 계층이 b➡mc 출력 피처 맵을 생성하도록 허용하며, 여기서 θ ➡ 1을 압축 계수라고 한다. θ = 1을 사용할 경우 전환 계층 간의 특징맵 수는 변경되지 않는다. θ <1을 가진 DenseNet-C라고 하며 실험에서 θ = 0.5를 설정한다. θ < 1의 병목 현상과 전환 계층이 모두 사용될 때의 모델을 DenseNet-BC라고 부른다.

 

요약

모델의 조밀함의 개선을 위해 transition layer에서 특징맵의 크기를 조절한다. dense block에서 m개의 특징맵이 나왔다면 transition layer에서는 θm 개의 출력 특징맵을 생성한다.

θ의 값은 0 초과 1 이하이며, 1일 경우 특징맵의 채널 수는 바뀌지 않는다.

θ < 1이면 DenseNet-C, 실험에서는 θ=0.5로 설정

DenseNet B, C를 합친 버전을 BC라 한다.

 

Implementation Details.

 ImageNet을 제외한 모든 데이터 셋에서 실험에 사용된 DenseNet은 각각 동일한 수의 레이어를 갖는 세 개의 조밀한 블록을 가지고 있다. 첫 번째 조밀한 블록으로 들어가기 전에 16개의 출력 채널을 입력 이미지에 수행한다. 커널 크기가 3*3인 컨볼루션 레이어의 경우 입력의 각 면이 피처 맵 크기를 고정하기 위해 한 픽셀씩 제로 패딩된다. 1×1 컨볼루션에 이어 2×2 평균 풀링을 두 개의 연속적인 조밀한 블록 사이의 전환 계층으로 사용한다. 마지막 조밀한 블록의 끝에서 전역 평균 풀링이 수행된 후 소프트맥스 분류기가 연결된다. 3개의 조밀한 블록의 형상 지도 크기는 각각 32×32, 16×16, 8×8이다. 기본 DenseNet 구조를 {L = 40, k = 12, {L = 100, k = 12} 및 {L = 100, k = 24} 구성으로 실험한다. DenseNetBC의 경우 구성이 {L = 100, k = 12, {L = 250, k = 24} 및 {L = 190, k = 40}인 네트워크가 평가된다.

 

 ImageNet에 대한 실험에서, 224×224 입력 이미지에 4개의 조밀한 블록이 있는 DenseNet-BC 구조를 사용한다. 초기 컨볼루션 레이어는 7×7 크기의 2k 컨볼루션과 2개의 스트래트로 구성된다. 다른 모든 레이어의 피처 맵 수 또한 k 설정에서 따랐다. ImageNet에서 사용한 정확한 네트워크 구성은 표 1에 나와있다.

 

요약

iMAGEnET을 제외한 모든 데이터 셋에 dense 블록이 3개인 DenseBnet을 사용했다.
모든 dense block 안의 반복 레이어 수는 같다.

첫 번째 dense 블록에 들어가기 전에 3*3 컨볼루션을 거치며, 마지막 dense 블록 이후에는 global average pooling 및 softmax를 거친다.

 

4. Experiments

 여러 벤치마크 데이터 세트에 대한 DenseNet의 효과를 경험적으로 입증하고 특히 ResNet 및 그 변형과 같은 최첨단 아키텍처와 비교한다.

 

4.1 Datasets

CIFAR.

 두 CIFAR 데이터 세트[15]는 32×32 픽셀의 컬러 자연 이미지로 구성된다. 10개의 클래스에서 추출한 이미지인 CIFAR-10(C10)과 100개 클래스의 CIFAR-100(C100)으로 구성된다. 훈련 세트와 테스트 세트에는 각각 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]에 따라 픽셀 값을 [0, 1] 범위에 있도록 255로 나눕니다.

 

ImageNet.

 ILSVRC 2012 분류 데이터 세트[2]는 1,000개의 클래스에서 교육을 위한 120만 개의 이미지와 검증을 위한 50,000개의 이미지로 구성된다. [8, 11, 12]와 동일한 데이터 확대 방식을 훈련 이미지에 채택하고 테스트 시간에 224×224 크기의 단일 작물 또는 10-작물을 적용한다. [11, 12, 13] 다음에 검증 세트에 대한 분류 오류를 보고한다.

 

4.2 Training

 모든 네트워크는 확률적 경사 하강(SGD)을 사용하여 훈련된다. CIFAR과 SVHN에서는 각각 300과 40에 대해 배치 크기 64를 사용하여 훈련한다. 초기 학습률은 0.1로 설정되며, 전체 교육 에포크 수의 50%, 75%에서 10으로 나눈다. ImageNet에서는 배치 크기가 256인 90 epoch에 대한 모델을 교육한다. 학습률은 처음에는 0.1로 설정되며, 30, 60에서 10배 정도 낮아진다. DenseNet의 구현에는 메모리 비효율성이 포함될 수 있다. GPU의 메모리 사용량을 줄이려면 DenseNets[26]의 메모리 효율적인 구현에 대한 기술 보고서를 참조하자.

 [8]에 이어 10-4의 weight decay와 0.9의 Nesterov momentum[35]을 감쇠 없이 사용한다. [10]에 의해 도입된 가중치 초기화를 채택한다. 데이터 증가가 없는 세 개의 데이터 세트, 즉 C10, C100 및 SVHN에 대해, 각 컨볼루션 레이어(첫 번째 레이어 제외) 뒤에 드롭아웃 레이어를 추가하고 드롭아웃 레이어를 0.2로 설정한다. 테스트 오류는 각 작업 및 모델 설정에 대해 한 번만 평가한다.

 

요약

SGD, 배치 크기는 데이터셋에 맞게
학습률은 0.1에서 시작해 50% 진행시, 75% 진행시 각각 1/10
weight decay 10e-4. Newterov momentum 0.9, 첫 번째 합성곱층을 제외한 합성곱층에 0.2 드롭아웃.

 

4.3 Classification Results on CIFAR and SVHN

 서로 다른 깊이, L, 성장률 k로 DenseNets를 훈련시킨다. CIFAR 및 SVHN에 대한 주요 결과는 표 2에 나와 있다. 일반적인 추세를 강조하기 위해 기존의 최첨단 결과를 볼드체에서 능가하는 모든 결과를 파란색으로 표시한다.

 

Accuracy.

 가장 눈에 띄는 추세는 표 2의 맨 아래 행에서 비롯될 수 있는데, 이는 L = 190 및 k = 40을 사용하는 DenseNet-BC가 모든 CIFAR 데이터 세트에서 기존 최첨단 데이터보다 일관되게 우수하다는 것을 보여준다.

 C10+에서는 3.46%, C100+에서는 17.18%의 오류율은 광범위한 ResNet 아키텍처에서 달성한 오류율보다 상당히 낮다[42]. C10 및 C100(데이터 증강을 하지 않음)에 대한 최상의 결과는 더욱 고무적이다. 두 결과 모두 드롭 경로 정규화를 사용하는 FractalNet보다 30% 가까이 낮다[17].

 SVHN에서 중퇴를 사용하는 경우 L = 100 및 k = 24를 사용하는 DenseNet도 광범위한 ResNet이 달성한 현재 최고의 결과를 능가합니다. 그러나 250계층 DenseNet-BC는 더 짧은 상대보다 성능을 더 향상시키지 않는다. 이는 SVHN이 비교적 쉬운 작업이며, 매우 심층적인 모델이 교육 세트에 지나치게 적합할 수 있다는 것으로 설명될 수 있다.

 

Capacity.

 압축이나 병목 현상이 없는 경우, L 과 k가 증가함에 따라 DenseNets가 더 나은 성능을 발휘하는 일반적인 경향이 있다. 이것이 주로 모델 용량의 상응하는 성장에 기인한다고 본다. 이는 C10+ 및 C100+ 열에 의해 가장 잘 입증된다.

 C10+에서 오차는 5.24%에서 4.10%로 떨어지고 7.0M에서 27.2M으로 매개 변수의 수가 증가함에 따라 최종적으로 3.74%로 감소한다. C100+에서는 유사한 추세를 관찰한다. 이것은 DenseNets가 더 크고 더 깊은 모델의 향상된 표현력을 활용할 수 있음을 시사한다. 또한 잔여 네트워크의 과적합 또는 최적화 어려움을 겪지 않는다는 것을 나타낸다[11].

 

Parameter Efficiency.

 표 2의 결과는 DenseNet이 대체 아키텍처(특히 ResNets)보다 매개 변수를 더 효율적으로 활용함을 나타낸다. 전환 계층에서 병목 구조 및 차원 감소를 가진 DenseNetBC는 특히 매개 변수 효율적이다. 예를 들어, 250 레이어 모델은 15개만 가지고 있다. 3M 매개 변수이지만 30M 매개 변수가 넘는 FractalNet 및 Wide ResNets와 같은 다른 모델보다 지속적으로 성능이 우수하다. 또한 L = 100 및 k = 12를 사용하는 DenseNet-BC는 90% 적은 매개 변수를 사용하는 1001계층 사전 활성화 Resnet과 비교할 수 있는 성능(예: C10+의 4.51% 대 4.62% 오류, C100+의 22.27% 대 오류)을 달성한다. 그림 4(우측 패널)는 C10+에서 이 두 네트워크의 교육 손실 및 테스트 오류를 보여준다. 1001 레이어 딥 ResNet은 더 낮은 훈련 손실 값으로 수렴되지만 유사한 테스트 오류로 수렴된다. 이 효과는 아래에서 더 자세히 분석한다.

 

Overfitting.

 매개 변수의 보다 효율적인 사용의 긍정적인 부작용 중 하나는 DenseNets의 과적합 경향이 덜하다는 것이다. 데이터 증대가 없는 데이터 세트에서 이전 작업에 비해 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 병목 현상 및 압축 계층은 이러한 추세에 대응하는 효과적인 방법으로 보인다.

 

요약

상대적으로 적은 파라미터만 사용함에도 불구하고 비슷하거나 더 좋은 정확도를 보인다.

또한 매개변수의 효율적인 사용으로 오버피팅 문제를 방지해주는 효과가 존재한다.

 

4.4 Classfication Results on ImageNet

 ImageNet 분류 작업에서 깊이와 성장률이 다른 DenseNet-BC를 평가하고, 최첨단 ResNet 아키텍처와 비교한다. 두 아키텍처 간의 공정한 비교를 위해 ResNet에 대해 공개적으로 사용할 수 있는 Torch 구현을 [8] 1까지 채택하여 데이터 사전 처리 및 최적화 설정의 차이와 같은 다른 모든 요인을 제거한다. ResNet 모델을 DenseNetBC 네트워크로 교체하기만 하면 모든 실험 설정을 정확하게 유지할 수 있다. 즉, ResNet에 사용된 것과 동일하다.

 

 표 3의 ImageNet에서 DenseNets의 단일 크롭 및 10-crop 유효성 검사 오류를 보고한다. 그림 3은 매개 변수 수(왼쪽)와 FLOP 수(오른쪽)의 함수로 DenseNets 및 ResNets의 단일 크롭 톱1 검증 오류를 보여준다. 그림에 제시된 결과는 DenseNets가 최첨단 ResNets와 동등한 성능을 발휘하는 동시에 유사한 성능을 달성하기 위해 훨씬 적은 매개 변수와 계산이 필요하다는 것을 보여준다.

 예를 들어, 20M 매개 변수 모델이 있는 DenseNet-201은 40M 매개 변수가 넘는 101계층 ResNet과 유사한 유효성 검사 오류를 생성한다. 오른쪽 패널에서도 유사한 추세를 관찰할 수 있는데, 오른쪽 패널에서는 검증 오류를 FLOP 수의 함수로 표시하는데, 이는 ResNet-50이 두 배의 계산이 필요한 ResNet-101과 동등한 성능을 발휘하는 DenseNet이다.

 실험 설정은 ResNets에 최적화되었지만 DenseNets에는 최적화되지 않은 하이퍼 파라미터 설정을 사용한다는 것을 암시한다는 점에 주목할 필요가 있다. 보다 광범위한 하이퍼 파라미터 검색은 ImageNet의 DenseNet 성능을 더욱 향상시킬 수 있다.

 

 

5. Discussion

 표면적으로 DenseNets는 ResNets와 상당히 유사하다. Eq. (2)는 Hi(·)에 대한 입력이 합계 대신 연결된다는 점에서 (1)과 다르다. 그러나 이 작은 수정이 시사하는 바는 두 네트워크 아키텍처의 상당히 다른 동작으로 이어진다.

 

Model compactness.

 입력 연결의 직접적인 결과로서, DenseNet 계층에서 학습한 특징맵은 모든 후속 계층에서 액세스할 수 있다. 이는 네트워크 전체에 걸쳐 특징맵 재사용을 장려하고 보다 컴팩트한 모델로 이어진다.

 그림 4의 왼쪽 두 그림은 모든 유형의 DenseNets(왼쪽)와 비교 가능한 ResNet 아키텍처(가운데)의 매개 변수 효율성을 비교하는 것을 목표로 하는 실험 결과를 보여준다. C10+에서 다양한 깊이를 가진 여러 개의 작은 네트워크를 훈련시키고 네트워크 매개 변수의 함수로 테스트 정확도를 표시한다. AlexNet[16] 또는 VGG-net[29]과 같은 다른 인기 있는 네트워크 아키텍처와 비교하여, 사전 활성화가 있는 ResNets는 매개 변수를 적게 사용하는 동시에 일반적으로 더 나은 결과를 달성한다[12]. 따라서 DenseNet(k = 12)을 이 아키텍처와 비교한다. DenseNet에 대한 교육 설정은 이전 절과 동일하게 유지된다.

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

 

요약

파라미터가 줄었음에도 불구하고 ResNet과 비슷한 정확도를 달성.

 

Implicit Deep Supervision.

 조밀한 컨볼루션 네트워크의 정확도가 향상되었다는 한 가지 설명은 개별 계층이 더 짧은 연결을 통해 손실 함수로부터 추가 감독을 받는다는 것일 수 있다. DenseNets를 해석하여 일종의 "심층 감독"을 수행할 수 있다. 심층 감리의 이점은 이전에 모든 숨겨진 계층에 분류기가 부착되어 차별적 특징을 학습하기 위해 중간 계층을 강제하는 심층 감독 네트워크(DSN; [20])에서 나타났다.

 

DenseNets는 암시적 방식으로 유사한 심층 감독을 수행한다. 네트워크 상단에 있는 단일 분류기는 최대 두세 개의 전환 계층을 통해 모든 계층에 대한 직접 감독을 제공한다. 그러나, DenseNets의 손실 함수와 기울기는 모든 계층 간에 동일한 손실 함수가 공유되기 때문에 실질적으로 덜 복잡하다.

 

요약

DenseNet은 각 레이어들이 shorter connection으로 손실 함수로부터 추가 감독을 갖기에 학습이 더 잘 수행된다.

또한 transition layer를 통해 모든 레이어에 supervision을 전달해주기에 심층 감독과 비슷한 역할을 하며, 손실 함수와 기울기는 모든 계층 간 동일한 손실 함수가 공유되기에 덜 복잡하다.

 

Stochastic vs. deterministic connection.

조밀한 컨볼루션 네트워크와 잔여 네트워크의 확률적 깊이 정규화 사이에는 흥미로운 연결이 있다[13]. 확률적 깊이에서 잔여 네트워크의 레이어는 무작위로 삭제되며, 이는 주변 레이어 간에 직접 연결을 생성한다. 풀링 레이어는 절대 드롭되지 않기 때문에, 네트워크는 DenseNet과 유사한 연결 패턴을 초래한다. 모든 중간 레이어가 랜덤하게 드롭되는 경우, 동일한 풀링 레이어 사이에 있는 두 레이어가 직접 연결될 가능성은 적다. 방법이 궁극적으로 상당히 다르지만, 확률적 깊이에 대한 DenseNet 해석은 이 정규화기의 성공에 대한 통찰력을 제공할 수 있다.

 

요약

stochastic depth regularization네트워크에서 레이어를 일정 확률로 특정 레이어를 drop시켜 주위에 있는 다른 레이어와 연결되게 만드는 것인데, 이러한 연결 패턴이 DenseNet의 dense connectivity와 비슷하다.

 

Feature Reuse.

 설계에 의해 DenseNets는 이전의 모든 계층에서 (때로는 전환 계층을 통해) 특징맵에 대한 계층 접근을 허용한다. 훈련된 네트워크가 이 기회를 활용하는지 조사하기 위해 실험을 수행한다. 먼저 L = 40 및 k = 12로 C10+에서 DenseNet을 훈련시킨다. 블록 내의 각 컨볼루션 레이어 '에 대해, 레이어와의 연결에 할당된 평균(절대) 가중치를 계산한다. 그림 5는 세 개의 조밀한 블록 모두에 대한 열 지도를 보여준다. 평균 절대 중량은 앞의 레이어에 대한 컨볼루션 레이어의 종속성에 대한 대리 역할을 한다. 위치의 빨간색 점(smps)은 계층이 이전에 생성된 특징 맵을 평균적으로 강하게 사용함을 나타낸다. 그림에서 몇 가지 관측치를 만들 수 있다.

1. 모든 층은 동일한 블록 내의 많은 입력에 무게를 분산시킨다. 이것은 매우 초기 레이어에 의해 추출된 특징이 실제로 동일한 조밀한 블록 전체의 딥 레이어에 의해 직접 사용된다는 것을 나타낸다.

2. 전환 레이어의 가중치는 또한 이전의 조밀한 블록 내의 모든 레이어에 걸쳐 가중치를 분산시켜, 적은 방향을 통해 DenseNet의 첫 레이어에서 마지막 레이어로 정보 흐름을 나타낸다.

3. 두 번째 및 세 번째 조밀한 블록 내의 계층은 전환 계층(삼각형의 맨 위 행)의 출력에 지속적으로 최소 가중치를 할당하며, 이는 전환 계층이 많은 중복 특징을 출력한다는 것을 나타낸다(평균 저중량). 이는 이러한 출력이 정확히 압축되는 DenseNet-BC의 강력한 결과와 일치한다.

4. 오른쪽의 최종 분류 계층도 전체 밀도가 높은 블록에 걸쳐 가중치를 사용하지만, 최종 형상 맵에 대한 집중도가 있어 네트워크 후반부에 더 많은 고급 형상이 생성될 수 있음을 시사한다.

 

요약

초기 레이어에 의해 추출된 특징이 깊은 레이어에 잘 전달된다.

transition layer도 이전 dense block에서 추출된 특징을 잘 살려 다음 레이어에 잘 전달한다.

Dense Block 2, 3에서 첫 번째 레이어들은 transition layer output에 영향을 미치는 정도가 낮다.
최종 레이어는 높은 레벨의 특징에 집중하는 경향이 있다.

 

6. Conclusion

 밀도 컨볼루션 네트워크(DenseNet)라고 하는 새로운 컨볼루션 네트워크 아키텍처를 제안했다. 그것은 동일한 피처 맵 크기를 가진 두 레이어 사이에 직접 연결을 도입한다. DenseNets가 최적화 어려움을 보이지 않으면서 자연스럽게 수백 개의 계층으로 확장된다는 것을 보여주었다. 실험에서, DenseNets는 성능 저하 또는 과적합의 징후 없이 증가하는 매개 변수에 따라 정확도가 일관되게 향상되는 경향이 있다. 여러 설정에서, 경쟁률이 높은 여러 데이터 세트에 걸쳐 최첨단 결과를 달성했다. 또한, DenseNets는 최첨단 성능을 달성하기 위해 훨씬 적은 매개 변수와 더 적은 계산을 요구한다. 연구에 잔류 네트워크에 최적화된 하이퍼 파라미터 설정을 채택했기 때문에, 하이퍼 파라미터와 학습 속도 일정을 보다 상세하게 튜닝함으로써 DenseNets의 정확도가 추가로 향상될 수 있다고 생각한다.

 DenseNets는 간단한 연결 규칙을 따르는 동안 자연스럽게 ID 매핑, 심층 감독 및 다각화된 깊이의 속성을 통합한다. 그것들은 네트워크 전체에 걸쳐 특징을 재사용할 수 있게 해주며 결과적으로 더 컴팩트하고 더 정확한 모델을 배울 수 있다. 소형 내부 표현과 축소된 특징 중복성 때문에, DenseNets는 컨볼루션 기능을 기반으로 하는 다양한 컴퓨터 비전 작업에 좋은 특징 추출기가 될 수 있다. 예를 들어 [4, 5] 향후 작업에서 DenseNets를 사용하여 이러한 특징 전송을 연구할 계획이다.

728x90
반응형

'IT 지식 > 인공지능_딥러닝' 카테고리의 다른 글

[논문] ResNet  (0) 2021.03.02
[논문] AlexNet  (0) 2021.02.27
자연어 처리 : 트랜스포머  (0) 2021.02.22
Convolutional Neural Network (합성곱 신경망, CNN)  (0) 2021.01.27