ჰოპფილდის ქსელი

**ჰოპფილდის ქსელი** — რეკურენტული, ხელოვნური ნეირონული ქსელია, რომელსაც პოპულარიზაცია გაუწია ჯონ ჰოპფილდიმა 1982 წელს, თუმცა 1974 წელს ლიტლიმ აღწერა. ჰოპფილდის სისტემები ემსახურება ასოციაციურ მეხსიერებას, ორობითი ზღურბლის კვანძებით. ეს სისტემები გარანტირებულად იკრიბებიან ლოკალურ მინიმუმებში, თუმცა ხანდახან სწორის ნაცვლად, არასწორ ლოკალურ მინიმუმში იკრიბებიან. ჰოპფილდის სისტემები ასევე გვთავაზობს მოდელს ადამიანის მახსოვრობის გასაგებად.

## სტრუქტურა 
მინი|ჰოპფილდის ქსელი ოთხი კვანძით
ჰოპფილდის ქსელის ერთეულები, არიან ორობითი ზღურბლის ერთეულები. რაც ნიშნავს იმას, რომ ერთეულები იღებენ მხოლოდ ორ განსხვავებულ მნიშვნელობას და ეს მნიშვნელობა განმარტებულია იმის მიხედვით, აღაგზნებს თუ არა მდგომარეობას მიღებული ინფორმაცია. ჩვეულებრივ, ჰოპფილდის ქსელებს აქვს ერთეულები, რომლებიც იღებენ ორ მნიშვნელობას 1-სა და -1-ს, სწორედ ასეთი შეთანხმება იქნება გამოყენებული მთელს დარჩენილ სტატიაში. სხვა წყაროებში ასევე ხშირად გამოიყენება მნიშვნელობები 0 და 1. I და j ერთეულების ნებისმიერ წყვილს აქვს კავშირი ერთმანეთთან, ეს კავშირი აღწერილია კავშირის სიმძიმით -  w_ij       ამიტომაც, ჰოპფილდის ქსელი ფორმალურად შესაძლოა აღიწეროს გრაფით G(V,f), სადაც V არის მაკკულოხ-პიტის ნეირონების სიმრავლე, ხოლო f: V^2 → R არის ფუნქცია, რომელიც კვანძების წყვილებს აკავშირებს ერთმანეთთან და უსაბამებს რეალურ რიცხვს, ეს არის სწორედ კავშირის წონა. ჰოპფილდის ქსელში კავშირებს შემდეგი შეზღუდვები აქვს: 
*    w_{ii}=0      (არცერთ ერთეულს არ აქვს კავშირი თავის თავთან))
*     w_{ij}=w_{ji}    (კავშირები სიმეტრიულია))
ის შეზღუდვა, რომ წონები სიმეტრიულია გარანტიას იძლევა, რომ ენერგიის ფუნქცია მონოტონურად კლებადია, თუ ყველა აქტივაციის წესს დავიცავთ. ჰოპფილდის ქსელმა არასიმეტრიული წონებით შესაძლოა პერიოდული ან ქაოტური ქცევები გამოამჟღავნოს. თუმცა ჰოპფილდმა აჩვენა, რომ ეს მაინც არ მოახდენს გავლენას ქსელის უნარზე, იფუნქციონიროს ასოციაციური მახსოვრობის მექანიზმის მსგავსად. 

## განახლება 
ერთი ერთეულის ატვირთვა ჰოპფილდის ქსელში შემდეგი წესით ხორციელდება:

    s_i=1     როცა     \sum w_{ij} s_j >= \theta_i   და   s_i =-1  სხვა ნებისმიერ შემთხვევაში

სადაცː
*     w_{ij} არის კავშირის წონა i და j ერთეულებს შორის
*     s_j არის j ერთეულის მდგომარეობა
*     \theta_i არის i ერთეულის ზღურბლი
ატვირთვა ჰოპფილდის ქსელში შეიძლება მოხდეს ორნაირად:
* **ასინქრონული**: მხოლოდ ერთი ერთეულია იქნება ატვირთული ერთჯერადად. ეს ერთეული იქნება ამორჩეული შემთხვევითად ან რაიმე თავიდანვე შეთანხმებული წესის მიხედვით.
* **სინქრონული**: ყველა ერთეული განახლდება ერთდროულად. ამ შემთხვევაშის აჭიროა ერთგვარი ცენტრალური საათი რათა სინქრონულობა შევინარჩუნოთ. მიიჩნევა, რომ ეს მეთოდი ნაკლებად რეალისტურია.

