본문 바로가기

컴퓨터비전

Shortcut Layer

728x90

Yolov3, Darknet-53[1]에서 사용된 레이어입니다.

shortcut layer는 학습의 효율을 높이기 위해서 사용합니다.

 

문제: 그레이디언트 배니싱(vanishing gradients)

출력단의 오차가 지속적인 경사하강법을 거치면서 입력단쪽으로 전달되는 값들이 사라지는 문제

딥러닝 네트워크에서 층이 깊어질수록 그레이디언트 배니싱(vanishing gradients) 현상이 심해집니다.

이 문제로 네트워크의 오차가 커지게 됩니다.

 

개선: shortcut layer 적용

shortcut layer를 적용하여 학습과 추론 각각에 대한 error를 줄이는 효과가 있다는 방법이 제시되었습니다.[2]

또한 연산이 단순히 값들을 더하는 것이라 덧셈 연산만 추가되고 별도의 파라미터가 필요없다는 이점이 있습니다.

이렇게 되면 속도상의 패널티를 최소화하면서 성능이 향상되는 것을 기대할 수 있겠습니다.

 

shortcut layer?

shortcut layer에서는 이전 레이어의 값을 그대로 가져와서 더합니다.

아래 그림에서는 3단계 이전의 값을 가져왔습니다. 이를 identity mapping이라고 합니다.

CNN에서는 컨볼루션 레이어를 지나면서 입력값에 대한 identity가 점점 사라진다고 볼 수 있는데요.

shortcut layer를 통해서 입력값의 identity를 반영한 출력값을 만들 수 있게 되는 것입니다.

 

아래 식과 같이 단순히 입력값을 더한 것이 shortcut layer(Residual learning)입니다.

backpropagation도 마찬가지로 미분된 값을 더해주는 것으로 연산이 끝납니다. 

F(x, {Wi})항은 순차적으로 진행되는 네트워크들입니다.

+ x가 shortcut layer의 연산입니다.

identity mapping에서 매핑이라는 용어와 (1)식의 행렬 덧셈에서 유추할 수 있듯이, F( ... ) 항과 입력인 x의 텐서 크기가 같아야 된다는 것을 알 수 있습니다.

 

yolov3에서 shortcut layer는 아래와 같이 쓰였습니다.

아래 그림의 좌측은 yolov2의 네트워크 구조 중 일부, 우측은 yolov3의 네트워크 구조 중 일부입니다.

from=-3이라는 파라미터는 3번째 이전의 값을 x로 두고 더하겠다는 뜻입니다.

더한 값에 linear 활성화를 적용한 것이 shortcut layer의 결과가 됩니다.

 

 

Yolov3의 backbone인 darknet-53을 보면 아래와 같습니다.

위의 내용처럼 3번째 이전의 값을 가져와서 더하는 Residual 부분이 추가되었습니다.

Residual Learning에서 증명된 개선 효과를 반영했기 때문에 shortcut이 아니라 Residual로 쓴 것 같습니다.

 

아래 표에서 Size열에 /2 가 있습니다. Yolov2에서는 maxpool을 활용하여 출력의 width, height를 반으로 줄였지만,

Yolov3에서는 컨볼루션 레이어의 stride를 2로 설정하여 출력의 width, height를 반으로 줄입니다.

 

아래 표의 사각형 좌측 숫자에 곱하기가 있는 것은 해당 크기의 컨볼루션 - 컨볼루션 - Residual 연산을 그 만큼 반복한다는 뜻입니다. Residual network의 효과가 없었으면 이만큼이나 컨볼루션 연산을 반복하는 것이 쉽지 않았을 수 있겠네요.

 

아래 그림에서 residual network의 효과를 볼 수 있습니다.

좌측 그림은 residual이 적용되지 않은 네트워크 18층, 34층에서 학습에 따른 오차 정도입니다.

우측 그림은 residual network가 적용된 네트워크 18층, 34층에서 학습에 따른 오차 정도입니다.

residual이 없을 때 층이 더 깊은 네트워크(plain-34)에서 오차가 더 큰 것을 볼 수 있습니다.

반면에 residual이 적용된 네트워크(ResNet-34)는 오차가 감소된 것을 확인할 수 있습니다.

 

[1] Joseph Redmon and Ali Farhadi. YOLOv3: An incremental improvement. arXiv preprint arXiv:1804.02767, 2018.

[2] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016.