흐린 사진에서 얼굴을 떠올리듯, 일부 단서만으로 저장된 기억 전체를 주소가 아니라 내용으로 찾아내는 기억 방식이다. 1982년 홉필드 네트워크에서 시작했고, 지금은 트랜스포머 어텐션을 설명하는 틀로 쓰이거나 신경망에 기억 층을 붙일 때 쓰인다.
| 종류 | 돌려주는 것 | 예 |
|---|---|---|
| 자기 연상 | 입력과 같은 기억을 복원 | 깨진 이미지 → 원본 |
| 이종 연상 | 짝지어 둔 다른 기억 | 이름 ↔ 얼굴 |
2020년 'Hopfield Networks is All You Need' 연구는 현대 홉필드 네트워크의 갱신 규칙과 트랜스포머의 어텐션 연산이 같은 수학 형태라는 것을 보였다. 쿼리를 저장된 키들과 비교하고, 가장 비슷한 기억을 꺼내는 구조다. 이 관점에서 보면 어텐션 헤드 여러 개는 홉필드 네트워크 여러 개를 나란히 놓은 것이다.
| 연상 메모리 | 트랜스포머 |
|---|---|
| 저장된 기억 패턴 | 키(K)와 값(V) |
| 떠올릴 단서 | 쿼리(Q) |
| 가장 비슷한 기억으로 수렴 | 소프트맥스 가중합 |
| 여러 네트워크를 병렬로 | 멀티 헤드 |
고전 홉필드 네트워크는 저장할 패턴을 서로 곱해 더하는 방식(헤브 학습)으로 가중치를 만들고, -1과 1 같은 이진 값만 다뤘다. 담을 수 있는 기억이 적어 패턴이 많아지면 서로 섞였다. 현대 홉필드 네트워크(밀집 연상 메모리)는 연속값을 쓰고 저장 용량이 매우 커서 딥러닝 층으로 쓸 수 있게 됐다.
| 항목 | 고전 (1982) | 현대 |
|---|---|---|
| 값 | 이진 | 연속 벡터 |
| 저장 용량 | 작음 | 매우 큼 |
| 딥러닝 연결 | 어려움 | 미분 가능한 층 |
둘이 같다는 사실이 밝혀진 뒤로 오히려 연구가 늘었다. 연상 메모리 목표를 구조의 중심에 둔 에너지 트랜스포머, 학습한 메모리 뱅크를 끌개(기억이 수렴하는 지점)로 다시 쓰는 연상 트랜스포머 등이 나왔다. 대부분 논문과 워크숍에서 다루는 연구 단계 결과라서, 실제 성능은 내 작업으로 직접 확인하는 게 맞다.
JKU 연구팀이 공개한 hopfield-layers는 홉필드 층을 딥러닝 모델 안에 끼워 넣게 해 준다. 층이 미분 가능해서 다른 층과 함께 학습되고, 저장된 패턴 가운데 입력과 가장 비슷한 것을 찾아오는 기능을 모델에 붙일 수 있다. 새 모델을 만들지 않더라도 어텐션 맵을 '어떤 기억을 꺼냈나'로 읽으면, 모델이 왜 특정 토큰에 주목했는지 따져 보기 쉬워진다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 딥러닝 모델 설계 | hopfield-layers로 홉필드 층을 끼워 넣고, 저장된 패턴 중 입력과 가장 비슷한 것을 찾아오게 함께 학습 |
| 트랜스포머 해석 | 어텐션 맵을 '어떤 기억을 꺼냈나'로 읽어 모델이 특정 토큰에 주목한 이유를 따짐 |
| 손상된 패턴 복원 | 깨지거나 잡음 섞인 입력을 저장해 둔 원본 패턴으로 되돌림 (자기 연상) |
| 공부·강의 | 작은 고전 홉필드 네트워크로 기억이 끌개로 수렴하는 과정을 직접 확인 |