CNN 구조는 이미지와 같은 공간 구조 데이터를 처리하기 위한 신경망 구조이다.
일반 신경망인 MLP는 입력을 1차원으로 펼쳐서 처리하지만
CNN은 이미지의 형태인 2D 구조를 유지하면서 처리한다.
CNN에 관해 기억할 핵심 개념은 3개이다.
1. Local Receptive Field (지역 연결)→ 전체가 아니라 “부분”만 본다
2. Weight Sharing (가중치 공유)→ 같은 필터를 전체 이미지에 적용
3. Feature Map→ conv 결과로 나온 특징 지도
다만 이렇게 말하면 조금 갑작스럽기에 CNN 모델의 알고리즘 구조 참고하면 좋다.
이미지 → Conv → ReLU → Pool → Conv → ReLU → Pool → Flatten → FC → Output
위 구조를 이해하기 위해 필요한 용어를 조금 정리하면 다음과 같다.
(1) Convolution Layer (합성곱 층)
- 작은 필터(kernel)를 이용해서 이미지 특징 추출
(2) Activation Function (활성화 함수)
- 비선형성 추가 (ReLU 많이 씀)
(3) Pooling Layer (풀링 층)
- 이미지 크기를 줄임 (다운샘플링)
결국에 CNN은 지도학습을 통해 오차를 줄이는 과정에서 부분, 부분을 나눠서 특징들을 확인한다고 보면 된다.
이러한 CNN엔 크게 3가지의 문제점이 있었다.
- 기울기 문제 (vanishing / exploding)
- 깊어질수록 성능이 떨어지는 문제 (degradation)
- 학습이 어려운 구조 (optimization difficulty)
조금 상세히 들어가면 다음과 같다.
1. Vanishing Gradient 기울기 소실
깊어질수록 역전파 시 기울기가 0에 가까워짐
앞쪽 레이어가 거의 학습 안 됨
결과
학습이 느려짐
초기 레이어가 의미 없는 특징 추출
2. Exploding Gradient 기울기 폭주
반대로 기울기가 너무 커지는 경우
weight가 발산
결과
loss가 NaN
학습 자체가 깨짐
3. Degradation Problem 성능 저하 문제
레이어를 더 쌓았는데
성능이 좋아지는 게 아니라 오히려 나빠짐
이유
최적화가 어려워짐 학습이 안 됨
ResNet이 해결하려던 핵심 문제
4. Overfitting 과적합
데이터보다 모델이 너무 큼
결과
train 정확도 증가
test 정확도 감소
5. 학습 난이도 증가 Optimization Difficulty
깊어질수록 loss surface가 복잡해짐
좋은 weight 찾기 어려움
결과
수렴 느림
local minimum에 갇힘
6. 정보 손실 Information Loss
layer가 많아질수록
초기 입력 정보가 희석됨
특히 CNN은
pooling
stride
이 과정에서 정보 계속 줄어듦
7. 계산 비용 증가
깊어질수
연산량 증가
GPU 메모리 증가
학습 시간 증가
8. 구조적 한계 표현력 vs 효율 문제
깊게 만들면 성능은 좋아질 수 있지만
현실적으로 학습이 안 됨
'Portfolio (성과 & 활동) > [연구생] ADSLab' 카테고리의 다른 글
| [딥러닝 파이토치 교과서 1장] 머신러닝과 딥러닝 (0) | 2026.03.05 |
|---|