Neuronháló

     Na, amíg a Matlab végzi a dolgát, leírom, hogy mire jutottam eddig... Hogyan fognánk neki, hogy megtanítsunk a számítógépnek valamit? Ez a nagy kérdés...
  1. Collect data.
  2. Create the network.
  3. Configure the network.
  4. Initialize the weights and biases.
  5. Train the network.
  6. Validate the network.
  7. Use the network.

     Nulladik lépés összegyüjteni az adatokat... Vegyünk egy fiktív példát. Azt szeretnénk, hogy a számítógép meg tudja különböztetni a gonosz embereket a jó emberektől... (ez egy igen hasznos tulajdonság... :P ) Meg kell határozni pár tulajdonságot, ami mérhető is, illetve amik alapján a számítógép majd dönteni tud.

     A tulajdonságok legyenek a következők : morcos nézés (mennyire néz morcosan? 1 - nagyonnagyon morcosan néz, 0 - aranyos kiskutya nézés), testtartás (1 - "pofánverlek" támadó pozíció, 0 - "állva elalszom" pozíció), fegyverzet (1 - boxer, nuncsaku, rakétavető, kevlár) (közben befejeződött az én tanítási ciklusom is... 10^-6.-on pontosság, vagyis hamis találati arány 1 az 1000000-ból...) (illetve 0 - ha csak egy fehér zászló van nála), szemöldöktávolság (köztudott, hogy a gonosz embereknek összenő a szemöldökük :P vagyis 1 - a teljesen összenőtt sövény, 0 - normális másfél ujjnyi távolság...

Van tíz emberünk. Az első öt jó ember, az utolsó öt pedig rossz ember... Mind a tíznek megvan a tulajdonságtáblázata, ami a következőképpen néz ki :


 A hovatartozás azért szükséges, hogy mi előre megmondjuk, hogy melyik tulajdonságkombináció milyen eredményhez vezet... Nagy vonalakban meg lehet figyelni bizonyos szabályosságot, viszont nem minden esetben egyértelmű... A tanítás arról szól, hogy a neuronháló sulyzóit behangolja a tanítóadatoknak megfelelően... Mert ebben a példában is látszik, hogy a szemöldöktávolság valószínűleg nem olyan mérvadó (nem annyira súlyos), mint például a fegyverzet... Mert ha valaki egy duplacsövűt nyom az arcodba, annak lehet akármilyen


nézése, és akármilyen szedett szemöldöke, attól még nem fogjuk szeretni...

      Komolyra fordítva a szót... A következő lépés az adatok bevitele matlabba... Ennek a részleteire most nem térnék ki... (közben kis szünet, összeszedem a házat, mert lehet, hogy este átjönnek Szabiék...) Miután ezzel megvagyunk, elmentjük mind a tulajdonságokat, mind a hovatartozást leíró táblázatot, egy mat fájlba. Az adatok elrendezésénél fontos arra vigyázni, hogy a bemeneti adatoknál annyi sor legyen, ahány tulajdonság van vizsgálva és annyi oszlop, ahány szereplője van a történetnek... A hovatartozási táblázat meg lehet ennél sokkal bonyolultabb is... (Ilyen jellegű információért lásd a kortárs szakirodalmat :P).


     Következő lépés bepötyögni a matlabba, hogy "nprtool" . Erre megjelenik egy grafikus felület, ahol kiválaszthatjuk, hogy melyik a bemeneti állományunk illetve melyik a hovatartozási táblázat... Kell párszor nyomkodni a next-et, majd figyelni, ahogy a matlab megtanítja a neuronhálónak, hogy melyik rossz ember és melyik nem... A végén meg lehet nézni, hogy mennyire volt hatékony a tanítás...

Ebből a rajzból egyedül a jobb alsó sarokban lévő eredményt emelném ki, miszerint a tanítás végső eredménye 97.9%os hatékonyság. Ennek a részleteire most nem térek ki... (S ahogy azt Bea mondaná ---> Szerintem ez elég korrekt... )

Ugyanitt lehetőségünk van kirajzolni pár (számomra még nem érthető) grafikont, illetve a későbbiek folyamán elmenteni a tanítás eredményét... Röviden ennyire jutottam... Mindenképp még foglalkozom a témával, mert ez a kezdeti siker nagyon felcsigázta az érdeklődésemet...

0 megjegyzés:

Megjegyzés küldése

Return top