본 < 지능형 시스템 > 시리즈는 부산대 정보컴퓨터공학과 차의영 교수님의 '지능형 시스템' 강의에서 배운 내용을 바탕으로 작성합니다.
물리학자 존 홉필드가 제안한 신경망의 물리적 모델이다.
자신을 제외한 모든 유니트들 간에 양방향으로 상호 연결된 네트워크.
M < 0.15 * N
(1) 학습 패턴을 양극화(바이폴라)로 바꾼다.
'0' 이 정보의 손실을 낼 수 있기 때문에
학습할 때 바이폴라로 바꾸는 것.
2) 학습 패턴에 대한 홉필드 넷의 가중치 행렬을 계산
가중치 행렬을 계산하고 나서,
네트워크의 threshold (세타) 를 계산
3) 계산된 가중치 행렬을 저장
4) 입력 패턴이 들어오면 저장된 가중치 행렬을 이용하여 입력 패턴에 대한 학습 패턴을 연상
입력패턴에 대한 "각각의 bit update"를 한다.
예제로 살펴보자.
두 벡터를 학습시키고 싶다고 하자.
- 학습벡터
a(1) = 1 = [1110]
a(2) = 3 = [1100]- 입력벡터
b = [0100]
아래를 구하시오.
dE/dt<=0
을 만족하는 한 에너지함수가 최소가 되어 안정구조로 수렴하게 된다.
- (오타) 3개 뉴런 ➡️ 4개 뉴련
이렇게 해서 총 16개의 에너지 값을 계산하면, 아래와 같은 결과가 나오게 된다.
영어 26개, 숫자 10개에 대해 "hopfield Net"를 쓴다면 최소 몇개의 뉴런이 필요한가?
영어 26개, 숫자 10개에 대해 "퍼샙트론"을 쓴다면 최소 몇개의 뉴런이 필요한가?
241 개
➡️ M < 0.15 * N
이므로 M/0.15 < N
36 / 0.15 = 240 < N
따라서 241 개이다.
6 개
➡️ 36은 2의 5승 보다 크고 2의 6승보다 작기 때문에 최소 6개가 필요하다.