컴퓨터비전 기본 용어

CTF수상까지...!!·2025년 3월 17일

🚀 CNN의 핵심 개념: Conv, ReLU, MaxPooling, DropOut, Fully Connected

딥러닝에서 합성곱 신경망(CNN, Convolutional Neural Network)을 구성하는 핵심 요소들을 수학적으로 분석해보자.
CNN은 이미지 처리에 최적화된 신경망으로, Conv(합성곱), ReLU, MaxPooling, Dropout, Fully Connected(완전 연결층)으로 구성된다.


1️⃣ Conv (Convolution) - 합성곱 연산

📌 Conv 레이어는 이미지의 특징(Feature)을 추출하는 역할을 한다.
📌 수학적으로는 커널(Kernel, 필터)을 사용한 행렬 곱 연산이다.

1.1 Conv 연산 수식

주어진 입력 행렬(이미지) ( I )와 필터(커널) ( K )에 대해, 출력 ( O )는 다음과 같이 계산된다.

O(i,j)=mnI(i+m,j+n)K(m,n)O(i, j) = \sum_m \sum_n I(i+m, j+n) \cdot K(m, n)
  • ( I(i+m, j+n) ): 입력 이미지의 픽셀 값
  • ( K(m, n) ): 합성곱 커널(필터)
  • ( O(i, j) ): 출력 특징 맵

1.2 Conv 연산 예제

입력 이미지 ( I ) (3×3)와 2×2 필터 ( K ) 적용 예시:

I=[123456789]I = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix}
K=[1001]K = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}

출력 특징 맵 계산:

O(1,1)=(1×1)+(2×0)+(4×0)+(5×1)=15=4O(1,1) = (1 \times 1) + (2 \times 0) + (4 \times 0) + (5 \times -1) = 1 - 5 = -4

이와 같은 방식으로 입력 이미지와 커널을 이동하면서 연산이 진행된다.


2️⃣ ReLU (Rectified Linear Unit) - 활성화 함수

📌 ReLU는 비선형성을 추가하고, 음수를 0으로 변환하는 함수이다.
📌 수식으로 표현하면 다음과 같다.

2.1 ReLU 수식

f(x)=max(0,x)f(x) = \max(0, x)

2.2 ReLU 예제

입력 ( x )ReLU 결과 ( f(x) )
-50
-10
00
33
77

📌 ReLU의 특징

  • Gradient Vanishing 문제를 해결할 수 있다.
  • 연산이 간단하여 속도가 빠르다.
  • 하지만 음수를 모두 0으로 만들어 정보 손실이 발생할 수도 있다.

3️⃣ MaxPooling - 최대 풀링

📌 Pooling은 특징 맵의 크기를 줄여 연산량을 줄이고, 중요한 특징을 추출하는 역할을 한다.
📌 MaxPooling은 특정 영역에서 최댓값을 선택하는 방식이다.

3.1 MaxPooling 수식

MaxPooling(2×2 필터, 스트라이드 2) 적용 시:

O(i,j)=max{I(i,j),I(i+1,j),I(i,j+1),I(i+1,j+1)}O(i, j) = \max \{ I(i, j), I(i+1, j), I(i, j+1), I(i+1, j+1) \}

3.2 MaxPooling 예제

입력 특징 맵 ( I ) (4×4)에서 2×2 MaxPooling 적용:

I=[1324561278943526]I = \begin{bmatrix} 1 & 3 & 2 & 4 \\ 5 & 6 & 1 & 2 \\ 7 & 8 & 9 & 4 \\ 3 & 5 & 2 & 6 \end{bmatrix}

MaxPooling 결과 (2×2 필터, stride=2)

O=[6489]O = \begin{bmatrix} 6 & 4 \\ 8 & 9 \end{bmatrix}

📌 MaxPooling의 효과

  • 차원 축소 → 연산 속도 증가
  • 중요한 특징만 유지 → 과적합 방지

4️⃣ DropOut - 과적합 방지

📌 Dropout은 학습 과정에서 일부 뉴런을 랜덤하게 제거하여 모델의 일반화를 향상시키는 기법이다.

4.1 Dropout 수식

뉴런이 유지될 확률 ( p )에 따라, 드롭아웃된 뉴런 값은 다음과 같이 계산된다.

yi={0,확률 (1p)xip,확률 py_i = \begin{cases} 0, & \text{확률 } (1 - p) \\ \frac{x_i}{p}, & \text{확률 } p \end{cases}

📌 Dropout의 특징

  • 학습 시 랜덤하게 뉴런을 제거하여 과적합을 방지한다.
  • 테스트 단계에서는 Dropout을 사용하지 않는다.

5️⃣ Fully Connected (FC) - 완전 연결층

📌 FC 레이어는 CNN에서 추출된 특징을 기반으로 최종 분류를 수행한다.
📌 기본적으로 모든 뉴런이 서로 연결되어 있음.

5.1 FC 레이어 수식

y=Wx+by = W \cdot x + b
  • ( W ) : 가중치 행렬
  • ( x ) : 입력 벡터
  • ( b ) : 편향 값

5.2 FC 예제

입력 벡터 ( x ) (3차원)와 가중치 행렬 ( W ) (3×2)의 행렬 곱:

W=[0.20.80.50.10.90.3]W = \begin{bmatrix} 0.2 & 0.8 \\ 0.5 & 0.1 \\ 0.9 & 0.3 \end{bmatrix}
x=[123]x = \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix}

출력 벡터:

y=[0.20.80.50.10.90.3][123]+[b1b2]y = \begin{bmatrix} 0.2 & 0.8 \\ 0.5 & 0.1 \\ 0.9 & 0.3 \end{bmatrix} \cdot \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} + \begin{bmatrix} b_1 \\ b_2 \end{bmatrix}

📌 FC 레이어의 특징

  • CNN에서 추출한 특징을 기반으로 최종 출력(클래스 예측)을 생성
  • 하지만 매우 많은 파라미터가 필요해 모델이 과적합될 수 있음

🎯 결론

Conv: 합성곱 연산을 통해 특징을 추출
ReLU: 활성화 함수로 비선형성 추가
MaxPooling: 특징 맵 크기 축소, 연산 최적화
DropOut: 랜덤하게 뉴런을 제거하여 과적합 방지
Fully Connected: 최종 분류 수행

📌 CNN 모델을 이해하기 위해 위 개념을 반드시 숙지하자!
🚀 추가적으로 알고 싶은 내용이 있다면 댓글로 남겨줘!

profile
보안 공부...내 공부...

0개의 댓글