ML_AI/24_여름방학 인공지능 스터디

[논문 리뷰] Deep Residual Learning for Image Recognition

안정민 2024. 8. 7. 17:59

https://arxiv.org/pdf/1512.03385v1

 

오늘은 Deep Residual Learning for Image Recognition에서 마이크로소프트팀이 소개한 ResNet에 대해 다뤄보려 한다. ResNet은 수학적으로 어려운 개념이 적용되었다기보다는 "잔차"라는, 방법론적으로 신박한 개념이 도입됨을 소개하는 논문이다. 첫 주인 이번주 스터디는 논문을 읽고 1회독을 하는 것을 목적으로 하고, 그 다음주에는 이 논문에서 제시하고 있는 아이디어를 스터디원과 함께 구현해보려고 한다.

 

 

1. Introduction

깊은 합성곱 신경망은 이미지 분류에 있어서 일련의 돌파구를 마련했습니다. 깊은 네트워크는 자연스럽게 저/중/고 수준의 특징과 분류기를 종단간 다층 방식으로 통합하며, 특징의 "수준"은 쌓인 레이어(깊이)의 수에 의해 풍부해질 수 있습니다. 최근 증거는 네트워크 깊이가 매우 중요하다는 것을 보여주며, 도전적인 ImageNet 데이터셋에서의 선도적인 결과들은 깊이가 16에서 30에 이르는 "매우 깊은" 모델을 활용하고 있습니다. 많은 다른 비트리비얼 시각 인식 작업들도 매우 깊은 모델로부터 큰 혜택을 받고 있습니다.

 

심층 신경망은 추상화에 대한 고/중/저 수준의 특징을 분류기와 함께 multi-layer 형식으로 통합한다

각 추상화 단계는 쌓은 layer의 수에 따라 더욱 높아질 수 있으며, 즉, 높은 추상화 특징은 high layer에서 파악할 수 있다는 것이다.

 

최근 연구 결과에 따르면 네트워크의 깊이는 매우 중요하며, 실제로 많은 모델들이 깊은 네트워크를 통해 좋은 성능을 보임

 


깊이의 중요성에 의해, 다음과 같은 질문이 제기됩니다: 더 나은 네트워크를 학습하는 것이 더 많은 레이어를 쌓는 것만큼 쉬운가요? 이 질문에 답하는 데 장애물이 되었던 것은 초기부터 수렴을 방해하는 소멸/폭발 기울기 문제였습니다. 하지만 이 문제는 정규화된 초기화 및 중간 정규화 레이어에 의해 크게 해결되었으며, 이는 수십 개의 레이어를 가진 네트워크가 역전파를 사용하는 확률적 경사하강법(SGD)에 대해 수렴을 시작할 수 있도록 합니다.

 

depth의 개념이 중요해지면서,  layer을 더 쌓는 만큼 더 쉽게 네트워크를 학습시킬 수 있는지 의문이 생기기 시작

→ 즉, 성능을 높이기 위해서 layer의 층을 늘리면 되는가?

 

특히 이 중에서 layer의 층을 늘릴수록 vanishing / exploding gradient 현상이 큰 방해요소였음

다행히 SGD를 적용한 10개의 layer까지는 normalization 기법과 batch normalization과 같은 intermediate normalization layer을 사용했을 경우, 문제가 없었다고 함


더 깊은 네트워크가 수렴하기 시작할 때, 열화 문제(degradation problem)가 드러났습니다. 네트워크 깊이가 증가하면서 정확도가 포화 상태에 이르고(이는 놀랍지 않을 수 있습니다) 그 후 급격히 저하됩니다. 예상치 못하게도, 이러한 열화는 과적합에 의해 발생하지 않으며, 적절히 깊은 모델에 더 많은 레이어를 추가하면 학습 오류가 증가하게 됩니다. 이는 [11, 42]에서 보고되었고, 우리의 실험에 의해 철저히 검증되었습니다. 그림 1은 이러한 일반적인 예를 보여줍니다.

그러나 층이 10개보다 깊은 심층 신경망의 경우, 

성능이 최고 수준에 도달할 때 degradation 문제가 발생하였고, 이는 네트워크의 깊이가 깊어짐에 따라 정확도가 포화하고, 급속하게 이후로는 감소하는 것을 의미한다.

