용's

[#2] BAM (Bidirectional Associative Memory) 본문

Computer Science/Intelligence System

[#2] BAM (Bidirectional Associative Memory)

TaeYOng's 2015. 11. 29. 21:34







※ 선 지식: 홉필드_네트워크(Hopfield_Network)








먼저, 홉필드 네트워크는 특정 패턴(문자, 신호 등등)을 학습시킨 후 노이즈(Noise)가 들어간 패턴을 입력했을 시 근접한 패턴을 인식하는 연상 메모리의 기능을 할 수 있었다. 


연상 메모리에는 두 가지의 유형인 자동연상 메모리(Autoassociative Memory), 이종연상 메모리(Heteroassociative Memory)이 있다.


  자동 연상 메모리(Autoassociative Memory)

= 어떤 데이터(Piece of data)의 일부분만을 이용하여 그 어떤 데이터를 연상할 수 있는 메모리

= 하나의 기억이 완벽히 구성 혹은 교정되어질 수 있음

= 기억된 데이터로 다른 기억을 연상할 수 없음

= 입력벡터를 적용한 바로 그 뉴런에 출력벡터가 나타나는 단층구조

예) A → A / B → B 와 같이 A라는 패턴은 A만을 연상할 수 있고 B라는 패턴은 B만을 연상할 수 있음


  이종 연상 메모리(Heteroassociative Memory)

= 서로 다른 카테고리에 있는 데이터를 연상할 수 있는 메모리. 즉, 서로 다른 기억을 연상할 수 있음

= 자동 연상 메모리와 같이 파괴된 입력에대한 올바른 출력을 생성하는 일반화 능력을 가짐

= 노이즈가 섞인 표본에서 원하는 출력을 얻도록 특징을 추출하는 추상화 능력

예) A → 1 / B → 2 와 같이 A라는 패턴이 A가 아닌 1을 연상할 수 있고 B라는 패턴은 B가 아닌 2라는 패턴을 연상할 수 있음




여기서 홉필드는 자동 연상 메모리에 속하는 알고리즘이며, 이번 포스팅에서 소개할 BAM은 이종 연상 메모리에 속한다. 







  BAM(Bidirectional Associative Memory) 구조

이름에서 알 수 있듯이, 두 벡터 공간 사이의 동시적인 사상을 수행한다. 따라서 구조는 다음 그림과 같이 두 층으로 구성되어 있으며, 각층의 출력은 다른 층에 완전 연결된 구조를 가진다.

그림1. BAM 기본 구조


= 학습데이터(Training Data)가 L개의 정돈된 벡터쌍 이라면, X는 입력, Y는 출력

= W는 X로부터 Y로의 가중치 행렬이라고 하면, 보간적 연상 메모리(Interpolative Associative Memory)을 위한 가중치는 다음과 같다.


= 반대로, Y에서 X로의 연결 가중치는 W의 전치행렬과 같다.

= 보간적 연상 메모리(Interpolative Associative Memory)는

(1) 만약 가 훈력 벡터들의 일원이면 를 만족하는 X로 부터 Y로의 사상을 수행하고,

(2) 만약 임의의 어떤 다른 보다도 에 더 가까운 임의의 가 주어질 때는 의 사상을 수행한다.

(예를 들면, 와 같이 학습을 시켜놓았을 시, 가 A이면  나오며   아니면서 도 아니지만 에 더 가깝다면 역시 가 나온다)


= Unit을 활성화시키는 방법으로는 다음과 같이 설정한다.


= 알고리즘

(1) 가중치 행렬을 초기화. 입력 벡터를 X, Y층에 동시에 입력. 비활성화 상태를 -1로, 활성화 상태를 +1로 사용

(Binary Data를 Bipolar Data로 수정)

(2) 식 을 사용하여 다른 층에 입력 패턴을 전파 (여기서 NET는 를 말한다)

(3) 위의 활성화 함수 를 사용하여 목적지 층에서 새로운 활성 패턴(Activation Pattern)을 계산

(4) 식 를 사용하여 새로운 활성 패턴을 다시 출발 층으로 전파.

(여기까지 진행을 하면, 원본 패턴이 나올 수 도 있고 노이즈가 약간 제거된 형태의 패턴이 나올 수도 있음. 

(5) 양쪽 층에서 활성화 된 패턴이 변화를 멈출 때까지 위의 (2)~(5)를 반복


예)

= 훈련 벡터가 다음과 같으면


(1) Bipolar Data로 수정한 뒤 W를 계산한다.


(2) 

(3) 가 되고 이는 과 동일함을 확인할 수 있다

(4) 

(5) 가 되고 이는 와 동일함을 확인할 수 있다


그럼 위에서 만약 다음의 벡터 이 주어졌을 때,

(2) 

(3) 이고 이는 와 동일

(4) 

(5) 이고 이는 와 동일함을 확인함으로써 은 로 결과가 나옴을 확인할 수 있다.




= 신경망에서의 활성 패턴의 반복과 동적 시스템(Dynamical System)에서의 에너지를 최소화하는 함수(혹은 Lyapunov 함수)의 처리과정과의 유사성을 찾아냄으로서 BAM의 동작을 개념화할 수 있다.
: 네트워크의 각 상태를 에너지의 값으로 다음과 같은 식(Lyapunov Function/Energy Function)을 이용하여 표현할 수 있음


= 연결가중치에 의해 주어지는 신경망의 구조를 에너지 풍경(Energy Landscape)처럼 설명할 수 있음.


(1) 입력 패턴 벡터에 의해 설명되는 시스템의 초기상태는 에너지 풍경에서의 한점을 나타낸다.

(2) 만약 입력 벡터가 훈련 벡터 중 하나와 일치된다면, 시작점은 에너지 최소점(Energy Minima)의 하나이고, 만약 입력벡터가 훈력벡터의 집합에 있는 패턴과 다를 경우 시작점은 에너지 풍경에서의 높은 위치에너지상의 한 점이다.

(3) 새로운 패턴을 층들 사이에 계속적으로 반복시키는 것은 시스템에서의 에너지를 낮추는 것이며, 결국 신경망은 가장 일치되는 입력 패턴과 그와 관련된 출력이거나 그러한 패턴들의 보수를 나타내는 각 층에 있는 유닛들의 활성화인 상태로 정착한다.


= BAM의 연결 가중치는 초기화 후 변화되지 않기 때문에 패턴 정합(Pattern Matching)과 연상 기억 회상(Associative Memory Recall)은 입력 패턴 벡터에 의해 결정되는 에너지 풍경상에서의 한 점으로부터 시작하여, 연결 가중치 행렬에 의해 정의되는 Lyapunov 함수를 최소화함으로서 달성될 수 있는 것.



Comments