합성곱 신경망은 이미지 인식과 음성 인식 등 다양한 곳에서 사용되는 인공 신경망이다. 특히 이미지 인식 분야에서 딥러닝을 활용한 기법은 대부분 CNN을 기초로 한다.
1. 완전연결 계층(fully-connected layer)와 합성곱 계층(convolutional layer)
지금까지의 신경망은 인접한 계층의 모든 뉴런과 결합되어 있었다. 이를 완전 연결(fully-connected)이라고 하며, 완전히 연결된 계층을 Affine 계층이라는 이름으로 구현했었다. 아래는 완전 연결 구조의 예시이다.
※ Affine: 신경망의 순전파 때 수행하는 연산을 의미한다. 수학의 'Affine 변환' 개념을 따르는데, 이 변환은 기본적으로 입력 데이터에 대해 선형 변환(즉, 가중치와의 곱셈)을 수행한 후에 편향을 더하는 연산을 의미한다. 이러한 변환 과정을 수행하는 Affine 계층을 통과한 결과값은 활성화 함수(예: ReLU, Sigmoid 등)를 통과해 다음 계층으로 전달되며, 이런 과정이 여러 번 반복되면서 복잡한 함수를 표현할 수 있게 된다.
완전 연결 계층에서는 인접하는 뉴런의 계층이 모두 연결되고, 출력의 수를 임의로 정할 수 있다.
하지만 완전연결 계층의 문제점은 이미지 데이터를 다룰 때 생긴다. 바로 이미지 데이터의 형상을 유지하지 못한다는 점이다.
예를 들어, 입력 데이터가 이미지인 경우에는 세로, 가로, 채널(색상)으로 구성된 3차원 데이터를 입력받는다. 하지만 완전연결 계층에 입력할 때는 3차원 데이터를 평평한 1차원 데이터로 평탄화(flatten)해줘야 한다. 예를 들어, 손글씨 데이터인 MNIST 데이터를 분류할 때 흑백인 28x28 픽셀의 이미지를 (1,28,28) shape에서 1줄로 세운 784(28의 제곱)개의 데이터로 바꿔서 첫 Affine 계층에 입력해야 한다.
이미지는 3차원 형상이며, 이 3차원 형상에는 공간적 정보가 들어있다. 예를 들어, 공간적으로 가까운 픽셀은 값이 비슷하거나, RGB의 각 채널이 서로 밀접하게 관련되어 있거나, 거리가 먼 픽셀끼리는 별 연관이 없는 등, 3차원 소게서 의미를 갖는 본질적인 패턴이 숨어 있을 수 있다. 그러나 완전 연결 계층은 형상(shape)을 무시하고 모든 입력 데이터를 동등한 뉴런으로 취급하여 형상에 담긴 정보를 유지할 수 없다. 또한, 대부분의 경우에 모델의 parameter 개수가 늘어나게 된다.
이와 달리 합성곱 계층은 형상을 유지할 수 있다. 3차원 이미지 데이터를 한 줄로 세우지 않고 입력받고, 다음 계층에도 3차원 데이터로 전달할 수 있다. 따라서 CNN에서는 이미지와 같은 데이터의 특성을 제대로 반영할 수 있다.
2. 합성곱 신경망(CNN)의 구조
CNN의 구조는 지금까지 다뤄왔던 인공 신경망과 다르다.
CNN으로 이루어진 네트워크의 예시
CNN에는 합성곱 계층(Conv)와 풀링 계층(Pooling)이 추가된다. CNN의 계층은 "Conv - ReLU - Pooling" 흐름으로 연결된다 (풀링 계층은 생락햐기도 한다). 하지만 출력에 가까운 층에서는 지금까지 사용했던 "Affine - ReLU" 구성을 그대로 사용할 수 있고, 마지막 출력 계층에서는 "Affine - Softmax" 조합을 그대로 사용한다. CNN에서 가장 일반적으로 볼 수 있는 구성이다.
지금까지 사용해온 신경망의 구조와 다름을 알 수 있다.
CNN을 이용해 이미지 데이터를 처리하는 과정은 다음과 같다.
'인공지능∙모델링 > 딥러닝' 카테고리의 다른 글
6. 딥러닝에서 과적합(Overfitting)을 막는 방법 (0) | 2023.12.12 |
---|---|
5. 인공신경망의 학습 (Neural Network Training) (0) | 2023.12.12 |
4. 인공 신경망 최적화 (Artificial Neural Network Optimization) - 일변수 함수 (2) | 2023.10.10 |
3. 인공 신경망(Artificial Neural Network, ANN) (0) | 2023.10.08 |
2. 다층 퍼셉트론(Multi-Layer Perceptron) (0) | 2023.10.06 |
댓글