6-3. CNN: ResNet, DenseNet

1. ResNet (Residual Network)

ResNet은 2015년 ImageNet 대회에서 우승하며 딥러닝 분야에 혁신을 가져온 획기적인 CNN 아키텍처입니다. 기존의 깊은 신경망에서 겪는 기울기 소실(vanishing gradient) 문제와 성능 저하 문제를 획기적으로 해결했습니다. ResNet의 핵심 아이디어는 잔차 연결(residual connection), 즉, 이전 레이어의 출력을 다음 레이어의 입력에 직접 더하는 구조입니다. 이러한 연결은 정보를 효과적으로 전달하고, 더 깊은 네트워크를 구축할 수 있게 해줍니다.

1) 배경: 딥러닝과 깊이의 딜레마

딥러닝 모델의 성능을 향상시키는 가장 직관적인 방법 중 하나는 네트워크의 깊이를 늘리는 것입니다. 더 깊은 네트워크는 더 복잡한 특징을 학습할 수 있으며, 데이터의 추상적인 표현을 더 잘 포착할 수 있습니다. 하지만, 깊이가 깊어질수록 훈련 과정에서 문제가 발생할 수 있습니다.

  • 기울기 소실 문제: 역전파 과정에서 기울기가 점차적으로 작아져, 초반 레이어의 가중치가 제대로 업데이트되지 않아 학습이 어려워지는 현상
  • 성능 저하 문제: 네트워크의 깊이가 특정 지점을 넘어서면, 훈련 오차가 증가하고 테스트 성능이 감소하는 현상. 이는 과적합이 아닌, 깊이가 깊어짐으로써 발생하는 근본적인 문제

이러한 문제들은 딥러닝 모델의 깊이를 무한정 늘리는 것을 어렵게 만들었습니다.

2) 잔차 연결 (Residual Connection)

ResNet은 이러한 문제를 해결하기 위해 잔차 연결이라는 독창적인 방법을 제시했습니다. 잔차 연결은 특정 레이어의 입력($x$)을 해당 레이어의 출력($F(x)$)에 직접 더하는 구조입니다. 수식으로 표현하면 다음과 같습니다.

$$ y = F(x) + x $$

여기서 $y$는 잔차 블록의 최종 출력입니다. $F(x)$는 몇 개의 합성곱 레이어로 구성된 학습될 함수의 출력입니다.

잔차 연결 설명 뒤

잔차 연결은 다음과 같은 장점을 제공합니다.

  • 정보의 효율적인 전달: 입력 $x$가 직접적으로 출력 $y$에 더해지기 때문에, 정보가 여러 레이어를 거치지 않고도 쉽게 전달됩니다.
  • 기울기 소실 완화: 역전파 시, 기울기가 직접적으로 전달되어 기울기 소실 문제를 완화합니다.
  • 깊은 네트워크의 용이한 학습: 잔차 연결은 네트워크가 깊어짐에 따라 발생하는 성능 저하 문제를 해결하여, 더 깊은 네트워크의 학습을 가능하게 합니다.
  • Identity Mapping: 만약 $F(x)$가 0에 가까워진다면, 출력 $y$는 입력 $x$와 거의 같아집니다. 이는 네트워크가 "identity mapping", 즉, 입력을 그대로 출력하는 함수를 쉽게 학습할 수 있게 합니다.

3) ResNet 구조

ResNet은 여러 개의 잔차 블록을 쌓아 구성됩니다. 잔차 블록의 종류는 레이어의 수와 구조에 따라 다양하지만, 핵심 아이디어는 동일하게 잔차 연결을 사용하는 것입니다. 일반적으로 ResNet은 다음과 같은 구조를 가집니다.

  1. 초기 합성곱 레이어: 입력 이미지에 대한 기본적인 특징을 추출합니다.
  2. 잔차 블록의 반복: 여러 개의 잔차 블록을 쌓아 올립니다. 각 블록은 여러 개의 합성곱 레이어와 잔차 연결을 포함합니다.
  3. 평균 풀링 레이어: 특징 맵을 다운샘플링합니다.
  4. 완전 연결 레이어: 최종적인 분류를 수행합니다.