이러한 degradation 문제의 원인은 오버피팅이 아니라, 그저 layer의 수가 더 추가되었기 때문인데, test error만이 아니라 training error도 함께 높아졌기 때문에 이와 같이 layer 수를 원인으로 찾을 수 있다


학습 정확도의 열화는 모든 시스템이 최적화하기에 똑같이 쉬운 것은 아님을 나타냅니다. 더 얕은 아키텍처와 이에 더 많은 레이어를 추가한 더 깊은 대응 모델을 고려해봅시다. 더 깊은 모델에 대한 솔루션이 구성에 의해 존재합니다. 추가된 레이어는 항등 맵핑(identity mapping)이고, 다른 레이어는 학습된 얕은 모델에서 복사된 것입니다. 이러한 구성된 솔루션의 존재는 더 깊은 모델이 얕은 모델보다 더 높은 학습 오류를 발생시키지 않아야 한다는 것을 나타냅니다. 하지만 실험 결과, 현재 사용 중인 솔버들은 구성된 솔루션만큼 좋거나 더 나은 솔루션을 찾지 못하거나, 이를 실행 가능한 시간 내에 찾지 못하고 있습니다.

 

하지만 깊은 모델에서도 제한된 상황에서는 최적화될 수 있는 방법이 존재한다.

추가된 레이어가 identity mapping이고, 추가되지 않은 다른 레이어들은 더 얕은 모델에서 학습된 layer을 사용하는 것이다.

이와 같이 제한된 상황에서의 깊은 모델은 얕은 모델보다 더 낮은 training error을 가져야 한다. 


본 논문에서는 잔차 학습 프레임워크를 도입하여 네트워크 깊이가 증가하면서 발생하는 열화 문제를 해결합니다. 우리는 원하는 매핑을 직접 학습하는 대신 잔차 매핑을 학습하도록 하여 최적화가 더 쉽도록 합니다. 잔차 매핑은 항등 매핑을 쉽게 만들 수 있으며, 이는 “단축 연결”을 통해 구현됩니다. 단축 연결은 추가적인 매개변수나 계산 복잡성을 더하지 않으며, 일반적인 딥러닝 라이브러리로 쉽게 구현할 수 있습니다.

 

 

 

기존 네트워크는 입력 x를 받고 layer을 거쳐 H(x)를 출력하는데, 이는 입력값 x를 타깃값 y로 mapping하는 함수 H(x)를 얻는 것이 목적이다.

여기서 Residual Learning은 H(x)가 아닌, 출력과 입력의 차인 H(x) -x 를 얻도록 목표를 수정한다.

따라서 Residual Function인 F(x) = H(x) - x 를 최소화하여야 하고, 이는 출력과 입력의 차를 줄인다는 의미가 된다. → 수렴해야하므로 출력과 입력의 차이를 줄여

여기서 x는 도중에 바꾸지 못하는 입력값이므로 F(x)가 0이 되는 것이 최적의 해이고, 0 = H(x) - x, H(x) = x가 된다.

즉, H(x) 를 x로 mapping하는 것이 학습의 목표가 된다는 것이다.

 

이전에는 unreferenced mapping인 H(x)를 학습시켜야 한다는 점 때문에 어려움이 있었음 (알지 못하는 최적의 값으로 H(x)를 근사시켜야 하기 때문에)

이제는 H(x) = x 라는 최적의 목표값이 사전에 preconditioning으로 제공되기 때문에 F(x)의 학습이 더 쉬워진다는 것이다

 

결과적으로 H(x) = F(x) + x 이므로 네트워크 구조 또한 크게 변경을 할 필요가 없음

단순히 입력에서 출력으로 바로 연결되는 shortcut만 추가하면 되기 때문

또한, 입력과 같은 x가 그대로 출력에 연결되기 때문에 파라미터 수에 영향이 없으며, 덧셈이 늘어나는 것만 제외하면 shortcut 연결을 통한 연산량의 증가가 없다.

 

여기 부분 사실 뭔 소린 지 모르겠음 이거 물어봐야겟다

 

