논문리뷰

논문리뷰: Deep Residual Learning for Image Recognition

치킨먹고싶어요 2023. 2. 14. 12:32

Deep Residual Learning for Image Recognition

본 논문은 2016년에 CVPR에서 발표된 논문입니다. CVPR은 컴퓨터 비전에서 최고의 학회 중 하나입니다. 제목은 DEEP RESIDUAL LEARNING FOR IMAGE REGONITION입니다. 본 논문은 쉬운 아이디어로 성능을 발전시켰다는 점에서 대단한 논문이라고 볼 수 있습니다.


Background

background 1

초록에 들어가기 전 배경지식부터 설명 드리겠습니다. CNN의 성능을 향상시키기 위하여 보통 Layer를 깊게 쌓습니다. 그런데 layer가 너무 깊어지면 성능이 떨어지는 모습을 보여주기에 이를 새로운 방법인 residual learning으로 해결하고자 합니다.

background 2


위 이미지는 ResNET이 나오기 전 최고의 성능을 보여주던 VGGnet입니다. 그런데 레이어가 깊어 짐에 따라 무조건 성능이 좋아지지 않았고, 너무 많은 파라미터가 사용되어 학습이 힘든 문제점이 있었습니다


Abstract

 

논문의 초록입니다. 신경망이 깊어질수록 훈련에 어려움이 발생합니다. 이를 해결하고자 residual을 학습하는 방법을 사용함으로써 신경망이 깊은 네트워크도 훈련을 잘 시키고자 합니다. 결론적으로 이렇게 학습을 한 모델이 VGG보다 8배 깊은 152개의 layer로 이미지 넷을 학습하여 컴퓨터 비전 대회에서 1등을 하였다고 합니다.


Introduction

이미지 분류 문제에서CNN을 깊게 쌓는 것은 높은 확률로 성공을 거두어 왔습니다. 그런데 여기서 의문점이 생깁니다. 단순히 레이어만 깊게 쌓는다고 정확도가 높아지는 가에 대한 의문입니다. 아닙니다. LAYER가 일정 범위 이상으로 깊어지면 정확도가 감소하게 됩니다

그러면 어떻게 해야 할까요? 이 문제를 해결하기 위해 RESNET을 본 논문에서 제안합니다. 그러면 RESNET의 핵심 아이디어는 무엇일까요? RESNET은 기존에 의도했던 매핑 함수인 H(x)를 학습하기 보다, 학습하기 쉬운 residual mapping이라는 F(x) + x를 새롭게 정의하여 네트워크 최적화의 난이도를 낮추고자 하는 방법입니다.

 

residual learning이란 무엇일까요? 먼저 일반적인 모델을 설명 드리겠습니다. 왼쪽 식에서 인풋 x가 들어와서 weight layer로 들어갑니다. Weight layer convolution layer를 의미합니다. layer로 하나의 특징들을 추출한 다음에 relu와 같은 액티베이션 펑션을 거쳐고 다시 weight layer를 거치는 형태로 전체 네트워크가 non-linear한 동작을 수행할 수 있도록 만들어 줍니다. 이러한 동작을 거쳐서 데이터를 넣었을 때 이상적으로 동작하는 함수를  매핑함수h라고 합니다. 그런데 이상적인 매핑함수 h를 학습하는 것은 매우 어렵기에 조금 더 학습이 잘 되는 형태인 f를 이용하자는 것이 본 논문의 핵심 아이디어입니다.

그런데 f(x)의 아이디어가 정말 간단합니다. Input x를 직접적으로 더해주는 것 하나만 추가 되었습니다. 인풋 값 x를 웨잇 값을 여러 번 거친 결과 값인 f에 추가만 했더니 네트워크가 더 빠르게, 효율적으로 학습 되었다고 하며 이를 레지듀얼 러닝이라고 명칭합니다.

이렇게 하면 앞선 레이어에서 학습된 정보인  x를 그대로 가지고 오고 추가적으로 f를 더해주게 됩니다. x는 그대로 가져오고 아직 남아있는, reisidual한 정보인 f만 추가적으로 학습할 수 있는 형태로 만들어 주는 것입니다.

이러한 레즈넷의 장점을 정리하면 4가지가 있습니다.

Resnet을 사용하면 학습이 더 잘 되고, layer의 깊이가 깊어질수록 정확도가 올라가고, 이는 특정 데이터 셋에 국한된 것이 아니며, 앙상블까지 적용하였을 때는 매우 좋은 정확도를 보인다는 것입니다.


Deep Residual Learning

 

앞서 residual learning을 사용하면 네트워크 최적화의 난이도가 쉬워진다고 하였는데, 왜 최적화의 난이도가 쉬워졌을까요?

