코딩세상
[이미지] Convolutional Neural Network - 이미지와 Convolution 연산 본문
- Fully - Connected Layer와 이미지 데이터
FC Layer(Fully - Connected Layer)는 1차원 데이터를 요구합니다. 즉, 2차원 상의 데이터를 단순하게 1차원 데이터로 바꾸는 것인데 이렇게 되면 우리는 2차원 상에서 가지는 정보를 포기해야합니다. 이러한 정보는 이미지 내 사물간의 거리관계나 색의 변화(특히 세로로 변하는 상황)를 예로 들 수 있으며, 이는 공간 정보(Spatial Information)가 무너지게 되는 것입니다.
- Convolutional Neural Network
그래서 이러한 문제를 해결하기 위해 이미지 처리에 특화된 딥러닝 모델이 등장하였습니다. 이를 Convolutional Neural Network(CNN)이라고 합니다.
CNN 모델은 대표적으로
- Convolutional Layer
- Pooling Layer
- 분류기(Classifier) : Fully - Connected Layer
로 구성되어 있습니다.
- Convolution 연산
그렇다면 우리가 앞서 Neural Network에 대해서 배워 이것에 대해 알고 있지만 앞에 붙은 Convolution은 무엇일까요?
Convolution은 두 함수를 곱하고, 합한다는 뜻을 가지고 있는 수학적 용어 입니다. Convolution은 CNN을 구현하는 핵심 연산이며, 이를 통해 우리는 원본 이미지와 어떤 특정 함수와의 합성곱을 통해 이미지를 처리한다고 유추할 수 있습니다.
위에서 설명한 내용을 바탕으로 정리하면 즉, CNN 모델은 Convolution 연산을 하는 Neural Network라고 설명할 수 있으며, 이미지에 여러 필터를 적용할 수 있는 커널 값과 이미지의 Numpy array 간의 Convolution연산을 통해 이미지가 CNN모델에서 처리되게 됩니다.
글로 설명하면 이해하기 힘들 것 같아 위 이미지를 참고하여 어떻게 연산이 이루어지는지 살펴보겠습니다.
Input Data는 2차원 이미지 데이터로써 행렬로 표현이 가능합니다. 행렬의 각 원소는 해당 위치의 이미지 픽셀 값을 나타내며, Convolution 커널 역시 행렬로 표현이 가능하여 두 행렬 사이의 Convolution연산이 가능하게 됩니다.
위에서 설명한 Fully - Connected Layer 경우 2차원 데이터를 강제적으로 1차원 데이터로 변형시켜 사용하기 때문에 데이터의 손실이 일어나지만 Convolution 연산은 2차원 상에서 연산이 이루어지기 때문에 이미지 데이터를 변형 없이 그대로 사용할 수 있습니다.
- Convolution 연산 과정
위 그림을 통해 알 수 있듯이 커널이 이미지의 노란색 영역에 겹쳐짐으로써 이미지 내의 픽셀과 커널이 겹쳐진 영역에서의 Convolution연산이 이루어져 연산 결과값이 저장된 새로운 행렬이 만들어지게 됩니다.
- Convolution 연산 용어
그렇다면 우리는 위에서 본 연산 결과값이 저장된 새로운 행렬과 이미지 내의 행렬 데이터와 커널의 행렬 데이터가 겹치는 부분은 어떻게 불러야될까요?
- 연산 결과는 Feature Map 또는 Activation Map이라고 부릅니다.
- 커널과 이미지가 겹치는 영역은 수용 영역(Receptive Field)라고 합니다.
- 컬러 이미지의 Convolution 연산
앞서 설명한 Convolution 연산은 1채널로 이루어진 이미지에서의 연산 처리 결과를 보여주는 것이었습니다. 즉, 흑백 이미지에서 적용될 수 있는 연산이었습니다.
그렇다면 컬러 이미지에서는 어떻게 Convolution연산이 이루어지게 할 수 있을까요?
간단하게 컬러 이미지는 흑백 이미지와는 다르게 3개의 채널을 가지고 있으므로 커널의 채널 역시 3개로 준비하면 됩니다.
각 채널 별로 Convolution 연산을 수행하고 각 결과를 더해서 하나의 Feature Map을 생성합니다.
- Convolution 연산 확장
지금까지 설명한 Convolution 연산은 각 이미지에 따라 한개의 커널만을 사용하여 Feature Map도 한개가 나왔지만
위 그림처럼 커널을 여러 개 두면 Feature Map도 여러개 생성할 수 있습니다.
# 출처 및 참고자료
엘리스 AI 트랙 7기 - [이론] Convolutional Neural Network
'인공지능' 카테고리의 다른 글
[이미지] Convolutional Neural Network - 대표적인 CNN 모델 (0) | 2023.09.20 |
---|---|
[이미지] Convolutional Neural Network - Convolutional Neural Network (2) | 2023.09.18 |
[이미지] 이미지 데이터 - 딥러닝 이전의 이미지 처리 기법 (0) | 2023.09.12 |
[이미지] 이미지 데이터 - 딥러닝을 활용한 이미지 처리 사례 (0) | 2023.09.11 |
[이미지] 이미지 데이터 - 이미지 데이터란? (0) | 2023.09.11 |