4. 단층 신경망

4장 단층 신경망 개요

이번 장에서는 가장 단순한 구조의 단층 신경망(Single-Layer Network) 을 공부하며 Hebb Net, Perceptron, ADALINE이라는 세 가지 대표 모델의 학습 알고리즘을 OR/XOR 같은 논리 연산 예제를 통해 직접 계산해 본다.

4.1 패턴 분류

입력 패턴은 크게 두 가지로 나눌 수 있다.

  • Spatial pattern (공간 패턴): 시간에 따라 변하지 않는 패턴 (예: 글자, 이미지)
  • Temporal pattern (시간 패턴): 시간에 따라 변하는 패턴 (예: 음성, 동영상)

또한 신호의 전달 방식에 따라 Forward network(전방향)와 Recurrent/Feedback network(피드백)로 구분된다. 단층 신경망은 기본적으로 forward network에 속한다.

신경망 분류 개요

4.2 판별 함수 (Discriminant Function)

판별 함수는 입력 공간을 cluster로 나누는 decision surface(결정 경계면) 역할을 한다. 단층 신경망의 핵심 질문은 "주어진 decision surface가 선형(linear)인가, 비선형(non-linear)인가?" 이다.

  • Linear separable: 하나의 직선/평면으로 cluster를 분리할 수 있는 경우 (AND, OR 연산)
  • Linear non-separable: 하나의 직선/평면으로 분리할 수 없는 경우 (XOR 연산) → 다층 신경망 필요

예제 4.2 — OR / XOR 연산 분류

OR 연산 (p.133)

입력 패턴 A, B, C, D를 다음과 같이 설정한다.

input x₁ x₂ 1 y (cluster)
A 0 0 1 0
B 0 1 1 1
C 1 0 1 1
D 1 1 1 1

→ A cluster와 B/C/D cluster로 분류된다. 분리선을 $x_1 + x_2 - 0.5 = 0$ 으로 설정하면 $w_1=1, w_2=1, b=-0.5$가 되어 OR 연산을 수행하는 단층 신경망을 구성할 수 있다.

XOR 연산 (p.134)

input x₁ x₂ y
A 0 0 0
B 0 1 1
C 1 0 1
D 1 1 0

A, D가 같은 cluster이고 B, C가 같은 cluster이므로 하나의 직선으로는 분리 불가능 → 다층 신경망이 필요하다는 결론.

OR/XOR 분류 예제

4.3 Hebb Net 학습 알고리즘 (p.135)

Hebb Net은 3장에서 배운 Hebb 학습법과 같은 원리를 논리 연산에 적용한 것이다.

  • 학습 규칙: $\Delta w_{ij} = 2 \cdot y_i \cdot x_j$ — 두 뉴런이 동시에 활성화되면 연결 강도가 커진다.
  • binary data는 학습 불가: 단극성(0/1) 데이터로는 학습이 안 되고 양극성(-1/+1) 데이터만 학습 가능하다.
  • AF: 양극성 계단 함수 사용
  • 자율학습(unsupervised): 목표치 없이 실제 출력에 근거해서 학습
  • 실제 출력 $y$ 대신 목표치 $y^d$를 대신 사용하면 학습이 더 효과적으로 수행된다.

가중치 업데이트 식:

$$w^{k+1} = w^k + \Delta w^k = w^k + Y^d \cdot X \quad (\text{학습률 } \lambda = 1)$$

예제 4.4 (p.139) — 단극성 binary data로 OR 연산

초기값 $W^1 = [0, 0, 0]$, $\lambda = 1$, AF는 양극성 계단함수($T=0$) 사용.

Path 1 - 1st step: $(x_1, y^{d_1})$

$$W^2 = W^1 + 2y^{d_1}X_1 = [0,0,0] + 1 \times 0 \times [-1,-1,1] = [0,0,0]$$

→ 원하는 위치에 있지 않음 (X). $x_1$이 0이기 때문에 $y=0$이 되어 학습이 안 된다.

Path 1 - 2nd step: $(x_2, y^{d_2})$

