
더보기
📌 목차
1. CNN 개요
2. CNN 구조
3. 합성곱층 (Convolution Layer)
- 합성곱 연산
- Kernel
- Stride
- Padding
- Feature Map
4. 활성화 함수 (Activation Function)
5. 풀링층 (Pooling Layer)
6. Flatten Layer
7. 밀집층 (Fully Connected Layer)
8. CNN의 장점
9. CNN의 단점
10. 출처
CNN (Convolutional Neural Network, 합성곱 신경망)
1. CNN 개요
- 이미지 처리 및 패턴 인식에 특화된 딥러닝 모델
- 이미지의 공간적 특징(Spatial Features) 추출
- 픽셀(RGB 값)로 구성된 격자(Grid) 형태 데이터 처리
- 객체 인식, 이미지 분류, 얼굴 인식, 영상 분석 등에 활용
▫ 활용 분야
- 이미지 분류(Image Classification)
- 객체 탐지(Object Detection)
- 얼굴 인식(Face Recognition)
- 의료 영상 분석
- 자율주행 차량의 이미지 인식
▫ 대표적인 CNN 모델
- LeNet
- AlexNet
- VGG16
- ResNet
- EfficientNet
2. CNN 구조
입력 이미지
↓
합성곱층 (Convolution Layer)
↓
활성화 함수 (ReLU)
↓
풀링층 (Pooling Layer)
↓
합성곱층 + ReLU + 풀링층 반복
↓
Flatten Layer
↓
밀집층 (Fully Connected Layer)
↓
출력층 (Output Layer)
3. 합성곱층 (Convolution Layer)
▫ 개요
- CNN의 핵심 구성 요소
- 입력 이미지와 커널(Kernel)의 합성곱 연산 수행
- 이미지의 지역적 특징(Local Feature) 추출
- 특징 맵(Feature Map) 생성
- Image + Kernel(Filter) → Convolution → Feature Map
▫ 합성곱 연산
- 커널과 이미지의 각 픽셀 값을 곱한 후 합산
- 특정 특징과 유사할수록 높은 출력값 생성
- 특징이 없으면 낮은 출력값 생성
이미지 영역
1 2
3 4
커널
1 0
0 1
연산결과 (Feature Map 한칸)
(1×1) + (2×0) + (3×0) + (4×1)
= 5
1) 커널 (Kernel - Filter / Size)
▫ 필터
- 특징 추출
- 에지(Edge) 검출
- 선(Line) 검출
- 패턴 인식
- 작은 크기의 행렬
- 학습 과정에서 최적의 값으로 업데이트
▫ 크기
- 추출하는 특징의 범위를 결정
- 작은 커널
→ 세밀한 특징 추출 가능
→ 연산량 증가 - 큰 커널
→ 넓은 영역 확인 가능
→ 세부 특징 손실 가능 - 실무에서는 3×3 커널이 가장 많이 사용
2) 보폭 (Stride)
▫ 개념
- 커널 이동 간격
Stride = 1
□ □ □ □
□ □ □ □
□ □ □ □
1 칸씩 이동
▫ 특징
- Stride 증가
→ Feature Map 감소
→ 연산량 감소
→ 정보 손실 가능성 증가 - Stride 감소
→ 정보 보존 증가
→ 더 많은 특징 추출
→ Feature Map 크기 증가
→ 연산량 증가
3) 패딩 (Padding)
- 입력 이미지의 가장자리 정보 보존 목적
- Feature Map 크기 유지 목적
- 입력 이미지 주변에 값을 추가하는 기법
입력 이미지 : 5 × 5
Kernel : 3 × 3
Stride : 1
Padding : 0
출력 : 3 × 3
---
Padding : 1
출력 : 5 × 5
4) 특징 맵 (Feature Map)
▫ 개념
- 합성곱 연산 결과
- 입력 이미지의 중요한 특징 표현
▫ 특징
- 크기
→ 크기가 클수록 세부 정보 보존
→ 크기가 작을수록 계산량 감소 - 특정 패턴
→ 특정 패턴이 존재하면 높은 값 출력
→ 패턴이 존재하지 않으면 낮은 값 출력
4. 활성화 함수 (Activation Function)
▫ 목적
- 비선형성(Non-Linearity) 추가
- 복잡한 패턴 학습 가능
▫ 대표 함수
ReLU (Rectified Linear Unit) : f(x)=max(0,x)
▫ 특징
- 양수 → 그대로 출력
- 음수 → 0 출력
- 계산 속도 빠름
- CNN에서 가장 많이 사용
5. 풀링층 (Pooling Layer)
▫ 개념
- Feature Map 크기 축소
- 계산량 감소
- 과적합(Overfitting) 방지
- 중요한 특징 유지
▫ 최대 풀링 (Max Pooling)
- 윈도우 내 최대값 선택
- 가장 강한 특징 유지
- CNN에서 가장 많이 사용
▫ 평균 풀링 (Average Pooling)
- 윈도우 내 평균값 선택
- 전체적인 정보 유지
6. Flatten Layer
- 개념: 다차원 Feature Map → 1차원 벡터 변환
- 목적: Dense Layer 입력 형태 변환
- 밀집층(Dense Layer)은 1차원 데이터를 입력으로 받기 때문에 Feature Map을 1차원 벡터로 변환 필요
10. 밀집층 (Fully Connected Layer, Dense Layer)
▫ 개념
- 추출된 특징을 이용한 최종 판단 수행
- CNN 마지막 부분에 위치
▫ 특징
- 모든 노드가 서로 연결
- 분류(Classification) 수행
- 최종 예측 결과 생성
CNN의 장점
1. 이미지 특징 자동 추출
- 기존 방식처럼 사람이 직접 특징을 설계할 필요가 없다.
2. 파라미터 수 감소
- Fully Connected Layer만 사용할 때보다 훨씬 적은 파라미터를 사용한다.
3. 높은 이미지 인식 성능
-컴퓨터 비전 분야에서 뛰어난 성능을 보인다.
CNN의 단점
1. 학습 비용이 높음
- 대량의 데이터와 GPU 자원이 필요하다.
2. 데이터 의존성
- 학습 데이터가 부족하면 성능이 떨어질 수 있다.
3. 해석이 어려움
- 왜 특정 결과가 나왔는지 설명하기 쉽지 않다
[출처]
- [신박AI] Deep Learning 101 - 합성곱신경망 CNN, Convolutional Neural Network (https://www.youtube.com/watch?v=lDqn1UNwgrY)