6. 연상 메모리

6장 연상 메모리 개요

연상 메모리(Associative Memory) 는 인간의 기억 방식을 모방한 구조로, 입력 패턴이 들어오면 저장된 패턴 중 가장 관련 있는 것을 떠올린다. 이번 장에서는 선형 연상 메모리, BAM, Hopfield 모델까지 주요 연상 메모리 구조와 수학적 표현을 정리한다.

6.1 패턴 연상 (p.234)

연상 작용이 일어나려면 패턴들 간에 관계가 성립되어야 한다.

관계형 구조

$A, O, V \to$ (A: attribute, O: object, V: value)

  • node — link — node 구조
  • Mapping 시켜주는 역할

예: "한국의 수도는 서울이다" → 한국 →[수도]→ 서울

신경망에 적용

$$O \xrightarrow{A} V \quad (V = OA) \quad\Longrightarrow\quad X \xrightarrow{W} Y \quad (Y = XW)$$

즉 객체 $O$에 속성 $A$를 곱해 값 $V$를 얻는 구조를, 신경망에서는 입력 $X$에 가중치 행렬 $W$를 곱해 출력 $Y$ 를 얻는 것으로 구현한다.

연상 메모리는 개념, 단어, 아이디어들이 서로 연결된 연상의 사슬.

연상 메모리의 구현 방법 (p.237)

  • 순방향 신경망: $X \xrightarrow{W} Y \quad (Y = XW)$
  • 순환 신경망: $X \xrightarrow{W} Y \to (Y^1 = XW, \; Y^2 = Y^1 W = XW^2, \; \ldots, \; Y^k = Y^{k-1} W)$

정보 검색에서의 차이점 (p.239)

구분 방식
Digital Computer 입력 패턴 = 저장된 패턴 (완전 일치 검색)
Neuro Computer CAM (Content Addressable Memory) 형식 → 유사한 패턴이 출력 (인공지능적 요소)

연상 메모리 개요 및 선형 연상

6.2 선형 연상 메모리 (p.240)

① 연결강도 (외적)

$$W = S^T \cdot t$$

  • 출력 패턴: $t = [t_1, t_2, \ldots, t_M] \in \mathbb{R}^M$
  • 입력 패턴: $S = [s_1, s_2, \ldots, s_n] \in \mathbb{R}^n$

$$W = S^T t = \begin{bmatrix} s_1 \\ \vdots \\ s_n \end{bmatrix} [t_1 \cdots t_M] = \begin{bmatrix} s_1 t_1 & s_1 t_2 & \cdots & s_1 t_M \\ \vdots & & & \vdots \\ s_n t_1 & s_n t_2 & \cdots & s_n t_M \end{bmatrix}$$

양극성 data vs 이진 data

  • 양극성 data:

$$W = W_1 + W_2 + \cdots + W_P = \sum_{p=1}^{P} S^T(p) \cdot t(p) \quad (P\text{개 패턴을 기억하는 연결강도})$$

  • 이진 data:

$$W = \sum_{p=1}^{P} [2S(p) - I]^T [2t(p) - I]$$

여기서 $I$는 모든 원소가 1인 벡터. $1 \times n$ 벡터, $1 \times M$ 벡터.

예제 6.1 — 연상 메모리의 설계 (p.244)

양극성 data:

  • $S(1) = [1, 1, 1, -1, -1, 1, -1, -1, 1]$, $t(1) = [1, -1, -1]$
  • $S(2) = [1, -1, 1, 1, -1, 1, -1, 1, 1]$, $t(2) = [-1, -1, 1]$

이진 data라면: $S(1) = [1, 1, 1, 0, 0, 1, 0, 0, 1]$, $t(1) = [1, 0, 0]$

→ $2S(1) - I = 2[1,1,1,0,0,1,0,0,1] - [1,1,1,1,1,1,1,1,1] = [1, 1, 1, -1, -1, 1, -1, -1, 1]$ (양극성 데이터와 동일)

→ $2t(1) - I = 2[1, 0, 0] - [1, 1, 1] = [1, -1, -1]$

$$W = W_1 + W_2 = S^T(1) t(1) + S^T(2) t(2)$$

6.3 자기/이종 연상 메모리

  • Auto-associative memory (자기 연상): $S = t$, 자기 자신으로 연상 (잡음 제거, 패턴 복원)
  • Hetero-associative memory (이종 연상): $S \neq t$, 다른 형태의 패턴을 연상 (예: 이름 → 사진)

