A biológia és az informatika egyik legnagyobb közös területe az idegsejthálózatok kutatása és mesterséges idegsejthálózatok készítése. A mesterséges intelligencia korunk egyik legfontosabb vívmánya, ezért cégünk is komoly hangsúlyt fektet a kutatására.

1. A neurális hálók típusai

Az általunk fejlesztett rendszerben a következő neurális hálózattípusokat különböztetjük meg:

  • Neurális háló (Network)
    • Általános neurális háló (gráf alapú)
    • Réteges neurális háló (tenzor alapú)
      • Teljesen kapcsolt neurális háló
      • Konvolúciós neurális háló

A gráf alapú általános (visszacsatolt) és a tenzor alapú réteges (egyirányú) neurális hálók felépítésének összehasonlítása:

2. A teljesen kapcsolt neurális háló

Teljesen kapcsolt esetben a háló szomszédos rétegeiben mindegyik neuron össze van kapcsolva a szomszédos réteg minden neuronjával. Ez jó, mert egészen bonyolult feladatokra is képes, viszont nagy az erőforrásigénye.

2.1. A teljesen kapcsolt neurális háló elemei

A háló k db. n dimenziós rétegből (layer) és k-1 db. 2n dimenziós súlytenzorból áll, amely a szomszédos rétegek közötti súlyokat tárolják. A rétegek neuronjainak állapotát n dimenziós tenzorok tárolják:

  • L1, ..., Lk: a rétegek neuronjainak állapotát tároló, d1(i), d1(i), .... , dn(i) méretű, n dimenziós tenzorok (i = 1, ..., k)
  • W1, ..., Wk-1: a rétegek közötti súlyokat tároló d1(i), d1(i), .... , dn(i), dn+1(i), dn+2(i), .... , d2n(i) méretű, 2n dimenziós tezorok (i = 1, ..., k-1)

A zárójelbe tett szám a réteg sorszámát jelenti.

2.2. A teljesen kapcsolt neurális háló működése

2.2.1. Előreterjesztés

Az előreterjesztés a normál működés, amikor a bemenet alapján a háló kimenetet képez.

Jelmagyarázat:

  • Li: i-dik réteg állapot tenzora
  • ai: i-dik réteg aktivációs függvénye
  • Wi: i-dik réteg súlytenzora
  • Bi: i-dik réteg erősítési tényező tenzora
  • ⊗: tenzor szorzás

Példa az egy dimenziós esetre, ahol a rétegek állapottenzorai 2 hosszúságú vektorok, a súlytényezők pedig 2x2-es mátrixként vannak ábrázolva:

Az ábra az (i) és az (i+1) réteg közötti kapcsolatot mutatja, hogy hogyan kapjuk meg az egyik réteg értékeiből a másik réteg értékeit.

2.2.2. Hibavisszaterjesztés

A hibavisszaterjesztés folyamata, az elvárt kimenet megtanítása a hálóval.

Általános egyenletrendszer:

Egyenletrendszer a gyakorlatban használt jelöléssel:

Jelmagyarázat:

  • L: a hálózat rétegszáma
  • W(i): az i sorszámú rétegköz súlytenzora
  • W*(i): az i sorszámú rétegköz új súlytenzora a hibavisszaterjesztés után
  • B(i): az i sorszámú rétegköz erősítési tényező tenzora
  • B*(i): az i sorszámú rétegköz új erősítési tényező tenzora a hibavisszaterjesztés után
  • X(i): az i. réteg állapottenzora
  • a'(): aktivációs függvény deriváltja
  • E: az utolsó réteg hibatenzora (elvárt kimenet - kimenet különbsége)
  • r: tanulási intenzitás (skalár, ~ 0.001 - 1.0 közötti érték)
  • : Hadamard-szorzás (azonos méretű tenzorok elemenkénti szorzata)
  • d: dinamikus tenzor szorzás, amely d dimenziót alakít szorzatösszeggé
  • dim(i): az i. réteg dimenziószáma
  • *: skalárral történő elemenkénti szorzás

Példa:

A következőkben egy 3 rétegű hálózat példáján keresztül mutatjuk be a hibavisszaterjesztést, amelyben az első (bemeneti) réteg 3 dimenziós (axbxc), a második (rejtett) és a harmadik (kimeneti) réteg pedig 2 dimenziós (dxe illetve fxg).

  0. réteg       1. réteg       2. réteg    
  0. állapot   1. súly   1. szorzat 1. állapot   2. súly   2. szorzat 2. állapot   Hiba
Hálózat: X(0) - W(1) - Z(1) X(1) - W(2) - Z(2) X(2) - E
Tenzor mérete: axbxc   dxexaxbxc   dxe dxe   fxgxdxe   fxg fxg   fxg
Tenzor dimenziószáma: 3   5   2 2   4   2 2   2

 

A hibavisszaterjesztés folyamata (a képletek alatt feltüntettük az egyes tagok tenzor méreteit):

1. A 2. réteg deltája (i = L = 2):

δ(2) = E a'(X(2))
fxg   fxg   fxg

2. A 2. réteg súlyváltozása:

ΔW(2) = δ(2) 0 X(1)
fxgxdxe   fxg   dxe

3. A 2. réteg új súlytenzora:

W*(2) = W(2) + ΔW(2) * r
fxgxdxe   fxgxdxe   fxgxdxe

