저스틴 존슨 교수님 강의 정리
8강 합성곱 신경망 아키텍처 4 - ResNet
이번 자료에서 중요한 내용으로 아래의 다섯가지를 정리해보자
- Residual Network 배경
- Residual Block
- Residual Network
- Bottleneck Residual Block
- Residual Network 성과와 개선법
Residual Network의 배경
- Residual Network를 잔류 신경망이라고 써서 정리하겠습니다. 지금까지 신경망에 대해 학습하면서 배치 정규화 기법 덕분에 그라디언트 소멸 문제를 해결해 심층 신경망을 쌓을수 있게 된다고 했었습니다. 하지만 20층 짜리 신경망과 이를 복사해서 더 깊은 신경망을 만든 경우를 비교해보면 얕은 모델보다 깊은 모델이 테스트 에러율이 크다보니 오버피팅이 된다고 생각 할수 있지만, 훈련셋에 대한 에러율을 보면 오버피팅인 경우 깊은 모델의 에러율이 낮아져야 하지만 여전히 얕은모델보다 큰 경향이 나와 실제로는 오버피팅이 아니라 언더피팅이 발생하게 됩니다.
한 모델을 복사해 깊은 모델을 만들었으면 동일한 성능이 나와야할것 같으나 그렇지 않은건 최적화의 문제입니다. 깊은 모델에서 얕은 모델의 층까지는 동일하게 학습되더라도 이후 계층들이 항등 함수라면 얕은 모델과 동일한 결과를 얻을수 있겠지만, 기존의 구조로는 깊은 신경망의 뒷편에도 얕은 신경망과 똑같은 계층들이 존재하기 때문에 항등 함수가 되도록 학습시킬수가 없습니다.
Residual Block
- 기존의 합성곱 블록이 합성곱 계층과 활성화 함수를 거쳐가는 식이었다면, 하나의 블록이 항등 함수, 항등 블록이 될수 있도록 입력을 그대로 출력으로 연결하는 지름길을 추가한 모델이 Residual Block 잔류 블록입니다. 기존 블록에다가 입력 x를 그대로 전달하는 통로 덕분에 학습 과정에서 이 잔류 블록은 합성곱 계층의 가중치들이 0이 되면, 합성곱 통로의 결과는 0이 되고 입력이 그대로 전달되는 통로만 남으므로 항등 함수가 되도록 학습이 가능해 졌습니다.
- 잔류 블록이 항등 함수로 학습이 가능해졌으며, 잔류 블록이 가진 추가적인 통로 덕분에 기존의 역전파 과정에서 relu를 지나 사라지는 경우가 생기더라도 이 통로를 통해서 그라디언트가 더 잘 전파되어 훨씬 심층적인 신경망을 구현하는게 가능해졌습니다.
Residual Network
- 잔류 신경망은 이전에 본 신경망 아키텍처인 VGG와 GoogleNet의 기법들을 활용하고 있습니다. VGG에서 설계 원칙을 가지고 신경망을 디자인한것 처럼 커널 크기가 작은 잔류 블록을 여러개 쌓았으며, 각 단계별 거칠때마다 채널의 크기가 두배가 되도록 하고 있으며
GoogLeNet에서 사용했던 Aggressive Stem 집중적 다운샘플링이라 하겠습니다. 이 기법을 통해 초기에 처리할 공간적 차원의 크기를 크게 줄였고, 신경망 맨 끝 완전 연결 계층으로 출력을 만들기 직전 전역적 평균 풀링을 사용해 여러 완전 연결 계층을 사용할 필요없이 연상량을 늘리지 않고 빠르게 출력할수 있도록 설계 되었습니다.
Bottleneck Residual Block
- Bottleneck Residual Block을 병목 잔류 블록이라 부른다면, 우선 기존의 잔류 블록이 커널 크기가 3 x 3인 합성곱 계층을 두개 쌓아서 연산을 시키기고 있었습니다. 여기서 연산량을 더 줄이고 더 많은 레이어를 사용할수 있도록 커널 1 x 1 계층을 앞뒤로 두고 그 사이에 3 x 3 합성곱 계층을 두는 식으로 만든게 병목 잔류 블록입니다. 3 x 3 합성곱 계층 앞 뒤로 1 x 1 계층을 둔 덕분에 채널 수도 조정할수 있으며 더 깊고 가볍게 합성곱 연산이 가능해지게 되었습니다.
ResNet-34는 기본 잔류 블록을 사용하여 ImageNet Top-5 Error가 8.58로 나왔으나, 이 모델을 병목 잔류 블록으로 변경하여 ResNet-50을 만들었으며 7.13으로 에러가 줄어들게 되었습니다. 이후에도 병목 잔류 블록을 추가한 방식으로 100층 이상의 신경망 아키텍처 ResNet-152 등이 나올 수 있었습니다.
Residual Network 성과와 개선법
- 잔류 신경망 모델이 나오기 전에 수 많은 이미지 관련 대회들이 있었고, 각 대회마다 서로 다른 팀들이 우승하고 있었습니다. 하지만 2015년 잔류 신경망 모델이 나오면서 이미지넷의 분류 대회 뿐만이 아니라 검출, 위치 추정 대회에서 우승했으며 이외에도 마이크로소프트의 COCO 데이터셋을 활용한 각종 대회들에서 우승하며 타 모델들 보다 훨씬 뛰어난 성능을 보였습니다.
- 이 잔류 신경망 모델을 개선하기 위한 방법으로 블록을 구성하는 계층들의 순서를 바꾸는 연구도 있었는데, 배치 정규화가 맨 앞, ReLU가 그다음, 그리고 Conv가 올때 약간의 성능 개선이 있엇습니다. 기존의 모델의 경우 마지막에 ReLU를 거치다보니 출력이 항상 양수가 되어 항등 함수 역활을 완전히 하기는 어려웠으나, 배치 정규화와 ReLU가 앞으로 간 덕분에 이 블록이 활성 함수의 역활를 할수 있도록 더 잘 학습된것 것 같습니다.
'번역 > 컴퓨터비전딥러닝' 카테고리의 다른 글
딥러닝비전 8. 합성곱 신경망 아키텍처 5 - Others (0) | 2021.02.19 |
---|---|
컴퓨터 비전과 딥러닝 관련 퀴즈 (0) | 2021.02.18 |
딥러닝비전 8. 합성곱 신경망 아키텍처 3 - GoogLeNet (0) | 2021.02.14 |
딥러닝비전 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG - 16 (0) | 2021.02.14 |
딥러닝비전 8. 합성곱 신경망 아키텍처 1 - AlexNet (0) | 2021.02.14 |