Skip Connection이라는 개념을 활용해 Residual Block을 연속적으로 쌓아 깊은 네트워크를 형성했음에도 불구하고 좋은 성능을 가지는 ResNet에 대해 알아보자.
등장 배경
기존의 네트워크들은 네트워크 깊이가 깊어지면 gradient vanishing과 같은 치명적인 문제가 발생하게 된다. 네트워크를 깊게 쌓으면서도, gradient vanishing 문제가 발생하지 않는 방법이 없을까 하는 고민에서 등장한 network가 Residual Network(ResNet)이다.
네트워크가 깊어질수록 Optimize(Train)하는 것이 어렵기 때문에 Deep Network는 Shallow Network만큼의 퍼포먼스를 보이지 않는다. 하지만 ResNet은 gradient vanishing 문제를 해결하고, 156 layer의 네트워크를 훈련시키는데 성공한다.
Residual Network Architecture
위의 그림에서도 볼 수 있듯이, Plain Network가 단순히 Convolution 연산을 쌓는다면, ResNet은 Block이 쌓인 구조를 가지고 있고, Block 단위로(Residual Block이라고 부름) Parameter를 전달하기 전에 이전의 값을 더하는 방식을 취한다.
ResNet을 구성하는 Residual Block의 구조는 위와 같다. weight layer를 통과한 f(x)와 weight layer를 통과하지 않은 x의 합을 논문에서는 Residual Mapping이라고 한다.
Residual Block을 plain layer과 비교하여 설명하자면, plain layer는 동일한 연산 f(x)를 수행하고 난 뒤 Input x를 더해주지 않지만, residual block에서는 동일한 연산 f(x)를 수행하고 난 뒤 Input x를 더해준다. 즉, plain layer와는 다르게 residual block에는 skip connection이 존재한다. (그림의 곡선 화살표 부분 *Skip connection은 하나의 layer의 output을 몇 개의 layer를 건너띄고 다음 layer의 input에 추가되는 것을 의미한다.)
skip connection을 사용하게 되면 각각의 layer가 작은 정보들을 추가적으로 학습하도록 한다.(= 각각의 layer가 배워야 하는 정보량을 축소시킴)
Reference)
https://meaningful96.github.io/deeplearning/skipconnection/
'수업정리 > 딥러닝 이론' 카테고리의 다른 글
Soft Actor-Critic(SAC) 컨셉 이해 (0) | 2024.05.16 |
---|---|
Batch normalization vs Input normalization 이해하기 (1) | 2023.11.23 |
Diffusion Model 설명 (0) | 2023.10.15 |
Autoregressive Learning (0) | 2023.08.24 |
딥러닝 수업정리) 15_Word embedding (2) | 2023.06.13 |