본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 17. 04:35

XOR 문제: 신경망에 은닉층 (Hidden Layers)이 필요한 이유

요약

XOR 문제가 왜 신경망에서 은닉층의 필요성을 증명하는 핵심 사례인지 설명합니다. 단층 퍼셉트론의 선형 분리 불가능성 한계를 짚어보고, 은닉층과 역전파를 통해 비선형 문제를 해결하는 과정을 다룹니다.

핵심 포인트

  • 단층 퍼셉트론은 선형 분리 불가능한 XOR 문제를 해결할 수 없음
  • 은닉층은 여러 개의 결정 경계를 결합하여 복잡한 영역을 표현함
  • 역전파 알고리즘을 통해 은닉층의 가중치를 효과적으로 학습 가능
  • 은닉층의 부재가 과거 AI 겨울의 주요 원인 중 하나였음

1969년, 단 하나의 수학 문제가 10년 동안 AI 자금 지원을 얼어붙게 만들었습니다. 그 문제는 바로 XOR이었으며, 이 문제가 중요했던 이유는 딥러닝 (Deep Learning)에서 가장 중요한 아이디어인 '왜 은닉층 (Hidden Layer)이 필요한가'와 직결되기 때문입니다. 저는 XOR 문제에서 실패하는 과정을 보여준 뒤, 은닉층을 켜면 승리하는 과정을 볼 수 있는 아주 작은 네트워크를 처음부터 직접 구축해 보았습니다.

대화형 데모 (실시간 학습): https://dev48v.infy.uk/dl/day5-xor.html

이 글은 처음부터 직접 만드는 신경망 시리즈인 'DeepLearningFromZero'의 5일 차 내용입니다.

XOR: 입력값이 서로 다를 때

(0,0) → 0     (0,1) → 1
(1,0) → 1     (1,1) → 0

이 네 점을 그래프에 그리면 1은 한쪽 대각선에, 0은 다른 쪽 대각선에 위치합니다. 이는 **선형 분리 불가능 (not linearly separable)**한 가장 단순한 논리 함수입니다. 즉, 두 개의 1을 한쪽에 두고 나머지 0들을 반대편에 두는 단 하나의 직선을 그릴 수 없습니다.

단일 뉴런은 하나의 선을 그리며, 그리고 실패합니다

퍼셉트론 (Perceptron)은 w·x + b를 계산하고 임계값을 적용합니다. 이것이 하나의 직선 결정 경계 (decision boundary)가 됩니다. 이를 원하는 대로 회전시키거나 이동시켜 보아도, 네 점 중 하나는 항상 잘못된 쪽에 위치하게 됩니다.

out = sigmoid(w0 * a + w1 * b + bias);   // 하나의 선 — 영원히 갇혀 있음

데모에서 "은닉층 없음 (no hidden layer)" 모드를 실행하면 손실 (loss) 값이 0.25 근처에서 영원히 평탄하게 유지됩니다. 말 그대로 이길 수가 없습니다.

이것이 AI 자금 지원을 끊어놓았습니다

Minsky와 Papert의 1969년 저서 _Perceptrons_는 단층 네트워크 (single-layer network)가 XOR을 수행할 수 없음을 증명했습니다. 그 결과는 매우 낙담스러웠고, 이는 첫 번째 "AI 겨울 (AI winter)"을 촉발하는 데 일조했습니다. 아이러니하게도, 한계는 신경망 자체에 있었던 것이 아니라 은닉층이 없는 네트워크에 있었습니다.

은닉층 = 여러 개의 선을 결합함

은닉 뉴런 (hidden neurons) 층을 추가하면 각 뉴런이 자신만의 선을 학습합니다. 그러면 출력 뉴런 (output neuron)이 이 선들을 결합하여 ("A 선 위 AND B 선 아래") XOR에 필요한 대각선 영역을 깎아냅니다.

const h = W1.map(row => sigmoid(dot(row, x) + b1));  // 여러 개의 선
const out = sigmoid(dot(W2, h) + b2);                // 그것들을 결합

쌓아 올린 비선형 층 (nonlinear layers)은 단일 층으로는 절대 표현할 수 없는 형태를 나타낼 수 있습니다.

역전파 (Backprop)는 모든 층을 동시에 학습시킵니다

역전파 (backpropagation)가 등장하기 전까지 은닉층 (hidden layers)은 무용지물이었습니다. 출력 오차 (output error)를 계산한 다음, 연쇄 법칙 (chain rule)을 사용하여 모든 층의 모든 가중치 (weight)에 책임의 일부를 다시 전달합니다:

const dOut = (out - y) * out * (1 - out);
const dH = W2.map((w, i) => dOut * w * h[i] * (1 - h[i]));  // 은닉층으로 연쇄 법칙 적용

데모를 "은닉층 (hidden layer)"으로 전환하면 손실 (loss)이 0을 향해 급격히 떨어집니다. XOR 문제가 해결되었습니다.

모든 딥러닝 (deep learning)이 주는 교훈

XOR은 이 분야 전체의 축소판 (toy version)입니다. 비선형 층 (nonlinear layers)을 쌓으면 네트워크가 단일 층으로는 도달할 수 없는 함수를 표현할 수 있게 됩니다. 그 이후의 모든 딥러닝 네트워크 — 비전 (vision), 언어 (language), GPT — 는 바로 이 트릭을 수백만 개의 뉴런 (neurons)으로 확장한 것입니다.

직접 학습해 보세요: 은닉층을 토글하고, 학습률 (learning rate)을 조절하며, 결정 경계 (decision boundary)가 휘어지는 것을 관찰해 보세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0