
CNN에 대해 알아보자
딥러닝의 대표적인 모델중 하나인 CNN(Convolutional Neural Network)은 이미지와 같은 데이터에서 특징을 효과적으로 추출하는데 특화된 구조를 가지고 있다. 오늘은 CNN의 개요부터 주요 구성 요소, 연산 방식, 추가된 개념, 그리고 하이퍼파라미터가 CNN 모델 구조에 미치는 영향을 정리해볼까 한다.
CNN이란 ?
이미지 분류, 객체 탐지, 영상 처리등 다양한 작업에서 사용되는 모델이다.
기존 완전 연결 신경망과 달리, CNN은 공간적 구조를 활용하여 데이터의 지역적 특징을 학습한다.
이를 통해 모델의 파라미터 수를 크게 줄이고 학습 효율을 높일 수 있다.
CNN의 주요 구성 요소
1. 입력 레이어
이미지 데이터를 CNN에 입력하는 부분이다.
입력 데이터는 보통 H × W × C 형식으로 표현되며, H 는 높이, W는 너비, C는 채널 수(RGB 이미지의 경우 3)를 나타낸다.
2. 컨볼루션 레이어
컨볼루션 레이어는 CNN의 핵심 요소로, 필터를 사용하여 입력데이터의 특징을 추출한다. 이 과정에서 생성되는 결과는 특징 맵 이라고 불리며 다음 레이어로 전달 된다.
3. 활성화 함수
ReLU(Rectified Linear Unit)와 같은 활성화 함수를 사용하여 비선형성을 도입합니다. 이는 모델이 복잡한 패턴을 학습하는 데 도움을 준다.
4. 풀링 레이어
풀링 레이어는 데이터 크기를 줄이고 연산량을 감소시키는 역할을 합니다. 풀링 연산은 중요한 특징을 유지하면서도 과적합을 방지한다.
- Max Pooling: 가장 큰 값을 선택.
- Average Pooling: 평균 값을 선택.
5. 완전 연결층
이전 레이어에서 추출된 특징을 바탕으로 최종 결과를 도출합니다. 모든 뉴런을 연결하여 모델의 예측 결과를 계산한다.
6. 출력 레이어
Softmax나 Sigmoid 활성화 함수를 통해 최종 예측 값을 반환한다.
CNN의 주요 연산 방식
1. 컨볼루션 연산
컨볼루션 연산은 입력 데이터와 필터의 내적 계산으로 새로운 특징 맵을 생성합니다. 필터는 이미지의 특정 패턴(예: 경계선, 텍스처 등)을 감지하며, 각 필터는 학습을 통해 업데이트됩니다.
특징 맵 계산 수식은 아래와 같다.
- I: 입력 데이터
- K: 커널(필터)
- S: 출력 특징 맵
2. 풀링 연산
풀링 연산은 데이터의 크기를 줄이는 동시에 중요한 정보를 유지합니다.
Max Pooling: 지정된 영역에서 가장 큰 값을 선택.
Average Pooling: 영역 내의 평균 값을 계산.
CNN에서 추가된 개념
CNN은 여러 요소를 통해 입력 데이터의 크기와 특징 맵 구조를 조정합니다.
1. 커널의 크기와 개수
커널 크기: 보통 3×3, 5×5 등으로 설정됩니다. 크기가 작을수록 세밀한 특징을 학습하고, 크기가 클수록 더 넓은 영역의 특징을 학습한다.
커널 개수: 필터의 개수를 늘리면 다양한 특징을 학습할 수 있지만, 계산량도 증가한다.
2. 패딩
패딩은 입력 데이터에 경계 값을 추가하는 과정으로, 주로 출력 크기를 조정하거나 특징 손실을 방지하기 위해 사용된다,
Valid Padding: 패딩 없이 연산 → 출력 크기 감소!
Same Padding: 입력과 출력 크기를 동일하게 유지한다
3. 스트라이드
스트라이드는 커널이 입력 데이터를 슬라이딩하는 간격이다.
Stride=1Stride=1Stride=1: 모든 픽셀을 탐색하며 출력 크기가 큼.
Stride=2Stride=2Stride=2: 일부 픽셀만 탐색하며 출력 크기가 작아짐.
하이퍼파라미터와 특징 맵 구조
CNN의 특징 맵 크기는 입력 데이터 크기, 커널 크기, 패딩, 스트라이드에 따라 결정된다.
특징 맵 크기 계산 공식은 아래와 같다!
- O: 출력 크기
- I: 입력 크기
- K: 커널 크기
- P: 패딩 크기
- S: 스트라이드
이렇게 해서... CNN과 관련된 설명은 마치도록 하고 한줄 요약을 해보겠다.
한줄 요약
CNN은 컨볼루션과 풀링 연산을 통해 이미지의 공간적 특징을 추출하고 학습하는 딥러닝 모델로, 이미지 분류와 객체 탐지에 널리 사용된다!

추천 글
Surround 데이터를 찾을 수 없습니다.