ResNet은 다양한 깊이로 구현될 수 있으며, ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152 등이 널리 사용됩니다. 숫자는 네트워크에 포함된 레이어의 수를 나타냅니다. 더 깊은 ResNet은 더 복잡한 특징을 학습할 수 있지만, 계산 비용이 증가합니다.

4) ResNet의 효과

ResNet은 ImageNet 대회에서 탁월한 성능을 기록했으며, 딥러닝 분야에 큰 영향을 미쳤습니다. ResNet의 등장 이후, 더 깊고 복잡한 딥러닝 모델을 효과적으로 학습할 수 있는 기반이 마련되었습니다. ResNet은 컴퓨터 비전 분야의 다양한 문제 (이미지 분류, 객체 감지, 분할 등)에서 널리 사용되고 있으며, 현재까지도 딥러닝 연구의 중요한 기반으로 자리 잡고 있습니다.

2. DenseNet (Densely Connected Convolutional Networks)

DenseNet은 2017년 발표된 CNN 아키텍처로, ResNet과 유사하게 깊은 네트워크를 효과적으로 학습하기 위한 방법을 제시합니다. 하지만 ResNet과는 다른 접근 방식을 취합니다. DenseNet의 핵심은 모든 레이어를 서로 연결하는 것입니다.

1) 배경: Dense Connectivity

DenseNet은 ResNet의 잔차 연결 아이디어를 확장하여, 모든 레이어를 서로 연결하는 "dense connection"을 제안했습니다. ResNet은 잔차 연결을 통해 정보의 흐름을 개선했지만, DenseNet은 모든 레이어 간의 직접적인 연결을 통해 정보의 전달을 더욱 극대화하고자 했습니다.

2) Dense Block과 Transition Layer

DenseNet은 Dense BlockTransition Layer로 구성됩니다.

  • Dense Block: 모든 레이어가 이전 레이어의 출력과 자신의 입력을 연결하는 구조입니다. 각 레이어는 이전 레이어의 특징 맵을 입력으로 받아, 새로운 특징 맵을 생성하고, 이를 모든 후속 레이어에 전달합니다. 이러한 연결 방식을 통해, DenseNet은 특징 맵의 재사용을 극대화하고, 기울기 소실 문제를 완화하며, 특징 전파를 용이하게 합니다.

    Dense Block 설명 뒤 - Transition Layer: Dense Block 사이에 위치하며, 특징 맵의 차원을 줄이고, 계산량을 줄이는 역할을 합니다. 일반적으로 합성곱 레이어와 풀링 레이어로 구성됩니다. 특징 맵의 차원을 줄임으로써, 다음 Dense Block의 입력 크기를 관리하고, 과도한 계산량을 방지합니다.

3) 특징 맵 연결 (Concatenation)

DenseNet에서 레이어 간의 연결은 특징 맵의 연결(concatenation)을 통해 이루어집니다. 각 레이어는 이전 레이어의 특징 맵을 입력으로 받아, 새로운 특징 맵을 생성합니다. 그런 다음, 생성된 특징 맵을 이전 레이어의 특징 맵과 연결하여, 다음 레이어의 입력으로 사용합니다. 이러한 연결 방식은 DenseNet의 핵심적인 특징이며, 특징 맵의 재사용과 정보의 흐름을 향상시키는 데 기여합니다.

4) DenseNet의 장점

  • 기울기 소실 완화: DenseNet은 모든 레이어를 서로 연결함으로써, 기울기 소실 문제를 완화합니다.
  • 특징 전파의 용이성: 모든 레이어가 서로 연결되어, 특징 맵의 전파가 용이해집니다.
  • 파라미터 효율성: DenseNet은 파라미터의 수를 줄여, 계산 효율성을 높입니다.
  • 다양한 특징의 활용: DenseNet은 모든 레이어의 특징을 활용하여, 다양한 수준의 특징을 학습할 수 있습니다.

