Hopfield- hermoverkko on täysin yhdistetty hermoverkko, jossa on symmetrinen yhteysmatriisi. Toimintaprosessissa tällaisten verkkojen dynamiikka konvergoi (konvergoi) yhteen tasapainoasennoista. Nämä tasapainoasemat määritetään etukäteen oppimisprosessissa, ne ovat verkon energiaksi kutsutun funktion paikallisia minimejä (yksinkertaisimmassa tapauksessa negatiivisen määrätyn neliömuodon paikallisia minimejä n-ulotteisella kuutiolla). Tällaista verkkoa voidaan käyttää automaattisesti assosiatiivisena muistina , suodattimena ja myös joidenkin optimointiongelmien ratkaisemiseen .. Toisin kuin monet hermoverkot, jotka toimivat, kunnes vastaus saadaan tietyn jaksomäärän jälkeen, Hopfield-verkot toimivat kunnes tasapaino saavutetaan, jolloin verkon seuraava tila on täsmälleen sama kuin edellinen: alkutila on syötekuva, ja tasapainotilassa saadaan ulostulokuva [1] .
Sen muunnelma on Hammingin hermoverkko .
Hopfield-hermoverkko on suunniteltu siten, että sen vastaus muistiin tallennettuihin referenssikuviin muodostuu näistä kuvista itsestään, ja jos kuvaa hieman vääristetään ja sitä käytetään syötteeseen, se palautetaan ja alkuperäinen kuva saada vastauksen muodossa. Siten Hopfield-verkko suorittaa virheen ja kohinan korjauksen.
Hopfield-verkko on yksikerroksinen ja koostuu keinotekoisista neuroneista . Jokainen järjestelmän neuroni voi ottaa yhden kahdesta tilasta tulossa ja lähdössä (joka on samanlainen kuin kynnysaktivointitoiminnolla varustetun neuronin lähtö ) :
Bipolaarisen luonteensa vuoksi Hopfield-hermoverkkoja kutsutaan joskus spineiksi .
Jokainen neuroni on yhteydessä kaikkiin muihin hermosoluihin. Verkkohermosolujen vuorovaikutusta kuvataan lausekkeella:
jossa on vuorovaikutusmatriisin elementti , joka koostuu neuronien välisten yhteyksien painokertoimista. Oppimisprosessissa muodostuu lähtömatriisi , joka muistaa referenssi "kuvat" - N - ulotteiset binäärivektorit: , nämä kuvat verkon toiminnan aikana ilmaisevat järjestelmän vasteen tulosignaaleihin tai muuten - lopulliset arvot ulostuloista iteraatiosarjan jälkeen.
Hopfield-verkossa yhteysmatriisi on symmetrinen ( ), ja matriisin diagonaalielementtien oletetaan olevan nolla ( ), mikä eliminoi hermosolun vaikutuksen itseensä ja on välttämätön Hopfield-verkolle, mutta ei ole riittävä edellytys verkon toiminnan vakaudelle. Riittävä on verkon asynkroninen toimintatapa. Tällaiset ominaisuudet määrittelevät läheisen yhteyden todellisiin fysikaalisiin aineisiin, joita kutsutaan spin-laseiksi .
Vuorovaikutusten matriisi tallennetaan itse hermosoluihin painojen muodossa, kun hermosolut ovat yhteydessä muihin hermosoluihin.
Joten esimerkiksi jos tulosignaali määritellään 10 parametrilla, niin Hopfield-hermoverkko muodostuu yhdestä kerroksesta, jossa on 10 neuronia. Jokainen neuroni yhdistää kaikkiin muihin 9 neuroniin, joten verkossa on 90 (10 x 9) yhteyttä. Jokaiselle yhteydelle määritetään painotuskerroin . Kaikki yhteyksien painot muodostavat vuorovaikutusmatriisin, joka täyttyy oppimisprosessin aikana.
Verkon koulutus koostuu vuorovaikutusmatriisin painojen löytämisestä siten, että ne muistavat vektorit (referenssikuvat, jotka muodostavat järjestelmän "muistin".
Kertoimien laskenta perustuu seuraavaan sääntöön: kaikkien tallennettujen kuvien yhteysmatriisin on täytettävä yhtälö
koska tällä ehdolla verkon tilat ovat vakaat - kerran tällaisessa tilassa verkko pysyy siinä.
Muistiin tallennettujen vektorien on oltava binäärimuodossa. Painokertoimien laskenta suoritetaan seuraavan kaavan mukaan:
missä on vektorien ulottuvuus, on muistiin tallennettujen lähtövektorien lukumäärä, on muistiin tallennetun lähtövektorin numero, on muistiin tallennetun ulostulon j:nnen vektorin i:s komponentti.
Tämä lauseke voi tulla selvemmäksi, jos huomaamme, että painomatriisi voidaan löytää laskemalla kunkin muistiin tallennetun vektorin ulkotulo itsensä kanssa ja summaamalla näin saadut matriisit. Tämä voidaan kirjoittaa näin
missä on i:s muistiin tallennettu sarakevektori.
Näiden painokertoimien laskemista kutsutaan verkkoharjoitteluksi, joka suoritetaan vain yhden aikakauden ajan.
Hopfield -verkkooppimisalgoritmi eroaa merkittävästi sellaisista klassisista perceptron -oppimisalgoritmeista kuin virheenkorjausmenetelmä tai virheen takaisinpropagaatiomenetelmä . Erona on se, että peräkkäisen approksimoinnin sijaan haluttuun tilaan virhelaskelmalla, kaikki matriisikertoimet lasketaan yhden kaavan mukaan, yhdessä syklissä, jonka jälkeen verkko on heti käyttövalmis.
Jotkut kirjoittajat viittaavat Hopfield-verkostoon ohjaamattomaan oppimiseen . Mutta tämä ei ole totta, koska ohjaamaton oppiminen tarkoittaa, että ei ole tietoa siitä, mille luokille ärsykkeet tulisi osoittaa. Hopfield-verkon osalta painokertoimien säätäminen on mahdotonta ilman näitä tietoja, joten tässä voidaan vain sanoa, että tällainen verkko voidaan luokitella optimoivaksi verkkoksi (suodattimeksi). Suodattimien erottuva piirre on, että painomatriisia säädetään lopullisesti deterministisellä algoritmilla, minkä jälkeen painoja ei enää muuteta. Tämä voi olla kätevää tällaisen laitteen fyysisessä toteutuksessa, koska on suuruusluokkaa vaikeampaa toteuttaa laite, jolla on vaihtelevat painokertoimet piiritasolla. Esimerkki suodattimesta ilman palautetta on CC4 (Cornel Classification) -algoritmi, jonka on kirjoittanut S.Kak.
Hopfield-verkossa on palautetta ja siksi vakausongelma on ratkaistava. Hopfield-verkon hermosolujen välisiä painoja voidaan pitää vuorovaikutusmatriisina . Cohen ja Grossberg [2] osoittivat, että takaisinkytkentäverkko on vakaa, jos sen matriisi on symmetrinen ja sen päädiagonaalissa on nollia. On olemassa monia muitakin stabiileja järjestelmiä, kuten kaikki myötäkytkentäverkot sekä modernit Jordan- ja Elman-recurrent-verkot, joille symmetriaehto ei ole välttämätön. Mutta tämä johtuu siitä, että palautteisiin on asetettu muita rajoituksia. Hopfield-verkon tapauksessa symmetriaehto on välttämätön, mutta ei riittävä siinä mielessä, että myös verkon toimintatapa vaikuttaa stabiilin tilan saavuttamiseen. Alla näytetään, että vain verkon asynkroninen tila takaa verkon vakaan tilan saavuttamisen; synkronisessa tapauksessa on mahdollista ääretön vaihto kahden eri tilan välillä (tätä tilannetta kutsutaan dynaamiseksi houkuttimeksi , kun taas vakaa tila kutsutaan yleensä staattiseksi attraktoriksi).
Kun painot on annettu, koulutettu verkko pystyy "tunnistamaan" tulosignaalit - eli määrittämään, mihin tallennetuista näytteistä ne kuuluvat.
Syöttövektori käy läpi tietyn määrän iteraatioita, kunnes konvergenssi saavutetaan. Tässä tapauksessa osittain vääristyneet tai epätäydelliset näytteet tulee tunnistaa. Alkuvektorin arvot osoitetaan ensin verkon tulolle (täten tulosynapsien nimeäminen verkkokaaviossa eksplisiittisessä muodossa on puhtaasti tavanomainen). Sitten verkko muuttaa tilojaan peräkkäin kaavan mukaan:
missä on aktivointifunktio, ja ovat verkon nykyinen ja seuraava tila, kunnes tilat ja ovat samat (tai synkronisen toiminnan tapauksessa tilat , joissa on ja samanaikaisesti sen kanssa ). Tätä prosessia kutsutaan verkon konvergenssiksi. Tuloksena oleva vakaa tila (staattinen attraktori) tai synkronisessa tapauksessa { } -pari (dynaaminen houkutin) on verkon vaste annettuun tulokuvaan.
Verkon lähtö voi olla myös käänteinen vektori (jossa tallennetuissa näytteissä olevat arvot -1 ja 1 käännetään). Jos järjestelmä ei ole löytänyt ratkaisua, järjestelmän ulostulo voi olla myös triviaalivektoreita, jotka koostuvat vain luvusta 1 tai vain -1.
Koska takaisinkytkentäverkoissa on polkuja, jotka välittävät signaaleja lähdöistä tuloihin, tällaisten verkkojen vaste on dynaaminen, eli uuden tulon syöttämisen jälkeen lähtö lasketaan ja takaisinkytkentäverkon läpi kulkeva muuttaa sisääntuloa. Tulos lasketaan sitten uudelleen ja prosessi toistetaan yhä uudelleen ja uudelleen. Vakaassa verkossa peräkkäiset iteraatiot johtavat pienempiin ja pienempiin muutoksiin lähdössä, kunnes lopulta tuotos muuttuu vakioksi. Joissakin verkoissa prosessi ei lopu koskaan; tällaisia verkkoja kutsutaan epävakaiksi. Vakausongelmaa tarkastellaan seuraavassa osassa, mutta tässä tarkastellaan verkon pääkiertoa.
Kun painot on annettu, verkkoa voidaan käyttää opitun lähtövektorin saamiseksi tietystä tulovektorista, joka voi olla osittain virheellinen tai epätäydellinen. Tätä varten verkon lähdöille määritetään ensin tämän alkuvektorin arvot. Sitten verkko muuttaa tilojaan peräkkäin kaavan mukaan:
jossa F on aktivointifunktio ja ovat verkon nykyinen ja seuraava tila, kunnes tilat ja ovat samat (tai synkronisen toiminnan tapauksessa tilat , joissa on ja samanaikaisesti sen kanssa ). Tätä prosessia kutsutaan verkon konvergenssiksi.
Tätä voidaan kuvata myös ns. paikallisella kentällä , joka vaikuttaa neuroniin kaikista verkon muista neuroneista: .
Kun neuronin paikallinen kenttä on laskettu , tätä arvoa käytetään laskemaan ulostuloarvo aktivointifunktion kautta, joka tässä tapauksessa on kynnys (nollakynnyksen kanssa). Vastaavasti neuronin i lähdön arvo nykyisellä hetkellä lasketaan kaavalla:
,missä on painokerroin hermosolujen i ja j välillä, ovat neuronin j lähtöarvot edellisellä ajanhetkellä.
Hopfield-verkon toiminnan aikana merkki ratkaisun löytämisestä on hetki, jolloin saavutetaan attraktori, staattinen (kun stabiili tila toistetaan jokaisessa seuraavassa vaiheessa ) tai mahdollisesti dynaaminen (kun kaksi eri tilaa { } alternate ad ääretön ). Tämä on verkon lopullinen tila ja sen reaktio tähän kuvaan.
Normaali vastaus on niin vakaa tila, että se osuu yhteen harjoituksen aikana muistiin tallennetun vektorin kanssa. Mutta tietyissä olosuhteissa (erityisesti liian monilla tallennettuilla kuvilla) työn tuloksena voi olla ns. väärä attraktori ("kimeera"), joka koostuu useista erilaisten tallennettujen kuvien osista. Synkronisessa tilassa verkko voi tulla myös dynaamiseen houkuttimeen. Molemmat näistä tilanteista ovat yleensä ei-toivottuja, koska ne eivät vastaa mitään tallennettua vektoria - eivätkä näin ollen määritä luokkaa, jolle verkko on määrittänyt tulokuvan.
Hopfield-verkossa voi olla kaksi muunnelmaa, jotka eroavat signaalin lähetysajassa : asynkroninen ja synkroninen tila. Käytännössä käytetään vain asynkronista tilaa.
Jos verkko on mallinnettu yhdellä prosessorilla, niin synkronisessa tilassa hermosoluja tarkastellaan peräkkäin, mutta niiden tilat tallennetaan erikseen, eivätkä ne muutu ennen kuin verkon kaikki neuronit on kuljetettu. Kun kaikkia hermosoluja tarkastellaan, niiden tilat samanaikaisesti (eli synkronisesti, tästä nimi) muuttuvat uusiksi. Siten saadaan aikaan rinnakkaistoiminnan simulointi peräkkäisellä algoritmilla.
Todellisessa rinnakkaissimulaatiossa tämä tila tarkoittaa itse asiassa sitä, että jokaisen linkin siirtoaika elementtien välillä ja on sama jokaisella linkillä, jolloin kaikki linkit toimivat rinnakkain, ne muuttavat tilojaan samanaikaisesti, perustuen vain edelliseen pisteeseen. ajallaan. Sellaisten synkronisten kellojen läsnäolo, jotka voidaan helposti tunnistaa ja johtaa synkronisen tilan ymmärtämiseen. Synkronisessa tilassa kahden eri energian tilan loputon vuorottelu on mahdollista (vaikkakaan ei aina havaittu) - niin kutsuttu dynaaminen attraktori. Siksi synkronista tilaa ei käytännössä käytetä Hopfield-verkossa, ja sitä pidetään vain perustana monimutkaisemman asynkronisen tilan ymmärtämiselle.
Jos verkon toiminta mallinnetaan peräkkäisenä algoritmina, niin asynkronisessa toimintatavassa hermosolujen tilat seuraavalla ajanhetkellä muuttuvat peräkkäin: paikallinen kenttä lasketaan ensimmäiselle neuronille hetkellä , sen reaktio määritetään ja neuroni asetetaan uuteen tilaan (joka vastaa sen lähtöä hetkellä ), sitten lasketaan toisen neuronin paikallinen kenttä ottaen huomioon ensimmäisen hermosolun uusi tila, toisen hermosolun tila muuttuu ja niin edelleen - jokaisen seuraavan hermosolun tila lasketaan ottaen huomioon kaikki muutokset aiemmin tarkasteltujen hermosolujen tiloissa.
Itse asiassa Hopfield-verkon peräkkäisessä toteutuksessa ei ole selvästi nähtävissä, mikä asynkronia on, mutta sen voi nähdä, onko Hopfield-verkko toteutettu rinnakkaislaskennan avulla. Tässä tapauksessa Hopfield-verkon asynkroninen tila on yksinkertaistettu, ja se on erikoistapaus verrattuna asynkronisten verkkojen yleiseen muotoon, jossa kunkin elementin välisen yhteyden lähetysaika on erilainen , mutta vakio. Jotta voitaisiin tarkastella verkon toimintaa rinnakkaistoteutuksessa, on tarpeen ottaa käyttöön syklin käsite - minimiaikana, jonka signaali lähetetään yhteyden kautta, eli klo . Sitten ja välisen aikavälin aikana tapahtuu tietty määrä jaksoja N. Ja juuri N syklin aikarajan sisällä signaalivirrassa ja laskelmien suorittamisessa tapahtuu asynkronisuutta. Toisin sanoen esimerkiksi kun sinun on laskettava hermosolun #3 tila, sinun on laskettava hermosolun #1 tila ja neuronin #2 tila ja kerrottava tämä vastaavilla painoilla ja . Mutta kuten käy ilmi, neuronin #2 tilan laskemiseksi sinun on tiedettävä hermosolun #1 päivitetty tila ja neuronin #3 vanha tila, kerrottava ne painoilla ja . On selvää, että on fyysisesti mahdotonta laskea neuronin nro 1 ja hermosolun nro 2 tilaa samanaikaisesti, koska hermosolun nro 2 tila riippuu hermosolun nro 1 tilasta. neuronin nro 1 ja neuronin nro 3 välisellä yhteydellä on lähetysaika ja se saavuttaa hermosolun nro 3 kahdessa syklissä. Nimittäin tällainen erilainen lähetysaika antaa mahdollisuuden puhua Hopfield-verkosta asynkronisena verkkona.
Asynkronisessa tilassa dynaaminen attraktori on mahdoton: riippumatta tallennettujen kuvien määrästä ja alkutilasta verkko tulee varmasti vakaaseen tilaan (staattinen houkutin).
Jos harjoittelun aikana muodostetaan painokertoimien matriisi (interneuronaaliset yhteydet) referenssibinäärivektoreiden perusteella, niin yllä kuvattujen kenttien vaikutuksesta toimintaprosessissa oleva hermoverkko muuttaa neuronien tiloja, kunnes se vaihtuu yhteen. vakaista valtioista.
Olkoon hermoverkko dimensiolla , yhteysmatriisiin kirjoitetaan joukko mustavalkoisia kuvia (−1 - musta, +1 - valkoinen), joiden joukossa on koiran kuva (kuva oikealla ). Jos asetat verkon alkutilan lähelle tätä vektoria (kuva vasemmalla, vääristynyt kuva), niin dynamiikan aikana hermoverkko palauttaa alkuperäisen kuvan (viite). Tässä mielessä voidaan sanoa, että Hopfield-verkko ratkaisee hahmontunnistuksen ongelman (vaikka tarkalleen ottaen tuloksena oleva viitekuva on vielä muutettava luokkanumeroksi, mikä voi joissain tapauksissa olla erittäin laskennallisesti intensiivinen tehtävä).
vääristynyt kuva | Viite |
Perusero näiden kahden verkon toimintatavan välillä on, että asynkronisessa tapauksessa verkko tulee välttämättä yhteen vakaaseen tilaan. Synkronisesti tilanteet, joissa on ääretön syklinen siirtymä kahden eri tilan välillä, ovat mahdollisia.
Neuronin ns. keinotekoisen energian perusteella tietyssä kentässä on mahdollista määrittää, onko hermosolun tila vakaa vai ei . Jos hermosolun lähdön etumerkki (+1 tai −1) osuu yhteen paikalliskentän suunnan kanssa ( ), niin sen sijainti on energeettisesti vakaa ja seuraavalla kerralla hermosolun tila pysyy muuttumattomana. Muutoin ( ), hermosolun sijainti on epävakaa ja se muuttaa etumerkkiään siirtyen tilaan, jossa on energiaa .
Vakaus asynkronisella menetelmällä saavutetaan, koska verkon kokonaisenergian ehto täyttyy . Synkronisessa tapauksessa ehto muuttuu jonkin verran, nimittäin: . Tilanteessa, jossa tapahtuu äärettömiä syklisiä siirtymiä, kahden eri tilan energia on vastaavasti yhtä suuri kuin ja . Tässä tapauksessa tilat ja , sekä ja — ovat samat. Jos tällainen tila muodostuu, sitä kutsutaan dynaamiseksi attraktoriksi. Jos tilat ja ovat samat , attraktoria kutsutaan staattiseksi. Useimmissa tapauksissa dynaamiset houkuttimet eivät ole toivottavia, koska ne eivät vastaa mitään tiettyä verkkovastetta.
Palauteverkosto muodostaa assosiatiivisen muistin . Hopfield-verkko voidaan liittää autoassosiatiiviseen muistiin, toisin sanoen sellaiseen, joka voi täydentää tai korjata kuvan, mutta ei voi yhdistää vastaanotettua kuvaa toiseen kuvaan. Stabiilin autoassosiatiivisen muistin järjestämiseksi takaisinkytketyn verkon avulla painot on valittava siten, että ne muodostavat energiaminimit yksikköhyperkuution haluttuihin pisteisiin .
Visuaalinen kuvankäsittely (suodatus ja assosiatiivinen muisti) ei ole Hopfield-mallin ainoa sovellus. Yllä kuvattu dynaaminen menettely alentaa hermoverkon energia-arvoa jokaisessa vaiheessa. Tämä mahdollistaa kombinatoristen optimointiongelmien ratkaisemisen , jos ne voidaan muotoilla energian minimointiongelmiksi. Tämän tyyppinen klassinen ongelma on matkustava myyjä - ongelma .
( Matkamyyjän ongelmaa ei voi ratkaista Hopfieldin hermoverkon avulla) Hopfield-verkon avulla voidaan ratkaista matkustava myyjä -ongelma (sinun täytyy kiertää kaikki n kaupunkia ja palata alkuperäiseen niin, että kuljetun reitin pituus on minimaalinen). Voit tehdä tämän asettamalla verkolle esimerkiksi seuraavat vaatimukset:
Osoittautuu, että seuraavat yksinkertaiset seikat riittävät ratkaisemaan tämän ongelman:
Kaikki nämä ehdot täyttyvät seuraavalla kaavalla reitillä olevaa kaupunkia vastaavan hermosolun ja sijainnissa olevaa kaupunkia vastaavan neuronin välisen painon laskemiseksi :
missä A, B, C, D ovat joitain vakioita, on kaupunkien välinen etäisyys ja , on Kronecker-symboli , joka saa arvon 1, jos x=y ja arvon 0 muuten. Kuten on helppo nähdä, ensimmäinen termi on yhtä suuri kaikille saman rivin yhteyksille ( ), paitsi neuronin yhteydelle itsensä kanssa (pisteessä ). Toinen termi on sama kaikille linkeille samassa sarakkeessa ( ) paitsi linkki itseensä ( ). Kolmas termi on verrannollinen kaupunkien väliseen etäisyyteen ja siihen, jos nämä kaupungit ovat reitillä vierekkäin ( tai ).
Jos tällainen verkko saatetaan satunnaiseen alkutilaan, voimme odottaa, että tuloksena oleva vakaa tila antaa meille alioptimaalisen polun, jonka pituus ei ylitä optimaalista liikaa (polku itsessään voi poiketa merkittävästi optimaalisesta yksi). Vastaavasti käytännön soveltamista varten verkkoa tulisi ajaa useita kertoja ja valita paras polku.
Ratkaisu tähän ongelmaan ei ole kiinnostava niinkään sen laadun vuoksi (on algoritmeja, jotka ratkaisevat sen tehokkaammin [3] ), vaan optimointiongelmien lähestymistavan vuoksi: jos on mahdollista kääntää tietyn ongelman ehdot neuronien välisten yhteyksien parametrit, niin se voidaan verkolla ratkaista suhteellisen hyvin ilman lisäanalyysiä.
Valitettavasti Hopfield-hermoverkolla on useita haittoja.
1. Suhteellisen pieni määrä muistia, jonka arvo voidaan arvioida lausekkeella:
Yritys tallentaa lisää kuvia johtaa siihen, että hermoverkko lakkaa tunnistamasta niitä.
2. Vakaan tilan saavuttaminen ei takaa verkon oikeaa vastetta. Tämä johtuu siitä, että verkko voi konvergoida niin sanottuihin vääriin attraktoreihin, joita joskus kutsutaan "kimeereiksi" (yleensä kimeerat liimataan yhteen eri kuvien fragmenteista).
Keinotekoisten neuroverkkojen tyypit | |
---|---|
|
Koneoppiminen ja tiedon louhinta | |
---|---|
Tehtävät | |
Opettajan kanssa oppimista | |
ryhmäanalyysi | |
Mittasuhteiden vähentäminen | |
Rakenteellinen ennustaminen | |
Anomalian havaitseminen | |
Piirrä todennäköisyysmallit | |
Neuroverkot | |
Vahvistusoppiminen |
|
Teoria | |
Lehdet ja konferenssit |
|