초록
1. 잔여 학습 프레임워크 소개: 일반적으로 신경망이 깊어질수록 학습하기 어려워집니다. 이 문제를 해결하기 위해 '잔여 학습 프레임워크'라는 새로운 방법을 제안했습니다. 이 방법은 각 레이어가 입력 데이터에 어떤 변화를 주어야 할지, 즉 '잔차'를 학습하도록 만듭니다. 이는 신경망이 더 깊어져도 잘 학습할 수 있게 도와줍니다.
2. 신경망의 재정의: 이전에는 신경망의 각 레이어가 입력을 직접 처리하도록 설계되었습니다. 그러나 잔여 학습에서는 각 레이어가 입력과 출력 사이의 차이, 즉 '잔차'를 목표로 하여 학습합니다. 이 접근 방식으로 인해 신경망의 학습이 쉬워지고, 더 깊은 네트워크에서도 높은 정확도를 달성할 수 있습니다.
3. ImageNet 데이터셋에서의 성공: 잔여 네트워크는 ImageNet 데이터셋에서 152층까지 확장되었습니다. 이 네트워크는 VGG보다 층은 많지만 복잡성은 낮게 유지하면서도 3.57%의 낮은 오차율로 우수한 성능을 보였고, ILSVRC 2015 분류 작업에서 1등을 차지했습니다.
4. 다양한 인식 작업에서의 우수한 성능: 깊은 잔여 네트워크는 이미지와 객체를 인식하는 다양한 작업에서도 탁월한 성능을 보였습니다. 특히 COCO 데이터셋에서는 객체 감지 성능이 28% 개선되었고, 여러 대회에서도 우수한 결과를 얻어 1위를 차지했습니다.
소개
기존의 깊은 신경망에서는 네트워크의 레이어가 많아질수록 처음에는 정확도가 증가하는 것처럼 보이지만, 일정 수준 이상으로 레이어가 증가하면 갑자기 정확도가 떨어지는 문제가 발견되었습니다. 이 현상은 네트워크가 과적합(오버피팅)되어 발생하는 것이 아니라, 단순히 레이어를 많이 추가할수록 학습이 잘 이루어지지 않고, 오히려 훈련 오류가 증가한다고 보고되었습니다.
이 문제를 해결하기 위해 연구자들은 "잔여 학습 프레임워크"라는 새로운 방법을 도입했습니다. 이 방법은 각 레이어가 입력 데이터에 대해 작은 수정만을 추가하도록 하여, 네트워크가 깊어져도 학습이 더 안정적으로 진행될 수 있도록 돕습니다.
일반적인 신경망은 입력 \( x \)로부터 바로 최종 결과 \( H(x) \)를 예측하려고 합니다. 하지만, 네트워크가 깊어질수록 이런 방식으로 바로 학습하는 것은 어려워집니다. 그래서, 잔여 학습 방식은 다르게 접근합니다.
잔여 학습에서는 각 레이어가 바로 최종 결과를 예측하는 것이 아니라, 원래 입력 \( x \)에서 최종 결과 \( H(x) \)까지 얼마나 수정해야 하는지, 즉 수정량 \( F(x) \)를 학습하도록 합니다. 이 수정량은 \( F(x) = H(x) - x \)로 계산됩니다. 이렇게 계산된 수정량 \( F(x) \)를 원래 입력 \( x \)에 더해 최종 결과 \( F(x) + x \)를 얻습니다.
이 방법을 사용하면, 각 레이어는 전체적인 목표 출력을 직접 학습하는 것이 아니라, 필요한 수정량만을 학습하기 때문에, 학습 과정이 더 쉬워집니다. 특히, 만약 아무런 수정이 필요하지 않은 경우(즉, \( F(x) \)가 0인 경우), 이는 각 레이어가 아무런 변경을 하지 않아도 되는 상황을 의미합니다. 이는 네트워크가 더 쉽게 학습할 수 있도록 하며, 그 결과 깊은 네트워크에서도 더 안정적이고 효과적인 학습이 가능해집니다.
\( F(x) + x \) 의 형식은 “단축 연결”을 가진 순방향 신경망에 의해 실현될 수 있습니다.
단축 연결(Shortcut Connection) 이란?
단축 연결은 신경망의 레이어 간에 직접적인 연결을 만들어, 입력 또는 이전 레이어의 출력을 하나 이상의 레이어를 건너뛰고 다음 레이어에 직접 전달하는 기능입니다. 이런 연결을 통해 네트워크는 입력 신호를 보다 깊은 레이어로 직접 전송할 수 있게 되어, 그래디언트 소실 문제를 완화하고 학습 과정을 안정화합니다.
잔차 네트워크에서 사용하는 단축 연결은 대부분 "정체 매핑"을 수행합니다.
정체 매핑(Identity Mapping)
정체 매핑이란, 입력을 그대로 다음 레이어로 전달하는 것을 의미합니다. 즉, 이 연결은 입력 데이터에 아무런 변화를 주지 않고, 그대로 다음 단계로 넘깁니다. 이 과정에서 추가적인 파라미터나 계산 복잡성이 증가하지 않습니다.
이런 구조 덕분에 전체 네트워크는 여전히 확률적 경사 하강법(SGD)을 사용하여 엔드-투-엔드(end-to-end)로 훈련될 수 있습니다.
(*엔드-투-엔드(end-to-end): 입력 데이터부터 최종 출력까지의 전 과정을 하나의 통합된 시스템이나 모델을 통해 직접 처리하고 학습하는 방식)
이 실험을 통해, 일반적인 신경망(단순히 많은 레이어를 쌓는 방식)은 레이어가 많아질수록 훈련 오류가 증가하는 반면, 잔여 네트워크는 레이어를 많이 쌓아도 정확도가 향상되는 것을 보여주었습니다. 즉, 잔여 네트워크는 깊어져도 효율적으로 학습할 수 있습니다.
실험
잔여 표현(Residual Representations)
이미지 인식 분야에서 VLAD와 Fisher Vector는 각각 사전 대비 잔여 벡터를 인코딩하는 방법으로, 이미지 검색 및 분류에 강력한 효과를 보여줍니다. 이 두 방법은 이미지의 기본 정보보다는 이미지에서의 작은 변경점들을 집중적으로 분석합니다. 벡터 양자화에서도, 원본 벡터를 직접 사용하는 것보다 이런 잔여 벡터를 사용하는 것이 더 좋은 결과를 가져옵니다.
저수준 비전과 컴퓨터 그래픽: 편미분 방정식을 풀기 위해 멀티그리드 방법이라는 기술이 사용됩니다. 이 방법은 큰 문제를 여러 작은 문제로 나누어 각각을 해결하며, 각 단계에서는 세부적인 차이점, 즉 잔여를 해결하는 데 집중합니다. 이런 접근법은 문제를 더 빠르고 효과적으로 해결할 수 있도록 돕습니다.
단축 연결(Shortcut Connections)
단축 연결은 네트워크의 입력부터 출력까지 직접 연결하는 방식으로, 네트워크가 깊어질 때 발생할 수 있는 기울기 소실 문제를 방지하는 데 도움을 줍니다. 예를 들어, 일부 중간 계층을 직접 출력에 연결하여 네트워크의 학습을 도와줍니다. 또한, 이러한 단축 연결은 네트워크가 정보를 더 잘 전달하도록 하여 학습 효과를 높일 수 있습니다.
하이웨이 네트워크(highway networks)
하이웨이 네트워크는 단축 연결에 '게이트' 기능을 추가하여, 네트워크의 각 부분이 얼마나 많은 정보를 전달할지를 조절합니다. 이는 우리의 방법과 다르게, 게이트가 닫혀 있으면 정보 전달이 제한됩니다. 반면, 우리의 방법은 모든 정보가 항상 전달되고, 항상 잔여 함수를 학습하도록 설계되었습니다. 이렇게 하여 네트워크가 더 깊어져도 효과적으로 학습할 수 있습니다.
Deep Residual Learning (깊은 잔여 학습)
Residual Learning (잔여 학습)
우리가 신경망을 구성할 때, 몇 개의 층을 사용하여 입력 데이터(x)로부터 원하는 결과(H(x))를 얻으려고 합니다. 하지만, 실제로 이러한 층들이 복잡한 함수를 잘 근사하는 것은 쉽지 않습니다. 그래서 이 문제를 해결하기 위해, 우리는 층들이 직접적으로 H(x)를 근사하기보다는, H(x)에서 x를 뺀 '잔여 함수' F(x) := H(x) - x를 근사하도록 했습니다. 이렇게 하면, 전체 함수는 F(x) + x가 되어서 학습이 더 쉬워질 수 있습니다.
이 아이디어는 네트워크가 깊어질수록 성능이 떨어지는, 즉 '성능 저하 문제'에서 영감을 받았습니다. 이론적으로는, 네트워크의 층을 추가하면 성능이 떨어지지 않아야 하는데, 실제로는 이런 층들이 데이터의 동일성을 유지하는 데 실패하곤 합니다. 잔여 학습 방식을 사용하면, 이런 층들이 동일성 매핑, 즉 입력과 동일한 출력을 내도록 유도할 수 있습니다. 이는 층들이 결과를 거의 바꾸지 않고 그대로 전달하게 만듭니다.
현실에서 완벽한 동일성 매핑은 드물지만, 이러한 접근 방식은 문제를 좀 더 쉽게 해결할 수 있도록 도와줍니다. 만약 최적의 결과가 동일성 매핑에 가깝다면, 신경망은 새로운 함수를 배우기보다는 기존의 데이터를 조금씩 조정하여 원하는 결과를 얻기가 더 쉬워집니다. 우리의 실험 결과도 이를 뒷받침합니다. 학습된 잔여 함수는 대체로 작은 변화만을 보여주며, 이는 동일성 매핑이 효과적인 사전 조정 방법임을 나타냅니다.
Identity Mapping by Shortcuts (단축 연결을 통한 동일성 매핑)
우리는 몇 개의 층이 쌓인 각 부분에 잔여 학습을 적용합니다. 하나의 빌딩 블록이 아래 그림에 나타나 있습니다. 이 논문에서는 다음과 같이 빌딩 블록을 정의합니다: y = F(x, {Wi}) + x - (1)
여기서 x와 y는 고려된 층의 입력 및 출력 벡터입니다. 함수 F(x, {Wi})는 학습되어야 할 잔여 매핑(수정량)을 나타냅니다. 위 그림에 나타난 예제에서 두 개의 층을 가진 F = W2σ(W1(x))이며, 여기서 σ는 ReLU를 의미하고 편의를 위해 편향은 생략됩니다. 연산 F + x는 단축 연결과 요소별 추가를 통해 수행됩니다. 추가 후 두 번째 비선형성을 적용합니다.
식 (1)의 단축 연결은 추가적인 파라미터나 계산 복잡성을 도입하지 않습니다. 이는 실제로 매력적일 뿐만 아니라 평범한 네트워크와 잔여 네트워크 간의 비교에서 중요합니다.
잔여 함수 F의 형태는 유연합니다. 이 논문에서의 실험은 두 개 또는 세 개의 층을 가진 함수 F를 다룹니다(그림 5 참조), 그러나 더 많은 층이 가능합니다. 그러나 F가 단일 층만 있는 경우, 식 (1)은 선형 층과 유사합니다: y = W1 x + x, 이 경우에는 장점을 관찰하지 못했습니다.
우리는 위의 표기가 단순화를 위해 완전 연결 층에 대한 것이지만, 이것이 컨볼루션 층에도 적용될 수 있습니다. 함수 F(x,{Wi})는 여러 컨볼루션 층을 나타낼 수 있습니다. 요소별 추가는 채널별로 두 피쳐 맵에 수행됩니다.
Network Architextures (네트워크 구조)
ImageNet에 적용된 두 가지 모델에 대한 설명입니다.
이미지에서 보이는 세 가지 다이어그램은 각각 VGG-19, 34-층 일반 네트워크(Plain Network), 그리고 34-층 잔여 네트워크(Residual Network)를 나타내고 있습니다.
- 왼쪽 (VGG-19): 이 모델은 깊은 컨볼루션 신경망 구조 중 하나로, 많은 3×3 컨볼루션 계층을 사용하며 이미지 분류 작업에 효과적인 구조입니다.
- 중간 (34-층 일반 네트워크): 이것은 잔여 연결이 없는 기본적인 심층 신경망 구조입니다. VGG의 디자인 원칙을 따르되, 더 깊은 네트워크 구조를 가지고 있으며, 이는 잔여 네트워크를 설계하기 전의 전통적인 깊은 학습 모델을 나타냅니다.
- 오른쪽 (34-층 잔여 네트워크): 이 구조는 중간 모델에 단축 연결(잔여 연결)을 추가하여 만든 모델입니다. 이 잔여 연결은 입력을 일부 계층을 건너뛰어 출력에 직접 더하게 함으로써, 신경망이 더 깊어지더라도 효과적으로 학습할 수 있도록 도와줍니다.
Experiments
4.1. ImageNet 분류
1000개 클래스로 구성된 ImageNet 데이터셋으로 평가하였습니다.
일반 네트워크(Plain Networks)
깊은 34층 일반 네트워크는 얕은 18층 일반 네트워크보다 더 높은 검증 오류를 보입니다. 34층 일반 네트워크가 전체 훈련 과정에서 더 높은 훈련 오류를 보이는 '성능 저하 문제'를 관찰했습니다. 이러한 일반 네트워크는 BN으로 훈련되어, 전파되는 신호가 0이 아닌 분산을 갖도록 하였고, BN으로 역전파된 기울기가 건강한 규범을 보임을 확인하였기 때문에 성능 저하 문제는 기울기 소실 때문이 아닐 것이라고 주장합니다. 그러므로 깊은 일반 네트워크가 지수적으로 낮은 수렴 속도를 가질 수 있으며, 이것이 훈련 오류를 줄이는 데 영향을 미칠 수 있다고 추측합니다.
잔여 네트워크(Residual Networks)
잔여 네트워크의 기본 구조는 일반 네트워크와 같지만, 각 3×3 필터 쌍에 잔차 연결(Residual Connection)이 추가됩니다. 첫 번째 비교(표 2 및 그림 4 오른쪽)에서, 우리는 모든 단축에 대해 동일성 매핑(Identity Mapping)을 사용하고 차원이 증가할 때는 0-패딩(옵션 A)을 사용합니다. 따라서 이들은 일반 네트워크와 비교할 때 추가 파라미터가 없습니다.
결론적으로 첫째, 잔여 학습으로 상황이 역전되어 34층 ResNet이 18층 ResNet보다 더 좋습니다(2.8% 차이). 훨씬 낮은 훈련 오류를 보이며 검증 데이터에 대해 더 잘 일반화됩니다.
둘째, 34층 잔여 네트워크(ResNet)는 일반 네트워크와 비교했을 때 top-1 오류율을 3.5% 감소시켰습니다.
마지막으로, 18층 일반/잔여 네트워크는 비슷한 정확도를 보여주지만,18층 잔여 네트워크는 더 빠르게 수렴합니다.
'논문 리뷰' 카테고리의 다른 글
[논문 리뷰] GoogleNet(Going deeper with convolutions) (0) | 2024.07.08 |
---|---|
[논문 리뷰] VGG (VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION) (0) | 2024.06.21 |
[논문 리뷰] Alexnet(ImageNet Classification with Deep CNN) (2) | 2024.01.25 |