Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

코딩세상

[이미지] Convolutional Neural Network - 이미지와 Convolution 연산 본문

인공지능

[이미지] Convolutional Neural Network - 이미지와 Convolution 연산

필륭 2023. 9. 17. 20:48

- Fully - Connected Layer와 이미지 데이터

 

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 연산

 

Convolution 연산의 예

 

그렇다면 우리가 앞서 Neural Network에 대해서 배워 이것에 대해 알고 있지만 앞에 붙은 Convolution은 무엇일까요? 

Convolution은 두 함수를 곱하고, 합한다는 뜻을 가지고 있는 수학적 용어 입니다. Convolution은 CNN을 구현하는 핵심 연산이며, 이를 통해 우리는 원본 이미지와 어떤 특정 함수와의 합성곱을 통해 이미지를 처리한다고 유추할 수 있습니다.

 

위에서 설명한 내용을 바탕으로 정리하면 즉, CNN 모델은 Convolution 연산을 하는 Neural Network라고 설명할 수 있으며, 이미지에 여러 필터를 적용할 수 있는 커널 값과 이미지의 Numpy array 간의 Convolution연산을 통해 이미지가 CNN모델에서 처리되게 됩니다.

 

이미지 데이터와 커널간의 Convolution 연산

 

글로 설명하면 이해하기 힘들 것 같아 위 이미지를 참고하여 어떻게 연산이 이루어지는지 살펴보겠습니다.

Input Data는 2차원 이미지 데이터로써 행렬로 표현이 가능합니다. 행렬의 각 원소는 해당 위치의 이미지 픽셀 값을 나타내며, Convolution 커널 역시 행렬로 표현이 가능하여 두 행렬 사이의 Convolution연산이 가능하게 됩니다. 

위에서 설명한  Fully - Connected Layer 경우 2차원 데이터를 강제적으로 1차원 데이터로 변형시켜 사용하기 때문에 데이터의 손실이 일어나지만 Convolution 연산은 2차원 상에서 연산이 이루어지기 때문에 이미지 데이터를 변형 없이 그대로 사용할 수 있습니다.

 

 

 

- Convolution 연산 과정

 

Convolution 연산 과정

 

Convolution 연산 과정

 

위 그림을 통해 알 수 있듯이 커널이 이미지의 노란색 영역에 겹쳐짐으로써 이미지 내의 픽셀과 커널이 겹쳐진 영역에서의 Convolution연산이 이루어져 연산 결과값이 저장된 새로운 행렬이 만들어지게 됩니다.

 

 

 

- Convolution 연산 용어

 

Convolution 연산 용어

 

그렇다면 우리는 위에서 본 연산 결과값이 저장된 새로운 행렬과 이미지 내의 행렬 데이터와 커널의 행렬 데이터가 겹치는 부분은 어떻게 불러야될까요?

  • 연산 결과는 Feature Map 또는 Activation Map이라고 부릅니다.
  • 커널과 이미지가 겹치는 영역은 수용 영역(Receptive Field)라고 합니다.

 

 

 

- 컬러 이미지의 Convolution 연산

 

컬러 이미지에서의 Convolution 연산

 

앞서 설명한 Convolution 연산은 1채널로 이루어진 이미지에서의 연산 처리 결과를 보여주는 것이었습니다. 즉, 흑백 이미지에서 적용될 수 있는 연산이었습니다.

그렇다면 컬러 이미지에서는 어떻게 Convolution연산이 이루어지게 할 수 있을까요?

간단하게 컬러 이미지는 흑백 이미지와는 다르게 3개의 채널을 가지고 있으므로 커널의 채널 역시 3개로 준비하면 됩니다.

 

채널 별 Convolution 연산

 

각 채널 별로 Convolution 연산을 수행하고 각 결과를 더해서 하나의 Feature Map을 생성합니다.

 

 

 

- Convolution 연산 확장

 

Convolution 연산의 확장

 

지금까지 설명한 Convolution 연산은 각 이미지에 따라 한개의 커널만을 사용하여 Feature Map도 한개가 나왔지만

위 그림처럼 커널을 여러 개 두면 Feature Map도 여러개 생성할 수 있습니다.

 

 

 

 

 

 

# 출처 및 참고자료

 

엘리스 AI 트랙 7기 - [이론] Convolutional Neural Network

 

Comments