인공지능(AI)은 우리 일상에 깊숙이 자리 잡고 있어요. 스마트폰에서 얼굴을 인식하거나, 자율주행차가 스스로 길을 찾는 것도 모두 AI 덕분이죠. AI가 주변 환경을 파악하고 스스로 결정을 내릴 수 있다는 사실, 정말 놀랍지 않나요? 예를 들어, 사진 속 친구 얼굴이나 귀여운 반려견을 자동으로 태그해 주는 기능도 흔히 쓰이고 있죠. 생성 모델은 요즘 매우 핫한 분야이니, 더 말할 필요도 없겠네요!
특히 이미지 분석은 AI가 아주 잘하는 분야 중 하나예요. SNS에 사진을 올릴 때, 그 안에 있는 물체를 정확하게 분류하는 것도 AI 역할입니다. 하지만 AI는 어떻게 이미지를 잘 이해하고 분석할 수 있을까요? 사실, 처음부터 AI 모델이 이미지 데이터를 능숙하게 처리했던 것은 아니에요. 이미지 데이터만의 독특한 특징 때문에 이를 해석하고 극복하기 위한 다양한 시도와 연구가 있었습니다.
그러면서 MLP(다층 퍼셉트론)와 CNN(합성곱 신경망)이라는 AI 모델이 등장했죠. MLP는 AI 역사에서 매우 초기의 모델로 이미지 분석에도 사용되었지만, 추후 등장한 CNN이 MLP의 단점을 보완하여 현재 널리 사용되는 알고리즘으로 자리 잡았어요. 이번 글에서는 MLP와 CNN 모델의 출현과 구조, 그리고 작동 방식을 살펴보고 이 둘을 비교해 볼 겁니다. 준비되셨나요? 함께 시작해 보시죠!
✔️ 퍼셉트론(Perceptron)
1950년대, 인공지능의 초기 개념이 등장했을 때, 과학자들은 사람의 뇌가 어떻게 작동하는지에 영감을 받았어요. 특히 신경계의 가장 기본적인 구성 요소인 뉴런을 모방하려고 했죠. 이를 통해 정보를 받아들이고 처리한 후, 결론을 내리는 방식의 인공 뉴런을 만들어 ‘퍼셉트론(Perceptron)’이라는 이름을 붙였습니다. 이는 인공지능 연구의 첫 걸음으로, 그 당시에는 매우 혁신적인 아이디어였어요.

ⓒ정정민
퍼셉트론은 단순한 문제를 풀기에는 효과적이었어요. 예를 들어, 입력된 데이터가 숫자 ‘5’ 이상일 때 ‘True’로, 그렇지 않으면 ‘False’로 분류하는 방식처럼, 기본적인 수학적 분류 작업을 잘 수행했죠. 이런 방식으로 단순한 논리적 판단을 하는 데 유용했지만, 점점 더 복잡한 문제를 처리하는 데는 한계가 있었습니다.
퍼셉트론이 잘 작동하지 않는 이유는 뉴런이 한 번의 계산으로 복잡한 문제를 해결할 수 없었기 때문이에요. 예를 들어, 이미지나 음성처럼 다차원 데이터를 처리하려면 여러 번의 계산이 필요하지만, 퍼셉트론은 그런 복잡한 구조를 담기에는 역부족이었어요. 결국 퍼셉트론의 구조만으로는 더 발전된 인공지능을 만들 수 없다는 결론이 나왔고, 이를 개선하기 위한 새로운 방법이 모색되었죠.
✔️ 인공지능 모델 : MLP(Multi-Layer Perceptron)
단 하나의 뉴런으로는 단편적인 정보만 처리할 수 있지만, 이 뉴런들이 모여 신경’망’을 형성해요. 그러다보면 우리가 눈으로 보고, 듣고, 뛰는 등 다양하고 복잡한 정보를 처리할 수 있죠. 이처럼 단순한 계산만 가능한 하나의 퍼셉트론이 모여 인공 신경’망’을 형성하면, 다양한 문제를 풀어내고 결국 우리가 사용하는 다양한 AI 모델이 됩니다. 백지장도 맞들면 낫고, 힘을 합치면 산도 옮긴다고 하던데 딱 퍼셉트론들을 보고 하는 이야기 같네요.
가장 기본적인 인공신경망은 ‘MLP(Multi-Layer Perceptron)’라는 인공지능 모델이에요. 이 모델은 퍼셉트론들이 나란히 모여 ‘층’(Layer)’을 이루고 그러한 층이 여러 개(Multi) 나열되어 있는 구조예요. 이때 입력 데이터와 가장 가까운 부분의 층을 입력층, AI 모델의 최종 출력과 가까운 층을 출력층, 입력층과 출력층 사이의 층들은 은닉층이라고 해요. 입력층부터 출력층까지 각 층을 통과하면서 데이터를 가공하고, 정보는 추출되며, 최종적으로 결과를 만들어내게 됩니다.

