딥러닝 모델을 설계하기에 앞서 CNN과 RNN, 그리고 Transformer 모델에 대해 정리하고자 한다. 이 글에서는 CNN에 대해 간단하게 알아보도록 한다.
CNN(Convolution Neural Network, 합성곱 신경망)
CNN 형태의 인공신경망은 이미지 인식에 뛰어난 인공 신경망으로 이미지의 특징을 뽑아내는 인공 신경망과 분류를 위한 인공 신경망으로 구성된다. CNN은 입력 이미지가 필터를 거쳐 특징을 가진 이미지로 출력되는 합성 곱(Convolution) 과정, 이미지를 단순화하는 모으기(Pooling) 과정, 그리고 완전 연결 층을 거친다.
이미지의 특징을 뽑아내는 인공 신경망은 합성 곱 과정과 모으기 과정을, 분류를 위한 인공 신경망은 완전 연결 층으로 구성된다.
필터는 커널이라고도 부르며, 본래 전통적인 영상 인식 방법에서 필터를 이용해 이미지의 특징을 추출한다. CNN에서 필터는 학습의 대상이 되는 가중치이다.
완전 연결이란 쉽게 말해 어떤 층(layer)의 모든 뉴런이 그 다음 층(layer)의 모든 뉴런과 연결된 상태를 말한다. 즉, 완전 연결 층은 구성하는 모든 층의 뉴런들이 각각 다음 층의 뉴런과 연결되고, 최종적으로 출력 층의 뉴런과 연결된 층이다.
깊이는 채널이라고도 하는데, 이는 이미지의 각 픽셀에 대해 저장되는 색상 정보의 양을 나타낸다.
채널 | 정보 |
1개 | 그레이스케일 이미지. 각 픽셀이 단일 강도(밝기)를 가진다. |
3개 | RGB 이미지. 각 픽셀이 R, G, B 값을 가진다. |
4개 | RGBA 이미지. RGB 채널 외에 알파(A) 채널이 추가되어 투명도를 나타낸다. |
일반적으로 이미지는 픽셀 당 8비트의 채널을 가지며 8비트 채널은 0~255의 값을 가진다. 여기서 그레이스케일 이미지는 흑백 이미지로, 손글씨 숫자 인식과 같은 작업에 주로 사용된다. 즉, 한글 수식 OCR 모델 역시 이 방식을 사용할 것이다.
CNN 신경망의 구성
CNN의 입력 이미지는 (세로 픽셀 개수)x(가로 픽셀 개수)x(깊이)로 구성된다. 입력 이미지에 필터 1개가 적용되면 특징을 가진 출력 이미지 1개가 나온다. 필터의 크기는 1x1, 3x3, 5x5와 같이 홀수 제곱으로 표현되며 일반적으로 3x3 크기의 필터가 사용된다.
입력 이미지에 필터가 적용될 때, 필터의 채널은 입력 이미지의 채널과 같아야 하며 필터의 개수는 출력 이미지의 깊이와 같다.
모으기 과정은 입력 이미지의 가로, 세로 크기를 줄이는 것으로 일반적으로 각각 1/2으로 줄이게 된다.
마지막으로 Flatten 과정에서는 모으기 과정을 거친 입체 이미지를 1차원 형태로 변환한다.
출처:
fully-connected (완전 연결, 전결합) - 인공지능(AI) & 머신러닝(ML) 사전 (wikidocs.net)
한 권으로 끝내는 파이썬 인공지능 입문+실전 [종합편]