무엇보다도 곱셈 연산에서 덧셈 연산으로 변형되어 몇 개의 layer을 건너뛰는 효과가 있었는데, 이 덕에 forward와 backward path가 단순해지는 효과가 있었으며, gradient의 소멸 문제를 해결할 수 있었다.

 

https://m.blog.naver.com/siniphia/221387516366


ImageNet [36]에서의 포괄적인 실험을 통해 열화 문제를 보여주고 우리의 방법을 평가합니다. 우리는 다음을 보여줍니다: 1) 우리의 극도로 깊은 잔차 네트워크는 최적화하기 쉽지만, 단순히 층을 쌓은 일반적인 "플레인" 네트워크는 깊이가 증가할 때 높은 훈련 오류를 나타냅니다; 2) 우리의 깊은 잔차 네트워크는 깊이가 크게 증가함에 따라 정확도 향상을 쉽게 누릴 수 있으며, 이전 네트워크보다 훨씬 우수한 결과를 생산합니다 .

 

 

ResNet은 depth가 매우 깊어도 최적화가 쉬웠지만, 일반적인 CNN model인 plain net은 depth가 증가하면 training error도 함께 증가한 반면에, ResNet은 매우 깊은 구조 덕에 높은 정확도를 쉽게 얻을 수 있었고, 그 결과는 이전의 다른 네트워크보다 월등했다.

또한 ImageNet, CIFAR-10 모두에서 훌륭한 성능을 보였고, 여러 ResNet 모델을 ensemble 했을 때, 에러는 3.75%에 불과하였다.

 

 

 

 

 

2. Related work

이 섹션에서는 ResNet 모델의 대표적인 2가지 개념인 Residual Representations와 Shortcut Connections의 다른 모델에 적용된 사례에 대해 간략히 설명하고 있다.

 

잔차 표현. 이미지 인식에서, VLAD [18]는 사전에 대한 잔차 벡터를 인코딩하는 표현이며, Fisher Vector [30]는 VLAD의 확률적 버전 [18]으로 구성될 수 있습니다. 이 두 방법 모두 이미지 검색 및 분류를 위한 강력한 얕은 표현입니다 [4, 48]. 벡터 양자화에서, 잔차 벡터 [17]를 인코딩하는 것은 원래 벡터를 인코딩하는 것보다 더 효과적으로 나타났습니다. 저수준 비전 및 컴퓨터 그래픽에서, 편미분 방정식(PDEs)을 해결하기 위해 널리 사용되는 멀티그리드 방법 [3]은 시스템을 다중 스케일에서의 부문제로 재구성하며, 각 부문제는 거친 스케일과 더 세밀한 스케일 사이의 잔차 해결책을 담당합니다. 멀티그리드의 대안으로는 계층적 기저 프리컨디셔닝 [45, 46]이 있는데, 이는 두 스케일 사이의 잔차 벡터를 나타내는 변수에 의존합니다. 이 솔버들은 잔차의 본질을 알지 못하는 표준 솔버들보다 훨씬 빠르게 수렴하는 것으로 나타났습니다 [3, 45, 46]. 이러한 방법들은 좋은 재구성이나 프리컨디셔닝이 최적화를 단순화할 수 있음을 제안합니다.

 

VLAD와 Fisher Vector은 이미지 검색 및 분류를 위한 얕은 표현

벡터 양자화에서 residual vector 를 인코딩하는 것은 original vector 를 인코딩하는 것보다 더 효과적으로 나타남

여기서 벡터 양자화란 특징 벡터 x를 클래스 벡터 y로 매핑하는 것을 의미한다.

 

low level 비전 및 컴퓨터 그래픽 문제에서는 편미분 방정식을 풀기 위해 멀티 그리드 방식을 많이 사용해왔는데, 이 방식은 시스템을 여러 scale의 하위 문제로 재구성하는 것이다. 이때 각 하위 문제는 더 큰 scale과 더 작은 scale 간의 residual을 담당한다.

 