ⓒ정정민
MLP는 초기 AI 연구에서 많이 사용되었으며, 그 당시에는 여러 문제(수치 분석, 이미지, 텍스트 분석 등)를 해결하는 데 중요한 역할을 했어요. 특히 숫자 인식이나 간단한 패턴 분석처럼 복잡하지 않은 문제에서 유용하게 쓰였죠. 지금도 MLP는 복잡한 신경망이 필요 없는 간단한 모델을 만들 때 종종 사용되고 있어요. 이를 통해 기본적인 AI 성능을 테스트하거나, 초기 단계에서 문제를 간단히 해결하는 데 여전히 효과적이에요.
✔️ 합성곱 신경망 : CNN(Convolutional Neural Networks)
초기 AI 모델인 MLP는 많은 문제를 해결했지만, 특히 이미지 같은 복잡한 데이터를 처리하는 데는 부족함이 있었어요. 그래서 이를 개선하려는 다양한 시도가 있었고, 그중 ‘CNN(합성곱 신경망)’이 이미지 분야에서 제안되었어요. CNN은 사람이 시각 정보를 처리하는 방식을 모방한 모델이에요. 사람들이 복잡한 시각 정보를 처리하는 방법을 연구해 이를 그대로 적용한 것이죠.
사람은 눈으로 이미지를 볼 때 한 번에 모든 정보를 다 처리하는 것이 아니라, 이미지를 여러 작은 조각으로 나누어 분석한 뒤, 이를 하나씩 조합해 전체적인 그림을 이해합니다. 예를 들어, 우리가 물고기 그림을 본다고 생각해볼게요. 물고기를 한눈에 인식하기 전에 먼저 직선과 곡선 같은 기본적인 형태를 보고, 그 형태들이 모여 지느러미, 꼬리, 비늘, 머리 등 물고기 각각의 부분을 인식하게 돼요. 그리고 나서 이 각각의 요소를 종합해 “이건 물고기구나.“라고 결론을 내리게 되는 거죠.

ⓒ정정민
이해하기 어려운가요? 그럼 아래 이미지를 한 번 봐 보세요. 이 그림은 사람마다 다르게 보일 수 있어요. 어떤 사람에게는 젊은 여자의 뒷모습처럼 보일 수 있고, 다른 사람에게는 할머니의 옆모습처럼 보일 수도 있어요. 그림 자체는 변하지 않지만, 우리가 어떻게 그 이미지를 해석하느냐에 따라 결과가 달라집니다. 이처럼 직선과 곡선 같은 기본 요소는 동일하지만, 뇌는 그 요소들을 조합해 전혀 다른 결과를 만들어냅니다.

