🚀 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)=m∑n∑I(i+m,j+n)⋅K(m,n)
- ( I(i+m, j+n) ): 입력 이미지의 픽셀 값
- ( K(m, n) ): 합성곱 커널(필터)
- ( O(i, j) ): 출력 특징 맵
✅ 1.2 Conv 연산 예제
입력 이미지 ( I ) (3×3)와 2×2 필터 ( K ) 적용 예시:
I=⎣⎢⎡147258369⎦⎥⎤
K=[100−1]
출력 특징 맵 계산:
O(1,1)=(1×1)+(2×0)+(4×0)+(5×−1)=1−5=−4
이와 같은 방식으로 입력 이미지와 커널을 이동하면서 연산이 진행된다.
2️⃣ ReLU (Rectified Linear Unit) - 활성화 함수
📌 ReLU는 비선형성을 추가하고, 음수를 0으로 변환하는 함수이다.
📌 수식으로 표현하면 다음과 같다.
✅ 2.1 ReLU 수식
f(x)=max(0,x)
✅ 2.2 ReLU 예제
| 입력 ( x ) | ReLU 결과 ( f(x) ) |
|---|
| -5 | 0 |
| -1 | 0 |
| 0 | 0 |
| 3 | 3 |
| 7 | 7 |
📌 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)}
✅ 3.2 MaxPooling 예제
입력 특징 맵 ( I ) (4×4)에서 2×2 MaxPooling 적용:
I=⎣⎢⎢⎢⎡1573368521924246⎦⎥⎥⎥⎤
MaxPooling 결과 (2×2 필터, stride=2)
O=[6849]
📌 MaxPooling의 효과
- 차원 축소 → 연산 속도 증가
- 중요한 특징만 유지 → 과적합 방지
4️⃣ DropOut - 과적합 방지
📌 Dropout은 학습 과정에서 일부 뉴런을 랜덤하게 제거하여 모델의 일반화를 향상시키는 기법이다.
✅ 4.1 Dropout 수식
뉴런이 유지될 확률 ( p )에 따라, 드롭아웃된 뉴런 값은 다음과 같이 계산된다.
yi={0,pxi,확률 (1−p)확률 p
📌 Dropout의 특징
- 학습 시 랜덤하게 뉴런을 제거하여 과적합을 방지한다.
- 테스트 단계에서는 Dropout을 사용하지 않는다.
5️⃣ Fully Connected (FC) - 완전 연결층
📌 FC 레이어는 CNN에서 추출된 특징을 기반으로 최종 분류를 수행한다.
📌 기본적으로 모든 뉴런이 서로 연결되어 있음.
✅ 5.1 FC 레이어 수식
y=W⋅x+b
- ( W ) : 가중치 행렬
- ( x ) : 입력 벡터
- ( b ) : 편향 값
✅ 5.2 FC 예제
입력 벡터 ( x ) (3차원)와 가중치 행렬 ( W ) (3×2)의 행렬 곱:
W=⎣⎢⎡0.20.50.90.80.10.3⎦⎥⎤
x=⎣⎢⎡123⎦⎥⎤
출력 벡터:
y=⎣⎢⎡0.20.50.90.80.10.3⎦⎥⎤⋅⎣⎢⎡123⎦⎥⎤+[b1b2]
📌 FC 레이어의 특징
- CNN에서 추출한 특징을 기반으로 최종 출력(클래스 예측)을 생성
- 하지만 매우 많은 파라미터가 필요해 모델이 과적합될 수 있음
🎯 결론
✅ Conv: 합성곱 연산을 통해 특징을 추출
✅ ReLU: 활성화 함수로 비선형성 추가
✅ MaxPooling: 특징 맵 크기 축소, 연산 최적화
✅ DropOut: 랜덤하게 뉴런을 제거하여 과적합 방지
✅ Fully Connected: 최종 분류 수행
📌 CNN 모델을 이해하기 위해 위 개념을 반드시 숙지하자!
🚀 추가적으로 알고 싶은 내용이 있다면 댓글로 남겨줘!