Hopfield hálózat vagy írjon magát FineReader Intel® szoftver
Először, meg kell határozni, hogy mekkora neuron. az
Biológia neuron - egy speciális sejt teszi ki az idegrendszerre. Biológiai neuron szerkezete az 1. ábrán látható.
1. ábra reakcióvázlat a neuron
A neurális hálózat lehet bevinni, az idegsejtek és összefüggéseket. Következésképpen annak érdekében, hogy meghatározzuk egy mesterséges (nem-biológiai) neurális hálózat, hogy:
- Kérdezze meg a hálózati architektúra;
- Határozza meg a dinamikája az egyes hálózati elemek - neuronok;
- Határozzuk meg a szabályokat, amelyek a neuronok kölcsönhatásban vannak egymással;
- Ismertesse a tanuló algoritmus, azaz a kötések kialakítása, hogy megoldja a problémát.
Mivel az építészet, a neurális hálózatot Hopfield hálózatot használunk. Ez a modell úgy tűnik, hogy a leggyakoribb matematikai modellek utalnak. Ez annak köszönhető, hogy az egyszerűség és érthetőség. Hopfield hálózat mutatja, hogy a memória lehet elhelyezni egy hálózati elem, ami nem túl megbízható. Kísérleti adatok azt mutatják, hogy a hibás termékek száma neuronok 50% a valószínűsége, hogy a helyes válasz nagyon közel 100%. Még egy felületes összehasonlítása a neurális hálózat (például az agyba) és Neumann számítógép mutatja, hogy mennyi a különbség a tárgyak: például a módosítások gyakorisága államok neuronok ( „órajel frekvenciája”) kisebb, mint 200 Hz, míg a frekvencia állapotában bekövetkező változásokat a modern processzorok elérheti több GHz (10 9 Hz).
A hivatalos leírást a Hopfield hálózat
A hálózat N mesterséges neuronok, az axonok minden neuron kapcsolódik a dendritek a másik idegsejt, amely egy visszajelzést. A hálózati architektúra ábrán látható. 2.
2. ábra Az architektúra a neurális hálózat a Hopfield
Minden neuron lehet az egyik államban 2:
Egyenletek (1), (2), (3), (5) elegendő, hogy meghatározzuk a mesterséges neurális hálózat a Hopfield és folytathatja annak végrehajtására.
Végrehajtása Hopfield neurális hálózat, a fentiekben meghatározott kerül sor a nyelv a C ++. Kezdeni, akkor meg kell határozni további adattípusok (lásd. 1. listát)
- írja súlyozási együtthatót (választott float típus);
- Írja állapotának leírásakor a neuron (saját bevezetése típusú transzfer van kiválasztva);
- típusú, amely leírja a hálózati állapot t időpontban (kiválasztva szabványos konténer vektor);
- típusú, amely leírja egy mátrixot súlyozási együtthatók neuronális kapcsolatok (kiválasztott tartályt vektor vektor konténerek).
1. lista definiálása az új típusú
hálózati képzés, vagy, pontosabban, a számítás a mátrix elemeinek szerinti (3) készül LearnNeuroNet funkciót. fogadó bemenete egy lista a képzés és visszaadja egy objektum típusú link_koefs_t. Az értékek kiszámítása csak az alsó háromszög elemek. Az értékek a felső elemek megfelelően kiszámított expressziós (4). Általános nézet LearnNeuroNet eljárás látható a 2. lista.
2. lista A képzés a neurális hálózat
Frissítése neuron államok által megvalósított funktorhoz neuro_net_system. A túlterhelt üzemeltető funktora át a kezdeti állapotát funktorhoz át a kezdeti állapot. van bemeneti felismerhető módon (szerinti (5)) - mutató egy objektum típusú neurons_line.
funktorhoz üzemeltető módosítja továbbított neurons_line típusú objektumot, hogy az állam a neurális hálózat egy időben. Az érték nem mereven rögzített és határozza meg a kifejezést:
azaz amikor az állam minden egyes neuron nem változott 1 „stroke”.
Kiszámítani a (2) 2 STL algoritmust alkalmazva:
- inner_product számítási összegét termékek a súlyozási együtthatók és neuron állapotok (azaz, számítása (2), hogy specifikus);
- átalakítani, hogy kiszámítja az új értékeket az egyes neuron (azaz a fenti pontos számítását minden egyes lehetséges)
Funktorhoz neurons_net forráskód a 3. listában.
3. lista funktorhoz munka végrehajtásáért a neurális hálózat
Megjelenik a konzol bemeneti és kimeneti kép létrehozásához típusú neurons_line_print_descriptor. amely tárolja utalás a képformátumot és a méret (szélesség és magasság a téglalap, ami bele van írva a képen). Az ilyen típusú felülírás üzemben <<. Исходный код типа neurons_line_print_descriptor и оператора вывода в поток показан в листинге 4.
4. lista A képzés a neurális hálózat
Annak ellenőrzésére, a végrehajtás a teljesítmény, a neurális hálózat képezte 2 kulcs képek:
3. ábra Key képek
A bemeneti táplált torzított képeket. A neurális hálózat, hogy pontosan felismerje az eredeti képeket. Torzult kép és felismeri a képeket a 4. ábrán látható, az 5.
4. ábra Pattern Recognition 1
5. ábra képfelismerés 2
A program futtatása történik a parancssorból varrás típusa: AppName WIDTH HEIGHT SOURCE_FILE [LEARNE_FILE_N]. ahol:
- AppNaame - a neve a végrehajtható fájl;
- Szélességét. Magasság - szélessége és magassága a téglalapot, ahol illeszkedik a kimeneti és a legfontosabb kép;
- SOURCE_FILE - forrás fájlt az eredeti módon;
- [LEARNE_FILE_N] - egy vagy több fájl klyuchyvymi képek (szóközzel elválasztva).
További információ a lehetőségek fordító optimalizáció, tekintse meg optimalizálási közlemény.