AI, 딥러닝, 머신러닝

컨볼루션 신경망(CNN)

Mulenga 2023. 2. 8. 07:19
728x90

컨볼루션 신경망(Convolutional Neural Networks)이란?

 

- 컨볼루션 신경망은 이미지 분야를 다루기에 최적화된 인공신경망 구조이다.

- 컨볼루션 신경망은 크게 컨볼루션층(Convolution Layer)과 풀링층(Pooling Layer)으로 구성되어 있다. 풀링은 서브샘플링(Subsampling)이라고도 부른다.

 

 

컨볼루션층(Convolution Layer)

 

  컨볼루션은 우리말로 합성곱이라고도 불리는데 커널(Kernel) 또는 필터(Filter)라고 불리는 윈도우 크기만큼의 X * Y 크기의 행렬을 Y * Y 크기의 이미지 행령의 X * X 크기 부분과 곱해서 모두 더하는 수학 연산자이다.

  행렬곱의 결과로 이미지 행렬의 X * X 크기 부분의 값들은 모두 더해져 하나의 값으로 모아질 것이다. 이런 X * X 크기의 행렬 곱셈을 Y * Y 크기의 이미지 행렬의 가장 왼쪽 위부터 가장 오른쪽 아래까지 순차적으로 수행하는 연산이 컨볼루션층에서 이루어지는 동작이다.

 
 
 

  위의 그림은 3 * 3 크기의 커널을 이용해서 5 * 5 크기의 이미지 행렬에 컨볼루션 연산을 수행하는 과정을 단계별로 보여준다.

 

  원본 이미지에 커널을 이용해서 컨볼루션을 수행하면 커널의 종류에 따라 원본 이미지의 특징들이 활성화 맵으로 추출되게 된다. 이때 어떤 커널을 사용하느냐에 따라 원본이미지에서 다양한 특징을 추출할 수 있다.

 
 
 

  그림에서 볼 수 있듯이, 커널의 종류에 따라 원본 이미지의 모서리를 추출하거나 원본 이미지를 좀 더 명확한 이미지로 바꾸거나 원본 이미지를 흐리게 만들 수 있다. 이렇게 추출한 활성화 맵은 원본 이미지에서 명확히 드러나지 않던 특징들을 보여준다.

 

풀링층

  풀링의 종류에는 최대값 풀링(Max Pooling), 평균값 풀링(Average Pooling), 최소값 풀링(Min Pooling)이 있다. 최대값 풀링은 이미지의 X * X 크기 부분에서 가장 큰 값 하나를 추출해서 원본 이미지의 X * X 개의 값을 1개의 값으로 축소한다. 동일한 원리로 편균값 풀링, 최소값 풀링은 평균값, 최소값으로 축소한다.

 

 

위의 그림은 4 * 4 크기의 윈도우를 이용한 풀링 수행 과정 예시를 보여준다.

 

이러한 풀링층은 크게 2가지 장점이 있다.

1) 이미지 차원을 축소함으로써 필요한 연산량을 감소시킬 수 있다.

2) 이미지의 가장 강한 특징만을 추출하는 특징 선별 효과가 있다.

 

'AI, 딥러닝, 머신러닝' 카테고리의 다른 글

TensorFlow 2.0이란?  (0) 2023.02.13
오토인코더(Autoencoder)  (0) 2023.02.09
인공신경망(2)  (0) 2023.02.07
인공 신경망 (1)  (0) 2023.02.06
선형 회귀(Linear Regression) 알고리즘  (0) 2023.02.05