Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Pécsi Tudományegyetem Pollack Mihály Műszaki Kar Műszaki Informatika Szak Data Mining 31. Gyakorlat Dr. Pauler Gábor, Egyetemi Docens PTE-PMMK Számítástechnika.

Hasonló előadás


Az előadások a következő témára: "Pécsi Tudományegyetem Pollack Mihály Műszaki Kar Műszaki Informatika Szak Data Mining 31. Gyakorlat Dr. Pauler Gábor, Egyetemi Docens PTE-PMMK Számítástechnika."— Előadás másolata:

1

2 Pécsi Tudományegyetem Pollack Mihály Műszaki Kar Műszaki Informatika Szak Data Mining 31. Gyakorlat Dr. Pauler Gábor, Egyetemi Docens PTE-PMMK Számítástechnika Tanszék Iroda: Boszorkány u., B épület 101 Tel: 72/ / Készült a PTE Alapítvány támogatásával

3 A gyakorlat tartalma 30. Házi Feladat ellenőrzése: Karakterek tervezése a vezérlési függvény szimulátorban Java Neural Network Shell JNNS Telepítése Neurális hálózat tervezés grafikus szerkesztőben Hálózat megnyitása Hálózat kreációja Hálózat szerkesztése Mezők létrehozása Csatolások létrehozása Paraméterek beállítása Hálózat mentése Minta fájlok szerkesztése Hálózat tanítása Inicializáció Hálózat frissítése Tanulási módszer Hálózat vágása Hálózat teljesítményének elemzése Súlyok panel Vezérlési függvény projektálása panel Elemző panel Eredmények mentése, környezeti paraméterbeállítások Minta alkalmazások 31. Házi Feladat: Tőzsdei kereskedés esettanulmány Automatikus adatimport honlapokról Excelbe Szakirodalom

4 JNNS Telepítése A Java Neural Network Shell (JNNS) a Tübingeni Egyetem által kifejlesztett, leegyszerűsített Java-alapú implementáció Windows és Mac környezetben, valamint grafikus felhasználói felület A Stuttgarti Egyetem által eredetileg kifejlesztett Stuttgart Neural Network Shell (SNNS) C++- alapú, Unix alá írt hatalmas neurális forráskód- könyvtárhoz. Ingyenesen felhasználható, GNU licensszel rendelkezik Fejlesztési filozófiájában a biológiai analógiá- hoz kötődő, hálózat-közeli modellezést támo- gatja, szemben a másik ismertetésre kerülő ingyenes Java alapú eszközzel, a JOONE-val (lásd: Session32), ami neurális rendszerek aggregáltabb szinten történő, adatbányászati környezetbe ágyazott építését teszi lehetővé.Session32 Telepítése Minimálisan Java Runtime Environment (JRE) 1.3-at igényel, ami innen tölthető le: Ezután töltsük le a tuebingen.de/software/JavaNNS oldalról a JavaNNS.jar fájlt,http://www-ra.informatik.uni- tuebingen.de/software/JavaNNS Majd futtassuk a telepítőt: java –jar JavaNNS.jar Adjuk meg a célkönyvtárat, pl. C:\JNNS A grafikus szerkesztőt az oda települő JavaNNS.bat-tal futtathatjuk katt

5 Hálózat megnyitása A File|Open menüvel a JNNS\ Samples alkönyvtárban lévő alkalmazás-mintákat nyithatunk meg. Egy JNNS alkalmazás a következő fájlokból áll, amelyeket, külön, egyenként kell megnyitni: *.NET - neurális hálózat fájl *.CFG - hálózati paramáterek fájl, *.PAT – tanító- vagy teszt minta adatbázis fájl (Mindegyik speciális saját fejléces szövegfáljformátumban van) *.README – alkalmazás szöveges leírása *.CHK - tanítási folyamat szöveges leírása és tesztminták a tanítási függvény teszthez SNNS network definition file V1.4-3D generated at Mon Apr 25 15:58: network name : xor source files : no. of units : 4 no. of connections : 5 no. of unit types : 2 no. of site types : 2 learning function : Quickprop update function : Topological_Order site definition section : site name | site function | excite | Site_WeightedSum inhibit | Site_Pi | type definition section : name | act func | out func |sites | | | LongeroutType | Act_Logistic | Out_Identity | outType | Act_Logistic | Out_Identity | | | | unit default section : act | bias | st | subnet | layer | act func | out func | |----| | | | | | h | 0 | 1 | Act_Logistic | Out_Identity | |----| | | | unit definition section : no. | typeName | unitName | act | bias | st | position | act – ----| | | | |----| | | | in_1 | | | i | 3,5,0 ||| 2 | | in_2 | | | i | 9,5,0 ||| 3 | | hidden | | | h | 6,3,0 ||| 4 | | result | | | o | 6,0,0 ||| ----| | | | |----| | connection definition section : target | site | source:weight | | | | 2: , 1: | | 3: , 2: , 1: | | SNNS pattern definition file V3.2 generated at Mon Apr 25 15:58: No. of patterns : 4 No. of input units : 2 No. of output units : 1 # Input pattern 1: 0 # Output pattern 1: 0 # Input pattern 2: 0 1 # Output pattern 2: 1 # Input pattern 3: 1 0 # Output pattern 3: 1 # Input pattern 4: 1 # Output pattern 4: 0 katt SNNS xgui configuration file. format: 6 filenames:./examples# xor-rec# xor-rec1# # xor-rec# # Layers : 8 LAYER 1# LAYER 2# LAYER 3# LAYER 4# LAYER 5# LAYER 6# LAYER 7# LAYER 8# Learn parameters: 5 param 1: param 2: param 3: param 4: param 5: Update parameters: 5 param 1: param 2: param 3: param 4: param 5: Initialisation parameters: 5 param 1: param 2: param 3: param 4: param 5:

