Machine Learning

CNN 기반 모델들

blog507 2024. 6. 25. 08:54
반응형

오늘은 Convolutional Neural Network(CNN) 기반 모델들에 대해서 정리하겠습니다.

CNN 기반 모델들은 굉장히 다양하고 각각 논문들이 하나씩 있을만큼 내용들이 많으나 본 페이지에서는 간단하게 정리하려고 합니다. 

CNN 기초 지식이 있으면 훨씬 더 도움이 되실 것이라 생각합니다.

세부적인 내용들은 찾아보시는 걸 권장하고 틀린 부분이 있으면 언제든 댓글로 말씀해주시면 수정하겠습니다.

 


 

1. Resnet

  • 모델이 깊어질수록 성능이 왜 안좋아질까?
    • Overfitting때문이 아니라, 모델 최적화(Optimization)가 어려워지기 때문
    • 모델이 깊어질수록 gradient vanishing, gradient exploding 현상이 발생하기 때문

  • 기존 학습 방법
    • x가 들어올 때, H(x)에 대해 이상적으로 동작하는 H를 학습하고 싶음
    • 레이어가 깊어지면 H를 학습하는 것이 매우 어려워짐 (위에서 언급한 이유들 때문)

 

  • Resnet 동작 방법
    • SkipConnection을 추가하면서, 앞서 학습한 정보 x를 전달해주게 되어, 기존 H를 학습하는 문제에서 F만 학습
    • 잘 학습된 Layer(ex, Resnet의 34th → 35th)는 다음 레이어로 갈 때 값의 변화가 그리 크진 않을 것임 ( 값이 크면 overfitting 가능성이 큼) -> “값의 변화가 크지 않을 테니, Layer 하나에서 모든걸 하려고 하지 말고 조금씩만 바꾸면 된다.
    • 즉, H(x) = x에 근사한다고 볼 수 있음. 이 상태에서 Residual인 이유는 차이만 학습하기 때문이고, 변화량만 학습하면 됨
    • F(x) = H(x) - x 그 시점에서의 변화량, 위의 조건에 의해 x는 H(x)에 근사하므로 0에 가까워져야함
      • 극단적으로 H(x)가 x일 때, Identity Mapping을 맞추는 것 보다 0으로 맞추는게 훨씬 쉬움

 

2. MobileNet

  • MobileNet
    • 임베디드시스템이나 모바일과 같은 저메모리 환경에서 동작하기 위한 아키텍처

 

  •  기존
    • 기존 Conv에선 목표로 하는 Output Channel 갯수 만큼 nxn 크기의 필터가 필요

 

  • MobileNet 동작 방법 
    • Depthwise에서는 Input channel 갯수 만큼 nxn 크기의 필터가 필요하고 Output Channel의 갯수로 늘리는 작업에는 1x1 Conv를 이용
      • 이렇게 하면 필터사이즈가 3일 때 연산량을 약 1/9 수준으로 줄일 수 있음
    • Depthwise Separable Convolution은 Depthwise Convolution(3x3) 이후에 Pointwise Convolution(1x1)을 결합한 것
    • 3x3 conv 필터의 개수를 입력 채널의 개수로 줄임 ← 파라미터 개수 감소 효과
    • 기존 conv가 전체 채널의 값을 계산 했다면, Depthwise는 채널별로 계산 하여 계산량을 줄임
    • 1x1 conv 를 통해 output channel 개수로 맞춰줌

 

(추가 작성 예정)

반응형

'Machine Learning' 카테고리의 다른 글

PDFTranslate FastAPI 구현  (1) 2025.02.04
Stable Diffusion FastAPI 구현  (0) 2025.02.03
Grounding-DINO FastAPI 구현  (1) 2024.12.06
GLIP : Grounded Language-Image Pre-training  (1) 2024.07.26
딥러닝 기초 지식  (2) 2024.06.11