ⓒ윌리엄 엘리 힐(William Ely Hill)의 <나의 아내와 시어머니>
CNN도 비슷한 원리로, 이미지를 여러 작은 부분으로 나누고 그 부분들을 모아 중요한 특징을 찾아내는 방식이에요. 즉, 작은 부분을 분석하고, 그 정보를 모아 점차 상위의 개념으로 나아갑니다. 그런 과정에서 중요한 두 개념이 있어요. 바로 ‘필터(filter’)와 ‘풀링(pooling)’입니다.
필터는 이미지를 작은 부분으로 나누어 보는 도구로 생각할 수 있어요. 마치 사진을 확대경으로 들여다보듯, 필터는 이미지의 작은 조각을 분석하면서 중요한 특징을 찾아냅니다. 예를 들어, 이미지의 일부에서 직선, 곡선, 모서리 같은 중요한 요소들을 찾아내죠. 이 필터는 CNN의 여러 층을 거치면서 더욱 정교하게 이미지를 분석하게 돼요. 필터는 각 층마다 이미지를 조금씩 더 복잡하게 분석하면서 초기에는 간단한 패턴을 찾고, 나중에는 물체의 구체적인 형태를 인식할 수 있게 됩니다. 위에서 살펴본 물고기 이미지의 구조와 거의 흡사하죠!
하지만 이렇게 많은 정보를 다룰 때는 효율성도 중요해요. 이를 해결하기 위해 CNN은 ‘풀링(pooling)’이라는 과정을 거칩니다. 풀링은 이미지에서 가장 중요한 정보만 남기고, 나머지는 버리는 단계예요. 예를 들어, 풀링은 한 영역에서 가장 큰 값이나 중요한 값을 선택하고, 나머지는 제거하는 방식으로 작동해요. 이렇게 하면 이미지의 크기를 줄이면서도 핵심적인 정보는 그대로 유지할 수 있죠. 풀링 덕분에 CNN은 이미지의 크기나 복잡도를 줄이면서도, 중요한 특징을 계속 유지할 수 있게 돼요. 이는 이미지 분석에서 매우 중요한데, 이미지를 작게 줄이면 연산 속도는 빨라지고, 컴퓨터가 처리할 데이터의 양도 줄어들기 때문에 효율성이 크게 증가합니다.