6 Hálózat létrehozása A File|New menüvel egy Default nevű új üres hálózatot hozhatunk létre, erre megjelenik a hálózati súlyok (Network) ablak, ahol: Tools| Create| Layers: neuron- mező létrehozása: –Width/Height: mező széles- sége/magassága, neuronban –Unit type: mezőtipus:(I/O/H) –Activation: jelzési függvénye, az inputnál Identity (lineáris) –Output: output függvénye, ez mindig: Identity (=a jelzésivel) –Create gomb: mező létrehoz (Hasonló módon kreálunk 4 neuronos Output mezőt Logistic jelzéssel) Tools| Create| Connections: csatolás létrehozása: –Connect selected: csak a kiválasztottak összecsatolása Mark Selected: kiválaszt –Connect feed-forward: előrecsatoló, minden neuronra With shortcut:több mezőt átugró csatolásokkal –Auto-associative: mezőn belüli csatolás Allow self connections: öncsatolás megengedése –Connect gomb: létrehozás katt húz

7 Az SNNS nyelv mező- és függvénytipusai Az JNNS által alkalmazott SNNS nyelv fontosabb mezőtípusai (Unit type): –Input – input mező –Output – output mező –Hidden – rejtett mező –Dual – input és output mező is lehet, pl. BAM hálózatokban Az SNNS nyelvben az aktivációs függvény (Activation Function) az adott neuron aggregációjának és jelzési függvényének együttese: –Alapfüggvények: az alábbi jelzési függvényekhez additív aggregáció tartozik: Act_Identity – lineáris jelzési függvény Act_IdentityPlusBias – lineáris plusz konstans jelzési függvény Act_Logistic - [0,1] értékkészletű S-görbe jelzési függvény Act_TanH - [-1,+1] értékkészletű S-görbe jelzési függvény Act_StepFunc – Szakaszonként lineáris S-görbe jelzési függvény Act_Signum – előjel függvény (pl. reszulens backpropagációhoz) Act_Sinus – sinus jelzési függvény, TDNN hálózatokhoz Act_Exponential – exponenciális jelzési függvény Act_Euclid – Euklideszi távolság jelzési függvény, a beérkező jelzések közt, pl. Kohonen-alakfeltérképezőhöz –Aggregációs függvények: Act_Product – szorzat jelzési függvény, a beérkező jelzéseket szorozva –Hálózat-specifikus függvények: Act_BAM – Bidirekcionális Asszociatív Memóriához előformázott mező Act_Perceptron – perceptronhoz előformázott mező Act_RBF_Gaussian – Haranggörbés RBF hálózathoz előformázott mező Act_RBF_MultiQuadratic – Negatív parabolás RBF hálózathoz Az SNNS nyelvben a neuronból kilépő jelzést az output függvény (Output Function) még utólagosan transzformálhatja, bár a leggyakrabban ez Out_Identity, vagyis változatlan formában továbbadja

8 Hálózati paraméter beállítások A View|Display settings-ben állítjuk a mezők és a csatolások nézetét: General fül: általános kinézet: –Grid size: a szomszédos neuronok közti táv pixelben –Subnet: hálózatrész azonosító (pl. kaszkád korrelációban az ART rész) –z-value: mit tekintsen semleges jelzési értéknek –Max/Min/Zero value color: aktivációk és súlyok min/max/ semleges érték-színezése Units&links fül:mezők/csatolások –Top/Base label: a neuronok felső/ alsó címkéje: output: eredmény, number: sor- szám, winner:győztes cella flag, z-value:normalizált érték –Maximum expected: a várt maximális súly/ jelzési érték –Weakest visible: a még látszó leggyöngébb csatolás –Show directn.: irányított gráf Jobbkatt a neuronon: az adatai: –Names: a neve –Activation: x membrán érték –Initial act.: x t1 kezdő érték –Bias:  jelzési határérték –Layer/Subnet:mező/részháló katt jobb katt jobb katt

