A neuronhálózatokról:

Elõször is idézni szeretnék néhány bekezdést az Artificial Intelligence hírcsoport FAQ file-jából:

A mesterséges neuronhálózat sok, önmagában egyszerû processzor hálózatát jelenti, melyek közül mindegyik rendelekezik valamennyi helyi memóriával. Az egységeket egyirányú kommunikációs csatornák kötik össze, melyek numerikus, (tehát nem szimbolikus) adatokat közvetítenek. Az egyes egységek csak a helyi adatokkal és a kommunikációs csatornákon érkezõ inputokkal operálnak.

Az tervezés alapkoncepciója az, ami a neuronhálózatokat megkülönbözteti más matematikai technikáktól: A neuron hálozat önállóan mûkodõ egységek összessége, nem pedig valamiféle algoritmus vagy célhardver, tervezése alapjául pedig az agykutás eredmányei szolgáltak.

A legtöbb neuron hálózathoz tartozik valamilyen "tanuló" algoritmus, aminek a segítségével a csatornák súlyozása hozzáigazítható a mintázatok egy csoportjához. Más szavakkal, a neuron hálózat példák alapján képes "tanulni", általánosítani, hasonlóan ahhoz, ahogy a gyermekek megtanulják felismerni a kutyákat, kutyák példái alapján. A neuron hálózatok jó párhuzamos mûködési képességekkel rendelkeznek, minthogy az egységek mûködése egymástól független."

Számomra a mesterséges neuronhálózatok legfontosabb vonása az, hogy biológiai modellek alapján készülnek, ezért szerkezetük hasonlít az emberi agy felépítéséhez. Neuronhálózatok segítségével készítek mûtárgyakat, ami számomra új perspektívákat nyit a gondolkodás, (fõleg az egszerûbb gondolatok) vizsgálatában.

Az NNM 1.23-ról

Ez a program azért készült, hogy játszva próbálhasd ki a neuronhálózatokat. Létrehozhatsz egyszerü hálózatokat, melyeknek a példa adatok egy sorát adhatod, majd megnézheted, hogyan tanul. A hálózatok a példákkal együtt elmenthetõkdisc-re és újra letölthetõk.

Az NNM 1.23 mindig háromszintes hálózatokkal dolgozik, melyekben minden egyes neuron össze van kapcsolva a következõ szint összes neuronjával. A program a Backpropagation algoritmust használja.

Az egyes neuronokról könnyû információt szerezni. A help parancs segítségével megkapható az utasítások és a szintaxis online leírása. A következõ részben mutatok néhény példát arra, hogyan lehet ezt megtenni.

Ha hibát talál, kérem jelezze a következõ címen: ggyorfi@c3.hu

FONTOS:
EZ A PROGRAM INGYENES, SZABADON
HASZNÁLHATÓ, MÁSOLHATÓ ÉS TERJESZTHETÕ,
DE KIZÁRÓLAG A FELHASZNÁLÓ KOCKÁZATÁRA.
A KÉSZÍTÕ NEM VÁLLAL SEMMIFÉLE JÓTÁLLÁST,
SEM A PROGRAM MÛKÖDÉSÉÉRT, SEM A PROGRAM
ÁLLTAL KEZELT ADATOK BIZTONSÁGÁÉRT.

Néhány példa:

Egy egyszerû teszt

Es egy nagyon egyszerû hálózat rendszerünk teszteléséhez. Négy idegsejt van a bemeneti és a kimeneti rétegeken, és kettõ a rejtett rétegen. A hálózat feladata csupán annyi, hogy a négy bemeneti értéket sûrítse be két rejtett idegsejtbe, és azután jelenítse meg a kimeneti idegsejtekben.

Hozzuk létre az ideghálózatot:

>> net 4 2 4

Azzután definiáljuk a mintákat, valahogy így:

>sample 4
>>0001 0001
>>0010 0010
>>0100 0100
>>1000 1000

  4 samples have been defined

Az 'info' parancs segitségével ellenõrizhetjük hogy minden rendeben van-e:

>info net

  Number of neurons: 10
  Number of input neurons: 4
  Number of hidden neurons: 2
  Number of output neurons: 4
  Number of samples: 4

Ha rendben, elindíthatjuk a tanulási folyamatott (itt kell megadni az elvárt legnagyobb hiba értékét):

>learn 0.01

Ez egy nagyon egyszerû hálozat, egy i386 PC-én csak néhány pillanatig fog tartani a tanulás, ezután a 'run' parancs segítségével vehetjük használatba:

>run 0001

  Output: 0001
  Error: 0.0098789

Xor kapu:

Szintén nagyon egyszerû arra megtanítani néhány idegsejtet, hogy úgy viselkedjen, mint egy kizáró-vagy logikai kapu:

>net 2 2 1
>sample 4
>>00 0
>>01 1
>>10 1
>>11 0
> learn 0.01

Fontos, hogy a '01' és a '10' külön mintaként szerepeljen!