H(x)의 경우 각 weight layer, convolution layer이 분리되어 각각의 layer에 대하여 각각의 가중치 값을 개별적으로 모두 학습을 진행하여야 되기 때문에 최적으로 수렴하는 난이도가 어려워진다고 합니다. 특히 깊은 layer일수록 수렴 난이도가 훨씬 더 어려워진다고 합니다.

그런데 f(x)x로 기존의 학습 패턴 정보는 그대로 가져오고 추가적으로 필요한 정보만 따로 학습을 진행해서 더해주면 되기에 학습 난이도가 h(x)보다 훨씬 쉽습니다.

 

오른쪽 그림에 나와있는 f 함수를 오른쪽 위 식처럼 정의하였습니다. 입력값 x가 들어왔을 때, 거기다가 첫번쨰 weight값을 곱하고 그 다음 액티베이션 평션, 렐루를 씌어준 다음에 그 다음 나온 결과에 두번 째 웨잇값을 곱한 것이 왼쪽함수의 F함수입니다.

그리고 밑의 식을 보면 추가적으로 x가 더해지는 것을 확인할 수 있습니다. 이처럼 f x를 더한 형태로 residual block을 정의하게 됩니다.

그리고 한가지 추가적으로 말씀드릴 것이 있는데, 입력 값의 디멘션과 아웃풋 값의 디멘션이 같다고 하면 x를 그대로 가져오는 것을 아이덴티티 매핑이라고 합니다. 물론 디멘션이 서로 다르다고 하여도 리니어하게 프로젝션을 하여서 매핑을 할 수 있다고 합니다. 이는 오른 쪽 아래에 x 앞에 Ws라고 쓰여 있는 것을 의미합니다

 

여기 그림에서 가장 중간에 있는 plain network는 가장 기본적인 cnn 네트워크로 vgg에서 제안 된 기법을 적절히 따르고 있다고 말하고 있습니다. 특징으로는 일반적인 vgg 네트워크와 비교 하였을 때 더욱 적은 파라미터를 사용하고 복잡도 또한 낮다는 특징이 있습니다. 이는 resnet과의 비교를 위하여 만들었다고 합니다.

가장 왼쪽에 있는 모델은 이전 연구에서 제안되었던 19 레이어를 가지는 vgg 네트워크입니다.

가장 오른쪽의 모델은 플레인 네트워크에서 컨볼루션 필터를 두개씩 묶어 레지듀얼 블락을 사용하는 형태로 바꾼 것입니다. 그림을 자세히 보시면 점선으로 표시된 부분을 볼 수 있는데요. 이는 입력단과 출력단의 디멘션이 일치하지 않아서 디멘션을 맞춰질 수 있도록 리니어하게 프로젝션을 한 숏컷 커넥션입니다. 점선이 아닌 선은 앞서 말씀드렸 던 identify mapping을 사용하였다고 합니다.

그런데 차원이 같은identity mapping의 경우에는 그냥 x값을 더해주면 되는데, 차원이 다른 경우에는 어떻게 하는지 의문이 생깁니다. 논문에서는 두가지 방법이 있다고 합니다. 하나는 제로 패딩을 붇힌 다음에 마찬가지로 아이덴티티 매핑을 수행하는 거고, 다른 하나는 아까 설명드린 프로젝션 연산을 활용한 숏컷 커넥션을 활용하는 방법이 있습니다.

(그리고 이 레즈넷 같은 경우에는 컨볼루션 레이어를 2개씩 묶는 것을 총 3번 반복한 다음에  디멘션의 크기를 바꾸어 4번 반복하고 크기를 다시 바꾸어서 6번 반복합니다. 또 다시한번 반복하여 3번 바꿉니다.

그리고 옆 표를 확인하면 34-layer와 동일합니다. 3463번 연속적으로 레이어가 중첩되는 것을 확인할 수 있습니다.)

이러한 레지듀얼 러닝을 한 모델은vgg와 비교하였을 때 flops 수가 줄었다고 합니다. 이는 딥러닝에서 계산복잡도를 나타내는 척도입니다. 즉 빠르게 모델을 훈련할 수 있습니다.


Experiments

먼저 간단히 이미지 넷 트레이닝 데이터에 대하여 언급하자면 데이터의 총 개수가 100만개를 넘어가고 validation이미지는 5만개 이상 그리고 1000개의 클래스로 분류되어 있다고 합니다.

Plain network와 ResNET network

그리고 plain network와 ResNET network를 비교 하는데, 앞서 말씀 드렸 듯 ResNET network는 단지 plain networkshortcut connection을 추가한 것 뿐임에도 성능에서 크게 차이가 납니다.

