본문 바로가기

인공지능/논문 번역

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

Deep Convolutional Neural Network는 이미지 분류의 획기적인 결과를 가져왔다.

이전 논문의 내용에 따르면 네트워크의 깊이가 깊어질수록 좋은 결과를 가져온다는 것을 알 수 있었다.

 

하지만 단순히 네트워크의 깊이가 깊어진다고 좋은 결과를 가져올 수 있지는 않다.

네트워크가 깊어짐에 따라 Overfitting, Vanishing, Exploded와 같은 고질적인 문제가 존재한다.

  • Vanishing  : 네트워크가 깊어질수록 작은 수를 계속 곱해 0으로 점점 수렴하여 기울기가 0이 되는 것을 의미한다.
  • Exploded   : 네트워크가 깊어질수록 큰 수를 계속 곱해 큰 값으로 발산해 기울기가 아주 커지는 것을 의미한다.
  • Overfitting : 학습 데이터에 과적합 되어 오히려 검증 데이터에서 정확도가 떨어지는 것을 의미한다.

20 - layer와 56 - layer를 비교해본 결과 오히려 정확도를 떨어트리는 결과를 가져왔으며, 이 문제는 네트워크가 깊어질수록 발생하는 고질적인 문제에 대한 성능 저하가 발생함을 보여준다.

 

따라서 논문에서는 Deep Residual Learning Framework를 도입함으로써, 각 레이어의 실질적인 데이터로 학습하는 것이 아닌 각 레이어의 잔여 매핑을 하도록 한다.

Residual learning: a building block

형식적으로 출력을 H(x)로 나타내며, H(x) = F(x) + x이다. 실질적인 데이터를 매핑하는 것이 아닌 F(x) = H(x) - x, 즉 H(x)에서 x를 뺀 Residual인 F(x)를 0으로 만드는 것이 더 쉽다는 가설에서 시작되었다. F(x) + x의 형태는 "Shourtcut connection"을 이용한 feed forward 신경망을 통해 이용할 수 있다.

 

이러한 Res Net은 2015년 ILSVRC에 출전하여 다양한 분야에서 우승을 차지하였다.

2014년에 우승한 GoogleNet보다 약 2배가량 좋은 성능을 보였으며, 망의 깊이 또한 7배 이상 깊어졌다. 


Identity mapping by Shortcuts

가중치레이어를 몇 개씩 쌓을 때마다 Shortcut을 사용한다. identity x를 미분할 경우 적어도 1 이상의 값이 나오게 됨으로써 기울기가 너무 작아 학습이 제대로 되지 않는 문제를 최소한으로 하였다. Resdual learning의 building block을 다음과 같이 수식으로 정의한다.

이때 y는 H(x)를 뜻하며, F의 식에서 σ는 ReLU를 나타낸다. bias는 표기 단순화를 위해 생략하였다. F(x) + x의 경우 차수가 같아야 한다. 만약 다를 경우 linear projection Ws를 이용하여 차수를 같게 만들어준다. 

 

W_s는 단순 차수를 맞추는 용도로만 사용하며, 해당 식을 projection shortcut connection이라고 부른다.

 

Shortcut Connections

몇 개의 가중치 레이어를 지나고 난 뒤 입력 값 x를 다시 더 해주기 위해 skip / shortcut connection을 이용하는 것이다.

따라서 그림에서와 같이 출력은 H(x) = F(x) + x이다. 기존의 출력에 x를 다시 더해줌으로써 깊이에 따른 고질적인 문제가 있더라도 입력 x를 가지고 있기 때문에 다시 이전 레이어로 전환한 수 있다. 따라서 이러한 고질적인 문제를 해결할 수 있게 도와주며 F(x) = H(x) - x의 값을 최소로 함으로써 기존의 값의 특성들을 유지하는 효과를 볼 수 있게 된다. 즉 출력 H(x)에서 입력 x를 뺀 나머지(residual)인 F(x)를 최소화하는 학습을 함으로써 더 깊은 신경망을 구현할 수 있게 된 것이다.

 

Bottle Neck

GoogleNet에서도 언급한 1x1 Convolution을 양 끝에 적용하여 연산량을 감소시키고 성능을 향상하는 방법이다. 1x1 Convolution을 사용하면 사용해야 할 하이퍼 파라미터의 수가 줄어들게 되고 이는 곧 깊은 신경망 속의 획기적인 연산량 감소로 이어지게 된다. 또한 1x1 Convolution을 추가해줌으로써 매번 마지막에 사용하는 Relu 함수를 사용 횟수가 더 많아지게 된다. Relu함수를 많이 쓰는 것은 곧 신경망의 비선형성을 증가시키는 것을 의미함으로 적은 하이퍼 파라미터를 이용해 더 높은 정확도를 가질 수 있게 된다.

 


Network Architectures

Plain network의 기본 구조는 VGG net를 베이스로 만들어지게 되었다. Plain network의 특징은 다음과 같다.

  • Filter는 3x3을 사용한다.
  • feature map의 크기가 절반으로 줄어들 경우, layer들의 계산 복잡도를 유지하기 위해 Filter 수를 2배 늘린다.
  • featrue map의 크기가 같을 경우, layer들은 동일한 Filter 수를 사용한다.
  • feature map의 크기가 줄일 경우 pooling 대신 filter의 stride를 2로 설정한다.

 Residual network는 Plain network에 shortcut connection을 추가하여 만들어졌다. Residul network의 추가적인 특징은 다음과 같다.

  • (실선) 같은 차수이기 때문에 shortcut connection을 사용한다.
  • (점선) Identity    shortcut connection의 경우, 차수를 맞추기 위해 zero padding을 적용한다.
  •         Projection shortcut connection의 경우, 차수를 맞추기 위해 1x1 Filter(Stride = 2)를 적용한다.

Experiment

Plain Network보다 ResNet의 결과가 더 좋은 것을 확인 할확인할 수 있다. ResNet-18과 plain-18을 비교했을 때는 ResNet이 좀 더 좋은 에러율을 보이고 있으며, 깊이가 깊어질수록 에러율이 감소한다. 깊이가 깊어질수록 에러율이 감소하는 결과를 통해 기울기 문제를 해결한 것을 확인할 수 있으며, ResNet이 plain보다 더 빠르게 답을 찾아간다.

 

Image Classification의 error율이다. ResNet-34 A, B, C로 나뉘게 되는데 A는 identity shortcut만 쓴 경우, B는 평소에는 identity shortcut을 쓰고, 차수가 증가할 때는 projection shortcut를 쓴 경우, C는 projection shortcut만 쓴 경우이다.

성능적으로 보면 A < B < C 로 C가 가장 좋다고 나온다. 따라서 projection shortcut을 많이 사용할수록 좋은 결과가 나온다. projection shortcut을 많이 사용할 경우 projection shortcut에서 사용되는 Ws의 매개변수로 인해 총 매개변수가 더 많아져 성능이 향상되게 된다. 또한 Bottle Neck을 활용해 더 깊은 ResNet도 구현한 결과 깊이가 깊어질수록 좋은 결과가 나오는 것을 알 수 있다.

 

Reference
  Deep Residual Learning for Image Recognition - Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun

처음 공부하고 쓴 글입니다. 제가 이해를 잘못했거나 잘못 적힌 부분이 있으면 알려주시면 감사하겠습니다.