코드: MLP forward pass — XOR 풀기
출력을 보면 — XOR 완벽 동작:
- (0,0) → h1=0(OR이 0), h2=0(AND가 0) → y=0 ✓
- (0,1) → h1=1(OR이 1), h2=0(AND가 0) → y=1 ✓
- (1,0) → h1=1, h2=0 → y=1 ✓
- (1,1) → h1=1(OR이 1), h2=1(AND가 1) → y=0 ✓
🎯 핵심 통찰
(1,1) 케이스가 키 — OR도 참, AND도 참. 출력 뉴런이 "OR이지만 AND가 아닐 때만 1"이라는 패턴을 학습 (W2=[20,-20]). h2의 음수 가중치가 결정적.
이 단순한 2층 구조가 1969년 Minsky-Papert가 "못 한다"고 한 문제를 푼다. 층을 쌓는 게 답이었다.
💡 코드의 우아함
MLP forward pass도 단 2줄:
h = sigmoid(W1 @ x + b1)
y = sigmoid(W2 @ h + b2)
층이 100개든 1000개든 같은 패턴 반복. W @ x + b → 활성화 → 다음 층의 입력. 알파고도, GPT도, 모두 이 패턴.
⚠️ 그러나 — 가중치는 어떻게 학습?
위 예에서는 가중치를 손으로 정했어 (OR, AND, NOT AND를 안다고 가정). 실제 문제에서는 데이터만 있고 정답 함수를 모름.
그러면 가중치를 어떻게 자동으로 찾지? — 역전파(Backpropagation). 다음 페이지.
PYTHON