### იზიდავენ თუ განიზიდავენ ნეირონები ერთმანეთს 
ორ ერთეულს შორის წონებს დიდი გავლენა აქვს ნეირონების მდგომარეობებზე (მნიშვნელობებზე). განვიხილოთ კავშირის წონა   ორ ნეირონს i და j შორის. თუ     w_{ij}>0     განახლების წესი გვკარნახობს:
* როდესაც     s_i=1  j  ნეირონის კონტრიბუცია ჯამში დადებითია. 
* როდესაც     s_i=-1  ,j ნეირონის კონტრიბუცია ჯამში უარყოფითია. 
ასევე, i და j ნეირონების მნიშვნელობა კრებადია თუ მათ შორის კავშირის წონა დადებითია, ხოლო თუ უარყოფითია - მნიშვნელობები განშლადია.

## ენერგია 
მარჯვნივ|მინი|500x500პქ|ენერგეტიკული სურათი ჰოპფილდის ქსელისა, რომელზეც გამოკვეთილად ჩანს არსებული მდგომარეობა. ნახაზზე ხედავთ მინიმალურ ენერგიას, მიმზიდავ ლოკალურ მინიმუმს და მიზიდვის ცენტრს. ასევე ჩანს როგორ ხდება ინფორმაციის განახლება.
ჰოპფილდის ქსელებს აქვთ სკალარული მნიშვნელობა თითოეული მდგომარეობისთვის, რომელსაც ენერგიას ვუწოდებთ ქსელისა, რომელიც, მოიცემა შემდეგნაირად:
 E=-1/2 \sum w_{ij} s_i s_j + \sum \theta_i s_i  
მას ჰქვია ენერგია, რადგან თუ ერთეულებს შევარჩევთ შემთხვევითად, მისი მნიშვნელობა ან დაიკლებს ან დარჩება იგივე. უფრო მეტიც, თუ გავიმეორებთ განახლებებს, საბოლოოდ ქსელი დაეშვება იმ მდგომარეობამდე, როდასაც მისი მდგოამრეობა მიიღებს ლოკალურ მინიმალურ მნიშვნელობას ენერგის ფუნქციაში (ამას ეწოდება ლიაპუნოვის ფუნქცია). თუ მდგომარეობა არის ლოკალური მინიმუმი ენერგიის ფუნქციაში, ის მაშინ სტაბილური მდგოამრეობაა. აღსანიშნავია, რომ ეს ენერგიის ფუნქცია ეკუთვნის ფიზუკური მოდელების ზოგად კლასს და სახელის **ისინგის** მოდელის ქვეშ ერთიანდება. უფრო კონკრეტულად, ესენი არიან მარკოვის ქსელები, რამდენადაც ასოციაციურ ალბათურ გაზომვებსა და გიბსის გაზომვებს აქვს მარკოვის ქსელის თვისებები. 

## ინიციალიზაცია და მუშაობა 
ჰოპფილდის ქსელების ინიციალიზაცია ხდება ერთეულებისთვის საწყისი მნიშვნელობების მინიჭებით. შემდეგ ხდება განახლება მანამ, სანამ ქსელი არ შეიკრიბება მიმზიდველ ფორმამდე. კრებადობა ზოგადად უეჭველია. როგორც ჰოპფილდმა დაამტკიცა, ამ არაწრფივი დინამიკური სისტემის მიმზიდველები სტაბილურები არიან, ზოგი სხვა სისტემისგან განსხვავებით არც პერიოდული და არც ქაოტურები არიან. შესაბამისად, ჰოპფილდის სისტემების კონტექსტის მიხედვით, მიმზიდველები სისტემის საბოლოო სტაბილური ფორმები არიან და შეუძლებელია მათი შეცვლა ნებისმიერი შიდა განახლებით.