9 A hálózat mentése A hálózat a File|Save as menüvel menthető egy *.NET fájlba. Mentéskor kéri be a hálózat logikai nevét, pl: MyFirstNet SNNS network definition file V1.4-3D generated at Wed Jan 17 21:58: network name : MyFirstNet source files : no. of units : 12 no. of connections : 32 no. of unit types : 0 no. of site types : 0 learning function : Std_Backpropagation update function : Topological_Order unit default section : act | bias | st | subnet | layer | act func | out func | |----| | | | | | h | 0 | 1 | Act_Logistic | Out_Identity | |----| | | | unit definition section : no. | typeName | unitName | act | bias | st | position | act func | out func | sites ----| | | | |----| | | | | | noName | | | i | 1,1,1 | Act_Identity | | 2 | | noName | | | i | 1,2,1 | Act_Identity | | 3 | | noName | | | i | 1,3,1 | Act_Identity | | 4 | | noName | | | i | 1,4,1 | Act_Identity | | 5 | | noName | | | i | 1,5,1 | Act_Identity | | 6 | | noName | | | i | 1,6,1 | Act_Identity | | 7 | | noName | | | i | 1,7,1 | Act_Identity | | 8 | | noName | | | i | 1,8,1 | Act_Identity | | 9 | | noName | | | o | 3,1,1 ||| 10 | | noName | | | o | 3,2,1 ||| 11 | | noName | | | o | 3,3,1 ||| 12 | | noName | | | o | 3,4,1 ||| ----| | | | |----| | | | connection definition section : target | site | source:weight |------| | | 1: , 2: , 3: , 4: , 5: , 6: , 7: , 8: | | 1: , 2: , 3: , 4: , 5: , 6: , 7: , 8: | | 1: , 2: , 3: , 4: , 5: , 6: , 7: , 8: | | 1: , 2: , 3: , 4: , 5: , 6: , 7: , 8: |------| layer definition section : layer | unitNo | | 9, 10, 11, | katt

10 A gyakorlat tartalma 30. Házi Feladat ellenőrzése: Karakterek tervezése a vezérlési függvény szimulátorban Java Neural Network Shell JNNS Telepítése Neurális hálózat tervezés grafikus szerkesztőben Hálózat megnyitása Hálózat kreációja Hálózat szerkesztése Mezők létrehozása Csatolások létrehozása Paraméterek beállítása Hálózat mentése Minta fájlok szerkesztése Hálózat tanítása Inicializáció Hálózat frissítése Tanulási módszer Hálózat vágása Hálózat teljesítményének elemzése Súlyok panel Vezérlési függvény projektálása panel Elemző panel Eredmények mentése, környezeti paraméterbeállítások Minta alkalmazások 31. Házi Feladat: Tőzsdei kereskedés esettanulmány Automatikus adatimport honlapokról Excelbe Szakirodalom

11 Minta fájl menedzsment File|Open menüvel nyithatók meg szövegszerkesztővel előre elkészített, SNNS formátumú I/O mintavektor szövegfájlok (pl. MyFirstNet.pat), a megnyitottat kijelzi a státuszsorban Tools|Control Panel|Patterns menüvel kézzel is szerkeszthető a tartalma: | >| gombokkal lapozhatók be a minták a Network ablakban lévő I/O neuronok színekkel kódolt aktivációiba Jobbkatt neuronon:ezek szerkesztése Modify gombbal lehet menteni a változásokat az aktuális mintába Add gombbal lehet hozzáadni az I/O neuron aktivációk tartalmát új mintába Delete gombbal lehet mintát törölni (ugyanezek a Pattern menüből is mennek) - Delete file gomb: minta fájl törlése - New file gomb:új üres minta fájl SNNS pattern definition file V3.2 generated at Wed Apr 4 15:58: No. of patterns : 4 No. of input units : 8 No. of output units : 4 # Input pattern 1: # Output pattern 1: # Input pattern 2: # Output pattern 2: # Input pattern 3: # Output pattern 3: # Input pattern 4: # Output pattern 4: katt jobb katt jobb katt