ⓒ정정민
필터와 풀링 과정은 CNN의 여러 층을 거치면서 여러 번 반복됩니다. 처음에는 직선이나 곡선 같은 간단한 패턴을 찾아내지만, 점차 더 복잡한 특징들을 학습하게 돼요. 이 과정이 반복될수록 CNN은 점점 더 상위의 개념을 이해하게 됩니다. 예를 들어, 처음에는 고양이의 귀나 눈 같은 작은 부분을 인식하지만, 나중에는 이들이 모여 ‘고양이’라는 전체적인 물체를 인식하게 되는 거죠. 이렇게 CNN은 간단한 것에서 복잡한 것까지 차근차근 학습하면서 최종적으로 이미지를 정확하게 분류하거나 이해하게 됩니다.
💡 이미지에서 CNN이 MLP보다 더 잘하는 이유
CNN이 제안되고 나서, 기존에 있었던 MLP는 물론 전통적인 이미지 처리 방법들보다 훨씬 좋은 성능을 보여줬어요. 그러면 왜 이러한 CNN의 구조가 MLP보다 더 좋을지 같이 알아볼까요?
🔹이유 1. 이미지 모양을 그대로 유지하면서 처리해요.
먼저, 기존의 AI 모델인 MLP는 이미지를 처리할 때 평탄화(flattening) 과정을 거쳐야 했어요. 평탄화는 2D나 3D로 되어 있는 이미지를 한 줄로 길게 펴는 것을 말해요. 왜 이렇게 해야 하냐면, MLP는 입력 데이터를 1차원으로만 받아들일 수 있기 때문이에요. 즉, 가로와 세로가 있는 이미지를 MLP가 처리하려면, 이를 일렬로 나열해서 각 픽셀을 하나의 값으로 만들어줘야 하는 거죠. 예를 들어, 원래 이미지가 5x5 크기라면, 그걸 25개의 숫자로 쭉 나열해서 처리하는 방식이에요.
ⓒ정정민
하지만 이 과정에서 큰 문제가 생깁니다. 이미지를 이렇게 평탄화하면 이미지의 중요한 위치 정보가 사라져버려요. 위 이미지를 보면 ‘1’ 이라는 값은 구조적인 특징으로 1이라고 사람이 이해할 수 있는데, 위처럼 평탄화를 해버리면 1인지 인지하는 게 쉽지 않습니다. 즉, MLP를 적용하려면 이미지의 공간적인 구조를 파괴해야 해요.
반면, CNN은 이미지를 한 줄로 펴지 않고, 원래의 모양을 그대로 유지한 채 처리할 수 있어요. CNN은 필터라는 도구를 사용해 이미지를 작은 조각으로 나누어 분석하는데, 이 과정에서 숫자를 이루는 픽셀들의 위치를 구조적으로 인식해요. 물고기를 분석한다고 하면 어디가 지느러미인지, 꼬리는 어디있는지, 머리 부분은 어떻게 되는지를 있는 그대로 받아들이게 되는 거예요. 이 덕분에 CNN은 이미지 속 중요한 위치 정보를 잃지 않고, 더 정확하게 이미지를 분석할 수 있어요.
ⓒ정정민
🔹이유 2. 작은 부분부터 차근차근 분석해요.
CNN은 이미지를 전체적으로 보는 대신, 작은 조각으로 나누어서 살펴봐요. 마치 퍼즐을 한 조각씩 맞추는 것처럼요. 예를 들어, 고양이의 귀, 눈, 코 같은 부분을 먼저 알아내고, 그걸 모아서 “이건 고양이야!“라고 판단하는 거죠. 이렇게 작은 특징을 잘 찾아내는 덕분에, 세부적인 패턴을 더 잘 인식할 수 있어요. 반면, MLP는 평탄화를 거친 후 이미지를 전체적으로 처리하기 때문에, 작은 부분에 집중해서 알아내는 능력이 떨어져요.
ⓒ정정민
🔹이유 3. 같은 방식으로 여러 부분을 분석해요.
CNN은 필터라는 도구를 사용해 이미지를 분석하는데, 이 필터는 한 부분에만 쓰이는 게 아니라 이미지의 여러 부분에 동일하게 적용돼요. 마치 여러 장의 사진을 확대경으로 하나씩 들여다보는 것처럼, 어디를 보든 같은 방식으로 분석할 수 있어요. 또 다른 예를 들면, 고양이 눈이 왼쪽에 있든 오른쪽에 있든, CNN은 같은 필터를 사용해 그 눈을 찾아낼 수 있어요. 그래서 이미지의 위치가 바뀌어도 똑같이 잘 인식할 수 있는 거예요.
🔹이유 4. 간단한 것부터 복잡한 것까지 차례 차례 배워요.
CNN은 이미지를 처리할 때, 간단한 특징부터 복잡한 특징까지 단계적으로 배워요. 처음에는 직선이나 곡선처럼 아주 기본적인 모양을 찾고, 그다음엔 얼굴이나 물체처럼 더 복잡한 모양을 인식해요. 이렇게 여러 단계를 거치면서 점점 더 복잡한 패턴을 이해하는 거예요. 그래서 얼굴 인식이나 물체 탐지처럼 복잡한 문제도 잘 풀 수 있어요. 반면, MLP는 이런 단계적인 학습이 없어서 이미지 전체를 한 번에 처리하려다 보니 복잡한 이미지를 이해하는 데 어려움을 겪어요.
CNN, 이미지를 넘어 다양한 데이터로
CNN은 처음에 이미지 처리에 특화되어 개발되었지만, 그 뛰어난 능력 덕분에 이미지 외 다양한 데이터에 적용되고 있어요. CNN은 텍스트, 오디오, 그리고 동영상과 같은 여러 형태의 데이터를 처리할 수 있는 강력한 도구로 자리 잡았죠.
🔹1. 글에서의 CNN 활용: 1D CNN
텍스트 데이터를 처리할 1D CNN 방식을 사용해요. 이미지에서 CNN은 2차원(2 Dimension)으로 된 이미지의 가로와 세로를 기준으로 필터를 움직이지만, 텍스트에서는 단어나 문자가 일렬로 나열된 형태라 CNN이 이를 한 방향(1개의 차원, 1 Dimension)으로 분석하게 돼요. 예를 들어, 문장을 분석할 때 CNN은 문장의 각 단어를 작은 조각으로 보고, 그 조각들을 필터로 살펴보며 중요한 패턴을 찾아내는 방식으로 작동해요.

