MLP와 CNN

src/content/documents/deep-learning/mlp-limitations-and-the-rise-of-cnn.json

이미지를 1차원 벡터로 펼치면 생기는 문제

MLP(Multi-Layer Perceptron)는 한 층의 모든 뉴런이 다음 층의 모든 뉴런과 연결된 Fully-Connected 구조다. 입력이 독립적인 속성들로 이뤄진 표(tabular) 데이터일 때는 잘 맞지만, 이미지처럼 2차원 구조를 가진 데이터를 그대로 넣으려면 1차원 벡터로 펼쳐야 한다 — 예를 들어 28×28 이미지는 784개짜리 벡터가 된다. 이 과정에서 세 가지 문제가 생긴다.

문제

내용

필요한 성질

공간 구조 소실

28×28 → 784로 펼치면 어떤 픽셀이 어떤 픽셀 옆에 있었는지 정보가 사라진다

격자 구조를 유지해 가까운 픽셀 관계를 확인할 수 있어야 한다

파라미터 폭발

Fully-connected 구조에서 입력 784, 은닉 1000개면 연결만 약 78만 개 — 학습이 무거워진다

파라미터를 절약할 방법이 필요하다

위치 의존

입력 i번째 자리가 특정 가중치에 묶여, 학습 중 위치가 바뀌면 처음부터 다시 배워야 한다

위치와 무관하게 배운 패턴을 어디서나 재사용할 수 있어야 한다

귀납적 편향: 데이터의 구조를 모델에 미리 새겨넣기

이 세 가지 필요를 한 번에 해결하려고 등장한 것이 CNN(Convolutional Neural Network)이다. CNN은 “이미지는 가까운 픽셀끼리 관계가 깊다”, “같은 패턴(예: 모서리)은 이미지 어디에 있든 같은 방식으로 인식해야 한다”는 가정을 구조 자체에 미리 반영한다. 이렇게 합리적으로 예측·일반화하기 위해 모델 구조에 사전 가정을 부여하는 것을 귀납적 편향(Inductive Bias)이라고 한다.

  • 공간적 지역성(Locality) — 이미지 전체가 아니라 작은 영역(필터 크기)만 보고 국소 패턴을 인식한다.

  • 가중치 공유(Weight Sharing) — 같은 필터를 이미지 전체에 반복 적용해, 위치가 달라져도 같은 패턴이면 같은 가중치로 인식한다. 파라미터 수도 크게 줄어든다.

CNN의 기본 흐름

CNN은 대체로 다음 순서로 이미지를 처리한다: 합성곱(Convolution)으로 특징을 뽑고, 풀링(Pooling)으로 크기를 줄이고, 이 과정을 몇 차례 반복한 뒤, 마지막에 1차원으로 펼쳐(Flatten) 분류를 위한 완전연결층에 넣는다. 다음 글에서 Convolution·Padding·Pooling 각 연산을 숫자로 직접 계산해본다.

정리

MLP는 이미지를 1차원으로 펼치는 과정에서 공간 구조를 잃고, 파라미터가 폭발적으로 늘고, 같은 패턴도 위치가 바뀌면 다시 학습해야 하는 세 가지 한계를 가진다. CNN은 공간적 지역성과 가중치 공유라는 귀납적 편향을 구조에 심어 이 문제들을 해결한, 이미지 데이터를 위한 첫 번째 전용 아키텍처다.

참고 자료

CS231n: Convolutional Neural Networks for Visual Recognition — Stanford University — CNN의 구조와 지역성·가중치 공유 개념에 대한 공식 강의 노트 (2026-08-07 확인)

댓글 0

댓글을 불러오는 중…