AI 정리

CNN 발전 과정(3) - VGGNet, ResNet -> Classification

dawon-project 2025. 3. 27. 03:46

Deep Network(깊은 신경망)는 입력에 가까울 수록 지역적인 Low feature가, 출력에 가까울수록 전역적이고 추상적인 High Feature가 나타남

VGGNet : 매우 깊은 CNN 모델로, 단순하지만 효과적인 구조를 가진 모델

  • 전체적인 구조가 연속된 3 x 3 Convolutional Layer로 이루어져 있으며, 깊이의 증가를 통해 성능을 향상시킴
  • Convolution layers는 깊게 MLP는 적게 하는 모델
    -> 특징 추출을 많이 한다.
    -> 깊이가 증가함에 따라 학습이 오래걸린다...

VGG16

  • 16개의 가중치 레이어(합성곱 + 완전연결층)로 구성
  • 각 합성곱 레이어는 3 x 3 필터를 고정적으로 사용하며 깊게 layer들을 쌓아서 다양한 특징 추출
  • Max Pooling(2 x 2, stride 2)을 적용하여 차원 감소
  • Fully Connected(완전 연결층) 3개와 Softmax 분류기를 포함

VGG19

  • VGG16보다 더 깊은 네트워크로, 19개의 가중치 레이어를 포함
  • 더 많은 합성곱 층을 추가하여 특징을 더욱 세밀하게 추출

하지만 계속해서 Layer가 깊어질 수록  Degradation Problem이 발생함

Degradation Problem

  • Degradation Problem이란?
    • 딥러닝 모델의 레이어가 깊어졌을때 모델이 수렴했음에도 불구하고 오히려 레이어 개수가 적을 때보다 모델의 training/test error가 더 커지는 현상이 발생하는 문제
      -> 이것은 overfitting 때문이 아니라 네트워크 구조상 레이어를 깊이 쌓았을때 최적화가 잘 안되서 발생하는 문제
    • Vanishing/Exploding Gradient(기울기 소실 : 기울기가 0에 수렴하여 학습이 안되는 형태 또는 기울기 폭발: 큰 기울기가 누적되어 발산하는 형태)의 문제가 아니다.
  • Degradation 문제 
    • 학습이 어려워지고, 모델이 충분히 학습되지 못하는 문제
    • Overfitting(과적합)이나 Vanishing Gradient(기울기 소실)과 다름
  • 해결 방법
    • Residual Learning(잔차 학습)을 통해 해결 할 수 있다며 ResNet 모델이 나오게 됨

-> deeper network(더 깊어진 신경망)의 정확도가 포화(Saturated)되었다가 급격히 저하(degraded)되는 현상 발생 

 

 

ResNet(2015)
-> VGG19에서 더 깊은 신경망에서의 Degradation 문제를 해결하기 위한 모델로 VGG19의 기본 구조에서 Skip Connection 기술을 적용한 Residual Layer가 추가된 형태라고 봐도 무방하다.

 

개요

  • Degradation 문제를 해결하기 위해 개발된 Residual Learning Framework
  • Skip Connection(단축 연결)을 사용하여 정보를 직접 전달
    -> 즉 Skip Connection 방식을 이용해서 입력 데이터를 몇개의 레이어를 건너뛰어 직접 출력에 연결하였고 건너뛸때의 거쳐가는 합성곱 계층 전체를 Residual Layer이라 부른다.

Residual Layer(Block)의 종류

ResNet의 특징

  • Identity Mapping을 활용하여 깊은 네트워크에서도 기울기 소실(Vanishing Gradient)문제를 해결할 수도 있다.
    -> identity mapping : Skip Connection 방법을 사용해서 입력을 그대로 출력으로 전달하는 함수
    -> 이전 기울기 소실 하기 전의 기울기를 더해주기 때문?
  • 이전 레이어의 출력을 다음 레이어로 직접 연결하는 Residual Block(그대로 더하기도 하고 연산을 하고 더하기도 함)을 도입

Skip Connection과 손실 곡면 분석

Skip Connection의 중요성

  • 일반적인 신경망에서 깊어질 수록 기울기 소실이 발생하여 학습이 어려움
    -> Skip Connection을 적용하면 모델의 최적화가 쉬워지고, 학습이 빠르게 진행됨
  • Skip Connection을 통해 이전 레이어의 정보를 유지하면서 학습을 진행함
  • ResNet-56 실험에서 Skip Connection이 있을때와 없을 때의 차이 분석
    -> ResNet-56 모델의 손실 곡면을 시각화하여 본 결과, Skip Connection이 있는 경우 손실이 더욱 부드럽게 변하는 것을 확인

-> 손실  곡면(Loss Surface)  :  손실 함수를 입체적으로 표현한 것

MLP와 비교했을때 Skip Connection이 있는 경우 손실이 더욱 부드럽게 변하는 것을 확인

 

  • Top-1 Error (%): 모델이 가장 높은 확률로 예측한 결과가 정답이 아닐 확률
  • Top-5 Error (%): 모델이 예측한 상위 5개 중 정답이 포함되지 않을 확률

 

-> 신경망의 층을 더 깊게 쌓아도 이젠 전과 달리 더 좋은 성능을 보임
-> 왜 더 깊게 쌓으려 하는가? CNN에서는 층이 깊어질 수록 더 전역적이고, 추상적인 High Feature를 뽑아내게 되어서 추론 성능이 강화되기 때문 
-> "나무를 보지말고 숲을 봐라"라고 하는 것처럼 아래의 사진에서 지역적인 Low Feature인 아래의 왼쪽 코 사진만 보고 고양이인가? 호랑이인가? 라고 착각하기 쉽고 이것은 곧 추론하기 어려움으로 이어진다 하지만 아래의 오른쪽 전체적인 특징을 가지고 있는 추상적인 High Feature라면 호랑이라고 분류하기에 더욱 쉬워진다.( 물론 CNN을 거칠 수록 아래 사진들처럼 선명하지는 않고 군데군데 특징만 추출한 형태의 추상적인 사진 형태일 것이다.)

 

Resnet 구조

Residual block의 다양한 형태와 적용 방법

-> F(x) 에 x 즉 Residual layer(block)의 연산 결과를 더해 주는 방식

-> Residual block에서 배치 정규화를 해줘서 학습 속도 개선 및 레이어가 깊어짐에 따라 Internal Covariate Shift 현상을 막을 수 있다.

 

사실상 ResNet 모델이 나오게 되면서 Classification에 오류가 3.6%로 사람보다 적으며 대회 또한 의미가 없어지게 되어서 사라졌고, 다음 문제인 분류에 더해서 분류된 물체가 어디에 있는지를 찾아내는 Localization까지 포함한 모델들이 나오게 되었다.