$$W^3 = W^2 + 2y^{d_2}X_2 = [0,0,0] + 1 \times 1 \times [0,1,1] = [0,1,1]$$

→ $0 + x_2 + 1 = 0$에서 $x_2 = -1$인 원하는 위치에 있지 않음 (X).

이처럼 단극성 binary data는 Hebb Net 학습이 안 된다는 것을 직접 확인할 수 있다.

Hebb Net 학습 과정

연결강도를 4로 고정한 증명 (양극성 패턴)

$W_{\max} = 4$로 고정하고 $w_1 = 4, w_2 = 4, b = 4$일 때 양극성 입력 A, B, C, D에 대해 Net 값을 계산:

  • $A = [-1, -1]$ → $\text{Net} = XW^T = -4$ → $y = f(\text{Net}) = -1$ (양극성 계단함수이므로)
  • $B = [-1, 1]$ → $\text{Net} = 4$ → $y = 1$
  • $C = [1, -1]$ → $\text{Net} = 4$ → $y = 1$
  • $D = [1, 1]$ → $\text{Net} = 12$ → $y = 1$

→ 양극성 데이터를 쓰면 OR 연산이 제대로 수행됨을 확인할 수 있다.

4.4 Perceptron (p.149)

Rosenblatt가 제안한 모델. 3장의 Perceptron 학습법을 논리 연산에 적용한다.

구조

  • 수용층(receptor layer) — 외부 입력을 받는 층
  • 연합층(association layer) — 고정된 연결강도로 0, ±1 random하게 구성
  • 반응층(response layer) — 변경 가능한 연결강도, 여기서 학습이 일어남

수용층과 연합층은 통합이 가능하기 때문에 단층 신경망을 사용해도 동일한 결과가 나온다. 즉 기본 구조는 Hebb Net과 같고, 서로 다른 학습 방법으로 연결강도만 업데이트된다.

학습 규칙

  • 초기 연결강도 $W^1$은 임의의 작은 값 사용
  • AF (양극성 함수): $y = 1$ (Net > T), $0$ (Net = T), $-1$ (Net < T)
  • 가중치 업데이트:

$$w^{k+1} = w^k + \Delta w^k = w^k + \lambda \cdot (y^d - y^k) \cdot X$$

여기서 $(y^d - y^k)$가 학습 신호 오차 $r$ 이다. Hebb Net과 달리 목표치와 실제 출력의 차이(오차) 를 학습 신호로 사용한다.

Perceptron 구조 및 예제

예제 4.6 (p.154) — OR 연산 (Perceptron 설계, 양극성 data)

양극성 입력 패턴과 목표치:

input x₁ x₂ 1 y^d
A -1 -1 1 -1
B -1 1 1 1
C 1 -1 1 1
D 1 1 1 1

초기값 $W^1 = [0.2, 0.1, -0.1]$, $\lambda = 1$, AF는 양극성 계단함수($T=0$).

Path 1 - 1st step: 출력과 목표치 $y^d$를 비교해서 같으면 연결강도 변화 X, 다르면 변화.

$$\text{Net}^1 = X_1(W^1)^T = [-1, -1, 1]\begin{bmatrix}0.2\\0.1\\-0.1\end{bmatrix} = -0.4 \to y^1 = -1$$

출력 $y^1 = -1$과 목표치 $y^{d_1} = -1$이 같으므로 변화 없음 ($W^2 = W^1$). 학습 실패 아님.

Path 1 - 2nd step:

$$\text{Net}^2 = X_2(W^2)^T = [-1, 1, 1]\begin{bmatrix}0.2\\0.1\\-0.1\end{bmatrix} = -0.2 \to y^2 = -1$$

출력 $y^2 = -1$과 목표치 $y^{d_2} = 1$이 다르므로 가중치 변화:

$$W^3 = W^2 + \lambda(y^{d_2} - y^2)X_2 = [0.2, 0.1, -0.1] + (1-(-1))[-1,1,1] = [-1.8, 2.1, 1.9]$$