ⓒ정정민
1D CNN은 시간에 따라 변화하는 데이터를 분석하는 데도 유리해요. 예를 들어, 문장 속에서 특정 단어들의 조합이 중요한 의미를 가질 때, CNN은 이 조합을 찾아내 더 복잡한 의미를 인식할 수 있어요. 이 방식은 텍스트 분류나 자연어 처리 분야에서 많이 사용되며, 이메일 스팸 필터링이나 감정 분석처럼 문장 속에서 중요한 의미를 찾아내야 할 때 매우 유용하죠.
🔹2. 오디오 데이터에서 CNN의 활용: 1D와 2D CNN
오디오 데이터에서도 CNN은 유용하게 사용돼요. 오디오 데이터는 시간에 따라 변하는 신호로 볼 수 있는데, 이를 분석할 때도 1D CNN이 효과적이에요. 오디오 신호는 시간의 흐름에 따라 값이 변하죠. CNN은 이 신호를 작은 구간으로 나누고, 그 구간에서 중요한 패턴을 추출하는 방식으로 오디오 데이터를 처리해요. 예를 들어, 음성 인식 시스템에서는 음성 데이터의 특정 패턴(소리의 높낮이, 음색 등)을 CNN이 찾아내 그걸 바탕으로 단어나 문장을 인식해요.
또한, 오디오 데이터를 주파수로 변환해서 2D CNN으로 분석할 수도 있어요. 이렇게 하면 오디오를 이미지처럼 다룰 수 있게 되는데, 음성의 높낮이나 주파수 패턴을 2D 필터로 처리하면서 소리의 중요한 특징을 추출하게 되죠. 이는 음악 장르 분류나 음성 감정 분석 같은 응용에서 많이 사용돼요.
🔹3. 동영상에서 CNN의 활용: 3D CNN
동영상 데이터는 시간과 공간이 결합된 매우 복잡한 데이터예요. 여기서는 3D CNN이 사용돼요. 3D 합성곱은 시간에 따라 변하는 연속된 이미지 프레임을 동시에 분석할 수 있어요. 예를 들어, 자율주행차에서 앞에 있는 도로 상황을 인식할 때, 카메라로 찍힌 여러 장의 사진을 동시에 분석해야 하죠. 이때, 3D CNN은 각각의 이미지뿐만 아니라, 시간이 지나면서 이미지가 어떻게 변하는지도 함께 분석할 수 있어요. 즉, 이미지가 시간이 지나면서 어떻게 움직이는지를 파악하는 거죠.
3D CNN은 비디오 분석, 동작 인식, 의료 영상 분석 등에서 매우 유용해요. 동작 인식의 예를 들면, 사람의 손이 특정한 모양으로 움직이는 영상을 보고 그 사람이 무엇을 하고 있는지 파악할 수 있어요. 예를 들어, 스포츠 경기에서 선수의 동작을 분석하거나, 의료 영상에서 몸의 특정 부위가 시간에 따라 어떻게 변하는지 분석하는 데도 활용됩니다.
이처럼 CNN은 이미지를 넘어 다양한 형태의 데이터에서도 매우 효과적으로 사용되고 있어요. 텍스트, 오디오, 동영상 등 각기 다른 데이터 형태에서도 CNN의 기본 원리인 필터(filter)와 풀링(pooling)이 적용되어 데이터를 분석하고, 중요한 정보를 찾아내는 역할을 해요. 그래서 CNN은 단순히 이미지 처리뿐만 아니라, 다양한 데이터 분석에서 중요한 도구로 자리 잡고 있답니다.

CNN은 사람의 시각 처리 과정을 모방한 인공지능 모델로, 이미지 분석에서 특히 뛰어난 성능을 발휘합니다. 이는 CNN이 필터와 풀링이라는 두 가지 중요한 개념을 사용해 이미지를 작은 부분으로 나누어 분석하고, 그 과정을 통해 점점 더 복잡한 특징을 추출하는 방식으로 동작하기 때문이에요. 필터는 이미지의 중요한 요소를 찾아내고, 풀링은 불필요한 정보를 제거하면서도 핵심적인 정보를 유지하죠. 이 과정을 반복하면서 CNN은 이미지의 구조를 보존한 채, 효율적으로 분석할 수 있습니다.
이미지 처리에서 이러한 CNN의 특성 덕분에 얼굴 인식, 자율주행, 의료 영상 분석 등 여러 분야에서 강력한 도구로 자리 잡았어요. 앞으로도 이미지 분석 기술은 더 정교해질 것이며, 텍스트, 오디오, 동영상 같은 다른 데이터에서도 CNN의 적용이 계속 확장될 것입니다. 이로 인해 AI의 데이터 처리 능력은 더욱 발전할 전망입니다.
글ㅣ정정민 AiLIVE AI 모델 개발 팀장 (블로그, 유튜브)생성형 AI 기술 기반 스타트업에서 AI 모델 개발 팀을 리딩하고 있습니다. 또한, AI 아카데미 한입딥러닝의 대표입니다. AI 엔지니어가 느끼는 어려움을 공감하고 지식을 나누는 과정을 좋아합니다. 저에 대한 이야기가 궁금한 분들은 저의 블로그와 유튜브 채널을 방문해 주세요! 👉 <AI 개발자가 되고 싶다면> 시리즈 보러 가기 발행일 2024.09.27