AI(인공지능) 기술이 발전하면서 최근에는 AI를 활용하는 기업이 증가하고 있습니다. 그중에서도 이미지 인식 분야에 CNN (Convolutional Neural Network) 기술이 많이 활용되고 있습니다. 이번 포스팅에서는 화상 인식의 분야에 있어서 빼놓을 수 없는 CNN의 구조를 자세하게 다뤄보도록 하겠습니다.
CNN이란
CNN 이란 Convolutional Neural Network를 줄인 말로, 한국어로는 '컨볼루션 신경망' 또는 '합성곱 신경망'이라고도 불리고 있습니다. 여러 개의 깊은 층을 가진 신경망으로, 주로 이미지 인식에 많이 사용됩니다.
이 CNN은 '합성곱 층'이나 '통합 층'이라고 하는 몇 개의 특징적인 기능을 갖춘 층을 쌓아 올리는 것으로 구성되어 있습니다. 현재는 다양한 분야에서 활용되고 있기 때문에 CNN을 향한 이목도 높아지고 있습니다. 최근 들어 CNN이 주로 가치를 발휘하고 있는 것은 일반 물체 인식 분야입니다.
CNN이 각광받는 이유로는 압도적인 성능을 갖추고 있다는 점뿐만은 아닙니다. 이 CNN 기술이 크게 주목받게 된 또 다른 예로 전 이 학습(transfer learning)을 통해 보다 효율적인 네트워크 학습 방법을 확립하는 데 성공한 것 등도 있습니다.
그럼 이 CNN의 구조에 대해서 본격적으로 알아보겠습니다.
CNN의 구조
CNN의 구조를 이해하기 위해서는 주로 'Convolutional Layer (합성곱 층)'과 'Pooling Layer (통합 층)', 'Fully Connected Layer (완전 연결 층)'이라고 하는 3개의 층에 대해 이해하고 있어야 합니다. 각각의 층에 대해서 자세히 살펴보도록 하겠습니다.
Convolutional Layer (합성곱 층)
일반적인 신경망의 경우 뉴런을 층으로 나누어 배치하고, 그 전후의 서로 인접한 층에 있는 뉴런들끼리는 모두 연결해 나갑니다. 그러나 CNN에서는 뉴런끼리의 결합을 잘 제한하고 뉴럴 네트워크라고 하는 골조 안에서 이미지 압축과 비슷한 처리로 수행합니다. 이 처리 방법을 웨이트 공유라고도 표현합니다.
이러한 역할의 층은 CNN에 있어서는 특히 중요한 역할을 담당하고 있습니다.
Pooling Layer (통합 층)
합성곱 층과 마찬가지로 중요한 역할을 담당하고 있는 것이 통합 층이라고 불리는 층입니다. CNN에 있어서의 합성곱 층의 역할은 이미지로부터의 엣지 추출 등의 특징 추출이었습니다. 그리고 통합 층에서는 그 추출된 특징들이 평행 이동 등이 일어나도 영향을 받는 일이 없도록 방어해 주는 역할을 담당하고 있습니다.
CNN은 주로 이미지를 카테고리별로 분류하는 작업(일반 물체 인식)에서 가치를 발휘하는 네트워크로 알려져 있습니다. 다만 사진에 찍힌 동물이 개인지 고양이인지를 분류하고 싶다면 '개와 고양이가 올바르게 식별할 수 있는 능력'을 가져야 합니다.
따라서 사진의 개가 왼쪽 끝에 찍혀 있는지, 오른쪽 끝에 찍혀 있는지 등의 정보는 그다지 특별히 중요하지 않습니다. 즉, 이미지의 카테고리를 나누는 작업에 있어서 그다지 중요하지 않은 위치에 관한 정보를 제거하는 것이 이 통합 층이라고 생각해 주시면 됩니다.
Fully connected layer (완전 연결 층)
완전 연결 층은 기존 신경망의 기본적인 요소입니다. 입력을 2차원 배열로 취급하는 것이 아니라 단일 목록으로 모든 것을 동등하게 취급합니다. 모든 값은 현재의 이미지가 X 인가 O 인가 하는 점에서 각각 표를 얻습니다.
하지만 이 프로세스에서 O, X가 평등하게 분배되지는 않습니다. 이 두 값 중 한 값이 더 많은 표를 얻을 수 있습니다. 그리고 투표 결과는 각각의 값 혹은 카테고리 간에 가중치나 연결 강도 등으로 표현됩니다.
새로운 이미지가 CNN에 나타난 경우, 그 이미지가 하위층을 통과하여 최종적으로 완전 연결 층에 도달하게 됩니다. 그리고 선거에 의해 표수가 많은 대답을 통해 입력된 이미지의 카테고리를 결정하는 흐름이 되는 것입니다.
활성화 함수
활성화 함수란 뉴런에서 다음 뉴런으로 출력을 할 때 모든 입력값을 다른 수치로 변환함으로써 출력해 나가는 함수를 말합니다. 재판장과 같은 역할을 하는 존재라고 할 수 있습니다.
나온 증거를 모두 확인한 후에 '본건은 0.93 대 0.07로 0'과 같이 판결하기 위한 확률 계산식이라고 생각하시면 됩니다.
이런 기술은 예를 들어, 100 종류의 꽃의 이름 등을 맞춰야 하는 상황 등에서는 유용하게 쓰입니다.
이번 포스팅에서는 CNN의 3가지 메인 구조, Convolutional Layer, Pooling Layer, 그리고 Fully Connected Layer에 대해서 다뤄보았습니다.
다음 포스팅에서는 CNN의 특징에 대해서 조금 더 자세하게 다뤄보도록 하겠습니다.
'인공지능 (AI)' 카테고리의 다른 글
RNN(순환 신경망)의 정의, 개념, 구조 (0) | 2024.12.27 |
---|---|
CNN(합성곱 신경망)의 특징과 활용 사례 (2) | 2024.12.26 |
LLM을 운영하기 위해 가장 좋은 IT 장비(GPU, 서버, PC) 추천 (2) | 2024.12.26 |
대표적인 LLM(대형 언어 모델) 모델 종류와 차이 (2) | 2024.12.23 |
LLM(대형 언어 모델)을 만드는 프로세스, 과정 (10) | 2024.12.18 |