이런 식으로 path를 반복하면서 목표치와 출력이 모두 일치할 때까지 학습을 진행한다.

Perceptron 학습 상세

4.5 ADALINE (p.165)

ADALINE (ADAptive LInear NEuron), B.Widrow & M.Hoff가 개발.

  • LMS (Least Mean Square) 학습법 사용 (3.5에서 설명했던 그 방법)
  • 오차 제곱의 평균 $E = \frac{1}{2}(y^d - y)^2$ 를 최소화하는 학습법
  • AF: 학습 단계에서는 항등함수(identity), 응용 단계에서는 양극성 계단함수 사용
  • $y = 1$ (Net > 0), $-1$ (Net < 0) → on-line in real time
  • 순전파 식: $y = f(\text{Net}) = \text{Net} = XW^T = \sum_{k=1}^{n} x_k w_k$

LMS 학습법 — Gradient Descent

오차를 최소화하기 위해 $E$를 $w_i$에 대해 미분(gradient)한 방향의 반대로 이동한다.

$$\Delta w_i = -2\nabla E = -2\frac{\partial E}{\partial w_i}$$

$$E = \frac{1}{2}(y^d - y)^2 = \frac{1}{2}\left(y^d - \sum_{k=1}^{n} x_k w_k\right)^2$$

미분해서 정리하면:

$$\Delta W = \lambda (y^d - XW^T) X$$

가중치 업데이트:

$$w^{k+1} = w^k + \Delta w^k = w^k + \lambda (y^d - XW^T) X$$

학습률 $\lambda$

  • 너무 크면 학습이 안 됨 (발산)
  • 너무 작으면 학습 진행 속도가 느림 ($\Delta w = \lambda r X$에서 $\Delta w \propto \lambda$이기 때문)

→ $0.1 \leq \lambda \leq 1$ 이 적절한 학습률 ($n$: 입력층 뉴런 수)

예제 4.8 (p.169) — OR 연산 (ADALINE)

동일한 양극성 OR 데이터를 사용하고, 초기값 $W^1 = [0.1, 0.1, 0.3]$.

(a) $\lambda = 0.1$ 인 경우

Path 1 - 1st step:

$$\text{Net}^1 = X_1(W^1)^T = [-1,-1,1]\begin{bmatrix}0.1\\0.1\\0.3\end{bmatrix} = 0.1$$

$$W^2 = W^1 + \lambda(y^{d_1} - X_1(W^1)^T)X_1 = [0.1, 0.1, 0.3] + 0.1 \times (-1 - 0.1)[-1, -1, 1] = [0.21, 0.21, 0.19]$$

학습 단계에서는 AF가 항등함수이므로 $y^1 = y^1(\text{Net}) = \text{Net}$ 이다.

→ 30th, 31st, 32nd path 부터 값이 계속 비슷한 값으로 수렴 (O)

수렴 결과: $0.470588 x_1 + 0.441176 x_2 + 0.5 = 0$

(b) $\lambda = 0.2$ 인 경우

→ 12th path부터 수렴: $0.428571 x_1 + 0.357143 x_2 + 0.5 = 0$

$\lambda = 0.1$ 일 때보다 더 빠르게 학습됨을 확인 (다만 너무 크면 발산할 수 있으므로 적절한 값 선택이 중요).

ADALINE 학습 및 예제

정리

모델 제안자 학습 신호 AF 특징
Hebb Net Hebb (1949) $\lambda y^d X$ 양극성 계단 자율학습, binary 학습 불가
Perceptron Rosenblatt (1958) $\lambda(y^d - y)X$ 양극성 계단 오차 기반 지도학습
ADALINE Widrow & Hoff (1960) $\lambda(y^d - XW^T)X$ 학습: 항등, 응용: 양극성 LMS(MSE) 최소화, Gradient descent

세 모델 모두 선형 분리 가능한 문제만 해결 가능하다는 한계가 있으며, XOR 같은 문제는 다음 장의 다층 신경망이 필요하다.

비슷한 글 추천

Comments (0)

No comments yet. Be the first to comment!