여기서 멀티 그리드 방식 대신에 두 scale 간의 residual 벡터를 가리키는 변수에 의존하는 방식이 있는데, 이를 계층 기반 pre-conditioning이라고 한다. 이 방식은 해의 residual 특성에 대해 다루지 않는 기존 방식보다 훨씬 빨리 수렴하는 특징이 있다. 즉, 합리적인 문제 재구성과 전제 조건(pre-conditioning)은 최적화를 더 간단하게 수행해준다는 것을 의미한다.

 

 

 


단축 연결. 단축 연결 [2, 34, 49]로 이어지는 실천과 이론이 오랫동안 연구되어 왔습니다. 다층 퍼셉트론(MLPs) 훈련의 초기 방법은 네트워크 입력부터 출력까지 연결된 선형 레이어를 추가하는 것이었습니다 [34, 49]. [44, 24]에서는 소멸/폭발 기울기 문제를 해결하기 위해 몇 개의 중간 레이어가 보조 분류기에 직접 연결됩니다. [39, 38, 31, 47]의 논문들은 레이어 응답, 기울기, 전파된 오류를 중심화하는 방법을 제안하며, 이는 단축 연결을 통해 구현됩니다. [44]에서는 '인셉션' 레이어가 단축 분기와 몇 개의 더 깊은 분기로 구성됩니다. 우리의 연구와 동시에, '하이웨이 네트워크' [42, 43]는 게이팅 기능 [15]이 있는 단축 연결을 제시합니다. 이 게이트는 데이터 의존적이며 매개변수가 있는 반면, 우리의 항등 단축은 매개변수가 없습니다. 게이트가 '닫혔을' 때(0에 가까워짐), 하이웨이 네트워크의 레이어는 비잔차 함수를 나타냅니다. 반면, 우리의 공식은 항상 잔차 함수를 학습하며, 우리의 항등 단축은 절대 닫히지 않고 모든 정보는 항상 통과되며 추가적인 잔차 함수를 학습합니다. 또한, 하이웨이 네트워크는 극도로 증가된 깊이(예: 100층 이상)와 함께 정확도 향상을 보여주지 못했습니다.

 

 

여기서도 Shortcut connection을 구성하기 위해 시도되었던 다양한 사례들에 대해 소개하고 있다.

 

그중에서 ResNet의 Shortcut connection은 다른 방식들과는 달리, parameter가 전혀 추가되지 않으며, 0으로 수렴하지 않기에 절대 닫힐 일이 없어 항상 모든 정보가 통과된다고 한다. 따라서 지속적으로 residual function을 학습하는 것이 가능하다고 한다.

 

 

 

3. Deep Residual Learning

우리가 H(x) 를 몇 개의 쌓인 레이어(반드시 전체 네트워크일 필요는 없음)에 의해 근사해야 할 기저 매핑으로 고려해봅시다. 여기서 x는 이 레이어들 중 첫 번째의 입력을 나타냅니다. 만약 누군가가 다중 비선형 레이어가 복잡한 함수들을 점근적으로 근사할 수 있다고 가정한다면, 그것은 그들이 잔차 함수, 즉 H(x)−x(입력과 출력이 같은 차원이라고 가정할 때)를 점근적으로 근사할 수 있다고 가정하는 것과 동일합니다. 따라서 H(x) 를 근사하기를 기대하는 대신, 우리는 명시적으로 이 레이어들이 잔차 함수 F(x):=H(x)−x를 근사하도록 합니다. 원래 함수는 이에 따라 F(x)+x가 됩니다. 비록 두 형태 모두 원하는 함수들을 점근적으로 근사할 수 있을 것으로 가정되지만, 학습의 용이성은 다를 수 있습니다.
이 재구성은 열화 문제에 관한 직관에 반하는 현상(그림 1, 왼쪽)에서 비롯되었습니다. 서론에서 논의한 바와 같이, 추가된 층이 항등 사상으로 구성될 수 있다면, 더 깊은 모델의 훈련 오류는 더 얕은 모델보다 작거나 같아야 합니다. 열화 문제는 해답이 여러 비선형 층으로 항등 사상을 근사화하는 데 어려움을 겪을 수 있음을 시사합니다. 잔차 학습 재구성을 통해 항등 사상이 최적일 경우, 해답은 여러 비선형 층의 가중치를 0에 가깝게 만들어 항등 사상에 접근할 수 있습니다.

 