## გაწვრთნა 
„გაწვრთნა“ ჰოპფილდის ქსელში გულისხმობს „დასამახსოვრებელ“ მდგომარეობაში ენერგიის დონის დადაბლებას. ეს აძლევს საშუალებას ქსელს, რომ მოიქცეს, როგორც ასოციაციური მეხსიერება. ქსელს ასევე შეუძლია, რომ აღდგეს მოსალოდნელისგან ოდნავ გადახრილი ინფორმაციის ატვირთვის შემთხვევაში იმ მდგომარეობამდე, რომელიც ყველაზე ახლოსაა აღნიშნულ ინფორმაციასთან. ამიტომაც ჰქვია მას ასოციაციური მეხსიერება, რადგანაც შეუძლია აღადგინოს მეხსიერება მსგავსებებზე დაყრდნობით. მაგალითად, თუ გავწვრთნით ჰოპფილდის ქსელს ისე რომ ჰქონდეს 5 ერთეული მდგომარეობებით (1,-1,1,-1,1) ენერგიის მინიმუმად, და გადავცემთ ქსელს მდგომარეობას (1, -1, -1, -1, 1) ის მიიღებს სახეს (1, -1, 1, -1, 1). ეს იმიტომ, რომ ძალიან მნიშვნელოვანია მდგომარეობა შენარჩუნდეს ენერგეტიკულ მინიმუმზე.

### სწავლის წესები 
არსებობს რამდენიმე განსხვავებული სწავლების წესი, რომლებიც შესაძლოა გამოვიყენოთ, რომ ჰოპფილდის ქსელებს შევანახინოთ ინფორმაცია. სასურველია, რომ სწავლების წესებს ჰქონდეთ შემდეგი ორი თვისება:
* •	ლოკალური: სწავლების წესი არის ლოკალური, თუ თითოეული წონა განახლებადია მის გარშემო არსებული ნეირონებით და მხოლოდ ეს ნეირონებია საკამრისი.
* •	განახლებადი: ახალი ფორმების ათვისება შესაძლებელია უკვე არსებული ძველი ფორმებისგანაა, რომლებიც გაწვრთვნისთვის გამოიყენეს. ასეა მაგალითად, როცა ახალი ფორმა გამოიყენება წვრთვნისთვის და ახალი წონების მნიშვნელობები მხოლოდ დამოკდიებულია ახალ და ძველ ფორმებზე.
ეს თვისებები სასურველია, რადგან თუ სწავლების წესები ამ თვისებებს აკმაყოფილებენ, მაშინ ისინი მეტად შესაძლებელი და დასაშვებია ბიოლოგიურად. მაგალითად, რადგან ადამიანის ტვინი მუდმივად სწავლობს ახალ კონცეპტებს, შესაძლოა ითქვას, რომ ადამიანის სწავლება განახლებადია. ისეთი სისტემები, რომლებიც განახლებადი არ არიან მხოლოდ ერთხელ არის შესაძლებელი, რომ გამოიწვრთნან დიდი რაოდენობის მონაცემებით.

### ჰებიანური სწავლების წესი ჰოპფილდის ქსელისთვის 
ჰებიანური თეორია 1949 წელს დონალდ ჰებმა ჩამოაყალიბა, რომ „ასოციაციური სწავლება“ აეხსნა. აღნიშნულ თეორიაში, ნეირონული ქსოვილების ერთდროული აქტივაცია ამ ქსოვილებს შორის სინაფსური სიძლიერის გაზრდას იწვევს. ეს წესი ზოგადად ასე ყალიბდება: „ნეირონები, რომლებიც ერთად აღიგზნებიან, ერთმანეთს უკავშირდებიან და ერთ სისტემად ყალიბდებიან. ნეირონები, რომლებიც ცალ-ცალკე აღიგზნებიან, ერთმანეთს არ უკავშირდებიან.“ 

ჰებიანის წესი არის ორივე, ლოკალურიც და განახლებადიც. ჰოპფილდის ქსელისათვის ის ჩაიწერება შემდეგნაირად, როცა n ცალი ახალი ორობითი მოდელი ისწავლება:

  w_{ij}=1/n \sum \epsilon_i^\alpha  \epsilon_j^\alpha  

