WCG?*: jedna se o cast mych stran zabyvajicich se neuronovymi sitemi...
Omezeni jsou pouze v pameti (ovsem vzhledem ke koncepci i kdyz jsou pouzity pointery je pocet neuronu omenezen na 65535*, jako pocet vstupu na 65535* - ovsem kdy by take rucne popisoval neuronovou sit ktera ma 1000neuronu? - mozna se takovy clovek najde. Dalsi omezeni: max. 16 synaptickych spojeni (uz sem byl linej a pro demonstracni ucely to bohate staci).
S sw se komunikuje pomoci command line (GUI widli uz mi leze krkem+ je to pomaly), je moznost
grafickeho vystupu. Sw je navrzen modularne (tj. existuji moduly neunet.pas, geneze.pas graphics.pas,
cmdln.pas, crtx.pas a to co to dava dohromany je snn.pas), jak je videt je to programovany v packalu:
omlouvam se ceckarum, ale C zatim nezvladam natolik, abych byl schopny neco podobneho spachat.
dale: vse uvidite az si to stahnete, sw "komunikuje" se siti pres vrstvu zvanou nekdy Linked, Input
Const etc., vrstva Neunetu (vlastni telo site ho nemusi zajimat, ale da se do nej zasahovat za
behu sw- pouze nastavovat synapticjke vahy W, lambdu, prah. Zapojeni site ja dano souborem *.net,
vsecky linkovane konstanty jsou v souborech *.lnk, pri popisu site se pouze pise meno souboru
bez pripony! [ex: syc.lnk tak napiseme: #syc.x sy.0 $1.2 ;kde x je nazev konstanty) obsah syc.lnk je x=2.348.]
Je mozno defaultne zavest konstantu [ex: 1.257 sy.0 $1.2], to udelejte pokud ji nechcete pouzit v neunetXgraph
(graf. vystup). jak je videt tak $ zamena nastaveni koeficientu (NEPOUZIVEJTE pred temito prikazy MEZERY!!!
protze tohle $ 1.2 vam NEVEZME!!!, nebo taky ^ 4.2 (lambda) anebo & 1 (prah) spravny zapis je: ^4.2
a &1 ). Vse se doctete az stahnete snn.exe. Doufam ze je to srozumitelne, uvadim zde kus (cely vypis)
NDL "jazkyka":
FILE: sample.net =============================== CONTENET: ------------------------------- /netname/ TEST ;definice mena site /pokec/ ;nejakej pokec o siti /net/ ;direktiva: chci popisovat sit ;---------------------- <inf ^1 &0 { #syc.x sy.0 $4.2 } > ;'<inf' - meno neuronu "inf" ;'^' - urcuje lamdu - strmost, ;'&' - ucruje prah neuronu ;'$' - urcuje W koeficinet (synapticky) ;sy.0..15 cisla synapsi, cisla musi mit sekvenci 0..15!!!, ne napreskacku! ;{ } - definice zasitovani dendritu - synapsi ;#syc.x znamena natazeni konstanty ze souboru "syc.lnk" a meno konst je "x" ;pokud nepouzijete a nepisete pouze konstantu (cislo) ;NENI mozna spoluprace s neunetXgraph!!! - pouziva to jako vstup do site. ; soubor sys.lnk vypada takhle: ;x=5 (treba) ;!!!POZOR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;} > - musi tam bejt mezera, protoze neunet bere jako odelovaci znak ;prikazu prave mezeru!!!!!!!! ;------------------------------ <ina ^2 &1 { ax.inf sy.0 $3 ax.out sy.1 $0.5 ;!feedback } > ;ax.inf znamena ukazani na AXon z neuronu jmenem inf a routuje se do ;synapse 0 s W koef. 3 ;ax.out - zde je videt moznost vytvoreni site se zpetnou vazbou (feedback) ;-natohle si dejte pozor, snadno to zpusobuje epilepticke zachvaty site. ; - dojde k prebuzeni vsech neurou a vsecky maji vystup ~1 ;----------------------------- <inb ^2 &1 { ax.inf sy.0 $2.2 } > ;---------------------------- <mia ^1 &0 { ax.ina sy.0 $4 ax.inb sy.1 $2 } > ;------------------------- <mib ^5 &1 { ax.ina sy.0 $9 ax.inb sy.1 $1 } > ;---------------------------- <out ^1 &0 { ax.mia sy.0 $2 ax.mib sy.1 $2 ax#out.o } > ;ax#out.o znamena vystup do souboru jmenem out a jemno vystypu "o", ;pokud nekde nepuzijete, neni mozna spoluprace s neunetXgraph!!!! ;ten z techto vystupu taha funkci hodnoty.no, jen jak se nato divam tak ja odbornik "zatim diletant" vidim ze dostane "epilepticky zachvat" - znamena to ze dojde k plne excitaci a na vystupu bude nic nez 0.99??? nebo 1 lepsi je hrb.net.
================================== UVODNIK: uvodnik.txt ---------------------------------- *************************************** UVODNIK DO NEURONOVYCH SITI *************************************** Co to je? --------- to je to co mate v hlave - mozecek (mozna nekdo ma i neco jineho :-) obecne se jedna o soustavu prvku vykonavajich jistou funkci (prenosovou), ktere jsou spojeny v sit. Takhle to mame udelane v mozku, lidi se snazi napodobit Prirodu a proto byl jeden nas neuron (tj. ten prvek vykonavajici fci) popsan matematickou funkci, "obecne se pouziva" sigmoida: nejprv co je neuron: synapse dendrity | | | -------- 1>(W1)---------| | 2>(W1)---------| | synapse 3>(W1)---------| | | . | |------>>--- . | | axon . | | j>(Wj)---------| | -------- jadro neuronu synapse - je to spojeni dendrit/axon (konektor) axon - vystupni "drat" z neuronu denrit - "drat" na vedeni signalu ze synapse jadro neuronu - "vypocetni" jednotka popsana takhle: y=1/ (1+ e^((-1)*lamda*ksi)) kde ksi= SUMA(Xj*Wj) - theta Wj je synapticky koeficient Xj .. vstup do synapse (treba za axonu) a kdyz se z takovychto jednotek (umelych neuronu = perceptronu) vytvori sit, je mozno realizovat "vsechny" funkce - i se neco naucit - uceni tj. vytvoreni prislusne funkce je veci aproximace. note: skutecne se daji tvorit bizardni funkce uz z malo neurony (~6). note: prenosova funkce neuronu nemusi byt sigmoida, ale i jina funkce, klidne typu 1/0, jenze abychom se priblizili co nejvice k biologickemu neuronu je zrejme nejlepsi sigmoida - je odolna vuci signalum s vysokou amplitudou a nezesiluje "sumy" -slabe signaly. Jenze se dneska pouzivaji i jinaci funkce - treba pro pamet.... takze situjte a situjte :-)a jeste nakonec vypis dostupnycch prikazu (pozn. OS= DOS, nebo DOSemu v Linuxu - pokud stim budete potrebovat hlepnout: tak v /etc/dosemu.conf zmente:
1) treba pripojeni jineho disku nez linuxacyho virtualniho C:
v $_hdimage="hdimage.first" pozmente treba na $_hdimage="hdimage.first /dev/hda1" kde hda1 je disk s
FAT16!!! a kde je taky neunet. kdyz to prohodite, nabootuje se system pokud je na hda1 treba DOS,
widle se nabootujou pouze kdyz BootGUI=0. Zvysovani XMS nema cenu (mel sme 32MB a furt to bylo widlim
malo).
Jeste dalsi dulezita vec: !! $_graphics=(1) default je $_graphics=(0).
TADY TO JE:
----------------
**************************************************** * NEUNET HELP FILE (cmds.txt) * **************************************************** [help, ls] ..........................shows all available commands [help, ls] fileName .................listing. [csc] neuronName #synaps newValue ...change synaps coeficient [clb] neuronName newValue ...........change lambda [cth] neuronName newValue ...........change neuron's threshold [cin] inputName newValue ..........change input value [cstep] inputName newValue ..........change step for Xgraph [cmin] inputName newValue ..........change minimum val. for Xgraph [cmax] inputName newValue ..........change maximum val. for Xgraph [nls] .........neunet listing - writes all neurons ID&NAME [nr] name .....show neuron data field [ols] .........output listing [ils] .........linked constants listing (external input) [cit] .........count NeuNet! [maxin] name newValue ..change maximum value of linked constant [minin] name newValue ..change minimum value of linked constant [step] newValue ........change step for graphic output [rel] ..................halt neunet, reload&build whole neunet again [store] fileName .......save NeuNet to *.* file -------------------------------- OFFSET EVOLUTION... (genetic modification - offset) [fg] #modifications ..random OFFSET modification [fgc] c (0.001) ....result:= result + result*randomC (c is maximum of C) ABSOLUTE EVOLUTION [ag] #modifications...random ABSOLUTE modification [agc] DNAbase ........result:= random(DNAbase*1000)/1000...wizz geneze.pas; [g] ......show graph (640x480), quit: q, zoom:+/-,+move [l] ......execute last command [8x8] ....sets 8x8 char mode [8x14] ...sets 8x14 char mode [8x16] ...sets 8x16 char mode [exit, q] exit program ---------------------------------------- ]]] Hot keys for neunetXgraph [[[ c ........center screen q ........exit neunetXgraph pgDn .....move right delete ...move left home .....move up end ......move down arrows ...(->^.<-) - fine move graph + ........zoom in - ........zoom out ---------------------------------------- ]]] Tips for "ls" (listing) [[[ neunet.txt uvodnik.txt kdo.txt sample.net sample.lnkNOTE: prikaz HELP je listing souboru CMDS.TXT.
NOTE: !!! NEUNET je CASE SENSITIVE (rozlisuje Velka a mala pismenka)
END.