12 Hálózat tanítása 1 A TACOMA és kaszkád korrelációs háló- zatok kivételével minden hálózat tanítása a Tools|Control Panel menüből történik: Az Initializing fülre kattintva állíthatjuk a hálózati súlyok inicializációs módszerét: –Random weights: a leggyakoribb eset- ben a súlyok egyenletes eloszlású vé- letlen értékekeket vesznek fel egy, a Parameters panelen beállítható inter- vallumban –Mivel a súlyok kezdő eloszlása alap- vetően befolyásolja a konvergenciát, (különösen azoknál a hálózatoknál (RBF, SOM, Counterpro- pagation, ART), ahol 1 neuron = 1 klasztercentrum), hálózat- specifikus inicializációs módszerek is rendelkezésre állnak: ART1 Weights: ART1 hálózathoz ART2 Weights: ART2 hálózathoz ARTMAP Weights: ARTMAP hálózathoz CC Weights: Kaszkádkorrelációs/TACOMA hálózathoz Hebb, ClippHebb: BAM hálózathoz CPN Rand Pat: Counterpropagációs hálózathoz DLVQ Weights: DLVQ hálózathoz Kohonen Rand Pat: RBF hálózathoz RBF Weights: RBF hálózathoz –A kiválasztott módszer paraméterbeállításai mindig a Parameters panelen jelennek meg –(Az inicializációs módszerek paramétereinek jelentéséről lásd bővebben: SNNSManual.pdf, 82.o.)SNNSManual.pdf Az Init gombbal indíthatjuk az inicializációt, az kezdősúlyok megjelennek a Network ablakban. katt

13 Hálózat tanítása 2 Az Updating fülre kattintva állíthatjuk a hálózati aktiváció frissítési módszereit, amelyek két nagy csoportra oszlanak: Aszinkron (Order) módszerek: a neuronok meghatározott sorban egymás után tüzelnek, kevesebb memóriát igényel, de rosszabb a konvergencia. –Topological order: a leggyakoribb, a frissítés az input mezőtől az output irányába történik, mezőn belül neuron-sorszám szerint növekvő sorrendben Szinkronizált (Synchronous) módszerek: minden neuron diszkrét időszeletekben, egyszerre tüzel, gyorsabb konvergencia, de több memóriát igényel. A kiválasztott módszer beállításait a Parameters panelen állíthatjuk (A paraméterek jelentésé- ről lásd bővebben: SNNSManual.pdfSNNSManual.pdf, 158.o.) A ◄► gombokkal játszhatjuk le az input minták generálta aktivációt a hálózatban, ezt a Network ablakban élőben láthatjuk Tanítás előtt a View|Error Graph menüben kapcsohatjuk be a minta fálj outputjainak epochonkénti (Learning Cycle) újrabecslési hibáját mutató diagrammot (Error Graph), ami mutathat: katt  e 2 : összesített négyzetes hibát 1/n×  e 2 : átlagos négyzetes hibát 1/out×  e 2 : változónkénti négyzetes hibát A ◄►,▲▼ gombokkal szabályozhatjuk a tengelyek felbontását A gombbal állítható be méretező rács A gombbal letörölhetjük a diagramm tartalmát katt

14 Hálózat tanítása 3 A Learning fülre kattintva állíthatjuk be a háló- zat súlyait módosító tanulási módszert: A Cycles a tanulási epochok száma A Steps mutatja, hány lépésben futtassa le az epochokat (közben megáll, és nézegetni lehet a Network ablakban a hálózati súlyok alakulását, vagy az Update fülnél lejátszani, mit csinál a hálózat az input mintákra) A Shuffle mellett a mintákat véletlenül kevert sorrendben tanítja az epochok során, azonos sorrend helyett. Ez segíthet elkerülni pl. a Backpropagáció lokális optimumba ragadását A Learning function-nal állítható a tanulási módszer, illetve paraméterei: –ART1, ART2, ARTMAP: ART jellegű módszerek –BPTT, BBPTT: Idősori backpropagációk –Backpercolation: backperkoláció –BackpropBatch/Chunk/Momentum/WeightDecay/Quickprop: kötegelt/tagosított/momentumos/súly lecsengő/gyors backpropagáció –CC, TACOMA: Kaszkád korrelációs módszerek (plusz paraméter beállító paneljük van a Tools|Cascade & TACOMA menüben) –Counterpropagation: Counterpropagáció –Dynamic LVQ: AVQ hálózat –Hebbian: Bidirekcionális asszociatív memória –Kohonen: Kohonen SOM –RadialBasisLearning, RBF-DDA: RBF hálózatok –TimeDelayBackprop: TDNN hálózat (A paraméterek jelentéséről lásd bővebben: SNNSManual.pdf, 67.o.)SNNSManual.pdf Init gombbal indítható a tanulsi módszer saját súly-inicializációja, ami felülbírálja az Initialization fülön beállítottakat A Learn Current gombbal a sorban következő adott mintát tanulja meg A Learn All gombbal az összeset egyszerre katt