실제로는 Identity mapping이 최적일 가능성이 낮다고 한다. 하지만, ResNet에서 제안하는 재구성 방식은 문제에 pre-conditioning을 추가하는데 도움을 준다. 따라서 pre-conditioning으로 인해 Optimal function이 zero mapping보다 identity mapping에 더 가깝다면, solver가 identity mapping을 참조하여 작은 변화를 학습하는 것이 새로운 function을 학습하는 것보다 더 쉬울 것이라고 마이크로소프트팀은 주장한다.

 

## preconditioning

**프리컨디셔닝(preconditioning)**은 수치 해석 및 최적화 분야에서 문제를 더 쉽게 풀 수 있도록 변환하는 기법을 의미합니다. 이는 반복적 해법(iterative solver)의 효율성과 수렴성을 개선하기 위해 문제의 성질, 특히 조건수(condition number)를 변경하는 방식입니다. 조건수는 입력 변화에 대한 함수 출력의 민감도를 나타내는 지표입니다.

 

  • 항등 함수(Identity Mapping) 기반:
    • ResNet에서는 잔차 연결(residual connections)을 사용하여 항등 함수를 학습의 시작점으로 설정합니다.
    • 만약 네트워크가 학습해야 할 최적의 함수가 0 함수보다 항등 함수에 더 가까운 경우, 항등 함수를 기준으로 작은 변화(perturbations)를 찾는 것이 새로운 함수를 처음부터 학습하는 것보다 더 쉽습니다

 

 

4.2 Identity Mapping by Shortcuts

 

Shortcut connection은 파라미터나 연산 복잡성을 추가하지 않는다. 이때, F + x 연산을 위해 x와 F의 차원이 같아야 하는데, 이들이 서로 다를 경우 linear projection인 Ws 를 곱하여 차원을 같게 만들 수 있다. 여기서 Ws 는 차원을 매칭 시켜줄 때에만 사용한다.


4.3 Network Architectures

 

Plain Network

 

baseline 모델로 사용한 plain net은 VGGNet에서 영감을 받았다. 즉, convolutional layers filter의 사이즈가 3 x 3이고, 다음 2가지 규칙에 기반하여 설계하였다.

1. Output feature map의 size가 같은 layer들은 모두 같은 수의 conv filter를 사용한다.

2. Output feature map의 size가 반으로 줄어들면 time complexity를 동일하게 유지하기 위해 필터 수를 2배로 늘려준다.

 

추가로, 만약 downsampling을 수행한다면 pooling을 사용하는 것이 아니라 stride가 2인 conv filter를 사용한다. 마지막으로, 모델 끝단에 GAP (Global Average Pooling Layer) 를 사용하고, 사이즈가 1,000인 FC layer(완전연결 레이어) 와 Softmax를 사용한다. 결과적으로 전체 layer 수는 34인데 이는 VGGNet보다 적은 필터와 복잡성을 가진다. (VGGNet은 4,096 사이즈 FC layer가 2개 추가된다)

 

** 이미지의 사이즈를 줄이는 것을 Downsampling이라고 함 (반대는 Upsampling)

 

  • 컨볼루션 레이어 (Convolutional Layers):
    • 입력 이미지에서 특징을 추출합니다.
    • 여러 개의 필터를 사용하여 이미지의 패턴을 감지합니다.
  • GAP 레이어 (Global Average Pooling Layer):
    • 각 필터의 출력에 대해 평균을 계산하여 하나의 숫자로 만듭니다.
    • 공간적 정보를 압축하여 특성 맵의 크기를 줄입니다.
    • 주로 Fully Connected 레이어에 연결되기 전에 사용됩니다.
  • FC 레이어 (Fully Connected Layer):
    • Flatten 된 데이터를 입력으로 받아 각 노드가 모든 입력에 연결됩니다.
    • 주로 classification을 위해 마지막에 사용됩니다.
    • 여기서 "사이즈가 1,000"이라는 것은 1,000개의 노드(출력)를 가진다는 의미입니다.
  • Softmax 레이어:
    • 출력된 값을 확률로 변환합니다.
    • 각 클래스에 대한 확률을 계산하여 총합이 1이 되도록 합니다.
    • 주로 다중 클래스 분류 문제에서 사용됩니다.

