知/job지식

Resnet 직관

콰트로로켓단 2024. 5. 5. 10:00
728x90

개요

이번 글에서는 Resnet이라 불리고 CNN의 도약으로 깊은 신경망을 구성할 수 있도록 된 Resnet에 대해 알아보자.

먼저 이름이 어떻게 유래했는지 보자.

ResNet의 논문명은 Deep Residual Learning for image Recognition 이다.

Residual의 Res와 Network의 합성으로 ResNet이 나오게 되었다.

Vanishing gradient(기울기 소실)

깊은 신경망을 구성할 수 있게 되었다면 왜 그 이전에는 신경망을 깊게 쌓지 못했는지 파악하자.

먼저 훈련을 진행하기 위해서는 변수의 영향력(미분값)을 측정해야한다. 역전파의 과정으로 Chain Rule에 따라 입력값에 가까워 질 수록 곱해지는 값이 많아진다. Activation Function이 Sigmoid라 생각해보면 0~1사이의 값이고 점점 쌓여갈 수록 0에 가까워 질 것이다. 물론 ReLU를 사용해 문제를 조금이나마 줄일 수 있지만 0인 경우가 존재해 여전히 더 깊게 쌓기 어려워지는 문제가 있다. 

 

Residual Connect(skip connection)

기울기 소실을 어떻게 해결하게 되었는가하면, 20층을 쌓은 것보다 50층을 쌓은게 적어도 20층보다 성능은 좋아야 하는 것이 아닌가?하는 아이디어에서 시작되었다. 20층을 짜리의 결과를 더하면 적어도 20층만큼은 나오겠지라는 생각에 더해보며 점점 더 작게 블록단위로 이전 블록의 결과를 지금 블록의 결과에 더하게 되었다.

Resnet block 구조도
논문 사진

이를 수학으로 생각해보자. F(x)+ x에서 dF(x)가 죽어도 dx가 1로 그대로 전달이 되어 죽지 않게 된다. 

여기서 기억해야할 것은 수학으로 해결했다가 아니라 단순한 아이디어에서 시작되었다는 것이다. 

 

직관으로 이전의 도구(입력 쪽에 있는 Layer)를 가져와 사용하며 아직 저차원 도구가 훈련이 안되어 고차원 도구를 활용할 수 없을 때 저차원이 학습될 수 있도록 되었다는 것이다. 또한 고차원에서도 저차원의 정보를 더 확인할 수 있게 되었다. 

여기서 차원은 MLP(Multi-Layer Perceptron)의 직관글 에서 형상의 복잡도를 말한 것이다.

 

 

 

로이

안녕하세요, 콰트로 로켓단 로이 입니다.

가중치 초기화에 아직 다루지 않아 가중치 초기화와 관련한 이야기를 여기에 못담아 내어 아쉽네요.

추후 초기화를 다룬다면 여기에도 내용 추가하겠습니다. 

 

 

 

728x90

' > job지식' 카테고리의 다른 글

Drop Out(드롭 아웃 및 초간단 구현)  (0) 2024.05.18
Weight initialization  (0) 2024.05.15
CNN(Convolution Neural Network)  (0) 2024.05.02
활성화함수(Activation Function)  (1) 2024.04.27
MLP(Multi-Layer Perceptron)의 직관  (0) 2024.04.24