AI(Artificial Intelligence)
CNN(Convolutional Neural Network, 합성곱 신경망)에 대해 알아보겠습니다.
forward error correction Circle
2025. 6. 24. 08:54
반응형
Ⅰ. CNN(Convolutional Neural Network) 이란?
이미지와 영상 데이터를 처리하는 데 특화된 딥러닝 모델입니다. 인간 시각 피질의 구조에서 영감을 받아 개발된 CNN은 컴퓨터 비전 분야에서 혁신적인 성과를 이뤘으며, 이미지 분류, 객체 탐지, 얼굴 인식 등에서 핵심 기술로 사용됩니다.
Ⅱ. CNN(Convolutional Neural Network) 필요한 목적
기존의 다층 퍼셉트론(MLP) 구조에서는 2차원 이미지를 1차원으로 변형해야 했고, 이 과정에서 공간적 정보 손실이 발생했습니다.
CNN은 2D 이미지 구조를 유지하면서 지역적인 특징을 효율적으로 추출하기 때문에 이미지 처리에 매우 효과적입니다.
Ⅲ. CNN(Convolutional Neural Network) 구조 및 구성요소
ⅰ. 기본 구조
입력 이미지 → [컨볼루션 → ReLU → 풀링] (반복) → 완전연결층 → 출력 |
ⅱ. 구성 요소
구성 요소 | 설명 |
컨볼루션 레이어 | 필터를 통해 지역적 특징 추출 |
풀링 레이어 | 차원 축소 및 위치 불변성 제공 |
ReLU | 비선형 활성화 함수로 기울기 소실 방지 |
완전연결층 | 최종 분류 또는 회귀 수행 |
소프트맥스 | 확률값으로 다중 클래스 분류 |
Ⅳ. 컨볼루션 레이어
ⅰ. 컨볼루션 연산
1) 필터(Filter): 특정 패턴(모서리, 선 등)을 감지
2) 특성맵(Feature Map): 필터 결과가 저장된 맵
Ex) 5×5 이미지 + 3×3 필터 → 3×3 출력
스트라이드, 패딩, 채널 수에 따라 출력 크기 달라짐
ⅱ. 주요 하이퍼파라미터
항목 | 설명 |
스트라이드(Stride) | 필터가 이동하는 간격 |
패딩(Padding) | 이미지 경계 보존을 위한 가장자리 채우기 |
채널(Channel) | 입력 데이터 깊이, RGB는 3채널 |
Ⅴ. 활성화 함수 (ReLU)
ⅰ. 입력이 양수면 그대로, 음수면 0
ⅱ. 비선형성 부여 + 기울기 소실 방지 + 계산 효율성↑
ReLU는 현재 CNN에서 표준 활성화 함수로 자리잡고 있음
Ⅵ. 풀링 레이어 (Pooling Layer)
ⅰ. 풀링 레이어(Pooling Layer)
1) 연산량 감소
2) 과적합 방지
3) 위치 불변성 확보
ⅱ. 풀링 레이어(Pooling Layer) 종류
종류 | 설명 |
Max Pooling | 윈도우 내 최댓값 |
Average Pooling | 평균값 |
Global Average Pooling | 각 특성맵의 평균값 하나로 요약 |
Ⅶ. CNN(Convolutional Neural Network) 학습 과정
구분 | 설명 |
순전파 (Forward Propagation) | 입력 → 컨볼루션 → ReLU → 풀링 → ... → 완전연결층 → 출력 |
역전파 (Backpropagation) | 컨볼루션 계층: 가중치 공유로 인해 특수 처리 필요 풀링 계층: 맥스풀링 → 최댓값 위치에만 기울기 전달 평균풀링 → 모든 위치에 분산 |
Ⅷ. CNN(Convolutional Neural Network) 모델 발전사
연도 | 모델명 | 주요 기여 및 특징 |
1998 | LeNet-5 (Yann LeCun) | 손글씨 숫자 인식 (MNIST), 최초의 CNN 구조, 기본적 합성곱 + 풀링 구조 |
2012 | AlexNet | GPU 활용, ReLU 도입, 드롭아웃 적용, ImageNet 대회 우승 (Top-5 오류율 16%) |
2014 | ZFNet (Zeiler & Fergus) | AlexNet 개선, 중간층 시각화로 CNN 해석 가능성 제시 |
2014 | VGGNet | 3×3 필터만 반복 사용, 단순하지만 깊은 구조, 응용 쉬움 (VGG16, VGG19) |
2014 | GoogLeNet (Inception v1) | Inception 모듈 도입 (다양한 커널 동시 사용), 파라미터 감소 효과 |
2015 | ResNet | Residual Block 도입, 152층 네트워크도 학습 가능, 딥러닝 역사상 전환점 |
2016 | Inception-v3 | Inception 구조 개선, BN, Rmsprop, Label Smoothing 적용 |
2016 | ResNeXt | ResNet + Split-Transform-Merge 전략, 그룹 컨볼루션 활용 |
2017 | DenseNet | 모든 층을 앞 층들과 Dense 연결, 파라미터 효율성과 정보 흐름 극대화 |
2018 | MobileNet | 경량화 모델, Depthwise Separable Convolution 사용, 모바일/IoT에 최적 |
2019 | EfficientNet | AutoML + Compound Scaling으로 정확도 및 효율성 극대화 |
2020 | RegNet (Facebook AI) | 단순하고 규칙 기반의 scalable 모델, EfficientNet과 경쟁 |
2021~ | Vision Transformer (ViT) | CNN이 아닌 Transformer 기반 이미지 분류, 순수 self-attention 구조, CNN 성능 추월 |
Ⅸ. CNN(Convolutional Neural Network) Keras를 사용한 구현 예시
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense model = Sequential([ Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), MaxPooling2D((2,2)), Conv2D(64, (3,3), activation='relu'), MaxPooling2D((2,2)), Conv2D(64, (3,3), activation='relu'), Flatten(), Dense(64, activation='relu'), Dense(10, activation='softmax') ]) |
Ⅹ. CNN(Convolutional Neural Network) 최적화 및 응용 분야
ⅰ. 최적화 기법
기법 | 설명 |
드롯아웃 | 무작위 뉴런제거 → 과적합 방지 |
배치 정규화 | 학습 안정화 |
데이터 증강 | 회전, 크기 조절 등 데이터 다양화 |
ⅱ. 응용 분야
분야 | 응용 사례 |
이미지 분류 | 개/고양이 구분, 교통 표지판 분류 |
객체 탐지 | 자율주행 차량의 보행자 인식 |
얼굴 인식 | 보안 시스템, 출입 통제 |
의료 | 영상 분석 폐렴 진단, 종양 탐지 |
제조 검사 | 불량품 자동 검출 |
반응형