시즌 1 · 알파고편 / PART 4 · PART 4 · 신경망 등장: 직관을 학습한다 / Ch 1 · 퍼셉트론에서 MLP까지

다층 퍼셉트론 (MLP)

한 뉴런이 한 직선을 그어. 여러 뉴런을 쓰면 여러 직선. 직선들의 조합으로 더 복잡한 영역을 그릴 수 있어.

📖 MLP 구조 — 3개 층의 예
입력층 (Input)          은닉층 (Hidden)         출력층 (Output)
   x1 ──┬─→ [뉴런 1] ──┐
        ├─→ [뉴런 2] ──┼─→ [뉴런 5] ──→ y
   x2 ──┤              │
        └─→ [뉴런 3] ──┘
        
   각 화살표 = 가중치 (학습 대상)
   각 뉴런 = w·x + b → 활성화
  
🎯 XOR 해결법

은닉층 뉴런 2개로 XOR을 풀 수 있어. 직관:

  • 은닉 뉴런 1 (OR 학습): x1 OR x2
  • 은닉 뉴런 2 (AND 학습): x1 AND x2
  • 출력 뉴런: (OR 결과) AND (NOT AND 결과) = OR이지만 AND는 아닐 때만 1 = XOR

즉 XOR = OR AND (NOT AND). 단순한 게이트 조합이지만 한 뉴런으로는 못 했음.

💡 일반 정리 — Universal Approximation Theorem (1989)

"은닉층 하나에 충분한 뉴런이 있으면, MLP는 어떤 연속 함수든 임의의 정밀도로 근사 가능."

이게 1989년 증명된 정리. 이론적으로 신경망은 만능. 단, "충분한 뉴런"이 얼마인지가 실전 문제 (그래서 깊은 신경망 — Deep Learning이 발전).

📖 "층" 카운트의 관례

위 예에서 "3개 층"이지만 보통은 가중치 행렬의 수로 셈:

  • 입력층은 카운트 안 함 (단지 데이터)
  • 은닉층 1 + 출력층 1 → "2층 신경망" 또는 "1-hidden-layer MLP"

알파고의 policy network: 13층 CNN. AlphaGo Zero: 40층(잔차 블록). 점점 깊어짐.

코드로 MLP 한 번 동작시켜보자.