სადაც   \epsilon_i^\alpha   წარმოადგენს i  ბიტს მოდელიდან   \alpha  
თუ ბიტები i  და j  ერთმანეთის ტოლია მაშინ    \epsilon_i^\alpha  \epsilon_j^\alpha  დადებითი იქნება. მაშინ მათ ექნებათ დადებითი ეფექტი წონაზეც. შესაბამისად i  და j  ერთეულები კიდევ უფრო დაუახლოვდებიან ერთმანეთს. საწინააღმდეგო ხდება როდესაც ბიტები i  და j  ერთმანეთის ტოლი არ არის.

### სტორკის სწავლების წესი 
წესი 1997 წელს ამოს სტორკმა ჩამოაყალიბა. ეს წესი როგორც ლოკალური, ასევე განახლებადია. სტორკმა აჩვენა, რომ თუ ჰოპფილდის ქსელი გამოიწვრთნება მისი წესით, მაშინ მას ექნება მეტი ტევადობა, ვიდრე ჰებიანის წესის შემთხვევაში. სტორკის სწავლების წესის ალგორითმი კავშირის წონისათვის შემდეგია:

 w_{ij}^v=w_{ij}^{v-1} +(1/n) \epsilon _i^v \epsilon_j^v - (1/n )\epsilon _i^v h_j^v  - (1/n) \epsilon _i^v h_{ij}^v  

სადაც   h_{ij}^v = \sum w_{ik}^{v-1} \epsilon_k^v     არის i ნეირონის ლოკალური ველის ფორმა. 

ეს სწავლების წესი ლოკალურია, რადგანაც სინაფსები ითვალისწინებენ მხოლოდ ნეირონების ნაწილს. ეს წესი საბოლოო ჯამში უფრო მეტი ინფორმაციის შენახვის საშუალებას იძლევა, რადგანაც ის იყენებს ლოკალურ ველს განსხვავებით ჰებიანის წესისა.

## ყალბი მოდელები 
ის მოდელები, რომლებსაც ქსელი იყენებს წვრთნისთვის (აღმდგენი მდგომარეობები) სისტემის მიმზიდველი მოდელები ხდება. მუდმივი განახლება სისტემას მიიყვანს აღმდგენ მდგომარეობამდე. თუმცა ხანდახან სისტემები საბოლოოდ ყალბ მოდელებამდე მივლნენ (გამომწვრთნელი მოდელებისგან განსხვავებულ). ენერგიაც ასევე ლოკალური მინიმუმია აღნიშნულ მოდელში. 

შესაძლოა რომ ყალბი მოდელი იყოს წრფივი კომბინაცია კენტი რაოდენობის აღმდგენი მოდელებისა. მაგალითად, როდესაც ვიყენებთ სამ მოდელს   \alpha_1 ,\alpha_2, \alpha_3 

 \epsilon_i^{mix}=\pm sgn(\pm \epsilon_i^{\alpha_1} \pm \epsilon_i^{\alpha_2} \pm \epsilon_i^{\alpha_3})) 

ყალბ მოდელებს შეუძლებელია ჰქონდეთ ლუწი რაოდენობა მდგომარეობებისა, რადგან ის შეიძლება აიჯამოს 0-ზე.

## ტევადობა 
ქსელის ტევადობა ჰოპფილდის ქსელში განსაზღვრულია ნეირონების რაოდენობით და კავშირებით მოცემულ ქსელში. შესაბამისად, რაოდენობა, ანუ თუ რამდენი ინფორმაციის შენახვაა შესაძლებელი, დამოკიდებულია ნეირონების რიცხვსა და კავშირებზე. უფრო მეტიც, აჩვენეს, რომ ყოველ 1000 კვანძე შეიძლება 138 ვექტორის შენახვა. ცხადია, რომ თუ იმაზე მეტი ინფორმაცის შენახვას ვეცდებით, ვიდრე ქსელს შეუძლია, მაშინ ბევრი შეცდომა დაგროვდება სისტემაში. ხშირად ისეც ხდება, რომ სხვადასხვა გადაცემული ინფორმაცია ერთში ირევა, როდესაც ვიყენებთ ჰოპფილდის ქსელს. საბოლოოდ, შეიძლება ითქვას, რომ იდეალურ შემთხვევაში 0.14 არის ის კოეფიციენტი, რომლითაც შესაძლებელია ინფორმაციის შენახვა, რაც გულისხმობს ყოველ 100 ნეირონულ კვანძზე 14 მდგომარეობის შენახვას..