모델 구현은 다음과 같이 진행한다.

 

1. 짧은 쪽이 [256, 480] 사이가 되도록 random 하게 resize 수행

2. horizontal flip 부분적으로 적용 및 per-pixel mean을 빼준다

3. 224 x 224 사이즈로 random 하게 crop 수행

4. standard color augmentation 적용

5. z에 Batch Normalization 적용

6. He 초기화 방법으로 가중치 초기화

7. Optimizer : SGD (mini-batch size : 256) 

8. Learning rate : 0.1에서 시작 (학습이 정체될 때 10씩 나눠준다)

9. Weight decay : 0.0001

10. Momentum : 0.9

11. 60 X 10^4 반복 수행

12. dropout 미사용

 

이후, 테스트 단계에서는 10-cross validation 방식을 적용하고, multiple scale을 적용해 짧은 쪽이 {224, 256, 384, 480, 640} 중 하나가 되도록 resize 한 후, 평균 score을 산출한다.

 


 

논문 리뷰에 참고한 사이트는 다음과 같다

https://phil-baek.tistory.com/entry/ResNet-Deep-Residual-Learning-for-Image-Recognition-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0

 

ResNet (Deep Residual Learning for Image Recognition) 논문 리뷰

논문 제목 : Deep Residual Learning for Image Recognition 오늘은 Deep Residual Learning for Image Recognition에서 마이크로소프트팀이 소개한 ResNet에 대해 다뤄보려 한다. ResNet은 수학적으로 어려운 개념이 적용되었

phil-baek.tistory.com

 

https://lv99.tistory.com/25

 

ResNet (Shortcut Connection과 Identity Mapping) [설명/요약/정리]

등장 배경 레이어가 많아져, 인공신경망이 더 깊어질 수록 gradient vanishing/exploding 문제가 커집니다. 이전의 다른 방법들로 이 문제를 해결했다고 생각했지만, 수십개의 레이어를 가진 모델에서는

lv99.tistory.com

 

기존 네트워크의 한계

일반적으로, 신경망은 입력 xx를 받아 여러 계층(layer)을 거쳐 출력 H(x)H(x)를 생성합니다. 여기서 네트워크의 목적은 입력 xx를 타깃 출력 yy로 매핑하는 함수 H(x)H(x)를 학습하는 것입니다.
하지만, 네트워크의 깊이가 깊어질수록 학습이 어려워지는데, 이는 주로 다음과 같은 이유 때문입니다:
  1. 기울기 소멸 문제: 역전파 과정에서 기울기가 소멸하여 가중치 업데이트가 거의 이루어지지 않음.
  2. 더 깊은 네트워크에서의 어려움: 네트워크가 너무 깊어지면 오히려 성능이 떨어지는 현상이 발생함.

Residual Learning의 접근 방식

Residual Learning은 이러한 문제를 해결하기 위해 도입된 방법으로, 기존의 H(x)H(x)를 직접 학습하는 대신 **잔차(residual)**를 학습하는 것입니다. Residual Learning의 주요 아이디어는 다음과 같습니다:
  • Residual Function F(x)=H(x)−xF(x) = H(x) - x: 직접적으로 H(x)H(x)를 학습하는 대신, 출력과 입력의 차이인 F(x)F(x)를 학습합니다. 이 함수는 잔차를 의미하며, 네트워크가 학습해야 할 목표가 됩니다.
  • 학습 목표: F(x)=0F(x) = 0이 되도록 학습하는 것이 이상적입니다. 이는 출력이 입력과 동일하게 되도록 만드는 것을 의미하며, 네트워크가 학습해야 할 것은 단지 잔차입니다.

