🌏 Convolutional Neural Networks(CNN)에서 합성곱 연산과 파라미터 계산
Convolutional Neural Networks (CNN)는 이미지 처리에서 가장 널리 사용되는 딥러닝 모델입니다. CNN의 핵심 개념 중 하나는 합성곱 연산(Convolution Operation)입니다. 이번 글에서는 CNN에서 필터, 채널, 그리고 파라미터 계산에 대해 중점적으로 다루며, 중간중간 예시와 수식을 통해 개념을 쉽게 이해할 수 있도록 설명하겠습니다.
✅ 합성곱 연산이란?
CNN에서 합성곱 연산은 이미지의 특징을 추출하는 과정입니다. 필터(또는 커널)가 이미지 위를 이동하면서 각 위치에 있는 픽셀 값들과 곱셈을 수행하고, 그 결과를 더한 값이 Feature Map을 형성하게 됩니다.
- 필터는 보통 작은 크기의 정사각형 행렬(예: 3x3)로 정의됩니다.
- 필터가 이미지의 특정 위치 위에서 곱셈 후 덧셈을 수행하고, 그 결과가 출력 Feature Map의 한 픽셀을 차지하게 됩니다.
예시:
입력 이미지의 한 부분과 필터를 예시로 들어보겠습니다. 3x3 크기의 필터를 3x3 크기의 이미지에 적용한다고 가정합니다.
- 입력 이미지
- 필터
- 필터를 이미지의 특정 영역에 적용하여, 같은 위치의 값들을 곱하고 더합니다.
이 계산 결과가 Feature Map의 한 부분을 차지하게 됩니다.
✅ 다중 채널을 가진 입력 이미지 처리
입력 이미지가 RGB와 같은 3채널 이미지인 경우, CNN은 각 채널별로 필터를 적용한 후, 그 결과를 모두 더하여 최종 Feature Map을 형성합니다.
각 채널 처리 과정
예를 들어, 3개의 채널(R, G, B)을 가진 이미지에 3x3 필터를 적용하는 과정은 아래와 같습니다:
- R 채널, G 채널, B 채널 각각에 필터를 독립적으로 적용합니다.
- 각 채널에서 얻어진 결과들을 모두 더한 후, 필요 시 Bias 값을 더합니다.
✅ 필터가 여러 개일 때
CNN에서는 하나의 필터만 사용하는 것이 아니라 여러 개의 필터를 사용하여 서로 다른 Feature Map을 생성합니다. 예를 들어, 10개의 3x3 필터를 사용한다면 10개의 다른 Feature Map이 생성됩니다.
예시: 10개의 3x3 필터 적용
- 입력 이미지 크기: 100x100 크기의 3채널 이미지 (RGB)
- 필터 개수: 10개의 3x3 필터
- 출력 Feature Map: 각 필터는 독립적으로 계산되어, 총 10개의 100x100 크기의 Feature Map을 생성합니다.
이를 계산하면, 최종 출력은 100x100x10 크기의 Feature Map이 됩니다. 각 필터는 서로 다른 특징(예: 수직선, 수평선, 원형 등)을 인식하도록 학습됩니다.
✅ CNN의 파라미터 계산
CNN에서 학습해야 할 파라미터는 필터의 파라미터 수와 Bias입니다. 각 필터의 파라미터 수는 필터 크기와 입력 이미지의 채널 수에 따라 결정됩니다.
파라미터 계산 방법:
- 필터 크기가 3x3이고, 채널 수가 3(RGB)일 때, 필터 하나의 파라미터 수는:
- 필터가 10개라면, 총 파라미터 수는: 27×10=270개의 파라미터
- 각 필터마다 Bias가 추가되므로, Bias 파라미터는 10개가 추가됩니다.
총 파라미터 수:
✅ Bias를 포함한 CNN 모델
CNN에서는 필터를 통해 추출된 값에 Bias를 더해 최종 출력 값을 계산합니다. Bias는 학습 가능한 값으로, 모델이 각 필터에 대해 최적의 출력을 생성하는 데 도움을 줍니다.
- 각 필터는 3x3 크기이고, 입력 이미지에는 3개의 채널(RGB)이 있습니다.
- 필터와 채널별로 연산이 이루어지고, 결과에 Bias가 추가됩니다.
CNN의 전체 학습 가능한 파라미터는 필터의 파라미터 수와 Bias를 더한 값으로 결정됩니다.
도움이 되었다면, 공감/댓글을 달아주면 깃짱에게 큰 힘이 됩니다!🌟
비밀댓글과 메일을 통해 오는 개인적인 질문은 받지 않고 있습니다. 꼭 공개댓글로 남겨주세요!
'AI' 카테고리의 다른 글
[AI/DL] GAN(Generative Adversarial Networks): Generator vs Discriminator 의 경쟁적인 가짜 찾아내기 (0) | 2024.12.06 |
---|---|
[AI/DL] CNN의 등장 배경: 공간 정보를 활용하며 단계적으로 학습하기 (1) | 2024.10.23 |
[AI/DL] 활성화 함수(Activation Function)의 종류와 기울기 소실 문제 (1) | 2024.10.17 |