15 Hálózat tanítása 4 A betanított hálózatban a szinaptikus súlyok jelentős része elenyészően kis értéket vesz fel, és sok neuron sosem tüzel, tehát nem befolyá- solják érdemben a működést. A Pruning fülre kattintva kivághatjuk eze- ket, kisebb memóriaigényű és jóval gyor- sabban (bár némileg pontatlanabban) becslő hálózatot eredményezve: Maximum error incr.%, Accepted error: relatív és abszolút mértékben mennyire nő- het meg a becslési hiba a vágás miatt. Minimum error to train: legalább mekkora becslési hibát kell elérni, hogy vágás után újratanítsa a hálózatot. Cycles for retrainig: újratanítási epochok száma Prune input units: vágja le a nem használt input neuronokat Prune hidden units: vágja a rejtett neuronokat Recreate last element: rakja vissza az utolsónak kivágott elemet (ezzel lehet tanulmányozni, milyen sorrendben vagdalja ki őket) Refresh display: frissítse a hálózat képét a Network ablakban Method: vágási módszer: –Magnitude based: a leggyengébb szinapszist vágja minden lépésben –Optimal Brain damage: analitikusan minimalizálja a becslési hibák négyzetösszegéből, plusz a súlyok négyzetösszegéből álló célfüggvényt a kis súlyok 0-ra hozásával:  e  o (x o -x o *) 2 +  i  h w ih 2 +  h  o w ho 2 = z  Min(31.21) –Optimal Brain Surgeon: ugyanaz mint a fenti, tovább fényezve –Skeletonization: az outputra minimális hatású neuront vágja –Non-contributing units: az inputra legérzéketlenebb neuront vágja (A vágási módszerekről lásd bővebben: SNNSManual.pdf, 216.o.)SNNSManual.pdf Prune gomb: vágás indítása katt

16 A gyakorlat tartalma 30. Házi Feladat ellenőrzése: Karakterek tervezése a vezérlési függvény szimulátorban Java Neural Network Shell JNNS Telepítése Neurális hálózat tervezés grafikus szerkesztőben Hálózat megnyitása Hálózat kreációja Hálózat szerkesztése Mezők létrehozása Csatolások létrehozása Paraméterek beállítása Hálózat mentése Minta fájlok szerkesztése Hálózat tanítása Inicializáció Hálózat frissítése Tanulási módszer Hálózat vágása Hálózat teljesítményének elemzése Súlyok panel Vezérlési függvény projektálása panel Elemző panel Eredmények mentése, környezeti paraméterbeállítások Minta alkalmazások 31. Házi Feladat: Tőzsdei kereskedés esettanulmány Automatikus adatimport honlapokról Excelbe Szakirodalom

17 Hálózat elemzési eszközök 1 Hálózat elemzési eszközökre akkor van szükség, ha a választott tanulási módszer a paraméterek gondos beállítása ellenére is rész- optimumba ragad és alacsony becslési teljesítményt nyújt: View|Weights: a hálózat összeköttetési súlymátrix- diagrammja. A vízszintes és függőleges tengelyen is a neuronok találhatók, sorfolytonosan számozva, a rácspontokban az köztük lévő összeköttetés erőssége színkódokkal (alapban zöld: +, piros: -, kék: 0) Ha a Networks ablakban Shift+kattintással kiválasztunk 2 input és 1 output neuront, használhatjuk a View|Projection panelt: ez a kiválasztott output neuron értéke színkódokkal a kiválasztott input neuronok függvényében A diagrammok általános sza- bályzó gombjai: katt shift katt shift katt A◄►,▲▼ gombokkal mozgathatjuk a diagrammot, A, gombokkal nagyíthatjuk/kicsinyíthetjük A gombbal a rács méretezését változtathatjuk katt

18 Hálózat elemzési eszközök 2 A Tools|Analyzer menüből érhető el az elemző diagram, ami a Projection dia- grammhoz képest többféle infót mutathat: A Setup fülre kattintva állíthatjuk: –X-axis: az x tengelyen mutatott adat: Unit: adott sorszámú neuronhoz: –Activation: aktiváció –Output: output érték Time: idő, sec Pattern: adott sorszámú minta –Y-axis: az y tengelyen mutatott adat: Unit: mint fent Error: becslési hiba: –|t-o|: akt.minta abszolút hiba –  |t-o|: összes abszolút hiba –  |t-o| 2 : össz négyzetes hiba –AVE: a fentiek osztva az out- put neuronok számával A Test fülre kattintva állíthatjuk a mutatott adatok generálását: –Steps: hányszor fusson le –Change pattern:váltson a minták közt –Train network: tanítsa közben a hálót –Training steps: hány epochban? –Test gomb: generálás indítása A diagramm általános kezelő gombjai: –A ◄►,▲▼ gombokkal mozgathatjuk –↕, ↔-vel méretezhetjük tengelyeit –A gomb kapcsol be új adatsort –A gomb törli az összes adatsort katt A gomb nagyít A gomb a rácsot kapcsolja be

