CNN에서 Residual-block의 역할

Lam Lee·2025년 5월 11일

Deep Learning w/ PyTorch

목록 보기
4/4

Residual-block을 잘 파악하기 위해, 기존 CNN 기본 흐름을 먼저 정리하겠다.

CNN의 기본 구조 흐름 및 용어 정리

CNN(Convolutional Neural Network)은 이미지나 영상 데이터를 처리하기 위해 설계된 딥러닝 모델로, 주요 구성 요소는 다음과 같다.

1.입력 이미지: 원본 이미지 데이터 (예: 32x32x3 크기의 컬러 이미지)

2.합성곱 계층 (Convolutional Layer): 이미지에서 특징을 추출하는 계층. 필터(커널)를 이용해 엣지, 선, 점 같은 시각적인 특징 추출

  1. 배치 정규화 (Batch Normalization): 학습을 안정화하고 속도를 향상시키는 계층. Conv 출력값을 평균 0, 표준편차 1로 정규화해서 → 학습 속도 빠르게, 불안정한 값 방지

  2. 활성화 함수 (ReLU 등): 비선형성을 추가하여 모델의 표현력을 높임. 비선형성 추가해서 신경망이 복잡한 패턴도 학습 가능하게 함

  3. 풀링 계층 (Pooling Layer): 특징 맵의 크기를 줄여 연산량을 감소시키고, 중요한 정보를 강조. 특징을 요약하고, 크기를 줄여 연산량도 줄임

  4. 완전 연결 계층 (Fully Connected Layer): 추출된 특징을 기반으로 최종 분류를 수행. 최종 추출된 특징들을 모두 연결해서 → 클래스 분류 결정(확률 출력)

  5. 출력 (Softmax 등): 각 클래스에 대한 확률을 출력

Conv는 특징을 뽑고, BN은 학습을 안정화하고, FC는 그걸 바탕으로 최종 판단하는 역할이다. 실제 CNN은 이 3가지를 모두 잘 섞어 쓴다.

BN (Batch Normalization)이란?

딥러닝의 각 층에서 출력값의 분포를 정규화(Normalize)해서 학습을 빠르고 안정되게 만드는 기법

필요성 : 딥러닝에서는 층이 깊어질 수록, 각 층의 출력값 분포가 계속 바뀌어서, 학습이 느려지고 불안정해지는 문제가 있다. 이를 Internal Covariate Shift 라고 한다.
BN은 이 문제를 해결해준다. 각 배치의 출력값을 평균 0, 표준편차 1로 정규화시켜서 학습 안정성 향상+수렴속도 빨라짐

작동방식 : 미니배치의 평균과 표준편차 계산 후 정규화, 학습가능한 scale, shift 파라미터로 다시 변형

FC (Fully Connected Layer)란?

모든 입력 노드를 모든 출력 노드에 연결하는 인공신경망의 기본 구조.
FC Layer는 Conv로 뽑아낸 특징을 최종적으로 조합해서 분류를 결정하는 ‘판단기’ 역할을 하는 층이다.

이해 : 이전 레이어에서 나온 모든 값들을 일렬로(flatten)하게 만든 후, 모든 입력을 각각 모든 출력 노드에 곱해서 계산하는 방식.
예)입력이 128개고, 출력이 10이면 : 파라미터 수 + 128 X 10 = 1280개
FC layer 코드 사용 예

Conv (Convolution Layer)란?

Conv (Convolution Layer)는 이미지 속 특징(feature)을 뽑아내기 위해
작은 필터(커널) 를 이미지 위에 슬라이딩하며 연산하는 층.

작동방식 : 전체 이미지 위를 슬라이딩 하면서, 각 영역의 특징을 수치로 바꿔서 피처맵 생성. 필터 수 많을 수록 다양한 특징을 동시에 추출 가능.

Conv vs FC

Residual-block

https://paperswithcode.com/method/residual-block

Conv → BN → ReLU 흐름이 반복되는 구간에 → “ResidualBlock”이 그 자체로 하나의 블록으로 끼어들어감. ResNet (Residual Network)은 딥러닝 네트워크가 깊어질 때 학습이 어려워지는 문제를 해결하기 위해 등장한 구조

필요성 : 깊은 네트워크에서 안되던 학습이 되게 해줌. 그래서 ResNet이 딥러닝 역사에 큰 영향을 줌.

기존 CNN 구조에서 대체/보완하는 부분

핵심 아이디어 : 입력값을 다음 층의 출력에 직접 더해주는 Skip Connection을 추가.
즉, 기존 Conv 쌓는 부분을 Residual Block으로 묶고 skip connection을 추가한 것

skip connection 역할

  • 정보 손실 없음
  • 그라디언트가 잘 흐름
  • deeper + faster

일반 CNN vs ResNet구조

profile
Transitioning from UX to data science, I explore the intersection of service & data to unlock hidden value and make meaningful predictions.

0개의 댓글