dr inż. Michał Malinowski

bazy grafowe, sztuczna inteligencja, cyberbezpieczeństwo

Sieć Hopfielda


Mechanizm Pamięci Asocjacyjnej


October 11, 2024

[Picture]
Sieć Hopfielda
Sieć Hopfielda,  to specyficzny rodzaj sieci neuronowej, której głównym celem jest modelowanie pamięci asocjacyjnej. W odróżnieniu od tradycyjnych sieci neuronowych stosowanych w rozpoznawaniu wzorców czy klasyfikacji, sieć Hopfielda pełni funkcję systemu do przechowywania i przywoływania wzorców na podstawie niekompletnych lub zaszumionych danych. Sieć ta, wprowadzona przez Johna Hopfielda w 1982 roku, ma strukturę pełnej sieci rekurencyjnej, co oznacza, że każdy neuron w sieci jest połączony z każdym innym neuronem.

Jak działa sieć Hopfielda?

Sieć Hopfielda jest zbudowana z neuronów o dwustanowych wyjściach, które przyjmują wartość +1 lub -1 (czasem interpretowane jako 0 i 1). Neurony są połączone ze sobą symetrycznymi wagami, co oznacza, że jeśli neuron A wpływa na neuron B z wagą WAB​, to neuron B wpływa na neuron A z tą samą wagą WBA​.
Zadaniem sieci Hopfielda jest stabilizacja w jednym ze stanów równowagi, które odpowiadają zapisanym wzorcom. Proces ten nazywany jest relaksacją sieci. Gdy sieć otrzyma niekompletny lub zniekształcony sygnał wejściowy, stopniowo "koryguje" swoje stany, aż znajdzie się w jednym z zapisanych stanów, co oznacza poprawne rozpoznanie wzorca.

Cechy sieci Hopfielda

  • Pamięć asocjacyjna: Sieć Hopfielda może przechowywać wzorce i przywoływać je na podstawie fragmentarycznych danych.
  • Stany stabilne: Sieć dąży do jednego z zapisanych stanów, które są minimami funkcji energii. Jest to analogiczne do stabilnych stanów energetycznych w układach fizycznych.
  • Symetryczne wagi: Wagi między neuronami są symetryczne, co oznacza, że wpływ neuronów na siebie nawzajem jest równy.
  • Dyskretny lub ciągły model: Sieć może działać w dwóch trybach – dyskretnym, gdzie neurony przyjmują tylko dwie wartości, oraz ciągłym, gdzie mogą przyjmować wartości z pewnego zakresu.

Zastosowania sieci Hopfielda

Sieć Hopfielda jest używana w wielu dziedzinach, zwłaszcza tam, gdzie istotne jest przechowywanie i przywoływanie informacji na podstawie częściowych danych. Przykładowe zastosowania obejmują:
  • Pamięci asocjacyjne: Zdolność do przywoływania pełnych wzorców na podstawie częściowych danych.
  • Rozpoznawanie obrazów: W sytuacjach, gdy obrazy są zaszumione lub niekompletne, sieć Hopfielda może służyć do ich rekonstrukcji.
  • Optymalizacja: Sieci te mogą być stosowane do rozwiązywania problemów optymalizacyjnych, takich jak problem komiwojażera, gdzie szukamy najkrótszej możliwej trasy między wieloma miastami.
  • Korekcja błędów: W systemach komunikacyjnych, gdzie przesyłane dane mogą być uszkodzone, sieci Hopfielda mogą służyć do ich naprawy.

Wady i ograniczenia sieci Hopfielda

Choć sieć Hopfielda jest interesującym modelem pamięci asocjacyjnej, ma również pewne ograniczenia:
  • Ograniczona pojemność pamięci: Sieć Hopfielda może przechowywać jedynie około 0.15N wzorców, gdzie N to liczba neuronów w sieci. Po przekroczeniu tej liczby sieć staje się niestabilna i może przywoływać niepoprawne wzorce.
  • Zbieżność do fałszywych minimów: Sieć nie zawsze zbiega do pożądanego wzorca, czasami może utknąć w tzw. fałszywych minimach, które nie odpowiadają żadnemu z zapisanych wzorców.
  • Symetryczne wagi: Wymóg symetryczności wag jest ograniczeniem w niektórych zastosowaniach, co sprawia, że nie jest to model uniwersalny.

Podsumowanie

Sieć Hopfielda to potężne narzędzie do pamięci asocjacyjnej, pozwalające na przechowywanie i przywoływanie wzorców na podstawie niekompletnych danych. Choć ma pewne ograniczenia, zwłaszcza w kwestii pojemności i stabilności, znajduje zastosowanie w wielu dziedzinach, takich jak optymalizacja czy rozpoznawanie obrazów. Dzięki swojej zdolności do znajdowania stanów równowagi, sieci te mają szerokie zastosowania w naukach kognitywnych i systemach sztucznej inteligencji. 
#NeuralNetworks #HopfieldNetwork #MachineLearning #AI #PatternRecognition