19 Az eredmények mentése, környezet A File|Save data… menüvel menthetjük: A *.net hálózat fájlt és *.cfg beállításait A *.pat kiterjesztésű mintafájlt A *.res kiterjesztésű eredményfájlt: –A Saving Details ablakban megadhatjuk: Start/End pattern: a kezdő/vég mintát Include input/output pattern: beletegye-e az eredeti inputot/outputot Mindig belementi az outputok becslését Create/append: új fájl vagy hozzáfűzi létező fájlhoz A View|Properties… menüvel állíthatjuk a környe- zeti paramétereket: Browser name: web böngé- sző szoftver elérési útja User Manual URL: a HTML help fájlok elérési útja, általá- ban JNNS/manual/JavaNNS- manual.htm A JNNS szoftver értékelése: +:Szép topológia prezentációs grafika,bár az SNNS 3D nélkül +:Változatos tanulóalgoritmusok -:Elcseszett,nem logikus menük -:Egyszerre csak 1 hálózati mo- dellt tud kezelni -:Botrányosan vacak adatimport export egy elvarázsolt formá- tumban, táblázat/adatbázis ke- zelővel nem kommunikál SNNS result file V1.4-3D generated at Sun Apr 08 21:29: No. of patterns : 4 No. of input units : 8 No. of output units : 4 startpattern : 1 endpattern : 4 input patterns included teaching output included # # # # SNNS result file V1.4-3D generated at Sun Apr 08 21:29: No. of patterns : 4 No. of input units : 8 No. of output units : 4 startpattern : 1 endpattern : 4 input patterns included teaching output included # # # # katt

20 Minta alkalmazások 1 A JNNS/Examples könyvtárban található patmat.net egy 3 mezős per- ceptron egyszerű karakter- felismerési alkalmazással: A baloldali 5×7-es bináris pixel mátrix input mező fogadja a karaktereket, továbbadja a 10 neuronból álló rejtett mezőnek Majd a szintén 5×7-es bináris pixel mátrixot alkotó output mező megmutatja a felismert karaktert A patmat.pat fájl az A, B, C, X, P, L karaktereket tartal- mazza input/output mintaként A View|Display settings-ben állítsuk a rácsméretet 30-ra, a max. színt pirosra, a min.-t kékre, a 0-át zöldre, kapcsol- juk ki a neuronok címkéit vizualizációs okokból A Tools|Control panel |Initialization-ban ran- dom súlyokkal iniciali- záljuk a hálózatot. Az Updating-nél a min- tákat lapozva láthatjuk, hogy semmilyen karak- tert nem ismer fel! katt húz katt

21 Minta alkalmazások 2 A Learning fülre kattintva tanítsuk a hálózatot momentumos bacpropagációval,  =0.2,  =0.5, c=0.1, d max =0.1 beállításokkal, 100 epochon keresztül a Learn All gomb megnyomásával Vegyük észre a Network ablakban, hogy az összeköttetések súlya megváltozik a tanulás következtében (a vonalak színe átrendeződik). Hogy ezt jobban lássuk, a View|Display Settings|Units & Links menüben a Maximum expected weight értékét levihetjük 1-re, ekkor érzékenyebben színezi a szinapszisokat. Az Updating fülön lapozgatva a mintákat ►gombbal, azt látjuk, hogy a betanított hálózat minden karaktert tökéletesen felismer, és visszaadja a képét. Ez ugyan önmagában még nem nagy teljesítmény, de… katt

22 Minta alkalmazások 3 Az egyes input mintákat tartalmazó neuronokon jobb kattintva, az Edit Units|Activation menüben írogassuk át az input minta egy csomó értékét 0-ról 1-re vagy fordítva. Az input mintában eszközölt változásokat rögzítsük a Pattern|Modify menüvel Az Updating fülön lapozgatva a mintákat azt látjuk, hogy a hálózat intelligens módon akkor is felismeri a betanított karaktert, ha azt az inputban jelentősen tönkretettük! Vagyis zajos, vagy részben károso- dott mintákból helyesen ismeri fel a meg- tanult dolgokat! Mindezt automatikus tanu- lás révén. Ezért szeretjük a neurális háló- zatokat!!! katt jobb katt jobb katt

