ResNet
ResNet은 2015년 ImageNet에서 우승한 모델로, top5 error rate를 3.6%까지 줄여 처음으로 Human error를 능가했다.
ResNet의 큰 특징은 152층까지 네트워크를 쌓았다는 점이다. 기존 우승 모델들은 8층, 22층 정도 수준이었다.
딥러닝은 기본적으로 layer를 많이 쌓으면 쌓을수록 성능이 더 좋아질 것이라고 생각하지만, ResNet 이전의 모델들은 통상 20개의 layer 이상부터는 성능이 낮아지는 현상이 나타났다. 위 첫 번째 그래프는 일반적인 cnn 모델의 layer 개수에 따른 error rate을 나타낸 것이다. 층이 많은것이 error rate가 높다.
하지만 두 번째 ResNet 그래프를 보면, 많은 layer를 가진 모델의 error rate이 더 낮은 것을 알 수 있다. layer의 개수가 많아질수록 성능이 좋아져 기존보다 더 깊은 층을 쌓을 수 있었던 이유는 Residual Learning(잔여 학습) 개념을 사용했기 때문이다.
Vanishing Gradient
기존 모델들이 layer가 쌓일수록 성능이 낮아졌던 이유는 gradient가 소실되는 gradient vanishing 문제 때문이다. layer가 쌓일수록 연산되는 미분값들이 증가함에 따라 backpropagation을 해도 앞의 layer일수록 미분값이 작아져 그만큼 output에 영향을 끼치는 weight 정도가 작아 gradient vanishing을 야기시킨다. 이러한 문제점을 해결하고자 나타난것이 Residual learning 개념을 활용한 ResNet 모델이다.
Residual learning
기존 신경망의 학습 목적은 입력값 x를 타겟값 y로 매핑하는 함수 H(x)를 얻는 것이었다. 즉 H(x) - y를 최소화하는 방향으로 학습을 진행했다. 여기서 Image classification의 경우 입력 x에 대한 타겟 y는 사실 x를 대변하는 것으로, y와 x의 의미가 같도록 mapping을 진행해야 한다. 예를 들어, 강아지 사진의 pixesl값이 입력 x로 주어졌을 때 강아지 라벨이 1에 해당한다면 타겟 y = 1로 정해서 학습하는 것이 아니라 강아지 사진의 pixel값 x로 y를 mapping 해야한다. 즉, 네트워크의 출력값이 x가 되도록 H(x) - x를 최소화하여 H(x) = x가 되는 방향으로 학습했다.
ResNet은 F(x) = H(x) - x로 두고 F(x)를 최소화하는것을 목표로 했다. 이를 '잔차'라고 하며, 이 잔차를 학습하는 것이 Residual learning이다. F(x) + x = H(x) = x가 되도록 학습시키면 미분을 해도 F(x) + x의 미분값은 F'(x) + 1로 최소 1 이상이 된다. 따라서 모든 layer에서의 gradient가 1 + F'(x)이므로 gradient vanishing 문제를 해결하게 된다.
H(x) = F(x) + x에서 입력값 x를 사용하기 위해 쓰는 것이 Skip Connection(=short connection)이며, 입력값이 일정 층들을 건너뛰어 출력값에 더할 수 있게 하는 역할을 한다.
ResNet Architecture
ResNet은 identity block과 convolution block으로 구성된다. 위와 같이 shortcut connection으로 만든 block을 identity block이라고 한다. convolution block은 x에 1x1 convolution 연산을 거친 후 F(x)에 더해주는 것이 차이점이다.
'인공지능 공부 > CS231n' 카테고리의 다른 글
2강 | Image Classification (0) | 2023.03.18 |
---|---|
1강 | Introduction to CNN for Visual Recognition (0) | 2023.03.16 |
0강 | 딥러닝 기초 (CS231n) (0) | 2023.03.16 |