티스토리 뷰

train error 와 test error 모두 네트워크의 층이 더 깊어졌을 때 오히려 더 높아지는 것을 볼 수 있다.
이 현상은 overfitting 이 아니라 degradation 문제 때문이다.
이 문제를 해결하기 위해 residual learning을 하는 것을 CNN에 적용했다.

그 결과 왼쪽(Plain Net)과 달리, 오른쪽(ResNet)은 18층에서 34층으로 깊이를 늘렸을 때 training error가 줄어든다.
이 실험을 통해, ResNet이 degradation 문제를 어느 정도 해결했다는 것을 알 수 있다.
ResNet의 깊이가 점점 깊어질 경우 parameter의 수가 너무 많아지기 때문에
residual block으로 다른 구조를 사용한다.

왼쪽: Residual block의 원래 구조
오른쪽: 50층 이상인 ResNet에서 사용하는 residual block의 구조
1x1 convolution 을 통해 filter size를 줄인 다음, 3x3 convolution 을 하면 파라미터 수를 아낄 수 있다.
이러한 구조의 residual block을 bottleneck block이라고 부른다.
Bottleneck 구조를 사용해 ResNet 내부 구조를 바꾸면 152층까지 쌓아도 VGG보다 모델 크기가 작다.
참고자료
https://dnddnjs.github.io/cifar10/2018/10/09/resnet/
CIFAR-10 정복 시리즈 1: ResNet
CIFAR-10 정복하기 시리즈 소개 CIFAR-10 정복하기 시리즈에서는 딥러닝이 CIFAR-10 데이터셋에서 어떻게 성능을 높여왔는지 그 흐름을 알아본다. 또한 코드를 통해서 동작원리를 자세하게 깨닫고 실
dnddnjs.github.io