## ადამიანის მეხსიერება 
როდესაც დამახსოვრებულ ვექტორს ვიყენებთ, ეს ოდნავ შეაშფოთებს არსებულ მოდელს. მიუხედავად ამისა ჩვენ მაინც ვხედავთ, რომ ახალი ინფორმაცია შემოდის. ჰოპფილდის ქსელისათვის ეს პროცესი აღიწერება ორი ოპერატორით ავტოასოციატორითა და ჰეტეროასოციატორით. პირველი მაშინ ვლინდება, როდესაც ვექტორი ასოცირებს თავის თავთან, ხოლო მეორე როდესაც ორი ვექტორი მახსოვრობიდან ერთმანეთთან ასოცირებენ. ორივე სახის ოპერატორი ინახება მახსოვრობაში, თუმცა მხოლოდ იმ შემთხვევაში, როცა არა ცალკეული, არამედ ორივე ოპერატორის კომბინაციის შენახვას ვეცდებით. აქ გასათვალისწინებელია ის ფაქტი, რომ ჰოპფილდის ქსელი აქ იყენებს ჰების მახსოვრობის წესს, რომელიც აჩვენებს, რომ დამახსოვრება ეს არის ნეირონებს შორის კავშირის გაძლიერების შედეგი.

პუზუტომ და კაჰანამ (2001) წელს აჩვენეს, რომ ნეირონული ქსელი შესაძლოა იყოს მუდმივად განახლებადი (განმეორებადი), თუ ვიყენებთ ალბათური დასწავლის ალგორითმს. აჩვენეს, რომ ამ დროს კავშირების სიძლიერეები ფიქსირებული რჩება და ასევე შესაძლებელია შენახვიდან გახსენების პროცესსზე უპრობლემოდ გადასვლა. შესაძლებელია იმის ჩვენება, რომ დავიწყების პროცესით რომელის ჰოპფილდის მოდელში მიმდინარეობს რეალურად წაადგება მთელს სისტემას საერთო ჯამში.

მაკკულიხის და პიტის (1943) დინამიკური წესი აჩვენებს, რომ ბევრი ნეირონის აქტივაცია ფარავს ახალი ნეირონების აქტივაციას. ასევე ახდენს გავლენას ნეირონებს შორის კავშირების სიძლიერეზე. აღიშნულ წესს ჰოპფილდი იმისთვისაც იყენებს, რომ აღმდგენი მდგომარეობების შესაძლებლობა აჩვენოს ჰოპფილდის სისტემებში. აღსანიშნავია, რომ ჰოპფილდის სისტემებს ურჩევნია არაწრფივი აქტივაცის ფუნქციების გამოყენება, ვიდრე წრფივისა. ეს შესაძლოა ითქვას, რომ არის ჰოპფილდის დინამიკური წესი. ამით ჰოპფილდმა შეძლო ეჩვენებინა, რომ არაწრფივი აქტივაციის ფუნქციის გამოყენების შემთხვევაში დინამიკური წესი ყოველთვის შეინახავდა ვექტორებს უკვე არსებული ფორმის მიხედვით.

## რესურსები ინტერნეტში 
* თავი 13 "Hopfield მოდელი of *Neural Networks - სისტემატური შესავალი* მიერ რაულ Rojas ()
* Hopfield ქსელი Javascript
* მოგზაურობა გამყიდველი პრობლემა  - Hopfield ნერვული ქსელის JAVA აპლეტი
* scholarpedia.org - Hopfield ქსელი - სტატია Hopfield ქსელები ჯონ Hopfield
* Hopfield ქსელი სწავლის გამოყენებით დეტერმინისტული ლატენტური ცვლადები - სამეურვეო მიერ ტრისტან ფლეტჩერი
* ნერვული ლაბორატორია გრაფიკული ინტერფეისი - Hopfield ნერვული ქსელის გრაფიკული ინტერფეისი (Python და gtk)
კატეგორია:ხელოვნური ნეირონული ქსელები

## სქოლიო