Hopfīlda tīkls

Vikipēdijas raksts
Pārlēkt uz: navigācija, meklēt

Hopfīlda tīkls ir viens no neironu tīklu veidiem, nosaukts tā radītāja Džona Hopfīlda vārdā. Hopfīlda tīkls modelē asociatīvo atmiņu — ar adresāciju pēc satura, nevis adreses/indeksa. Konkrēti — tas spēj noteikt, vai kaut kāds atšķirīgs (bojāts) attēls ir pietiekami līdzīgi kaut kādas grupas attēliem vai nē.

Struktūra[izmainīt šo sadaļu | labot pirmkodu]

  • Tīklā ir viens neironu slānis.
  • Neironu svaru vērtības ir simetriskas (w_{ji} = w_{ij}).
  • Neironu ieejas un izejas ir bināras (parasti \{-1; 1\} vai \{0; 1\}).


Apmācība[izmainīt šo sadaļu | labot pirmkodu]

Hopfīlda tīkla apmācība un darbināšana.

Atšķirībā no daudziem citiem neironu tīklu veidiem, Hopfīlda tīkla apmācība notiek vienā solī (savukārt darbināšana — parauga atpazīšana — notiek iteratīvi).

Svaru vērtības tiek izvietotas matricā, kuras kolonas apzīmē neironus, bet rindiņas — neironu svarus.

Svaru vērtības nosaka pēc formulas: w_{ji} = \begin{cases}
\sum_{s=1}^r p_{si} \cdot p_{sj}; & \mbox {ja } i \ne j \\
0; & \mbox {ja } i = j
\end{cases},
kur p_{s} — paraugs (bināru vērtību virkne), r — paraugu skaits.

Attēlā "Hopfīlda tīkla apmācība un darbināšana" redzams piemērs — augšējā matrica: divi 12 vērtību gari paraugi P1 un P2 un ar tiem apmācītā Hopfīlda tīkla svaru vērtības.

Darbināšana[izmainīt šo sadaļu | labot pirmkodu]

Katrā darbināšanas — parauga atpazīšanas procesa — iterācijā katram neironam atsevišķi tiek rēķināta:

  1. NET funkcija pēc formulas NET_{j} = \sum_{i=1}^n w_{ji} \cdot o_{i}, kur w_{ji}j-tā neirona i-tais svars, o_{i}i-tā neirona izejas vērtība (iepriekšējā iterācijā — jeb ieejas vērtība šajā iterācijā);
  2. izejas vērtība, izmantojot aktivizācijas funkciju: o_{j} = \begin{cases}
-1; & \mbox {ja } NET_{j} \le 0 \\
1; & \mbox {ja } NET_{j} > 0
\end{cases}

Attēlā zem svaru matricas redzams piemērs, atpazīstot paraugu X, kas ir sākotnējās ieejas vērtības (iepriekšējās iterācijas izejas vērtības).

Piemērā iezīmēta 4. neirona NET funkcijas rēķināšana 2. iterācijā.

Attēlā redzams, ka 3. un 4. iterācijas visu neironu atbilstošās NET funkciju vērtības sakrīt, kas norāda, ka atpazīšanas process ir konverģējis un 3. iterācijas izeju varam uzskatīt par meklēto attēlu (kā redzams, tas ir apmācības procesā ievadītais paraugs P1).

Ārējās saites[izmainīt šo sadaļu | labot pirmkodu]

Jānis Zuters. Neironu tīkli