왜 Residual Function을 학습하는가?

  1. 초기 상태에서의 쉬운 학습: 네트워크가 F(x)=0F(x) = 0을 학습하는 경우, 이는 단순히 네트워크가 입력을 그대로 출력하는 항등 함수(identity mapping)를 학습하는 것과 같습니다. 이는 초기 상태에서 자연스럽고 쉽게 수렴할 수 있는 방향입니다.
  2. 잔차 학습의 용이성: 깊은 네트워크의 경우, 작은 잔차를 학습하는 것이 전체 함수를 학습하는 것보다 더 간단하고 효율적입니다. 네트워크는 항등 함수를 기준으로 조금씩 수정하여 목표 출력에 도달할 수 있습니다.
  3. 효과적인 정보 흐름: Residual Learning은 정보의 흐름을 개선하여 기울기가 더 잘 전파될 수 있도록 돕습니다. 이는 깊은 네트워크에서도 기울기 소멸 문제를 완화하는 데 효과적입니다.

ResNet 구조의 특징

  • Skip Connection: ResNet은 각 잔차 블록마다 입력 xx를 출력으로 직접 연결하는 '스킵 연결'을 사용합니다. 이 연결은 입력 정보를 직접 다음 계층으로 전달하여 기울기의 전파를 용이하게 합니다.
이러한 구조 덕분에 ResNet은 매우 깊은 신경망에서도 효과적으로 학습할 수 있으며, 다양한 컴퓨터 비전 문제에서 뛰어난 성능을 보여주고 있습니다. ResNet의 핵심은 복잡한 매핑을 학습하는 대신 잔차를 학습하여 학습을 단순화하고, 모델의 성능을 향상시키는 것입니다.

---------------

Residual Learning에서 항등 함수(identity mapping)가 수렴으로 이어지는 이유는 다음과 같습니다:

1. 초기 조건으로서의 항등 함수

  • 항등 함수란: 항등 함수는 입력 xx를 그대로 출력으로 내보내는 함수로, 수식으로는 H(x)=xH(x) = x입니다.
  • 잔차 함수 F(x)=0F(x) = 0: Residual 블록에서 F(x)=H(x)−xF(x) = H(x) - x이므로, H(x)=xH(x) = x일 때 F(x)=0F(x) = 0이 됩니다. 즉, 항등 함수는 잔차 함수가 0이 되는 상태입니다.

2. 학습 초기 단계에서의 유리함

  • 간단한 초기화: 초기화 시점에서 가중치가 0에 가깝게 설정되면, 모델은 항등 함수를 구현하게 됩니다. 이는 네트워크가 초기 상태에서 큰 변화 없이도 유효한 출력을 생성할 수 있음을 의미합니다.
  • 학습 안정성: 항등 함수로부터 시작하면, 학습 초기 단계에서 큰 기울기 변화를 필요로 하지 않아 안정적으로 학습이 진행됩니다. 모델이 복잡한 패턴을 학습하기 시작하기 전에 안정적인 출력을 제공하여, 기울기가 소멸되는 문제를 줄입니다.

3. 잔차 학습의 용이성

  • 작은 수정: 모델은 입력에 대해 작은 잔차를 학습함으로써 출력 H(x)H(x)를 조정합니다. 이는 기존의 출력을 크게 변화시키지 않고도 작은 개선을 추가하는 방식으로 학습됩니다.
  • 빠른 수렴: 잔차가 작은 경우, 기울기의 크기도 적당히 유지되어 학습이 안정적으로 진행되며, 최적의 솔루션으로 빠르게 수렴할 수 있습니다.

4. 효과적인 정보 흐름

  • Skip Connection: 입력 xx가 직접 출력으로 전달되는 skip connection은 잔차 F(x)F(x)에 의해 조정되므로, 정보의 흐름을 방해하지 않고 원활하게 진행되도록 합니다. 이는 네트워크가 깊어질수록 기울기가 사라지지 않고 끝까지 전달되도록 도와줍니다.
  • 기울기 전파 개선: 항등 함수가 기본으로 작동하므로, 깊은 네트워크에서도 기울기가 잘 전파되어 학습이 가능해집니다.

결론

항등 함수는 Residual Learning에서 자연스러운 초기 상태를 제공하며, 학습 초기 단계에서 안정적이고 빠른 수렴을 가능하게 합니다. 모델이 잔차를 학습하는 방식 덕분에 복잡한 매핑을 학습하기 전, 비교적 쉽게 목표로 수렴할 수 있는 경로를 제공합니다. 이러한 특성은 깊은 네트워크에서도 성능이 향상되는 데 중요한 역할을 합니다.