성능이 차이 나는 이유를 오버 피팅 때문이라고 예측하실 수도 있으실텐데, 이는 오버피팅 때문이 아닙니다. 왜냐면 오버피팅은 트레이닝 데이터의 성능은 늘어나고 검증 세트에는 성능이 낮아지는 모습을 보여야 하는데, 두 세트 모두에 성능하락이 되는 모습을 보이고 있기 때문입니다.

이는 또한 Graidnets가 사라지는 vanishing gradient때문도 아니고 논문에서는 plain network에서는 파라미터 최적인 상태인 global optima로 수렴하기 힘들기 때문이라고 언급합니다.

Resnet의 경우에는 깊은 레이어에서 더 잘 작동하는 것을 볼 수 있습니다. 에러율이 낮아 지는 것을 볼 수 있습니다

 

숏컷 커넥션에서 Identity mappingprojection shortcut을 비교하는 파트입니다. a같은 경우에는 제로 패딩을 이용해서 디멘션을 늘려주어 아이덴티티 매핑을 사용하는 거고 그리고 b는 디멘션이 증가하는 경우에만 프로젝션 연산을 수행하는 것이라고 볼 수 있고, c는 모든 숏컷에 대하여 항상 프로젝션을 사용하는 것이라 볼 수 있습니다. 옆에 테이블을 본다면 c번이 가장 성능이 높게 나오는 것을 볼 수 있습니다. 본 논문에서는 c가 좋은 성능을 보이지만, 프로젝션 숏컷이 필수라고 할 정도로 높은 증가율이 아니라고 합니다. 그래서 보틀넥 형태의 구조 복잡도를 증가시키지 않기 위하여 더욱 효과적으로 사용될 수 있다고 말하고 있습니다.

 

앞서 말씀 드린 바틀넥 구조 입니다. 이러한 구조는 학습 시간을 줄이기 위하여 필수적 입니다. identity shortcut bottleneck구조에서 파라미터 수를 늘리지 않습니다. 그리하여 논문에서는 50 layer 짜리 resnet34-layer짜리 resnet을 비교하였을 때, 파라미터 수와 계산 복잡도는 거의 동일하다는 놀라운 결과를 보여줍니다.

 

50 layer resnet101, 152 – layer resnet등을 vgggooglenet, 34-layerresnet과 비교하는 파트입니다. 표를 참고하였을 때 layer가 깊어질수록 성능이 증가하여 성능하락문제 없이 높은 정확도를 보였다는 것을 증명합니다

 

앙상블까지 적용한 경우 성능이 더더욱 높아지는 모습도 보입니다.

 

그리고 이미지 넷 뿐만 아니라 CIFAR-10에서도 성능 검사를 하였습니다

레즈넷과 다른 네트워크와 비교했을 때, 파라미터 수는 더 적지만 성능은 더 좋은 것을 확인 할 수 있습니다.

 

레이어가 깊이 쌓으면 더 좋은 성적을 보였기에 CIFAR-10에서 1,000개 이상의 layer를 가지는 모델 또한 사용해 보았는데 이 모델은 110-layer ResNet training error가 비슷했지만, test 결과는 좋지 못하였습니다. 논문에서 이는 오버 피팅 때문인 것으로 판단합니다

 

이미지넷과 CIFAR-10을 제외하고도 ResNET을 다른 분야 까지 확장해서 테스트를 해 보았을 때 Object detection Segmentation task에서도 vgg와 비교 하였을 때 매우 우수한 성적을 보입니다

 

 

 

 

아래는 논문리뷰가 아니라 결론 및 발표자 총평입니다


Conclusion

CNN을 무조건 깊이 쌓는다고 성능이 좋아지지 않는 다는 문제점에서 출발한 논문입니다.

문제점을 해결하기 위하여 Residual learning을 사용하여 다음 3가지를 개선하였습니다.

  1. Residual learnin은 최적화를 용이하게 합니다
  2. 성능하락문제를 해결하였습니다
  3. 깊은 신경망의 더 빠르게 훈련합니다

저자는 Residuial learning이 다양한 분야에 적용할 수 있다(This strong evidence shows that the residual learning principle is generic, and we expect that it is applicable in other vision and non-vision problems)며 매우 혁신적인 아이디어라는 것을 강조합니다.

결론적으로 ResNET은 이전 모델보다 더 깊은 layer를 가지지만, 파라미터 수는 적으므로 속도는 빠르며 성능면에서도 더 뛰어남을 입증하였습니다.


General Review

간단하면서도 뛰어난 아이디어로 성능을 대폭 상승시킨 컴퓨터 비전 역사의 한 획을 그은 논문이라고 생각됩니다.

부족한 점을 찾기 힘들 정도로 좋은 논문 이었습니다.