에듀테크 프로젝트 대시보드
퍼셉트론 (Perceptron)
1957년 프랭크 로젠블랫이 만든 퍼셉트론은 오늘날 딥러닝을 이루는 인공 뉴런의 원형입니다. 입력에 가중치(weight)를 곱해 모두 더하고, 여기에 편향(bias)을 더한 뒤, 그 값이 0보다 크면 1, 아니면 0을 출력합니다. 놀라운 점은 이 뉴런이 정답이 붙은 예시만 보고도 가중치를 조금씩 고쳐 스스로 분류 규칙을 학습한다는 것입니다.
w 는 각 입력이 결정에 얼마나 중요한지를 나타내는 손잡이입니다.
b 는 경계선을 원점에서 밀어내는 값으로, 입력이 0이어도 뉴런이 켜질 수 있게 해줍니다.
2차원 입력에서 z = 0 인 지점들은 하나의 직선을 이루며, 이 직선이 바로 뉴런의
결정 경계(decision boundary)입니다.
예시 하나 (x, 정답 y)를 넣어 예측 ŷ를 구하고, 오차 e = y − ŷ 를 계산합니다.
e 가 0이면(맞혔으면) 아무것도 하지 않고, 아니면 가중치를 오차 방향으로 살짝 당깁니다.
# 퍼셉트론 학습 규칙 (learning rate η) for epoch in range(EPOCHS): for (x1, x2, y) in data: z = w1*x1 + w2*x2 + b y_hat = 1 if z >= 0 else 0 e = y - y_hat # -1, 0, +1 중 하나 w1 += η * e * x1 # 틀렸을 때만 e ≠ 0 w2 += η * e * x2 b += η * e
캔버스를 클릭하면 점을 추가합니다. 왼쪽 버튼은 파랑(클래스 1), 오른쪽 버튼(또는 Shift+클릭)은 빨강(클래스 0)입니다. 학습 시작을 누르면 뉴런이 한 예시씩 보며 경계선(흰 선)을 움직입니다.
입력 2개짜리 논리 게이트는 퍼셉트론 학습의 고전 예제입니다.
AND 와 OR 는 직선 하나로 1 과 0 을 가를 수 있어 학습이 됩니다.
| x₁ | x₂ | AND | OR | XOR |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
1969년 민스키와 페퍼트가 이 한계를 지적하며 신경망 연구는 한동안 겨울을 맞습니다.
해결책은 뉴런을 여러 층으로 쌓고(다층 퍼셉트론), 계단함수 대신 매끄러운 활성화 함수를 써서
역전파(backpropagation)로 학습하는 것입니다. XOR 은 은닉층 뉴런 2개만 있으면
OR 과 NAND 를 조합해 풀 수 있습니다. 이것이 오늘날 딥러닝의 출발점입니다.