활성화 함수로 양극성 계단함수를 쓰면 선형 연상 메모리의 출력을 이진/양극성으로 깨끗하게 만들 수 있다.

$$\text{Net} = XW = [\ldots] \to Y = f(\text{Net}) = [y^1 \; y^2 \; \cdots]$$

자기/이종 연상 메모리 및 Hopfield

예제 6.2~6.3 — 저장된 패턴 연상하기

입력 $X = S(1) + \text{noise}$ 같은 부분 입력을 주고, $W$를 통과시키면 원래의 패턴 $t(1)$에 가까운 출력이 나오는지 확인하는 과정.

각 패턴에 대해 $\text{Net} = XW$를 계산하고, 양극성 계단함수로 변환한 뒤 저장된 패턴과 비교해서 연상 성공/실패를 판정한다. 이진 data와 양극성 data 각각에 대해 성공 조건이 달라진다.

연상 예제 상세

예제 6.4 (p.263) — $y_1, y_3, y_2, y_4$ 순서로 갱신할 때 출력 패턴 비교

$S(1) = [1, 1, -1, -1]$, $S(2) = [-1, -1, 1, 1]$, 입력 $X = [1, -1, -1, -1]$ (부분 입력).

$$W = \sum_{p} S^T(p) S(p) - pI = \begin{bmatrix} 0 & 2 & -2 & -2 \\ 2 & 0 & -2 & -2 \\ -2 & -2 & 0 & 2 \\ -2 & -2 & 2 & 0 \end{bmatrix}$$

1) $y_1$ 갱신: $\text{Net}_1 = x_1 + Y w_1^T = 1 + [1, -1, -1, -1]\begin{bmatrix}0\\2\\-2\\-2\end{bmatrix} = 3 \to y_1 = 1$

→ $Y = [1, -1, -1, -1]$ (갱신됐지만 그대로)

2) $y_3$ 갱신: $\text{Net}_3 = -1 + [1, -1, -1, -1]\begin{bmatrix}-2\\-2\\0\\2\end{bmatrix} = -3 \to y_3 = -1$

→ $Y = [1, -1, -1, -1]$ (갱신됐지만 그대로)

3) $y_2$ 갱신: $\text{Net}_2 = -1 + [1, -1, -1, -1]\begin{bmatrix}2\\0\\-2\\-2\end{bmatrix} = 5 \to y_2 = 1$

→ $Y = [1, 1, -1, -1]$ — 갱신, 연상 성공 (원래 저장된 $S(1)$)

4) $y_4$ 갱신: $\text{Net}_4 = -1 + [1, 1, -1, -1]\begin{bmatrix}-2\\-2\\2\\0\end{bmatrix} = -7 \to y_4 = -1$

→ $Y = [1, 1, -1, -1]$ 그대로 유지 → 연상 성공. 부분 입력을 넣었지만 연상 해냄.

예제 6.4 계산 과정

Hopfield 연상 메모리의 Energy Function

에너지 함수:

$$E(Y) = -\frac{1}{2} Y W Y^T$$

출력 관련 에너지가 낮아지는 방향으로 향하며, $E_{\min}$에 수렴하면 출력이 변하지 X → stable state (local minimum).

예제 6.4에서:

1st path (부분 입력에서 시작): - $y_1$: $E(Y) = -\frac{1}{2} Y W_1^T = -\frac{1}{2}(2) = 3$ - $y_2$: $E(Y) = -\frac{1}{2}(-2) = 1$ - $y_3$: $E(Y) = -\frac{1}{2}(6) = -3$ - $y_4$: $E(Y) = -\frac{1}{2}(-6) = 3$

2nd path (연상된 이후): 변화 없음, 에너지가 $-3$으로 반복 → 즉 최소값 $-3$ 에서 고정된다 (stable state).

6.4 BAM — 양방향 연상 메모리 (Bidirectional Associative Memory)

BAM: 친구 이름 ↔ 친구 사진처럼 양방향으로 연상이 가능한 메모리.

  • 단층 비선형 양방향 연상 메모리
  • 입출력층이 구분되어 있지 X (서로 뒤집을 수 있음)

$$\text{(X계층)} \overset{W}{\underset{W^T}{\rightleftharpoons}} \text{(Y계층)}$$

  • $X = f(YW^T)$, $Y = f(XW)$
  • AF: 양극성 계단함수 (양극성 data 사용)
  • 연결강도: $W = \sum_{p=1}^{P} S^T(p) t(p)$ (책 $S(p)$ 표기 잘못됨 주의)
  • 이진 data: $W = \sum_{p=1}^{P} (2S(p) - I)^T (2t(p) - I)$