4. A 2. réteg új erősítési tényezői:

B*(2) = B(2) + δ(2) * r
fxg   fxg   fxg

5. A 1. réteg deltája:

δ(1) = ( δ(2) 2 W*(2) ) a'(X(1))
dxe     fxg   fxgxdxe     dxe

6. A 1. réteg súlyváltozása:

ΔW(1) = δ(1) 0 X(0)
dxexaxbxc   dxe   axbxc

7. A 1. réteg új súlytenzora:

W*(1) = W(1) + ΔW(1) * r
dxexaxbxc   dxexaxbxc   dxexaxbxc

8. A 1. réteg új erősítési tényezői:

B*(1) = B(1) + δ(1) * r
dxe   dxe   dxe

3. A konvolúciós neurális háló

A konvolúciós hálóban a rétegek neuronjai a szomszédos rétegbeli párjuk egy kis környezetével van csak összekötve. Ez különösen képfeldolgozási feladatokra alkalmas, mert pont úgy működik mint a kép szűrők. Bonyolultabb feladatokra nem annyira alkalmas, de kicsi az erőforrásigénye.

3.1. A konvolúciós neurális háló elemei

A háló k db. n dimenziós rétegből (layer) és k-1 db. n dimenziós konvolúciós tenzorból áll, amelyek a szomszédos rétegek közötti kapcsolatot jelentik. A rétegek neuronjainak állapotát n dimenziós tenzorok tárolják:

  • L1, ..., Lk: a rétegekben található neuronok állapotát tároló, d1(i), d1(i), .... , dn(i) méretű, n dimenziós tenzorok, ahol i = 1, ..., k.
  • K1, ..., Kk-1: a rétegek közötti kapcsolatot jelentő konvolúciós (kernel) tezorok, amelyek n dimenziósak és d1(i), d1(i), .... , dn(i) méretűek, ahol i = 1, ..., k-1.

A zárójelbe tett szám a réteg sorszámát jelenti.

3.2. A konvolúciós háló működése

3.2.1. Előreterjesztés

Normál működés, amikor a bemenet alapján a háló kimenetet képez.

Jelmagyarázat:

  • Li: i-dik réteg állapot tenzora
  • ai: i-dik réteg aktivációs függvénye
  • Ki: i-dik réteg kernel tenzora
  • Bi: i-dik réteg erősítési tényező tenzora
  • ⊙: tenzor konvolúció

Példa az egy dimenziós esetre, ahol a rétegek állapottenzorai és a kernelek 3 hosszúságú vektorok:

Az ábra az 1. és 2. réteg közötti kapcsolatot mutatja, hogy hogyan kapjuk meg az első réteg értékeiből a második réteg értékeit. A zárójelbe tett szám a réteg sorszámát jelenti.

3.2.2. Hibavisszaterjesztés

A hibavisszaterjesztés folyamata, az elvárt kimenet megtanítása a hálóval.

Jelmagyarázat:

  • L: a hálózat rétegszáma
  • K(i): az i sorszámú rétegköz konvolúciós kernele
  • K*R(i): az i sorszámú rétegköz új, hibavisszaterjesztés utáni konvolúciós kernele 180 fokban elforgatva
  • b(i): az i sorszámú rétegköz erősítési tényezője
  • b*(i): az i sorszámú rétegköz új erősítési tényezője a hibavisszaterjesztés után
  • X(i): az i. réteg állapottenzora
  • a'(): aktivációs függvény deriváltja
  • E: az utolsó réteg hibatenzora (elvárt kimenet - kimenet különbsége)
  • r: tanulási intenzitás (skalár, ~ 0.001 - 1.0 közötti érték)
  • : Hadamard-szorzás (azonos méretű tenzorok elemenkénti szorzata)
  • : konvolúció
  • d: részleges konvolúció, amely d sugarú környezetben konvolvál
  • size(T): a T tenzor mérete
  • ∑(T): a T tenzot elemenkénti összege
  • *: skalárral történő elemenkénti szorzás

4. Gráf alapú háló

4.1. A gráf alapú háló működése

4.1.1. Előreterjesztés

Jelmagyarázat:

  • sj(k): A j-dik neuron állapota a k-dik iterációban
  • a(): aktivációs függvény
  • ωij: az i-dik és j-dik neuron közötti súlytényező
  • bj: a j-dik neuron erősítési tényezője

4.1.2. Hibavisszaterjesztés

Jelmagyarázat:

  • si(k): A i-dik neuron állapota a k-dik iterációban
  • a'(): az aktivációs függvény deriváltja
  • ωij(k): az i-dik és j-dik neuron közötti súlytényező a k-dik iterációban
  • bi(k): az i-dik neuron erősítési tényezője a k-dik iterációban
  • δi(k): az i-dik neuron deltája a k-dik iterációban

 

Kategória: Blog

Java csomagok

Termékek

Munkanyilvántartás

Számlázás

Készletkezelés
Ügyfélnyilvántartás
Gumiabroncs-tárolás

Hamarosan érkezik az Ubuntu következő kiadása

Látogatók

182673
Ma74
Tegnap86
Ezen a héten418
Ebben a hónapban1880
Összesen182673
Statistik created: 2022-01-21T07:58:00+00:00
Bejelentkezett felhasználók 0
Regisztrált felhasználók 1
Ma regisztráltak 0