c
Model neuronal
Neuronul simplu
Un neuron cu un singur scalar de intrare si nici o modificare in imaginea de mai jos.
Scalarul de intrare p se transmite printr-o conexiune care inmulteste forta lui cu greutatea scalar w pentru a forma produsul wp iarasi scalar. Aici intrarea de greutate wp este numai argumentul functiei de transfer f care creaza rezultatul scalar a. Neuronul din dreapta are o inclinare scalara b. Poti sa vizualizezi inclinarile prin simpla adaugare la inceput a produsului wp cum este aratata jonctiunea suma sau mutand functia spre stanga cu o cantitate b. Inclinarea este mai mult ca o greutate cu exceptia ca are o intrare constanta de 1.
Functia de transfer a intrarii retelei n, iarasi scalar este suma intrarii de greutate w psi inclinarile b. Aceasta suma este argumentul functiei de transfer f. Capitolul 7 discuta un mod diferit de o forma intrarea retelei n. Aici f este o functie de transfer, o functie pas cu pas caracteristica sau o functie sigmoidala, care ia argumentul n si creaza rezultatul a. Exemple diferite de functii de transfer sunt prezentate in urmatoarea sectiune. Notatiile w si b sunt ambele parametrii scalar ajustabili ai neuronului. Ideea centrala a retelelor neuronale este aceea ca asemenea parametrii pot fi ajustati astfel incat reteaua sa expuna cateva comportamnete dorite si interesante. Astfel, noi putem sa antrenam reteaua pentru a face o ocupatie speciala regland greutatea sau parametrii de inclinare sau probabil reteaua insasi va regal acesti parametrii pentru a realize un sfarsit dorit. Toti neuronii in acest toolbox au o pregatire au o pregatire pentru o inclinare si inclnarea este folosita in multe exemple care vor fi presupuse. Oricum poti omite o inclinare intr-un neuron daca vrei.
Asa cum am notat mai
inainte inclinarea b este un parametru scalar ajustabil al neuronului. Nu este
o intrare. Oricum
Functia de transfer
In acest toolbox sunt incluse multe functii de transfer. O lista complete a lor poate fi gasita in Transfer Function Graphs in Capitolul 14. Trei dintre cele mai folosite functii sunt aratate mai jos.
Functia de transfer dur-limita aratat mai sus restrange rezulatul neuronului la fiecare 0, daca argumentul fr intrare a retelei n este mai putin decat 0 sau 1 daca n este mai mare sau egal cu 0. Aceasta functie o vom folosii in Capitolul 3 "Perceptronii" pentru a crea neuronii care fac deciziile de clasificare.
Toolbo-ul are o functie, hardim pentru a realize mathematic functia de transfer dur-limita aratata mai sus. Incearcca codul aratat mai jos:
El creaza un subiect al functiei hard1im peste domeniul -5 la +5.
Toate functiile matematice de transfer din Toolbox pot fi realizate cu o functie avand acelasi nume. Functia liniara de transfer este aratata mai jos.
Neuronii de acest fel sunt folositi ca aproximatori lineari in "Linear Filtres" in Capitolul 4.
Functia de transfer sigmoidala arartata mai jos i se atribuie intrarea care poate avea orice valoare intre plus si minis infinit si cuprinde rezultatul in domeniul 0 la 1.
Aceasta functie de transfer este in general folosita in retele de descrestere, partial pentru ca este diferentiabila.
Simbolul din patratul din dreapta al fiecarui graphic de transfer aratat mai sus repre 959c221j zinta functia de transfer asociata. Aceste imagini vor inlocui general f in casete de diagrame ale retelei pentru a arata functia de transfer speciala fiind folosita.
Pentru o listare completa a functiei de transfer si a imaginilor lor vezi "Transfer Function Graphs" in capitolul 14. De asemenea poti specifica propriile tale functii de transfer. Nu esti limitat la functiile de transfer care apar in Capitolul 14.
Poti experimenta cu un neuron simplu si cu functia de transfer diferite ruland programul de demonstratie nnd2n1.
Neuron cu vector de intrare
Un neuron cu un singur vector de intrare R-element este aratat mai jos. Aici elemental intra sunt inmultite de greutati si valorile cantarite sunt construite de suma jonstiune. Suma lor este pur si simplu Wp, produsul scalar al matricei W si vectorul p.
Neuronul are o inclinare b, care este adunata cu intrariel de greutate pentru a forma intrarea neta n. Aceasta suma, n, este argumentul functiei de transfer . Bineinteles aceasta expresie poate fi scrisa in cadrul MATLAB ca . Oricum utilizatorul va scrie rareori codul la acest nivel de baza, pentru asemenea cod este déjà construit in functii pentru a define si simula retele intregi.
Figura unui singur neuron aratata mai sus contine mai multe detalii. Cand luam in consideratie retele cu multi neuroni si poate probabil straturi de multi neuroni, exista atat de mult detaliu incat gandirile principale tind sa piarda. Astfel, autorii au nascocit o notare prescurtata pentru un neuron individual. Aceasta notare, care mai tarziu va fi utilizata in circuite de neuroni multiplii, este ilustrata in diagram aratata mai jos.
Aici vectorul de intrare
p este reprezentat de dreptunghiul negru din stanga. Dimensiunile lui p sunt
aratate mai jos, simbolul p in figura ca Rx1(Notati ca vom folosi o majuscule,
ca R in propozitia anterioara, cand ne referim la dimensiunea unui vector).
Astfel, p este un vector al elementului de intrare R. Aceste intrari expediaza
singurul rand, R matricea coloana. La fel ca inainte, o
De fiecare data aceasta notare de retea prescurtata este folosita, dimensiunea matricilor va fi aratata mai jos numele variabil al matricei. Speram ca aceasta notare va va permite sa intelegeti arhitecturile sis a urmariti matematica matricei asociata cu ei.
Pe masura ce am discutat anterior, cand o functie de transfer specifica este intrebuintata intr-o figura, simbolul pentru care functia de transfer va inlocui f aratat mai sus. Iata cateva exemple.
Puteti sa experimantati un neuron cu doua elemente ruland programul de demonstratie nnd2n2.
Arhitecturile Retelei
Doi sau mai multi neuroni aratati mai devreme pot fi combinati intr-un strat si o retea speciala poate sa contina unul sau mai multe straturi. Mai intai luati in considerare un singur strat de neuroni.
Un strat de neuroni
Urmeaza o retea cu un sigur strat cu elemente de intrare R si neuroni S.
In aceasta retea, fiecare element al vectorului de intrare p este conectata la fiecare intrare de neuron prin matricea de greutate W. Neuronul ith are o perioada de inflorire care aduna intrarile ei de greutate si inclinarea pentru a forma scalarul propriu de iesire n(i). Variatul n(i) luat impreuna formeaza un vector n de intrare neta de un element S. In cele din urma, stratul de iesire al neuronului formeaza un vector coloana a. Aratam expresia pentru a in josul figurii. Notam ca este comun pentru numarul de intrari la un strat pentru a fi diferit de numarul de neuroni(i.e., R¦S). Un strat nu este fortat sa aiba numarul intrarilor sale egal cu numarul neuronilor sai. Puteti crea un singur strat de neuroni avand diferite functii de transfer pur si simplu punand doua dintre retelele aratate mai devreme in paralel. Amandoua retelele ar avea aceleasi intrari si fiecare retea ar crea cateva iesiri. Elementele vectorului intra in retea prin matricea de greutate.
Notam ca randul indicelui pe elementele matricei W indica neuronal de destinatie al greutatii si indicele coloanei indica care sursa este intrarea pentru acea greutate. Astfel indicia in W spun ca forta neuronului din al doilea element de intrare la primul(si numai) neuron este W
Neuronul S impune lui R un singur strat de retea care poate sa fie de asemenea atras in notarea prescurtata.
Aici p este un vector de intrare de lungime R, W este o matrice SxR, si a si b sunt vectorii de lungime S. Asa cum am definit anterior, stratul de neuron include matricea de greutate, operatii de inmultire, vectorul de inclinare b, perioada de inflorire si functia de transfer.
Intrari si straturi
Suntem pe punctual de a discuta retele avand straturi multiple astfel incat voi avea nevoie sa extindem notarea noastra pentru a vorbi de asemenea retele. In mod special, trebuie sa facem o deosebire intre matricile de greutate caresunt conectate la intrari si matricile de greutate care sunt conectate intre straturi. De asemenea avem nevoie sa identificam sursa si destinatia pentru matricile de greutate.
Vom numi matricile de greutate conectate la iesiri, greutati de intrare si numi matrici de greutate venind de la iesirile stratului, greutatile stratului. Mai departe vom folosii superscripturile pentru a identifica sursa(al doilea indice) si destinatia(primul indice) pentru greutatile diverse si alte elemente ale retelei. Pentru a ilustra, am luat un strat al retelei de intrare multipla aratata mai devreme si am redesenat in forma prescurtata de mai jos:
Dupa cum puteti vedea, am etichetat matricea de greutate conectata la vectorul de intrare p ca o matrice de greutate de intrare() avand o sursa 1(al doilea indice) si o destinatie 1(primul indice). De asemenea elementele stratului unu, lafel ca incheierea sa, intrarea neta si iesirea au un superscript 1 pentru a spune ca sunt asociati cu primul strat.
In sectiunea urmatoare, vom folosi matricele de greutate ale stratului (Lw) la fel ca matricele de greutate al intrarii(1W). Puteti sa va amintiti din partea de noater a prefatei acea de transformare a matricei de greutate a stratului de la matematica pentru a codifica pentru o retea particulara numita ne este: .
Astfel am putut scrie codul pentru a obtine intrarea neta la functia de transfer ca:
Structuri de neuroni multiple
O retea poate avea cateva straturi. Fiecare strat are o matrice de greutate W, un vector de inclinare b si un vector de iesire a. Pentru a distinge intre maticile de greutate, vectorii de iesire, etc., pentru fiecare dintre aceste straturi in figurile noastre adaugam numarul stratului ca un superscript la variabila de interes. Puteti vedea folosirea notarii acestui strat in reteaua de trei straturi aratata mai jos si in ecuatiile din josul figurii.
Reteaua aratata mai sus are intrari ,
neuroni in primul strat, neuroni in al doilea strat, etc. Este comun pentru
diferite straturi as aiba numere diferite de neuroni. O intrare
Aceasi retea cu trei straturi discutata mai inainte poate fi de asemenea folosita utilizand notarea noastra prescurtata.
Retelele cu straturi multiple si complet puternice. De exemplu, o retea de doua straturi, unde primul strat este curba sigmoidala si al doilea strat este binary poate fi pregatita sa aproximeze orice functie(cu un numar limitat de discontinuitati) in mod arbitrar bine. Acest fel de retea cu doua straturi este folosita pe larg in Capitolul 5 "BackPropagation". Aici presupunem ca iesirea stratului al treilea este iesirea retelei de interes si am efectuat aceasta iesire ca y. vom folosi aceasta notare pentru a specifica iesirea retelelor multistratificate.
Structuri de date
Aceasta parte discuta cum formatul de structure de date de intrare influenteaza simularea retelei. Vom incepe cu retele statice si apoi retele dinamice. Suntem preocupati de doua tipuri de baza de vectori de intrare aceia care aparin mod current(in acelasi timp sau in nici o desfasurare in timp specifica) si aceia care aparsecvential in timp. Pentru vectorii concurenti ordinea nu esteimportanta si daca am avut un numar deretele legate in parallel puteam prezenta un vector de intrare la fiecare retele. Pentru vectorii secventiali, ordinea in care apar vectorii este importanta.
Simularea cu intrari concurente intr-o retea statica
Cea mai simpla situatie pentru a simula o retea apare cand reteaua care trebuie simulate este static(nu are nici o reactive sau intarziere). In acest caz, nu trebuie sa fim preocupati daca vectorii de intrare apar sau nu intr-o desfasurare de timp specifica, asa ca putem sa consideram intrarile ca fiind concurente. In plus, am facut problema mai simpla presupunand ca reteaua are doar un vector de intrare. Folositi reteaua urmatoare ca un exemplu
Pentru a ridica aceasta retea putem folosii comanda urmatoare;
Pentru simplitate desenam matricea de greutate si inclinarea sa fie Comenziile pentru aceste desemnari sunt
Sa presupunem ca simularea retelei de informatii consta in Q=4 vectorii concurenti:
Vectorii concurenti sunt prezentati retelei ca o singura matrice
Acum putem simula reteaua :
O singura matrice de vectori concurentieste prezentata retelei si reteaua produce o singura matrice de vectori concurenti ca iesire. Rezultatul ar fi acelasi daca ar fi patru retele legate in parallel si fiecare retea ar primii unul dintre vectorii de intrare si produce una dintre iesiri. Ordonarea vectorilor de intrare nu este importanta atata timp cat ei nu interactioneaza unul cu celalalt .
Simularea cu intrari secventiale intr-o retea dinamica.
Cand o retea contine intarzieri, intrarea la retea ar fi in mod normal o succesiune de vectori de intrare care apar intr-o ordine de timp certa. Pentru a ilustra acest caz, folosim o retea simpla ca contine o intarziere.
Urmatoarele comenzi creeaza aceasta retea:
Desemneaza matricea de greutate pentru a fi
Comanda este
Sa presupunem ca succesiunea intrarii este
Intrarile secventiale sunt prezentate retelei ca elemente ale unei matrici celula
Acum putem simula reteaua:
Introducem o matrice celula continand o succesiune de intrari si reteaua a produs o matrice celula continand o succesiune de iesiri. Notam ca ordinea intrarilor este importanta cand sunt prezentate ca o succesiune. In acest caz, iesirea curenta este obtinuta inmultind intrarea curenta cu 1 si intrarea precedent cu 2 si adunand rezultatul. Daca ar fi fost sa schimbam ordinea intrarilor, ar schimba numerele pe care le-am fi obtinut in iesire/rezultat.
Simularea cu intrari concurente intr-o retea dinamica
Daca ar trebiu sa aplicam aceleasi intrari de la exemplul anterior ca un set de intrari concurente in locul unei succesiuni de intrari, am obtine un raspuns complet diferit(desi nu este clar de ce am facut asta cu o retea dinamica). Ar fi ca si cum fiecare intrare a fost aplicata concurrent la o retea paralela separate. Pentru exemplul anterior, daca folosim un set concurrent de intrari avem
Care poate fi create cu urmatorul cod
Cand simulam cu intrari concurente obtinem
Rezultattul este acelasi ca sic and am avut concurrent aplicat fiecare dintre intrari la o retea separate si calculate un rezultat. Notam ca, de cand nu am desemnat vreo conditie initiala la intarzierile retelei, au fost presupusi sa fie zero. Pentru acest caz rezultatul va fi pur si simpluintrarea 1, de cand greutatea care inmulteste intrarea curenta este 1. In anumite cazuri special, putem vrea sa simulam raspunsul retelei la cateva succesiuni diferite in acelasi timp. In acest caz am vrea sa prezentam reteaua ca un set concurrent de succesiuni. De exemplu sa spunem ca vrem sa prezentam urmatoarele doua succesiuni la retea:
Intrarea P ar trebui sa fie o matrice celula, unde fiecare element al matricei contine cele doua elemente ale celor doua succesiuni care apar in acelasi timp
Acum putem simula reteaua
Reteua retelei de iesire ar fi:
Dupa cum puteti vedea, prima coloana a fiecarei matrici face succesiune rezultata create de prima succesiune de intrare care a fost singura pe care am folosit-o intr-un exemplu anterior. A doua coloana a fiecarei matrici face succesiunea rezultata create de succesiunea a doua de intrare. Nu exista interactiune intre cele doua succesiuni concurente. Este ca si cum el ear fi fost fiecare aplicata la retele separate legate in parallel.
Diagrama urmatoare arata formatul general pentru intrarea P la functia sim cand avem succesiuni concurente Q ai pasilor de timp TS. Acopera toate cazuriel cand exista un singur vector de intrare. Fiecare element al matricei celulaeste o matrice de vectori concurenti care corespund aceluiasi punct in timp pentru fiecare succesiune. Daca exista vectori de intrare multiplii, va fi randuri multiple de matrici in matricea celula.
In aceasta parte, am aplicat intrari secventiale si concurente la retele dinamice. In sectiunea anterioara, am aplicat intrari concurente la retele statice. Este de asemenea posibil sa aplicam intrari secventiale la retele statice. Nu va schimba raspunsul simulate al retelei, dar poate influenta modul in care reteaua este formata. Aceasta ca devein clara in partea urmatoare.
Training Styles - Stiluri de pregatire
In aceasta parte, descriem doua stiluri diferite de pregatire. In pregatirea crescatoare greutatile si inclinarile retelei sunt actualizate de fiecare data cand o intrare este prezentata la retea. In fisierul de pregatire greutatile si inclinarile sunt numai actualizate dup ace toate intrarile sunt prezentate. Incrementarea pregatirii poate fi aplicata la ambele retele statice si dinamice, desi este mai comun folosita cu retele dinamice, ca filter adaptive. In aceasta parte, demonstram cum pregatirea incrementara este executata pe ambele retele statice si dinamice.
Pregatirea incrementara cu retele statice
Luati iar in considerare reteua static ape care am folosit-o pentru primul nostrum exemplu. Vrem sa o pregatim incrementar, asa incat greutatile si inclinarile vor fi actualizate dupa ce fiecare intrare este prezentata. In acest caz, folosim functia adaptive si prezentam intrarile si tintele ca secventiale.
Sa presupunem ca vrem sa antrenam reteaua pentru a crea functia liniara. .
Apoi pentru intrarile anterioare am folosit
Tintele ar fi
Mai intai ridica reteaua cu greutatile initiale zero si inclinari. De asemenea configuram ritmul de invatare la zeroul initial, pentru a arata efectul pregatirii incrementare.
.
Pentru pregatirea incrementara vrem sa prezentam intrarile si telurile ca secventiale
Reamintiti-va din discutia anterioara ca pentru o retea statica simularea retelei produce aceleasi rezultate chiar daca intrarile sunt prezentate ca o matrice de vectori concurenti sau ca o matrice de celula de vectori secventiali. Aceasta nu este adevarata cand pregatim reteaua, oricum. Cand folosim functia de adaptare, daca intrarile sunt prezentate ca o matrice de celula de vectori secventiali, apoi greutatile sunt actualizate pe masura ce fiecare intrare este prezentata(mod incrementar). Asa cum vedem in partea urmatoare daca intrarile sunt prezentate ca o matrice de vectori concurenti, atunci greutatile sunt actualizate numai dup ace toate intrarile sunt prezentate(mod fisier)/modul fisierului de comenzi
Acum suntem pregatiti sa antrenam reteaua incrementara.
Rezultatele retelei vor ramane zero, de cand ritmul de invatare este zero si greutatile nu sunt actualizate. Erorile vor fi egale cu tintele:
Daca configuram acum ritmul de invatare la 0,1 putem vedea cum reteaua este reglata precum fiecare intrare este prezentata:
Primul rezultat este acelasi care a fost cu ritmul de o invatare de cand nici o actualizare nu este facuta pana cand prima intrare este prezenta. Rezultatul al doilea este diferit de cand greutatile au fost actualizate. Greutatile continua sa fie modificate precum fiecare eroare este calculate. Daca reteaua este capabila si ritmul deinvatare este setat correct, eroarea va conduce in cele din urma la zero.
Pregatirea incrementara cu retele dinamice
De asemenea putem pregati retele dinamice incrementare. De fapt, aceasta ar fi cea mai comuna situatie. Sa luam reteua liniara ca o intarziere la intrarea pe care am folosit-o in exemplul anterior. Noi reducem la zero si configuram ritmul de invatare la 0,1.
Pentru a antrena incrementar aceasta retea prezentam intrarile si telurile ca elemente ale unei matrici de celula.
Aici incercam sa antrenam reteaua pentru a aduna intrarile curente si anteriaore pentru a crea rezultatul current. Aceasta este aceeasi secventa de intrare pe care am folosit-o in exemplul anterior folosind sim, cu exceptia ca desenam primul termen in secventa precum conditia initiala pentru intarziere. Acum putem antrena secvential reteua folosind adaptarea.
Primul rezultat este zero de cand greutatile inca nu au fost actualizate. Greutatile se schimba la fiecare pas de timp ulterior.
Pregatirea fisierului de comenzi
Pregatirea fisierului de comenzi, in care greutatile si inclinarile sunt actualizate numai dup ace toate intrarile si telurile sunt prezentae, poate fi aplicata retelelor statice si dinamice. In aceasta parte discutam ambele tipuri de retele.
Pregatirea fisierului de comenzi cu retele statice
Pregatirea fisierului consta in folosirea fie a adaptarii, fie a antrenarii, desi antrenarea este in general cea mai buna optiune, precum are acces la algoritmi de pregatire mai eficienti. Pregatirea incrementara poate fi facuta numai cu adaptare; antrenarea poate numai sa execute instruirea fisierului de comanda. Sa incepem cu reteua static ape care am folosit-o in exemplul anterior. Ritmul de invatare va fi setat 0,1.
Pentru pregatirea fisierului de comenzi a unei retele statice cu adaptare, vectorii de intrare trebuie sa fie plasati intr-o matrice de vectori concurenti.
Cand numim adaptarea va invoca pregatirile(care este functia de adaptare implicita pentru reteua liniara) si invatare(care este functia de invatare implicita pentru greutati si inclinari). De aceea este folosit Widrow-Hoff.
Notam ca rezultatele retelei sunt toate zero pentru ca greutatile nu sunt actualizate pana cand setul de antrenari au fost prezentate. Daca afisam greutatile gasim:
Este diferit ca rezultatul pe care l-am trecut ca adaptare cu actualizare incrementara.
Acum sa executam aceeasi pregatire de fisiere folosind antrenarea. De cand regula Widrow-Hoff poate fi folosita in modul de pregatire sau in modul incrementar, poate fi invocat de adaptare sau pregatire. Exista cativa algoritmi care pot fi folositi numai in modul fisierului de comenzi(ex. Levenberg-Marquardt) si acesti algorimi pot fi invocati numai de adaptare.
Reteaua va fi setata in acelasi fel:
Pentru acest caz, vectorii de intrare pot fi plasati ori intr-o matrice de vectori concurenti ori intr-o matrice celula de vectori secventiali. In interiorul antrenarii orice matrice celula de vectori secventiali este transformata la o matrice de vectori concurenti. Aceasta este pentru k reteaua este statica si pentru ca antrenarea functioneaza intotdeauna in modul fisierului de comenzi. Functionarea modului concurrent este in general folosita oricand este posibil, pentru ca are o indeplinire MATLAB mai eficienta.
Acum suntem pregatiti sa antrenam reteaua. O vom pregati pentru o singura epoca, de cand am folosit numai o trecere a adaptarii. Functia de antrenare implicita pentru reteaua liniara este trainc si functia de invatare implicita pentru greutati si inclinari este learnwh, asa incat ar trebui sa avem aceleasi rezultate pe care le-am obtinut folosind adaptarea in exemplul anterior, unde functia de adaptare implicita a fost antrenata.
Daca afisam greutatile dupa o epoca de antrenare gasim
Acesta este acelasi rezultat pe care l-am avut cu instruirea nodului fisierului de comenzi in adaptare. Cu retele statice functia de adaptare poate implementa instruirea fisierului de comenzi depinzand de formatul informatilor de intrare. Daca informatia este prezentata ca o matrice de vectori concurenti, va aparea instruirea fisierului de comenzi. Daca informatia este prezentata ca o succesiune, va aparea instruirea incrementara. Nu este adevarata pentru antrenarea care executa intotdeauna antrenarea fisierului de comenzi indifferent formatul intrarii
Instruirea fisierului de comenzi cu retele dinamice
Antrenand retele statice este relative simplu. Daca folosim antrenarea reteua este antrenata in modul fisierului de comenzi si intrarile sunt transformate la vectori concurenti (coloane ale unei matrici), chiar daca ei sunt originali trecuti ca o succesiune, apoi reteaua este antrenata in mod incrementar. Daca intrarile sunt trimise ca vectori concurenti, apoi este folosita antrenarea modului fisierului de comenzi.
Cu retele dinamice, antrenarea modului fisierului de comenzi este characteristic facut cu antrenarea, in mod special daca exista numai o antrenare secventiala. Pentru a ilustra aceasta, sa consideram din nou reteua liniara cu o intarziere. Folosim n ritm de invatare 0.02 pentru instruiere.(Cand folosim un algoritm de coborare gradient, noi folosim in mod characteristic un ritm de invatare mai mic pentru antrenarea fisierului de comenzi apoi antrenarea incrementare pentru ca toti gradientii individuali sunt adunati impreuna inainte sa determinam pasul transformat la greutati)
Vrem sa antrenam reteaua cu aceeasi secventa pe care am folosit-o pentru antrenarea incrementara mai devreme, dar de data aceasta vrem sa actualizam greutatile numai dup ace toate intrarile sunt aplicate(modul fisierului de comenzi). Reteua este simulate in modul secvential pentru ca intrarea este o succesiune, dar greutatile sunt actualizate in modul fisierului de comenzi.
Greutatile sunt dupa o epoca de instruiere:
Acestea sunt greutati diferit decat cele pe care le-am fi obtinut folosind antrenarea incrementara, unde greutatile ar fi actualizate de trei ori in timpul unei treceri prin setul de antrenare. Pentru antrenarea fisierului de comenzi greutatile sunt actualizate numai o data in fiecare epoca.
Rezumat
Intrarile la un neuron inclid inclinarile sale si adunarea greutatilor inclinarilor(folosind produsul scalar). Rezultatul unui neuron depinde de intrarile neuronului si de functia sa de transfer. Exista multe functii de transfer folositoare. Un neuron singur nu poate sa faca foarte mult. Oricum cativa neuroni pot si combinati intr-un stratsau straturi multiple care au o putere mare.
In mod incurajator acest Toolbox face mai usor sa creeze si intelege asa retele.
Arhitectura unei retele consista intr-o descriere de cat de multe straturi are o retea, numarul neuronilor in fiecare strat, functia de transfer a fiecarui strat si cum se conecteaza straturile unul la altul. Cea mai buna arhitectura pentru a o folosi depinde de retea. Harta problemei speciale pentru a fi executata fixeaza numarul de intrari, la fel ca numarul de iesiri pentru retea.
In afara de numarul de neuroni in stratul de iesire al retelei numarul de neuroni in fiecare strat este pana la proiectant. In afara de retelele liniare cu cat sunt mai multi neuroni intr-un strat ascuns, cu atat reteua este mai puternica. Daca harta liniara are nevoie sa fie reprezentata neuronii liniari ar trebui sa fie folositi. Oricum retelele liniare nu pot sa execute orice calculare neliniara. Folosirea unei functii de transfer neliniara face o retea capabila sa contina relatii onliniare intre intrare si rezultat.
O problema foarte simpla poate fi reprezentata de un singur strat de neuroni. Oricum un singur strat al retelei nu poate rezolva anumite probleme. Straturi feed-forward multiple dau retelei o mare libertate. De exemplu orice functie rezonabila poate fi reprezentata cu o retea de doua straturi, un strat sigmoidal alimentand un strat de rezultat liniar.
Retelele cu inclinari pot sa reprezinte relatii intre intrari si rezultate mai usor decat retelele fara inclinari(De exemplu, un neuron fara o inclinare va avea intotdeauna o intrare neta la functia de transfer de 0 cand toate intrarile sale sunt zero. Oricum, un neuron cu o inclinare poate invata sa aiba orice functie de transfer de intrare sub aceleasi conditii invatand o valoare apropiata pentru inclinare).
Retelele feed-forward nu pot sa execute calcule temporale. Retelele mai complexe cu caile de reactie interne sunt solicitate pentru comportarea temporala.
Daca cativa vectori de intrare urmeaza sa fie reprezentati la o retea, ei pot fi prezentati in mod secvential sau concurrent. Fisierul de comenzi al intrarilor concurente este mai efficient calculate si paote f ice este dorit in orice caz. Notarea de matrice folosita in MATLAB face fisierul de comenzi simplu
Figuri si ecuatii
Neuron simplu
Functie de transfer la limita grea
Functia de transfer Purelin
Functia de transfer Log-Sigmoid
Neuron cu vector de intrare
Intrare neta
Un singur neuron folosin notarea prescurtata
Imagini pentru functie de transfer
Strat de neuroni
Un strat de neuroni
Matrice de greutate
Strat de neuroni, notare prescurtata
Strat de neuroni aratand indici
Trei straturi de neuroni
Trei straturi, notare prescurtata
Neuron liniar cu vector de intrare - doua elemente
Retea dinamica cu o intarziere
|