저장된 패턴을 연상하는 절차

1) $X \xrightarrow{W} Y^1$ ($Y^1 = f(XW)$)

$$\text{Net}_y^1 = XW \to y_i = f(\text{Net}_y) = \begin{cases} 1 & (\text{Net}_y > 0) \\ y^i & (\text{Net}_y = 0) \\ 0 \text{ or } (-1) & (\text{Net}_y < 0, \text{양극성 data})\end{cases}$$

2) $X^1 \xleftarrow{W^T} Y^1$ ($X^1 = f(Y^1 W^T)$)

같은 방식으로 X 쪽으로 역방향 연상.

3) $X^1 \xrightarrow{W} Y^2$ ($Y^2 = f(X^1 W)$), ... 반복

$X^k \xrightarrow{W} Y^{k+1}$ 반복하다가 $X, Y$가 더 이상 변하지 않으면 수렴 → 저장된 패턴쌍을 연상 완료.

예제 6.5 (p.270) — 2개의 패턴쌍을 저장하는 BAM

  • $S(1) = [1, 1, 1, -1, -1, 1, 1]$, $t(1) = [1, -1]$
  • $S(2) = [-1, -1, 1, 1, -1, -1, 1]$, $t(2) = [-1, -1]$

$$W = \sum S^T(p) t(p)$$

1) $S(1)$을 X층에 입력한 경우 → $t(1)$ 연상?

(a) $X \xrightarrow{W} Y^1$: $\text{Net}_y^1 = S(1)W = [10, -10] \to Y^1 = [1, -1]$ (b) $X^1 \xleftarrow{W^T} Y^1$: $\text{Net}_x^1 = Y^1 W^T = [440, 400, 440] \to X^1 = [1, 1, 1, -1, -1, 1, 1]$ ← $S(1)$ 연상 해냄
★ 입력 가중합이 0이면 X에서 값을 가져옴 (c) $X^1 \xrightarrow{W} Y^2$: $\text{Net}_y^2 = X^1 W = [10, -10] \to Y^2 = [1, -1]$ → $t(1)$ 연상 해냄

BAM 구조 및 예제

2) 패턴 $t(2)$에 잡음이 섞인 $Y = [0, 1]$을 Y층에 입력한 경우 → $S(2)$ 연상?

(a) $X^1 \xleftarrow{W^T} Y$: $\text{Net}_x = YW^T = [-2, -20, -20, 0, 0, -2, -20] \to X^1 = [-1, -1, 0, -1, 0, 0, -1, -1, 0]$ → 연상 실패 ($\neq S(2)$)
$X$를 안 찾기에 0

(b) $X^1 \xrightarrow{W} Y^1$: $\text{Net}_y = X^1 W = [-10, 10] \to Y^1 = [-1, 1]$ → $t(2)$ 연상

(c) $X^2 \xleftarrow{W^T} Y^1$: $\text{Net}_x^2 = Y^1 W^T = [-4, -40, -40, 0, 0, -4, -40] \to X^2 = [-1, -1, 0, -1, 0, 0, -1, -1, 0]$ → 연상 실패 ($\neq S(2)$)

입력 가중합이 0일 때 $X^1$의 값을 가져와서 쓰는 보정이 필요하다.

BAM에 저장할 수 있는 패턴쌍의 수 $P$ (p.273)

$$P \leq \min(M, n)$$

($M$: Y층의 뉴런 수, $n$: X층의 뉴런 수)

연상 효과 향상을 위해서는 더 엄격하게:

$$P \leq \sqrt{\min(M, n)}$$

BAM 예제 2 및 저장 용량

정리

모델 구조 특징
선형 연상 메모리 Forward $Y = XW$ 외적 $W = S^T t$ 로 저장
자기 연상 $S = t$ 잡음 제거, 패턴 복원
이종 연상 $S \neq t$ 다른 형태 패턴 연상 (이름↔사진)
Hopfield 단층 순환 에너지 함수 $E(Y) = -\frac{1}{2}YWY^T$ 최소화
BAM 양방향 $X \rightleftharpoons Y$ 양쪽 모두 쿼리 가능, 용량 $P \leq \sqrt{\min(M,n)}$

연상 메모리는 이후 Transformer의 key-value attention, RAG의 유사도 기반 검색 등 "유사 패턴 인출"이라는 공통 개념을 가진 기법들의 원형이 된다.

비슷한 글 추천

Comments (0)

No comments yet. Be the first to comment!