23 Minta alkalmazások 4 Sőt, a Pruning fülre kattintva a Prune gombbal kiírthatjuk azon neuronokat és szinapszisokat, melyek jelentéktelen súllyal vesznek részt az output kialalkításában. A Network ablakra kattintva láthatjuk, hogy a hálózat lényegesen egyszerűbb, kisebb kapacitásigényű és (gyorsabb) lett. Az Updating fülön végiglapozgatva a mintákat, meglepve tapasztaljuk, hogy még mindig meglehetős biztonsággal ismeri fel őket. Ez hasonló jelenség ahhoz, mint amikor valaki könnyű drogokat szed, vagy rendszeresen alkoholizál, de még nem alkoholista: az agysejteket azonnal károsodás éri, de a rendszer redundanciái, biztonsági tartalékai (több neuron kódol közel azonos dolgot) miatt a teljesítmény nem romlik, sőt a gátlások felszabadulása (kis súlyú szinapszisok halála) miatt még gyorsabban is dönt rutin helyzetekben (pl. triviálisan megtanult minták). A teljesítményrom- lás itt csak a bonyo lult, töredékes, za- jos minták felisme- résénél látható (Pl. a könnyű drog- gal élők RTM-jének teljesítménye csök- ken, nehezebben tanulnak meg új, nem rutin jellegű ismereteket.) katt

24 Minta alkalmazások 5 Tegyük fel, hogy patmat hálózatunk elzüllik, és idült alkoholista lesz, vagy rászokik a kemény drogokra: futtassuk le a Pruning-ot még háromszor! A Network ablakban a hálózat pusztulása önmagáért beszél: Az Updating fülön a mintákat lapozgatva láthatjuk, hogy a hálózat már a korábban megtanult triviális mintákat sem hajlandó felismerni, teljesítménye most már meredeken zuhan egy olyan állapotig, amikor bármilyen inputból ugyanazt az értelmetlen, Ljapunov-stabil outputot adja vissza. Vagyis, bekövetkezik az idegrendszeri működés hirtelen összeomlása, például egy drogdisco wc-jében beadott aranylövés hatására. Természetesen egy ilyen egyszerű kis 3 mezős perceptron hálózatot könnyű tönkretenni, embernél a folyamat hosszabb ideig tart, és több kitartást meg pénzt igényel Nézzünk meg egy bonyolultabb hálózatot:

25 Minta alkalmazások 6 A JNNS/Examples könyvtárban található font.net és font.pat fájlok egy 3 mezős karakterfelismerő perceptront írnak le, amely megközelíti a gyakorlati alkalmazhatóság szintjét: a 24×24-es input bitmátrixra írt egyenes és dőlt számokat és betűket ismeri fel: A rejtett mező 48 neuronja függőleges/ vízszintes/ átlós vonalakat, foltokat detektál Az output mező 75 neuronja a számokat, kisbetűket és nagybetűket kódolja (1 neuron = 1 karakter alapon) Gyakorlásként, játssza le ezzel a hálózattal is drogozást!

26 A gyakorlat tartalma 30. Házi Feladat ellenőrzése: Karakterek tervezése a vezérlési függvény szimulátorban Java Neural Network Shell JNNS Telepítése Neurális hálózat tervezés grafikus szerkesztőben Hálózat megnyitása Hálózat kreációja Hálózat szerkesztése Mezők létrehozása Csatolások létrehozása Paraméterek beállítása Hálózat mentése Minta fájlok szerkesztése Hálózat tanítása Inicializáció Hálózat frissítése Tanulási módszer Hálózat vágása Hálózat teljesítményének elemzése Súlyok panel Vezérlési függvény projektálása panel Elemző panel Eredmények mentése, környezeti paraméterbeállítások Minta alkalmazások 31. Házi Feladat: Tőzsdei kereskedés esettanulmány Automatikus adatimport honlapokról Excelbe Szakirodalom

27 Tőzsdei spekuláció a műegyetemen január 23., kedd 11:43 Tőzsdei spekuláció címen új szabadon választott tárgyat indítanak a műegyetemen februártól. Az oktatók nem ígérik, hogy a nyerő stratégiát tanítják majd, mert olyan nincs. Viszont fontosnak tartják, hogy hallgatóik jártasabbak legyenek a pénzügyi kultúrában, és valós gazdasági ismeretek birtokában diplomázzanak. Ezért bármekkora profitot is érnek el a tőzsdén a szemeszter alatt – ha a gyakorlatban is ki akarják próbálni a dolgot –, a vizsgát nem ússzák meg Házi Feladat: Nehogy az agyon ajnározott és támogatásokkal nyomatott BME-sek jobbak legyenek a Pollackos adatbányászoknál, a hallgatók alakítsanak 3 fős tőzsdei kereskedő csapatokat: Minden tag induló tétként beszáll ezer Forinttal Nyitnak egy elektronikus tőzsdei kereskedési számlát bármely ezzel foglalkozó banknál, vagy brókerháznál (pl. IEB, Equitas), illetve telepítik az ehhez járó kereskedési szoftvert A csapat első tagja azért lesz felelős, hogy a megfelelő on-line adatforrásokból (pl. ) egy automatikus importáló szoftverrel relációs adatbázisba gyűjtse a kereskedéhez releváns adatokat: a tőzsdei/OTC részvények/kötvények/határidős papírok árfolyamait, kötési méreteit, időpontjait, forgalmát, a kötési időpont különféle ciklusokban elfoglalt helyét(4 éves beruházási ciklus, éves szezonalitás, negyedéves jelentési ciklusok, havi zárások és kötvény kamatciklusok, heti, napi és napon belüli tőzsdei munkaciklusok) A második tag kiegészíti az adatbázist külső és „lágy” adatokkal: tőzsdeindexek, konjunktúra-indikátorok, makrogazdasági előrejelzések, valuta- és nyersanyag árfolyamok becslései, a vezető brókerházak árfolyam előrejelzései A harmadik tag egy kereskedési modellt épít fel ES, Fuzzy, Neurális, vagy Neuro-Fuzzy szoftver felhasználásával A kereskedés 7 hétig folytatható, kizárólag az indulótőkéből, elszámoláskor az alaptőke megőrzéséért csapatonként 90 pont jár, veszteségért százalékpontonként -1 pont, nyereségért százalékpontonként 3 pont. A csapat tagjai munkájuk arányában oszthatják fel egymás közt a megszerzett pontokat. A feladathoz az alábbi segítségeket mellékeljük:

28 Importálás webről Excelbe1 Az Excel Adatok| Külső adatok importálása| Új weblekérdezés… menüjében: –Cím: a forrás webcíme (pl. /Tőzsdekompasz /BÉT) –Kattintsunk a forrás HTML táblázat objektum kijelölő nyílra: –Ez bekereteződik –Importálás gomb: adatok visszahozása Excelbe katt

29 Importálás webről Excelbe 2 katt Ezután jelöljük ki a befogadó munkalapot+kezdő cellát OK gombra kattintva az adatok beíródnak a munka- lapra, és megjelenik a Külső adatok eszközsor: A Tulajdonságok gombra kattintva állíthatjuk: –Mentse a lekérdezésdefiníciót –Frissítse az adatokat nyitáskor és a háttérben 1 percenként (internet-kapcsolatot igényel) –Új adatokhoz teljes sorok beszúrása (ez szinkronizálja az adatforrás és a munkalap sorait) –Képletek kitöltése az adatok melletti oszlopokban (ez az új sorokba is autokitölti a képleteket) Egy munkalapon csak 1 webes import lehet! katt

30 Importálás webről Excelbe 3 Látható, hogy a letöltött adatok nem adnak tranzakció szintű adatokat (pl. az adott időpontban létrejött kötés mérete hány részvény volt), csak forgalmi összesítést a nap addigi kötéseiről. Ez fontos információ egyetlen ingyenes BÉT adatforráson sem szerepel, mert a brókerházak maguk is intenzíven használják kereskedési modelljeikben. Ezért csak fizetősen férhető hozzá, vagy ott sem. Ha azonban nagyon sűrű időszeletekben (pl. 1 perc) figyeljük a folyamatosan frissülő adatokat, akkor két egymást követő összesített forgalom különbségeként ki lehet számítani a kötési méretet Ehhez kell egy makró, ami frissítés után mindig átmásolja az adatokat egy puffer munkalapra, de elötte még összeveti őket az előzőleg a puffer munkalapon lévő régi adatokkal, és ahol különbséget talál, azt a sort a kiszámított kötési mérettel kiegészítve hozzáfűzi egy megfelelő mezőszerkezetű adatbázis táblához. Ez sem segít azonban azon, hogy az ingyenes BÉT adatforrások (és sok fizetős is) mind 15 perces késleltetéssel jelenítik meg az adatokat, hogy a brókerházak ki tudják használni a nagyon rövid idejű árfolyam ingadozásokat arbitrage-ügyletek segítségével. A megoldás: 31-1Megoldas.xls31-1Megoldas.xls A kereskedési modellt célszerűbb nem JNNS-ben, vagy SNNS-ben, hanem a későbbiekben tárgyalt, jóval fejletebb import/export és adat szűrési/előkészítési lehetőségekkel rendelkező JOONE neurális modellező szoftver segítségével létrehozni.

31 Szakirodalom JNNS jegyzetek CANAL-formátumban magyarul: JNNSNotes.docJNNSNotes.doc JNNS kézikönyv angolul: JNNSManual.pdfJNNSManual.pdf SNNS Neurális programozási nyelv kézikönyv angolul: SNNSManual.pdfSNNSManual.pdf


Letölteni ppt "Pécsi Tudományegyetem Pollack Mihály Műszaki Kar Műszaki Informatika Szak Data Mining 31. Gyakorlat Dr. Pauler Gábor, Egyetemi Docens PTE-PMMK Számítástechnika."

Hasonló előadás


Google Hirdetések