5) DenseNet의 단점

  • 메모리 사용량 증가: DenseNet은 특징 맵을 연결하는 과정에서 메모리 사용량이 증가합니다.
  • 계산 복잡성 증가: DenseNet은 모든 레이어를 서로 연결하기 때문에, 계산 복잡성이 증가합니다.

6) 성장률 (Growth Rate)

DenseNet의 또 다른 중요한 개념은 성장률 (growth rate, k)입니다. 성장률은 각 레이어에서 생성되는 특징 맵의 수를 나타냅니다. 작은 성장률은 파라미터 수를 줄이고, 계산 효율성을 높이지만, 모델의 표현력을 제한할 수 있습니다. 큰 성장률은 모델의 표현력을 향상시키지만, 메모리 사용량과 계산 복잡성을 증가시킵니다. 적절한 성장률을 선택하는 것은 DenseNet의 성능에 중요한 영향을 미칩니다.

7) DenseNet의 효과

DenseNet은 이미지 분류, 객체 감지, 분할 등 다양한 컴퓨터 비전 문제에서 ResNet과 유사하거나 더 나은 성능을 보여주었습니다. DenseNet은 특징 맵의 효율적인 재사용과 정보의 흐름을 개선하여, 딥러닝 모델의 성능을 향상시키는 데 기여했습니다. 특히 DenseNet은 파라미터 효율성이 높아, 작은 데이터셋에서도 좋은 성능을 보이는 경향이 있습니다.

3. ResNet과 DenseNet 비교

ResNet과 DenseNet은 모두 깊은 네트워크를 효과적으로 학습하기 위한 아키텍처이지만, 접근 방식과 구조는 다릅니다.

특징 ResNet DenseNet
연결 방식 잔차 연결 (입력 + 출력) 모든 레이어 연결
특징 맵 연결 덧셈 (Add) 연결 (Concatenate)
메모리 사용량 상대적으로 적음 상대적으로 많음
파라미터 효율성 우수 우수
특징 전파 중간 정도 매우 우수
깊이 일반적으로 더 깊게 쌓을 수 있음 일반적으로 깊이 제한적
장점 구현의 용이성, 다양한 문제에 적용 가능 파라미터 효율성, 특징 맵 재사용, 기울기 소실 완화
단점 잔차 연결이 복잡할 수 있음 메모리 사용량 증가, 계산 복잡성 증가

ResNet은 잔차 연결을 통해 기울기 소실 문제를 완화하고, 더 깊은 네트워크를 구축할 수 있게 합니다. DenseNet은 모든 레이어를 연결하여 특징 맵의 재사용을 극대화하고, 파라미터 효율성을 높입니다. ResNet은 더 다양한 문제에 적용 가능하며, DenseNet은 작은 데이터셋에서도 좋은 성능을 보이는 경향이 있습니다.

4. 결론

ResNet과 DenseNet은 딥러닝 분야에서 중요한 아키텍처로, 깊은 네트워크를 효과적으로 학습하기 위한 혁신적인 방법을 제시했습니다. ResNet은 잔차 연결을 통해, DenseNet은 모든 레이어의 연결을 통해, 각각 딥러닝 모델의 성능을 향상시켰습니다. 두 아키텍처는 컴퓨터 비전 분야뿐만 아니라, 다양한 딥러닝 문제에서 널리 활용되고 있으며, 딥러닝 연구의 중요한 기반이 되고 있습니다. 이들의 등장 이후, 더 깊고 복잡한 딥러닝 모델을 효과적으로 학습할 수 있는 기술들이 지속적으로 개발되고 있습니다.

비슷한 글 추천

Comments (0)

No comments yet. Be the first to comment!