Adventure Time - Finn 3
본문 바로가기
AI/ML

XOR 문제와 Neural Network : 딥러닝의 시작

by hyun9_9 2026. 3. 19.

이번 포스트에서는 단순한 Logistic Regression으로는 풀 수 없는 XOR 문제를 Neural Network로 해결하는 방법을 알아보겠습니다.
이 문제가 딥러닝의 역사에서 매우 중요한 의미를 가집니다.


XOR 문제란?

XOR은 두 입력이 다를 때만 1, 같을 때는 0이 나오는 연산입니다.

x1 x2 XOR

0 0 0
0 1 1
1 0 1
1 1 0

왜 하나의 Logistic Regression으로는 안 될까?

지금까지 배운 Logistic Regression은 하나의 직선(Decision Boundary) 으로 데이터를 나눕니다.

x2
↑
1 | o    x
  |
0 | x    o
  +--------→ x1
  0    1

XOR 데이터는 어떤 직선 하나로도 o와 x를 깔끔하게 나눌 수 없습니다.
이것이 수학적으로 증명되었고, 이 때문에 많은 사람들이 "뉴럴 네트워크는 안 된다"고 믿었던 계기가 되었습니다.


Multiple Logistic Regression Units

하나가 안 된다면 두 개 또는 세 개를 합치면 가능합니다.

x1 ─┬─[Unit 1 : sigmoid]─ y1 ─┐
    │                           ├─[Unit 3 : sigmoid]─ y
x2 ─┼─[Unit 1 : sigmoid]─ y1 ─┘
    │
x1 ─┤
    │
x2 ─┴─[Unit 2 : sigmoid]─ y2 ─┐
                                ├─[Unit 3 : sigmoid]─ y
                           y2 ─┘

하지만 레이어가 많아지면 각각의 W, b를 학습하는 것이 불가능하다는 문제가 있었습니다.
(이후 Backpropagation으로 해결됩니다)


직접 계산으로 이해하기

아래 W, b 값으로 XOR을 풀어봅시다.

Layer 1 (두 개의 유닛)
  Unit 1 : W = [5, 5],   b = -8
  Unit 2 : W = [-7, -7], b = 3

Layer 2 (출력)
  Unit 3 : W = [-11, -11], b = 6

x1=0, x2=0 일 때

Layer 1 계산:

Unit 1 : (0×5) + (0×5) - 8 = -8  →  sigmoid(-8) ≈ 0  →  y1 = 0
Unit 2 : (0×-7) + (0×-7) + 3 = 3  →  sigmoid(3) ≈ 1  →  y2 = 1

Layer 2 계산:

Unit 3 : (0×-11) + (1×-11) + 6 = -5  →  sigmoid(-5) ≈ 0  →  y = 0  ✅ (XOR 정답 : 0)

전체 결과 확인

x1 x2 y1 y2 y (예측) XOR (정답)

0 0 0 1 0 0 ✅
0 1 0 0 0 1 -
1 0 1 0 0 1 -
1 1 1 0 1 0 -

위 W, b 값은 개념 설명용 예시입니다. 실제 학습을 통해 최적의 W, b를 찾아야 합니다.


Matrix로 표현하기

이 구조는 지난 포스트에서 배운 Multi-variable Classification 과 유사합니다.

Layer 1 을 행렬로:

x = [x1, x2]

W = [ 5,  -7]    b = [-8, 3]
    [ 5,  -7]

xW + b → sigmoid → [y1, y2]

x와 W를 행렬 곱하고 b를 더한 뒤 sigmoid를 통과시키면 y1, y2가 한 번에 나옵니다.

Layer 2 를 행렬로:

[y1, y2] * W + b → sigmoid → y

W = [-11]    b = 6
    [-11]

Neural Network 수식

이 전체 구조를 수식으로 표현하면:

K(X) = sigmoid(XW₁ + b₁)   ← Layer 1 (Hidden Layer)
y = H(X) = sigmoid(K(X)W₂ + b₂)  ← Layer 2 (Output Layer)
  • K(X) : 첫 번째 레이어의 출력 (Hidden Layer)
  • H(X) : 최종 출력값
  • 각 레이어에서 Linear 연산 → Sigmoid 를 반복합니다

이것이 바로 Neural Network(신경망) 의 기본 구조입니다.


전체 흐름 정리

입력 X (x1, x2)
    ↓
Layer 1 : K(X) = sigmoid(XW₁ + b₁)
  → 두 개의 유닛이 각각 특징을 추출
    ↓
Layer 2 : H(X) = sigmoid(K(X)W₂ + b₂)
  → 추출된 특징으로 최종 분류
    ↓
XOR 문제 해결! ✅

정리

개념 설명

XOR 문제 단일 Logistic Regression으로는 풀 수 없는 분류 문제
Multiple Units 여러 유닛을 합치면 XOR 해결 가능
Hidden Layer 입력과 출력 사이의 중간 레이어 K(X)
Neural Network 여러 레이어를 쌓아 복잡한 문제를 푸는 구조
NN 수식 K(X) = sigmoid(XW₁+b₁), H(X) = sigmoid(K(X)W₂+b₂)

단순한 직선 하나로 풀 수 없던 XOR 문제를 Neural Network로 해결할 수 있다는 것이 딥러닝 발전의 중요한 시작점이 되었습니다. 🚀