Informacija

Kako izračunati težine i pristranost za McCulloch-Pittsov neuron?

Kako izračunati težine i pristranost za McCulloch-Pittsov neuron?



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Pokušavam naučiti kako manipulirati McCulloch-Pittovim neuronima kako bih odredio njihovu težinu i pristranost na temelju ulaznih podataka. U ovom primjeru imam ulaze:

x, y, z ∈ {−1,1}

Izlaz neurona je z ako je x = -1 i y = 1, a -1 je inače.

Kako mogu izračunati težine i pristranost neurona? Primjer ili veza do primjera bili bi jako cijenjeni. (Teško pronalaženje primjera na internetu). Hvala!

Do sada sam koristio jednadžbu out = sgn ((w1) (in1) + (w2) (in2) + (w3) (in3) - theta), ali nisam siguran da li poduzimam ispravne početne korake ili ne za rješavanje ovog problema.


Težine i pristranosti za određeni neuron ovise o zadatku koji pokušavate riješiti. Svako će izračunavanje imati različit skup pondera koji će ga implementirati.


Perceptron jednostavno razdvaja ulaz u 2 kategorije, one koje izazivaju požar i one koje to ne čine. To čini gledajući (u dvodimenzionalnom slučaju):

Dakle, perceptron jednostavno radi povlačenjem crte preko 2-d ulaznog prostora. Ulazi s jedne strane linije razvrstani su u jednu kategoriju, ulazi s druge strane u drugu kategoriju. npr. perceptron OR, w1= 1, w2= 1, t = 0.5, povlači crtu:

Kao što možete zamisliti, ne može se svaki skup točaka podijeliti ovakvom linijom. Oni koji mogu biti, zovu se linearno odvojivi.

U 2 ulazne dimenzije povlačimo 1 dimenzionalnu liniju. U n dimenzija crtamo (n-1) dimenzionalnu hiperravninu:

XOR je mjesto ako je jedan 1, a drugi 0, ali ne oboje.

"Jednoslojni" perceptron ne može implementirati XOR. Razlog tome je što klase u XOR -u nisu linearno odvojive. Ne možete povući ravnu liniju da biste odvojili točke (0,0), (1,1) od točaka (0,1), (1,0).

Predvođen izumom višeslojnih mreža.

P. Dokaz ne može implementirati NOT (XOR) (Isto odvajanje kao XOR)


2 odgovora 2

Svaki čvor u skrivenim slojevima ili u izlaznom sloju neuronske mreže naprijed ima svoj izraz pristranosti. (Ulazni sloj nema nikakvih parametara.) Barem tako radi u TensorFlow -u. Svakako, izgradio sam vaše dvije neuronske mreže u TensorFlowu na sljedeći način:

Evo sažetka ova dva modela koje TensorFlow pruža:

Prvi model ima 24 parametra, jer svaki čvor u izlaznom sloju ima 5 pondera i izraz pristranosti (tako da svaki čvor ima 6 parametara), a u izlaznom sloju postoje 4 čvora. Drugi model ima 24 parametra u skrivenom sloju (računa se na isti način kao gore) i 15 parametara u izlaznom sloju. Svaki čvor u izlaznom sloju ima 4 pondera i izraz pristranosti (dakle 5 parametara po čvoru u izlaznom sloju), a u izlaznom sloju postoje 3 čvora.


Kako izračunati težine i pristranost za McCulloch-Pittsov neuron? - Psihologija

McCulloch-Pittsov model bio je iznimno jednostavan umjetni neuron. Ulazi mogu biti nula ili jedan. A izlaz je bio nula ili jedan. Svaki ulaz bi mogao biti ili uzbuđujući ili inhibicijski.

Sada je cijela poanta bila zbroj ulaza. Ako je ulaz jedan i pobudne je prirode, dodao je jedan. Ako je bio jedan i bio je inhibitorni, oduzeo je jedan od zbroja. To se radi za sve ulaze i izračunava se konačni zbroj.

Sada, ako je ovaj konačni zbroj manji od neke vrijednosti (za koju odlučite, recimo T), izlaz je nula. Inače, izlaz je jedan.

Ovdje je grafički prikaz modela McCulloch-Pitts

Na slici sam predstavio stvari s imenovanim varijablama. Varijable w1, w2 i W3 označavaju koji je ulaz pobuđujući, a koji inhibicijski. To se naziva "utezi". Dakle, u ovom modelu, ako je težina 1, to je uzbudljiv ulaz. Ako je -1, to je inhibitorni ulaz.

x1, x2, i x3 predstavljaju ulaze. Moglo bi biti više (ili manje) ulaza ako je potrebno. U skladu s tim, bilo bi više 'w' koji bi naznačili je li taj određeni ulaz pobuđujući ili inhibicijski.

Sada, ako razmislite o tome, možete izračunati zbroj pomoću 'x i' w. nešto kao ovo:

To je ono što se naziva 'ponderirani zbroj'.

Sada kada je zbroj izračunat, provjeravamo je li zbroj

Sada, koristeći ovaj jednostavan model neurona, možemo stvoriti neke zanimljive stvari. Evo nekoliko primjera:

NOR vrata

Gornja slika je NOR vrata sa 3 ulaza. NOR vrata daju izlaz od 1 samo ako su svi ulazi nula (u ovom slučaju x1, x2 i x3) Možete isprobati različite moguće slučajeve ulaza (mogu biti nula ili jedan).

Imajte na umu da ovaj primjer koristi dva neurona. Prvi neuroni primaju ulazne podatke koje dajete. Drugi neuron radi na izlazu iz prvog neurona. Nema pojma koji su bili početni ulazi.

NAND vrata

Ova slika prikazuje kako stvoriti NAND vrata sa 3 ulaza s tim neuronima. NAND vrata daju nulu samo kada su svi ulazi 1. Ovom neuronu trebaju 4 neurona. Izlaz prva tri ulaz je za četvrti neuron. Ako isprobate različite kombinacije ulaza.

McCulloch-Pittsov model se više ne koristi. Ova vrata NOR i NAND već imaju izuzetno učinkovite sklopove. Stoga je besmisleno ponavljati istu stvar s manje učinkovitim modelima. Poanta je koristiti "međusobne veze" i prednosti koje ima.

Zamijenjeni su naprednijim neuronima. Ulazi mogu imati decimalne vrijednosti. Tako mogu i utezi. Neuroni zapravo obrađuju zbroj umjesto da samo provjeravaju je li manji ili nije.


(Izborno) Motivacija za sigmoidne neurone

Kao što sam ranije spomenuo, umjetni neuroni koje danas koristimo malo se razlikuju od perceptron gledali smo, razlika je funkcija aktiviranja. ovdje. Neki bi mogli reći da logiku praga koju koristi a perceptron je vrlo grub. Na primjer, ako pogledate problem odlučivanja hoću li gledati film ili ne, samo na temelju jednog unosa u stvarnoj vrijednosti (x_1 = kritičariOcjena) i ako je prag koji smo postavili 0,5 (w_0 = -0,5) i w_1= 1 tada bi naše postavljanje izgledalo ovako:

Kakva bi bila odluka za film kritičariOcjena = 0.51? Da!
Kakva bi bila odluka za film kritičariOcjena = 0.49? Ne!
Neki bi mogli reći da je grubo što bismo gledali film s ocjenom 0,51, ali ne i onaj s ocjenom 0,49 i tu Sigmoid dolazi na scenu. Sada se uvjerite da se ovo oštro određivanje praga ne pripisuje samo jednom specifičnom problemu koji smo ovdje odabrali, već bi se mogao dogoditi s bilo kojim ili svakim problemom s kojim se bavimo. To je karakteristika perceptron sama funkcija koja se ponaša kao step funkcija.

Doći će do ove iznenadne promjene u odluci (od 0 do 1) kada vrijednost z prijeđe prag (-w_0). Za većinu aplikacija u stvarnom svijetu očekivali bismo glatkiju funkciju odlučivanja koja se postupno mijenja od 0 do 1.

Uvođenje sigmoidnih neurona gdje je izlazna funkcija mnogo glatkija od step funkcije čini se logičnom i očitom stvari. Imajte na umu da je sigmoidna funkcija matematička funkcija s karakterističnom krivuljom u obliku slova "S", koja se također naziva sigmoidna zavoj. Mnogo je funkcija koje mogu obaviti posao umjesto vas, neke su prikazane u nastavku:

Jedna od najjednostavnijih za rad je logistička funkcija.

Više ne vidimo oštar prijelaz oko w_0. Također, izlaz više nije binarni već stvarna vrijednost između 0 i 1 što se može tumačiti kao vjerojatnost. Dakle, umjesto odluke da/ne, dobivamo vjerojatnost da. Ovdje je izlaz glatko, nesmetano, stalan i razlikovati i kako se to sviđa svakom algoritmu učenja. Da biste se sami uvjerili, pogledajte širenje unatrag koncept u dubokom učenju.


Kako funkcionira jednostavna neuronska mreža:

Neuronske mreže su zgusnuta, otrgnuta verzija načina funkcioniranja našeg mozga. Naš živčani sustav sastoji se od milijuna neuroni međusobno povezani uzastopno. Mozak donosi odluke na temelju toga koji neuroni se aktiviraju i koliko. Na primjer, kada gledate Ured i naiđete na šalu, što mislite da se događa u toj vašoj lubanji?

  • Postoji masovno paralelna međusobno povezana mreža neurona.
  • Osjetilni organi prenose informacije (ulaz) u najniži sloj neurona.
  • Neki od tih neurona mogu se aktivirati i mogu prenijeti informacije u nekoliko sljedećih slojeva neurona.
  • Svaki neuron ima određenu ulogu ili reagira na određeni podražaj.
  • Ova paralelna mreža također osigurava podjelu rada.
  • Taj se proces nastavlja do najvišeg sloja neurona u mozgu, koji će se aktivirati samo kada su neuroni koji aktiviraju u pretposljednjem sloju više od određene razine praga (ovdje se radi o 2 od 3 neurona).

Jednostavno je tako.
Vaša neuronska mreža izvlači značajne informacije iz danih ulaza, prenosi ih kako bi izvukla dodatne uvide i značajke te daje rezultat kao izlaz.

Umjetne neuronske mreže rade na potpuno istom principu. Duboko učenje usredotočuje se na korištenje ulaznih podataka za utvrđivanje obrazaca unutar njih ili na utvrđivanje matematičkih odnosa između ulaza i izlaza koji se mogu koristiti za daljnju ekstrapolaciju i predviđanje trendova na temelju prethodnih ulaza.

Ono što smo upravo vidjeli je previše pojednostavljena verzija načina na koji mozak funkcionira, ali to je dovoljno za našu raspravu o neuronskim mrežama. Prije nego shvatite kako funkcionira potpuna mreža, važno je pogledati kako pojedini neuroni funkcioniraju i kako se mogu modificirati kako bi odgovarali različitim potrebama.

1943. najjednostavniji računski model neurona (McCulloch-Pitts Neuron) je uveden.

Ulazi mogu biti pobudni (1) ili inhibitorni (0).

U tradicionalnom modelu y = 0 ako je zbroj svih ulaza manji od zadanog praga.

Na temelju gornjih kriterija, možemo replicirati boolove funkcije pomoću jednog neurona:

Kao što ste vjerojatno primijetili, McCulloch-Pitts Neuron ne dolazi bez vlastitih ograničenja.

  • Što je s nebulovim (stvarnim vrijednostima) funkcijama?
  • Moramo li ručno postaviti prag?
  • Što ako nekim ulazima želimo pridati veću važnost?

Kako bi se suprotstavili tim nedostacima, perceptron uveden je 1958. Glavne razlike su:

  • Unosi više nisu ograničeni na logičke vrijednosti
  • Uvedene su numeričke težine za svaki ulaz
  • Postoji mehanizam (algoritam) za automatsko učenje ovih pondera

Stoga perceptron može dodijeliti veću težinu određenim ulazima i donositi odluke na temelju toga kako se zbirni zbroj slaže s graničnom vrijednošću.

Međutim, logika praga perceptrona je malo preoštra.
Razmotrimo primjer: gradite sustav s jednim neuronom koji će odlučiti vrijedi li pogledati film. Prag ste postavili na ocjenu 0,5 od 1.

Prema ovom sustavu, prebacivanje s "ne, ovaj film je smeće" na "da, ovaj film zaslužuje Oscara" je prebrzo.

Štoviše, ovaj bi sustav vratio y = 0 (ne gledajte) da su ocjene 0,49, što je prilično čudno jer je blizu 0,5 (što je moj prag).

Ono što nam treba je odgovor sustava koji ima glatkiju funkciju odlučivanja.

To zahtijeva promjenu funkcije neurona. Predstavljamo a sigmoidni neuron može pomoći s postupnom funkcijom prikladnom za primjene u stvarnom svijetu.

Funkcija sigmoida je obitelj funkcija, od kojih su neke:

Nadalje, izlaz nije binarni, već je decimalna stvarna vrijednost koja se može tumačiti kao vjerojatnost.

Primjer sigmoidne funkcije je logistička funkcija (u grafikonu):

Sigmoidne funkcije su također glatke, kontinuirane i diferencijabilne u svim točkama.

Neuroni se koriste za izvođenje uvida u određene obrasce koje postavljaju ulazni podaci za dobivanje matematičkih funkcija koje najbolje odgovaraju ulaznim podatkovnim točkama s minimalnom pogreškom.

McCulloch-Pittov neuron može generirati linearnu funkciju u n-dimenzijama (linija, ravnina ili hiperravnina). To vrijedi samo za linearno odvojive funkcije (funkcije koje vraćaju y = 1 iznad crte/ravnine i vraćaju y = 0 ispod crte/ravnine).

Međutim, nije moguće generirati nelinearnu funkciju koja može točno klasificirati crvene i plave točke odvojeno (u susjednim slikama) pomoću jednog neurona.

Da biste generirali nelinearne funkcije koje mogu približno prelaziti između točaka kako biste većinu njih točno klasificirali, morat ćete koristiti mrežu neurona međusobno povezanih slojevito. Svaki sloj pronalazi različite uzorke i prenosi naprijed, gdje postaju dublji.

Možete pokušati raditi na različitim funkcijama na igralištu za neuronske mreže iz tvrtke TensorFlow. Zabavna je, nesigurna i ne morate biti štreber da biste je mogli koristiti.

Dakle, na temelju ponašanja pojedinačnih neurona, predstavljamo potpuno funkcionalnu umjetnu neuronsku mrežu koja se kreće prema naprijed!

Terminologija:

  1. Ova mreža sadrži 3 sloja.
  2. Sloj koji sadrži ulaze naziva se ulazni sloj.
  3. Srednji sloj koji sadrži 4 perceptrona naziva se skriveni sloj.
  4. Završni sloj koji sadrži izlazni neuron naziva se izlazni sloj.
  5. Izlazi 4 perceptrona u skrivenom sloju označeni su s h1, h2, h3 i h4.
  6. Crveni i plavi rubovi nazivaju se utezi sloja 1.
  7. w1, w2, w3 i w4 nazivaju se utezi sloja 2.

Kako bismo omogućili neuronskoj mreži da replicira željenu funkciju s minimalnom pogreškom, moramo upotrijebiti neke tehnike koje će osigurati da se standardna izlazna funkcija (sigmoidna funkcija/ zbroj izlaza perceptrona) pomiče prema funkciji koju tražimo. Jedan od načina za mjerenje točnosti izlaza u odnosu na funkciju je pomoću a funkcija gubitka.

Funkcije gubitka su metrike koje pomažu u praćenju udaljenosti izlaza neuronske mreže od željenih vrijednosti funkcija. Jedan primjer funkcija gubitka je poznati gubitak pogreške na kvadrat:


Neki detalji

Dano zapažanje može se ili dobro klasificirati, ili u pogrešnu klasu. Kao i u većini problema optimizacije, želimo smanjiti troškove, tj. Zbroj pojedinačnih gubitaka pri svakom opažanju obuke. Pseudokod koji odgovara našem problemu je:

U najosnovnijim okvirima perceptrona Minskog i Paperta smatramo u biti pravilo klasifikacije koje se može predstaviti kao:

  • izraz pristranosti je (< alpha> )
  • težine svakog neurona su (< beta> )
  • aktivacijska funkcija je sigmoidna, označena kao (sig ).

Moramo primijeniti stohastički nagib. Perceptron "uči" kako prilagoditi težine pomoću širenja unatrag. Ponderi i pristranost prvo se nasumično postavljaju i izračunavamo stopu pogreške. Zatim nastavljamo s povratnim širenjem kako bismo prilagodili parametre koje nismo ispravno identificirali, te započinjemo ispočetka za određeni broj epoha.

Dodatno ćemo detaljno objasniti koncepte stohastičkog gradijentnog spuštanja i širenja unatrag u kontekstu višeslojnog Perceptrona.

Čak i perceptron Minsky i Papert ima veliki nedostatak. Na primjer, ako su kategorije linearno odvojive, ona identificira jednu hiper-ravninu koja razdvaja, ne uzimajući u obzir pojam marže koji želimo maksimizirati. Ovaj problem rješava algoritam Support Vector Machine (SVM).


Neki detalji

Dano zapažanje može se ili dobro klasificirati, ili u pogrešnu klasu. Kao i u većini problema optimizacije, želimo smanjiti troškove, tj. Zbroj pojedinačnih gubitaka pri svakom opažanju obuke. Pseudokod koji odgovara našem problemu je:

U najosnovnijim okvirima perceptrona Minskog i Paperta smatramo u biti pravilo klasifikacije koje se može predstaviti kao:

  • izraz pristranosti je (< alpha> )
  • težine svakog neurona su (< beta> )
  • aktivacijska funkcija je sigmoidna, označena kao (sig ).

Moramo primijeniti stohastički nagib. Perceptron "uči" kako prilagoditi težine pomoću širenja unatrag. Ponderi i pristranost se prvo postavljaju nasumično, a mi izračunavamo stopu pogreške. Zatim nastavljamo s povratnim širenjem kako bismo prilagodili parametre koje nismo ispravno identificirali, te započinjemo ispočetka za određeni broj epoha.

Dalje ćemo detaljno objasniti koncepte stohastičkog gradijentnog spuštanja i širenja unatrag u kontekstu višeslojnog Perceptrona.

Čak i perceptron Minsky i Papert ima veliki nedostatak. Na primjer, ako su kategorije linearno odvojive, ona identificira jednu hiper-ravninu koja razdvaja, ne uzimajući u obzir pojam marže koji želimo maksimizirati. Ovaj problem rješava algoritam Support Vector Machine (SVM).


Kako funkcionira jednostavna neuronska mreža:

Neuronske mreže su sažeta, otrgnuta verzija načina funkcioniranja našeg mozga. Naš živčani sustav sastoji se od milijuna neuroni međusobno povezani uzastopno. Mozak donosi odluke na temelju toga koji neuroni se aktiviraju i koliko. Na primjer, kada gledate Ured i naiđete na šalu, što mislite da se događa u toj vašoj lubanji?

  • Postoji masovno paralelna međusobno povezana mreža neurona.
  • Osjetilni organi prenose informacije (ulaz) u najniži sloj neurona.
  • Neki od tih neurona mogu se aktivirati i mogu prenijeti informacije u nekoliko sljedećih slojeva neurona.
  • Svaki neuron ima određenu ulogu ili reagira na određeni podražaj.
  • Ova paralelna mreža također osigurava podjelu rada.
  • Taj se proces nastavlja do najvišeg sloja neurona u mozgu, koji će se aktivirati samo kada su neuroni koji aktiviraju u pretposljednjem sloju više od određene razine praga (ovdje se radi o 2 od 3 neurona).

Jednostavno je tako.
Vaša neuronska mreža izvlači značajne informacije iz danih ulaza, prenosi ih kako bi izvukla dodatne uvide i značajke te daje rezultat kao izlaz.

Umjetne neuronske mreže rade na potpuno istom principu. Duboko učenje usredotočuje se na korištenje ulaznih podataka za utvrđivanje obrazaca unutar njih ili na utvrđivanje matematičkih odnosa između ulaza i izlaza koji se mogu koristiti za daljnju ekstrapolaciju i predviđanje trendova na temelju prethodnih ulaza.

Ono što smo upravo vidjeli je previše pojednostavljena verzija načina na koji mozak funkcionira, ali to je dovoljno za našu raspravu o neuronskim mrežama. Prije nego shvatite kako funkcionira potpuna mreža, važno je pogledati kako pojedini neuroni funkcioniraju i kako se mogu modificirati kako bi odgovarali različitim potrebama.

1943. najjednostavniji računski model neurona (McCulloch-Pitts Neuron) je uveden.

Ulazi mogu biti pobudni (1) ili inhibitorni (0).

U tradicionalnom modelu y = 0 ako je zbroj svih ulaza manji od zadanog praga.

Na temelju gornjih kriterija, možemo replicirati boolove funkcije pomoću jednog neurona:

Kao što ste vjerojatno primijetili, McCulloch-Pitts Neuron ne dolazi bez vlastitih ograničenja.

  • Što je s nebulovim (stvarnim vrijednostima) funkcijama?
  • Moramo li ručno postaviti prag?
  • Što ako nekim ulazima želimo pridati veću važnost?

Kako bi se suprotstavili tim nedostacima, perceptron uveden je 1958. Glavne razlike su:

  • Unosi više nisu ograničeni na logičke vrijednosti
  • Uvedene su numeričke težine za svaki ulaz
  • Postoji mehanizam (algoritam) za automatsko učenje ovih pondera

Stoga perceptron može dodijeliti veću težinu određenim ulazima i donositi odluke na temelju toga kako se zbirni zbroj slaže s graničnom vrijednošću.

Međutim, logika praga perceptrona je malo preoštra.
Razmotrimo primjer: gradite sustav s jednim neuronom koji će odlučiti vrijedi li pogledati film. Prag ste postavili na ocjenu 0,5 od 1.

Prema ovom sustavu, prebacivanje s "ne, ovaj film je smeće" na "da, ovaj film zaslužuje Oscara" je prebrzo.

Štoviše, ovaj bi sustav vratio y = 0 (ne gledajte) da su ocjene 0,49, što je prilično čudno jer je blizu 0,5 (što je moj prag).

Ono što nam treba je odgovor sustava koji ima glatkiju funkciju odlučivanja.

To zahtijeva promjenu funkcije neurona. Predstavljamo a sigmoidni neuron može pomoći s postupnom funkcijom prikladnom za primjene u stvarnom svijetu.

Funkcija sigmoida je obitelj funkcija, od kojih su neke:

Nadalje, izlaz nije binarni, već je decimalna stvarna vrijednost koja se može tumačiti kao vjerojatnost.

Primjer sigmoidne funkcije je logistička funkcija (u grafikonu):

Sigmoidne funkcije su također glatke, kontinuirane i diferencijabilne u svim točkama.

Neuroni se koriste za izvođenje uvida u određene obrasce koje postavljaju ulazni podaci za dobivanje matematičkih funkcija koje najbolje odgovaraju ulaznim podatkovnim točkama s minimalnom pogreškom.

McCulloch-Pittov neuron može generirati linearnu funkciju u n-dimenzijama (linija, ravnina ili hiperravnina). To vrijedi samo za linearno odvojive funkcije (funkcije koje vraćaju y = 1 iznad crte/ravnine i vraćaju y = 0 ispod crte/ravnine).

Međutim, nije moguće generirati nelinearnu funkciju koja može točno klasificirati crvene i plave točke odvojeno (u susjednim slikama) pomoću jednog neurona.

Da biste generirali nelinearne funkcije koje mogu približno prelaziti između točaka kako biste većinu njih točno klasificirali, morat ćete koristiti mrežu neurona međusobno povezanih slojevito. Svaki sloj pronalazi različite uzorke i prenosi naprijed, gdje postaju dublji.

Možete pokušati raditi na različitim funkcijama na igralištu za neuronske mreže iz tvrtke TensorFlow. Zabavna je, nesigurna i ne morate biti štreber da biste je mogli koristiti.

Dakle, na temelju ponašanja pojedinačnih neurona, predstavljamo potpuno funkcionalnu umjetnu neuronsku mrežu koja se kreće prema naprijed!

Terminologija:

  1. Ova mreža sadrži 3 sloja.
  2. Sloj koji sadrži ulaze naziva se ulazni sloj.
  3. Srednji sloj koji sadrži 4 perceptrona naziva se skriveni sloj.
  4. Završni sloj koji sadrži izlazni neuron naziva se izlazni sloj.
  5. Izlazi 4 perceptrona u skrivenom sloju označeni su s h1, h2, h3 i h4.
  6. Crveni i plavi rubovi nazivaju se utezi sloja 1.
  7. w1, w2, w3 i w4 nazivaju se utezi sloja 2.

Kako bismo omogućili neuronskoj mreži da replicira željenu funkciju s minimalnom pogreškom, moramo upotrijebiti neke tehnike koje će osigurati da se standardna izlazna funkcija (sigmoidna funkcija/ zbroj izlaza perceptrona) pomiče prema funkciji koju tražimo. Jedan od načina za mjerenje točnosti izlaza u odnosu na funkciju je pomoću a funkcija gubitka.

Funkcije gubitka su metrike koje pomažu u praćenju udaljenosti izlaza neuronske mreže od željenih vrijednosti funkcija. Jedan primjer funkcija gubitka je poznati gubitak pogreške na kvadrat:


Perceptron jednostavno razdvaja ulaz u 2 kategorije, one koje izazivaju požar i one koje to ne čine. To čini gledajući (u dvodimenzionalnom slučaju):

Dakle, perceptron jednostavno radi povlačenjem crte preko 2-d ulaznog prostora. Ulazi s jedne strane linije razvrstani su u jednu kategoriju, ulazi s druge strane u drugu kategoriju. npr. perceptron OR, w1= 1, w2= 1, t = 0.5, povlači crtu:

Kao što možete zamisliti, ne može se svaki skup točaka podijeliti ovakvom linijom. Oni koji mogu biti, zovu se linearno odvojivi.

U 2 ulazne dimenzije povlačimo 1 dimenzionalnu liniju. U n dimenzija crtamo (n-1) dimenzionalnu hiperravninu:

XOR je mjesto ako je jedan 1, a drugi 0, ali ne oboje.

"Jednoslojni" perceptron ne može implementirati XOR. Razlog tome je što klase u XOR -u nisu linearno odvojive. Ne možete povući ravnu liniju da biste odvojili točke (0,0), (1,1) od točaka (0,1), (1,0).

Predvođen izumom višeslojnih mreža.

P. Dokaz ne može implementirati NOT (XOR) (Isto odvajanje kao XOR)


Ima li ulazni sloj pristranost i postoje li neuroni pristranosti?

Vidio sam dva različita prikaza neuronskih mreža kada je u pitanju pristranost. Razmislite o "quotimple & quot" neuronskoj mreži, sa samo ulaznim slojem, skrivenim slojem i izlaznim slojem. Kako bi se izračunala vrijednost neurona u skrivenom sloju, težine i neuroni iz ulaznog sloja se množe, pomiču prema pristranosti, a zatim aktiviraju funkcijom aktivacije. Da biste izračunali vrijednosti u izlaznom sloju, možete izabrati da nemate pristranost i da imate funkciju aktivacije identiteta na ovom sloju, tako da je posljednji izračun samo & quotscaling & quot.

Je li standardno imati sloj & quotscaling & quot? Mogli biste reći da postoji predrasuda povezana sa svakim neuronom, osim onih u ispravnom ulaznom sloju (i onih u izlaznom sloju kada je to skalirajući sloj)? Iako pretpostavljam da biste mogli odmah promijeniti bilo koju vrijednost koju dobijete. Ima li ulazni sloj pristranost?

Vidio sam pristranost predstavljenu kao dodatni nepromjenjivi neuron u svakom sloju (osim posljednjeg) koji ima vrijednost 1, tako da težine povezane s vezama iz tog neurona odgovaraju pristranosti neurona u sljedećem sloju. Je li ovo standardni način promatranja pristranosti? Ili postoji neki drugi način da se protumači koja je pristranost bliže opisana & brojem kvote koji se dodaje ponderiranom zbroju prije aktivacije & quot?


(Izborno) Motivacija za sigmoidne neurone

Kao što sam ranije spomenuo, umjetni neuroni koje danas koristimo malo se razlikuju od perceptron gledali smo, razlika je funkcija aktiviranja. ovdje. Neki bi mogli reći da logiku praga koju koristi a perceptron je vrlo grub. Na primjer, ako pogledate problem odlučivanja hoću li gledati film ili ne, samo na temelju jednog unosa u stvarnoj vrijednosti (x_1 = kritičariOcjena) i ako je prag koji smo postavili 0,5 (w_0 = -0,5) i w_1= 1 tada bi naše postavljanje izgledalo ovako:

Kakva bi bila odluka za film kritičariOcjena = 0.51? Da!
Kakva bi bila odluka za film kritičariOcjena = 0.49? Ne!
Neki bi mogli reći da je grubo što bismo gledali film s ocjenom 0,51, ali ne i onaj s ocjenom 0,49 i tu Sigmoid dolazi na scenu. Sada se uvjerite da se ovo oštro određivanje praga ne pripisuje samo jednom specifičnom problemu koji smo ovdje odabrali, već bi se mogao dogoditi s bilo kojim ili svakim problemom s kojim se bavimo. To je karakteristika perceptron sama funkcija koja se ponaša kao step funkcija.

Doći će do ove iznenadne promjene u odluci (od 0 do 1) kada vrijednost z prijeđe prag (-w_0). Za većinu aplikacija u stvarnom svijetu očekivali bismo glatkiju funkciju odlučivanja koja se postupno mijenja od 0 do 1.

Uvođenje sigmoidnih neurona gdje je izlazna funkcija mnogo glatkija od step funkcije čini se logičnom i očitom stvari. Imajte na umu da je sigmoidna funkcija matematička funkcija s karakterističnom krivuljom u obliku slova "S", koja se također naziva sigmoidna zavoj. Mnogo je funkcija koje mogu obaviti posao umjesto vas, neke su prikazane u nastavku:

Jedna od najjednostavnijih za rad je logistička funkcija.

Više ne vidimo oštar prijelaz oko w_0. Također, izlaz više nije binarni već stvarna vrijednost između 0 i 1 što se može tumačiti kao vjerojatnost. Dakle, umjesto odluke da/ne, dobivamo vjerojatnost da. Ovdje je izlaz glatko, nesmetano, stalan i razlikovati i kako se to sviđa svakom algoritmu učenja. Da biste se sami uvjerili, pogledajte širenje unatrag koncept u dubokom učenju.


Kako izračunati težine i pristranost za McCulloch-Pittsov neuron? - Psihologija

Osnovni uvod u
Neuronske mreže za unaprijeđenje unatrag

David Leverington
Izvanredni profesor geoznanosti

Algoritam neuronske mreže povratnog širenja

Iako dugoročni cilj zajednice neuronskih mreža ostaje dizajn autonomne strojne inteligencije, glavna moderna primjena umjetnih neuronskih mreža je u području prepoznavanja uzoraka (npr. Joshi i sur., 1997.). U podpodručju klasifikacije podataka, metode neuronske mreže pokazale su se korisnim alternativama statističkim tehnikama, poput onih koje uključuju regresijsku analizu ili procjenu gustoće vjerojatnosti (npr. Holmstrím i sur., 1997.). Potencijalna korisnost neuronskih mreža u klasifikaciji baza podataka satelitskih snimaka s više izvora prepoznata je već više od desetljeća, a danas su neuronske mreže etablirano oruđe na području daljinske detekcije.

Najrašireniji algoritam neuronske mreže u klasifikaciji slika ostaje algoritam povratnog širenja unaprijed. Ova je web stranica posvećena objašnjavanju osnovne prirode ove klasifikacijske rutine.

Neuronske mreže članovi su obitelji računskih arhitektura inspiriranih biološkim mozgom (npr. McClelland i sur., 1986. Luger i Stubblefield, 1993.). Takve se arhitekture obično nazivaju "konekcionistički sustavi", a sastoje se od međusobno povezanih i međusobno povezanih komponenti koje se nazivaju čvorovi ili neuroni (ti se izrazi općenito smatraju sinonimima u konekcionističkoj terminologiji i ovdje se koriste naizmjenično). Neuronske mreže karakterizira nedostatak eksplicitnog predstavljanja znanja, nema simbola ili vrijednosti koji izravno odgovaraju klasama interesa. Umjesto toga, znanje je implicitno predstavljeno u obrascima interakcija između mrežnih komponenti (Lugar i Stubblefield, 1993.). Grafički prikaz tipične unaprijed usmjerene neuronske mreže dan je na slici 1. Izraz "prosljeđivanje" označava da mreža ima veze koje se protežu samo u jednom smjeru. Osim tijekom treninga, u povratnoj mreži nema povratnih veza, sve veze idu od ulaznih čvorova prema izlaznim čvorovima.

Slika 1: Tipična unaprijed usmjerena neuronska mreža.

Pojedini čvorovi u neuronskoj mreži emuliraju biološke neurone uzimajući ulazne podatke i izvodeći jednostavne operacije nad podacima, selektivno prenoseći rezultate na druge neurone (slika 2). Izlaz svakog čvora naziva se njegova "aktivacija" (pojmovi "vrijednosti čvora" i "aktivacije" ovdje se koriste naizmjenično). Vrijednosti težine povezane su sa svakim vektorom i čvorom u mreži, a te vrijednosti ograničavaju način na koji su ulazni podaci (npr. Vrijednosti satelitske slike) povezani s izlaznim podacima (npr. Klase kopnenog pokrivača). Vrijednosti težine povezane s pojedinim čvorovima poznate su i kao pristranosti. Vrijednosti težine određene su iterativnim protokom podataka o obuci kroz mrežu (tj. Vrijednosti težine utvrđuju se tijekom faze obuke u kojoj mreža uči kako prepoznati određene klase prema njihovim tipičnim karakteristikama ulaznih podataka). Formalniji opis temelja višeslojnih neuronskih mreža s unaprijednim širenjem dat je u odjeljku 5.

Nakon što se obuči, neuronska mreža može se primijeniti za klasifikaciju novih podataka. Klasifikacije izvode obučene mreže kroz 1) aktivaciju ulaznih čvorova mreže od strane relevantnih izvora podataka [ti izvori podataka moraju se izravno podudarati s onima koji se koriste u obuci mreže], 2) protok tih podataka prema naprijed kroz mrežu i 3 ) krajnje aktiviranje izlaznih čvorova. Uzorak aktivacije izlaznih čvorova mreže određuje ishod klasifikacije svakog piksela. Korisne sažetke temeljnih načela neuronske mreže daju Rumelhart i sur. (1986.), McClelland i Rumelhart (1988.), Rich and Knight (1991.), Winston (1991.), Anzai (1992.), Lugar i Stubblefield (1993.), Gallant (1993.) i Richards i Jia (2005.). Dijelovi ove web stranice oslanjaju se na ove sažetke. Kratak povijesni prikaz razvoja konekcionističkih teorija dan je u Gallant (1993).


2 McCulloch-Pittsove mreže

Neuronsko računanje započelo je razvojem mreže McCulloch-Pitts 1940-ih (McCulloch i Pitts, 1943. Luger i Stubblefield, 1993.). Ove jednostavne konekcionističke mreže, prikazane na slici 3, samostalne su "strojeve za odlučivanje" koji uzimaju niz ulaza, množe te ulaze s pridruženim ponderima i ispisuju vrijednost na temelju zbroja ovih proizvoda. Ulazne vrijednosti (poznate i kao aktivacije ulaza) stoga su povezane s izlaznim vrijednostima (izlazne aktivacije) jednostavnim matematičkim operacijama koje uključuju težine povezane s mrežnim vezama. McCulloch-Pittsove mreže strogo su binarne i uzimaju ih kao ulaz i proizvode kao izlaz samo 0 ili 1. Ove 0 i 1 mogu se smatrati ekscitacijskim ili inhibitornim entitetima (Luger i Stubblefield, 1993). Ako je zbroj proizvoda ulaznih podataka i njihovih odgovarajućih težina veći ili jednak 0, izlazni čvor vraća 1 (u suprotnom slučaju vraća se 0). Vrijednost 0 je stoga prag koji se mora premašiti ili izjednačiti ako će izlaz sustava biti 1. Gornje pravilo, koje upravlja načinom na koji izlazni čvor preslikava ulazne vrijednosti u izlazne vrijednosti, poznato je kao aktivacija funkcija (što znači da se ova funkcija koristi za određivanje aktivacije izlaznog čvora). McCulloch-Pittsove mreže mogu se izgraditi za izračunavanje logičkih funkcija (na primjer, u slučaju X i Y, nijedna kombinacija ulaza ne može proizvesti zbroj proizvoda koji je veći ili jednak 0, osim kombinacije X = Y = 1). McCulloch-Pittsove mreže ne uče, pa se stoga vrijednosti težine moraju unaprijed odrediti drugim matematičkim ili heurističkim sredstvima. Ipak, ove su mreže učinile mnogo za poticanje na daljnja istraživanja konekcionističkih modela tijekom 1950 -ih (Luger i Stubblefield, 1993.).

Slika: 3 mreže McCulloch-Pitts (prema Luger i Stubblefield, 1993.).

Razvoj konekcionističkog sustava sposobnog za ograničeno učenje dogodio se krajem 1950 -ih, kada je Rosenblatt stvorio sustav poznat kao perceptron (vidi Rosenblatt, 1962. Luger i Stubblefield, 1993.). I ovaj se sustav sastoji od binarnih aktivacija (ulaza i izlaza) (vidi sliku 4). Zajedno s gore opisanim neuronom McCulloch-Pitts, binarni izlaz perceptrona određuje se zbrajanjem proizvoda ulaznih podataka i njihovih odgovarajućih težinskih vrijednosti. U implementaciji perceptrona koristi se promjenjiva granična vrijednost (dok je u McCulloch-Pittsovoj mreži taj prag fiksiran na 0): ako je linearni zbroj ulaznih/težinskih proizvoda veći od granične vrijednosti (theta), izlaz sustava je 1 (u suprotnom se vraća 0). Tako se za izlaznu jedinicu kaže da je, poput izlazne jedinice perceptrona, linearna jedinica praga. Ukratko, perceptron "klasificira" ulazne vrijednosti kao 1 ili 0, prema sljedećem pravilu, koje se naziva aktivacijska funkcija:

(jednadžba 1)
PERCEPTRON OUTPUT = 1 if (zbroj umnožaka inputa i pondera)> theta
(inače, PERCEPTRON OUTPUT = 0)

Perceptron se trenira (tj. Izračunavaju se težine i granične vrijednosti) na temelju iterativne faze obuke koja uključuje podatke o obuci. Podaci o obuci sastoje se od popisa ulaznih vrijednosti i njima pridruženih željenih izlaznih vrijednosti. U fazi obuke, ulazi i povezani ishodi podataka o obuci više puta se dostavljaju perceptronu. Perceptron izračunava izlaznu vrijednost za svaki skup ulaznih vrijednosti. Ako je izlaz određenog predmeta obuke označen s 1, a trebao bi biti označen s 0, vrijednost praga (theta) se povećava za 1, a sve vrijednosti težine povezane s ulazima 1 smanjuju se za 1. Suprotno se radi ako je izlaz predmeta obuke ima oznaku 0 kada bi trebao biti označen 1. Ne mijenjaju se prag vrijednosti ili ponderi ako je određeni slučaj obuke ispravno klasificiran. Ovaj skup pravila obuke sažet je kao:

(jednadžba 2a)
Ako je OUTPUT ispravan, tada se ne mijenjaju prag ili težine

(jednadžba 2b)
Ako je OUTPUT = 1, ali bi trebao biti 0
zatim
i <>x = težinax -1, ako je ulazx = 1>

(jednadžba 2c)
Ako je OUTPUT = 0, ali bi trebao biti 1
zatim
i <>x= težinax +1, ako je inputx = 1>

gdje se indeks x odnosi na određeni par ulazni čvor i težinski par. Učinak gornjih pravila obuke je smanjiti vjerojatnost da će se u sljedećim ponavljanjima obuke dogoditi određena pogreška. Na primjer, u jednadžbi (2b) povećanje vrijednosti praga čini manju vjerojatnost da će isti zbroj proizvoda premašiti prag u kasnijim ponavljanjima obuke, pa se stoga smanjuje vjerojatnost da će se proizvesti vrijednost 1 kad isti su ulazi predstavljeni. Također, mijenjanjem samo onih pondera koji su povezani s ulaznim vrijednostima 1, mijenjaju se samo oni ponderi koji su mogli pridonijeti pogrešci (smatra se da ponderi povezani s ulaznim vrijednostima 0 nisu pridonijeli pogrešci). Nakon što se mreža obuči, može se koristiti za klasificiranje novih skupova podataka čije su ulazno/izlazne asocijacije slične onima koje karakteriziraju skup podataka za obuku. Tako se kroz iterativnu fazu obuke u kojoj se ponderi i prag postupno migriraju do korisnih vrijednosti (tj. Vrijednosti koje minimiziraju ili uklanjaju pogreške), za perceptron može biti rečeno da „nauči“ rješavati jednostavne probleme.

Slika 4: Primjer perceptrona. Sustav se sastoji od binarnih aktivacija. Ponderi su identificirani s w, a ulazi s i. Na izlaznom čvoru koristi se promjenjiva granična vrijednost (theta).

Razvoj perceptrona bio je veliki korak prema cilju stvaranja korisnih konekcionističkih mreža sposobnih za učenje složenih odnosa između ulaza i izlaza. Krajem 1950-ih, konekcionistička zajednica shvatila je da je ono što je potrebno za daljnji razvoj konekcionističkih modela matematički izvedeno (a time i potencijalno fleksibilnije i snažnije) pravilo za učenje.Početkom 1960 -ih izumljeno je Delta pravilo [također poznato kao pravilo učenja Widrow i Hoff ili pravilo najmanjeg srednjeg kvadrata (LMS)] (Widrow i Hoff, 1960). Ovo je pravilo slično prethodnom pravilu učenja perceptrona (McClelland i Rumelhart, 1988.), ali ga također karakterizira matematička korisnost i elegancija koja nedostaje perceptronu i drugim pravilima ranog učenja. Pravilo Delta koristi razliku između ciljne aktivacije (tj. Ciljnih izlaznih vrijednosti) i dobivene aktivacije za poticanje učenja. Iz dolje navedenih razloga, upotreba funkcije praga aktivacije (kako se koristi i u McCulloch-Pittsovoj mreži i perceptronu) odbačena je, umjesto toga, linearni zbroj proizvoda koristi se za izračunavanje aktivacije izlaznog neurona (alternativne aktivacijske funkcije mogu također se primjenjuju - vidjeti odjeljak 5.2). Stoga se aktivacijska funkcija u ovom slučaju naziva linearna aktivacijska funkcija, u kojoj je aktivacija izlaznog čvora jednostavno jednaka zbroju odgovarajućih ulaznih/težinskih proizvoda mreže. Jačine mrežnih veza (tj. Vrijednosti pondera) prilagođene su kako bi se smanjila razlika između ciljnog i stvarnog izlaznog aktiviranja (tj. Pogreška). Grafički prikaz jednostavne dvoslojne mreže sposobne primijeniti Delta pravilo dat je na slici 5. Imajte na umu da takva mreža nije ograničena na samo jedan izlazni čvor.

Slika 5: Mreža sposobna implementirati Delta pravilo. Mogu se koristiti ne-binarne vrijednosti. Ponderi su identificirani s w, a ulazi s i. Jednostavan linearni zbroj proizvoda (predstavljen simbolom na vrhu) koristi se kao funkcija aktivacije na izlaznom čvoru mreže prikazanoj ovdje.

Tijekom promicanja naprijed kroz mrežu, izlaz (aktivacija) datog čvora je funkcija njegovih ulaza. Ulazi u čvor, koji su jednostavno proizvodi izlaza prethodnih čvorova s ​​pripadajućim težinama, zbrajaju se i zatim prolaze kroz funkciju aktivacije prije nego što se pošalju iz čvora. Dakle, imamo sljedeće:

gdje je Sj zbroj svih relevantnih proizvoda pondera i rezultata iz prethodnog sloja i, wi J predstavlja odgovarajuće težine koje povezuju sloj i sa slojem j, ai predstavlja aktivacije čvorova u prethodnom sloju i, aj je aktivacija čvora pri ruci, a f je funkcija aktivacije.

Slika 6: Shematski prikaz funkcije pogreške za mrežu koja sadrži samo dvije težine (w1 i w2) (prema Lugar i Stubblefield, 1993.). Svaka kombinacija pondera bit će povezana s određenom mjerom pogreške. Pravilo Delta koristi učenje s gradijentnim spuštanjem za iteracijsku promjenu težine mreže kako bi se smanjila pogreška (tj. Za lociranje globalnog minimuma na površini pogreške).

Za bilo koji zadani skup ulaznih podataka i pondera bit će pridružena veličina pogreške koja se mjeri funkcijom pogreške (također poznatom i kao funkcija troška) (slika 6) (npr. Oh, 1997. Yam i Chow, 1997.) . Pravilo delte koristi funkciju pogreške za ono što je poznato kao učenje s gradijentnim spuštanjem, koje uključuje izmjenu utega duž najizravnijeg puta u prostoru težine kako bi se smanjila promjena pogreške primijenjena na datu težinu proporcionalna je negativu izvedenice pogreška u odnosu na tu težinu (McClelland i Rumelhart 1988, str. 126-130). Funkcija pogreške obično se daje kao zbroj kvadrata razlika između svih ciljnih i stvarnih aktivacija čvora za izlazni sloj. Za određeni obrazac obuke (tj. Slučaj vježbanja) greška se daje prema:

gdje je Estr je ukupna pogreška u obrascu treninga, je vrijednost primijenjena za pojednostavljenje izvedbe funkcije, n predstavlja sve izlazne čvorove za dati obrazac treninga, tj sub n predstavlja ciljnu vrijednost za čvor n u izlaznom sloju j, a aj sub n predstavlja stvarnu aktivaciju za isti čvor. Ova posebna mjera pogreške privlačna je jer se njezina izvedenica, čija je vrijednost potrebna za primjenu Delta pravila, lako izračunava. Pogreška u cijelom skupu obrazaca treninga (tj. U jednoj iteraciji ili epohi) izračunava se zbrajanjem svih Estr:

gdje je E ukupna pogreška, a p predstavlja sve obrasce treninga. Ekvivalentni izraz za E u jednadžbi 4b je pogreška zbroja kvadrata. Normalizirana verzija jednadžbe 4b dana je jednadžbom srednje kvadrata pogreške (MSE):

gdje su P i N ukupan broj obrazaca obuke i izlaznih čvorova. Greška jednadžbi 4b i 4c koju gradijentni silazak pokušava minimizirati (zapravo, to nije točno ako se ponderi promijene nakon što se svaki ulazni uzorak dostavi mreži, vidi odjeljak 4.1 dolje, vidi također Rumelhart i sur., 1986: v1, str.324 Reed i Marks, 1999: str. 57-62). Pogreška nad datim uzorkom obuke obično se izražava u smislu ukupnog zbroja kvadrata ( tss ) pogreške, koja je jednostavno jednaka zbroju svih kvadrata pogrešaka na svim izlaznim čvorovima i svim obrascima obuke. Negativ izvedenice funkcije pogreške potreban je za izvođenje učenja s gradijentom. Derivacija jednadžbe 4a (koja mjeri pogrešku za dati obrazac p), s obzirom na određenu težinu wi J sub x, dano je pravilom lanca kao:

gdjej sub z je aktivacija čvora u izlaznom sloju koja odgovara težini wi J sub x (napomena: indeksi se odnose na određene slojeve čvorova ili pondera, a podpodpisi se jednostavno odnose na pojedinačne pondere i čvorove unutar ovih slojeva). Iz toga slijedi da

Dakle, izvedenica pogreške nad pojedinačnim obrascem vježbanja data je umnoškom derivata jednadžbe 5a:

Budući da učenje s gradijentnim spuštanjem zahtijeva da svaka promjena određene težine bude proporcionalna negativu izvedenice pogreške, promjena dane težine mora biti proporcionalna negativu jednadžbe 5d. Zamjenom razlike između ciljnog i stvarnog aktiviranja relevantnog izlaznog čvora s d, te uvođenjem epsilona brzine učenja, jednadžba 5d može se ponovno napisati u konačnom obliku delta pravila:

Obrazloženje korištenja linearne aktivacijske funkcije ovdje umjesto prag aktivirajuće funkcije sada se može opravdati: funkcija prag aktiviranja koja karakterizira i McCollochovu i Pittsovu mrežu i perceptron ne može se razlikovati na prijelazu između aktivacija 0 i 1 (nagib = beskonačnost), a njegova je izvedenica 0 u ostatku funkcije. Kao takva, funkcija aktiviranja praga ne može se koristiti u učenju s gradijentnim spustom. Nasuprot tome, linearna aktivacijska funkcija (ili bilo koja druga funkcija koja se može razlikovati) omogućuje izračunavanje izvedenice pogreške.

Jednadžba 5e je Delta pravilo u svom najjednostavnijem obliku (McClelland i Rumelhart, 1988.). Iz jednadžbe 5e može se vidjeti da je promjena bilo koje određene težine jednaka proizvodima 1) brzine učenja epsilon, 2) razlike između ciljane i stvarne aktivacije izlaznog čvora [d] i 3) aktivacije ulaznog čvora povezanog s dotičnom težinom. Veća vrijednost za e nužno će rezultirati većom veličinom promjene. Budući da svako ažuriranje težine može samo malo smanjiti pogrešku, potrebno je mnogo ponavljanja kako bi se pogreška na zadovoljavajući način smanjila (Reed i Marks, 1999.). Stvarni primjer iterativne promjene vrijednosti težine neuronske mreže u funkciji površine pogreške dan je na slikama 7 i 8. Slika 7 je trodimenzionalni prikaz površine pogreške povezane s određenim matematičkim problemom. Slika 8 prikazuje dvodimenzionalnu verziju ove površine pogreške, zajedno s putanjom koju su vrijednosti težine prešle tijekom treninga. Imajte na umu da su se vrijednosti težine promijenile tako da je put definiran vrijednostima težine slijedio lokalni gradijent površine pogreške.

Slika 7: Trodimenzionalni prikaz stvarne površine pogreške (Leverington, 2001).

Slika 8: Dvodimenzionalni prikaz površine pogreške prikazane na slici 7, prikazan s iterativno uzetom stazom treninga prema vrijednostima težine tijekom treninga (počevši od vrijednosti težine [+6,+6]) (Leverington, 2001). Imajte na umu da su se vrijednosti težine promijenile tako da je put definiran vrijednostima težine slijedio lokalni gradijent površine pogreške.


4.1 Skupno i mrežno učenje

Ponderi se mogu ažurirati na dva primarna načina: skupni trening i on-line (također nazvan sekvencijalni ili prema uzorku) trening. U serijskom načinu rada vrijednost dEstr/dwi J izračunava se nakon što se svaki uzorak dostavi mreži, a ukupna izvedenica dE/dwi J izračunava se na kraju zadane iteracije zbrajanjem pojedinačnih izvedbi uzorka. Težine se ažuriraju tek nakon izračunavanja ove vrijednosti. Sve dok je brzina učenja epsilon (e) mala, paketni način približava se nizbrdici (Reed i Marks, 1999.).

Mrežni način rada (koji se naziva i "učenje u načinu uzorkovanja") uključuje ažuriranje vrijednosti pondera nakon što se svaki obrazac treninga dostavi mreži (imajte na umu da izraz može dovesti u zabludu: mrežni način rada ne uključuje obuku tijekom normalnog prosljeđivanja rad mreže uključuje off-line obuku, baš kao i serijski način rada). Kao što je ranije napomenuto, on-line učenje ne uključuje istinsko gradijentno spuštanje, budući da se zbroj svih izvedenica uzorka u danoj iteraciji nikada ne određuje za određeni skup pondera, nego se težine po malo mijenjaju nakon svakog uzorka, uzrokujući da su derivati ​​uzorka procijenjeno s obzirom na malo drugačije vrijednosti težine. Mrežni način rada nije jednostavna aproksimacija metode gradijentnog spuštanja, jer iako derivati ​​s jednim uzorkom kao skupni zbroj gradijenta, svaki derivat ima slučajno odstupanje koje ne mora biti malo (Reed i Marks, 1999: str. .59). Iako se pogreška obično smanjuje nakon većine promjena težine, mogu postojati derivati ​​koji uzrokuju i povećanje pogreške. Osim ako su stope učenja vrlo male, vektor težine teži skoku oko E (w) površine, uglavnom se krećući nizbrdo, ali ponekad su skokovi uzbrdo veličine skokova proporcionalni epsilonu brzine učenja (Reed i Marks, 1999.).

Ciklički, fiksni redoslijedi obrazaca obuke općenito se izbjegavaju u internetskom učenju, jer se konvergencija može ograničiti ako se težine približe graničnom ciklusu (Reed i Marks 1999: str. 61). Također, ako se u skupu podataka za obuku nalazi veliki broj uzoraka, uređena prezentacija slučajeva obuke na mreži može uzrokovati da se ponderi/pogreške kreću vrlo neredovito po površini pogreške (sa bilo kojim datim nizom pojedinih razreda - obrasci obuke koji mogu uzrokovati mreža za kretanje u prostoru težine u smjeru koji se jako razlikuje od ukupnog željenog smjera). Stoga se obrasci obuke obično predaju nasumično pri internetskom učenju. Usporedba krivulja učenja koje proizvode mreže pomoću nasumičnog i nasumičnog dostavljanja podataka o obuci prikazana je na slici 9. Imajte na umu da je mreža koja koristi nasumično slanje proizvela iznimno nestabilnu krivulju učenja, u usporedbi s relativno glatkom krivuljom učenja koju proizvodi mreže koristeći nasumično slanje. Mrežni način rada ima prednost u odnosu na šaržni način rada, budući da će nestabilniji put kojim se kreću vrijednosti težine vjerojatnije odskočiti od lokalnih minimuma čistog nagiba ne nudi nikakve šanse za izbjegavanje lokalnog minimuma. Nadalje, mrežni način rada superiorniji je od serijskog načina rada ako postoji visok stupanj redundancije u podacima o obuci, jer će, pri korištenju velikog skupa podataka za obuku, mreža jednostavno češće ažurirati pondere u datoj iteraciji, dok će serija -Mode mreži jednostavno će trebati više vremena za procjenu zadane iteracije (Bishop, 1995a, str. 264). Prednost serijskog načina rada je da se može postaviti na stabilan skup vrijednosti težine, bez lutanja po tom skupu.

Slika 9: Krivulje učenja koje proizvode mreže pomoću slučajnog odabira (fiksnog redoslijeda) i slučajnog dostavljanja podataka o obuci (Leverington, 2001).


4.2 Primjer jednostavnog delta pravila

Jednostavan primjer korištenja Delta pravila, temeljen na raspravi danoj u McClelland i Rumelhart (1988.), je sljedeći: zamislite da su sljedeći ulazi i izlazi povezani kao u Tablici 3.1. Zamislite dalje da je želja radnika da obuči mrežu kako bi mogao ispravno označiti svaki od četiri ulazna slučaja u ovoj tablici. Ovaj će problem zahtijevati mrežu s četiri ulazna čvora i jednim izlaznim čvorom. Sve 4 težine povezane sa svakim ulaznim čvorom početno su postavljene na 0, a proizvoljna brzina učenja (epsilon) od 0,25 koristi se u ovom primjeru.

Tijekom faze obuke, svaki slučaj obuke se pojedinačno prikazuje mreži, a težine se mijenjaju prema Delta pravilu. Na primjer, kada je prvi slučaj obuke predstavljen mreži, zbroj proizvoda jednak je 0. Budući da je željeni izlaz za ovaj slučaj obuke 1, pogreška je jednaka 1-0 = 1. Koristeći jednadžbu (5e), ​​promjene u četiri se utega izračunava <0,25, -0,25, 0,25, -0,25>. Budući da su utezi početno postavljeni na <0, 0, 0, 0>, oni postaju <0,25, -0,25, 0,25, -0,25> nakon ovog prvog treninga. Prezentacija drugog skupa ulaznih podataka za obuku uzrokuje da mreža ponovno izračuna zbroj proizvoda od 0. Dakle, promjene u četiri težine u ovom slučaju se računaju na <0,25, 0,25, 0,25, 0,25), a, kad se promjene dodaju prethodno utvrđenim težinama, nove vrijednosti pondera postaju <0,5, 0, 0,5 , 0>. Nakon predstavljanja trećeg i četvrtog slučaja treninga, vrijednosti težine postaju <0, -0,5, 0, 0,5> i <-0,5, 0, 0,5, 0>. Na kraju ove iteracije obuke, ukupan zbroj kvadrata pogrešaka = 1 2 + 1 2 + (-2) 2 + (-2) 2 = 10.


Tablica 3.1: Primjeri ulaza i izlaza.

Nakon ove prve iteracije nije jasno da li se ponderi mijenjaju na način koji će smanjiti pogrešku mreže. Zapravo, s posljednjim skupom težina datim gore, mreža bi proizvela samo ispravnu izlaznu vrijednost za posljednji slučaj obuke, prva tri bi bila pogrešno klasificirana. Međutim, s ponovljenim predstavljanjem istih podataka o obuci na mreži (tj. S više ponavljanja obuke), postaje jasno da se težine mreže doista razvijaju kako bi se smanjila pogreška klasifikacije: pogreška se potpuno uklanja dvadesetom iteracijom. Mreža je naučila pravilno klasificirati sve slučajeve obuke i sada je spremna za upotrebu na novim podacima čiji odnosi između ulaza i željenih rezultata općenito odgovaraju onima podataka o obuci.

Pravilo Delta će pronaći skup pondera koji rješava problem učenja na mreži, pod uvjetom da takav skup pondera postoji. Traženi uvjet za ovaj postojeći skup pondera je da sva rješenja moraju biti linearna funkcija ulaza. Kako su prezentirali Minsky i Papert (1969.), ovaj uvjet ne vrijedi za mnoge jednostavne probleme (npr. Funkcija isključivog-ILI, u kojoj se izlaz 1 mora proizvesti kada je bilo koji od dva ulaza 1, ali izlaz 0 se mora proizvesti bez ijednog ili oba ulaza su 1, vidjeti McClelland i Rumelhart 1988, str. 145-152). Minsky i Papert prepoznali su da višeslojna mreža može pretvoriti "nerješivi" problem u "rješiv" problem (napomena: višeslojna mreža sastoji se od jednog ili više među slojeva smještenih između ulaznih i izlaznih slojeva. Ova prihvaćena terminologija može biti pomalo zbunjujuće i kontradiktorno, jer se izraz "sloj" u "višeslojnom" odnosi na niz težina, dok izraz "sloj" u općenitoj upotrebi neuronske mreže obično označava niz čvorova, vidi odjeljak 5.1 i, npr. Vemuri, 1992., str. 42). Minsky i Papert također su prepoznali da upotreba funkcije linearne aktivacije (poput one korištene u gore navedenom primjeru pravila Delta, gdje je mrežni izlaz jednak zbroju ulaznih/težinskih proizvoda) neće dopustiti prednosti višestrukog slojevitu mrežu koju treba realizirati, budući da je višeslojna mreža s funkcijama linearne aktivacije funkcionalno ekvivalentna jednostavnoj ulazno-izlaznoj mreži koja koristi funkcije linearne aktivacije. Odnosno, linearni sustavi ne mogu izračunati više u više slojeva nego u jednom sloju (McClelland i Rumelhart, 1988). Na temelju gore navedenih razmatranja tadašnja pitanja postaju 1) kakva bi se funkcija aktivacije trebala koristiti u višeslojnoj mreži i 2) kako se posredni slojevi u višeslojnoj mreži mogu "podučavati"? Izvorna primjena Delta pravila uključivala je samo ulazni sloj i izlazni sloj. Općenito se vjerovalo da se ne može formulirati opće pravilo učenja za veće, višeslojne mreže. Kao rezultat tog gledišta, istraživanje o konekcionističkim mrežama za primjenu u umjetnoj inteligenciji dramatično je smanjeno 1970 -ih (McClelland i Rumelhart, 1988. Joshi i sur., 1997.).


5 Višeslojne mreže i širenje unatrag

Na kraju, unatoč privođenjima ranijih radnika, formuliran je moćan algoritam za raspodjelu odgovornosti za pogreške kroz višeslojnu mrežu u obliku algoritma za širenje unatrag (Rumelhart i sur., 1986.). Algoritam povratnog širenja koristi Delta pravilo, izračunavajući pogrešku na izlaznim jedinicama na način analogan onom koji se koristi u primjeru odjeljka 4.2, dok je pogreška na neuronima u sloju neposredno ispred izlaznog sloja funkcija pogrešaka na svim jedinicama koje koriste njegov izlaz. Učinci pogreške u izlaznim čvorovima šire se unatrag kroz mrežu nakon svakog slučaja obuke. Bitna ideja povratnog širenja je kombinirati nelinearni višeslojni sustav nalik na perceptron sposoban za donošenje odluka s funkcijom objektivne pogreške Delta pravila (McClelland i Rumelhart, 1988.).

Višeslojna neuronska mreža s unaprijednim širenjem sastoji se od 1) ulaznog sloja čvorova, 2) jednog ili više posrednih (skrivenih) slojeva čvorova i 3) izlaznog sloja čvorova (slika 1). Izlazni sloj može se sastojati od jednog ili više čvorova, ovisno o problemu. U većini aplikacija za klasifikaciju postojat će ili jedan izlazni čvor (čija će vrijednost identificirati predviđenu klasu), ili isti broj čvorova u izlaznom sloju koliko postoje klase (prema ovoj posljednjoj shemi, predviđena klasa za dati skup ulaznih podataka odgovarat će onoj klasi pridruženoj izlaznom čvoru s najvećom aktivacijom). Kao što je navedeno u odjeljku 4.2., Važno je priznati da se izraz "višeslojni" često koristi za označavanje više slojeva utega. To je u suprotnosti s uobičajenim značenjem "sloja", koje se odnosi na niz čvorova (Vemuri, 1992.). Radi jasnoće, često je najbolje opisati određenu mrežu prema njezinom broju slojeva i broju čvorova u svakom sloju (npr. Mreža 4-3-5 "ima ulazni sloj s 4 čvora, skriveni sloj s 3 čvora i izlazni sloj s 5 čvorova).

Korištenje glatke, nelinearne aktivacijske funkcije bitno je za uporabu u višeslojnoj mreži koja koristi učenje s gradijentom-spuštanjem. Aktivacijska funkcija koja se obično koristi u mrežama za širenje unatrag je sigma (ili sigmoidna) funkcija:

gdjej sub m je aktivacija određenog ‚primajućeg’ čvora m u sloju j, Sj je zbroj produkata aktivacija svih relevantnih ‚emitirajućih’ čvorova (tj. čvorova u prethodnom sloju i) njihovim odgovarajućim težinama, i Wi J je skup svih težina između slojeva i i j koji su povezani s vektorima koji se uvlače u čvor m sloja j. Ova funkcija preslikava sve iznose u [0,1] (slika 10) (alternativna verzija funkcije preslikava aktivacije u [-1, 1], npr. Gallant 1993, str. 222-223). Ako je zbroj proizvoda 0, sigma funkcija vraća 0,5. Kako se zbroj povećava, funkcija sigma vraća vrijednosti bliže 1, dok funkcija vraća vrijednosti bliže 0 jer zbroj postaje sve negativniji. Derivacija sigma funkcije s obzirom na Sj sub m zgodno je jednostavna, a Gallant (1993, str. 213) daje je kao:

Sigma funkcija primjenjuje se na sve čvorove u mreži, osim na ulazne čvorove, čije su vrijednosti dodijeljene ulaznim vrijednostima. Sigma funkcija površno se uspoređuje s pragovnom funkcijom (koja se koristi u perceptronu) kako je prikazano na slici 10. Imajte na umu da izvedenica sigma funkcije doseže svoj maksimum na 0,5 i približava se svom minimumu s vrijednostima koje se približavaju 0 ili 1. Dakle, najveća promjena u težinama dogodit će se s vrijednostima blizu 0,5, dok će se najmanja promjena dogoditi s vrijednostima blizu 0 ili 1. McClelland i Rumelhart (1988) prepoznaju da su upravo te značajke jednadžbe (tj. oblik funkcije) one pridonose stabilnosti učenja u mreži. Težine se najviše mijenjaju za jedinice čije su vrijednosti blizu njihovog srednjeg raspona, a time i za one jedinice koje još nisu predane tome da budu ni "uključene" ni "isključene".

Slika 10: Grafovi sigma funkcije, derivacija sigma funkcije i funkcija praga (prema Winstonu, 1991 Rich i Knight, 1991).


5.3 Algoritam povratnog širenja

U primjeni algoritma za širenje unatrag, svaka iteracija obuke uključuje sljedeće korake: 1) određeni slučaj podataka o obuci dovodi se kroz mrežu u smjeru naprijed, dajući rezultate na izlaznom sloju, 2) pogreška se izračunava na izlazu čvorova na temelju poznatih ciljnih informacija, a potrebne promjene težina koje vode u izlazni sloj određuju se na temelju ovog izračuna pogreške, 3) promjene težina koje vode u prethodne mrežne slojeve određuju se kao funkcija svojstava neurona s kojima se izravno povezuju (promjene težine se izračunavaju, sloj po sloj, u funkciji pogrešaka utvrđenih za sve sljedeće slojeve, radeći unatrag prema ulaznom sloju) sve dok se ne izračunaju sve potrebne promjene težine za cijelu mrežu. Izračunate promjene težine zatim se provode u cijeloj mreži, započinje sljedeća iteracija i cijeli se postupak ponavlja pomoću sljedećeg uzorka treninga. U slučaju neuronske mreže sa skrivenim slojevima, algoritam za širenje unatrag dat je pomoću sljedeće tri jednadžbe (izmijenjene nakon Gallanta, 1993.), gdje je i "emitirajući" ili "prethodni" sloj čvorova, j je "primajući" ili sljedeći sloj čvorova, k je sloj čvorova koji slijedi j (ako takav sloj postoji u datom slučaju), ij je sloj težina između slojeva čvora i i j, jk je sloj težina između slojevi čvorova j i k, težine su određene s w, aktivacije čvorova određene su s, delta vrijednosti za čvorove navedene su s d, indeksi se odnose na određene slojeve čvorova (i, j, k) ili težine (ij, jk), "Pod-indeksi" odnose se na pojedinačne utege i čvorove u njihovim odgovarajućim slojevima, a epsilon je stopa učenja:

Budući da se temelji na općenitom Delta pravilu, ne čudi da jednadžba (8a) ima isti oblik kao jednadžba (5e). Jednadžba (8a) kaže da je promjena date težine m koja se nalazi između slojeva i i j jednaka proizvodima: 1) brzine učenja (epsilon) 2) delta vrijednosti za čvor p u sloju j [gdje je čvor p čvor do kojeg vodi vektor povezan s težinom m] i 3) aktivacija čvora q u sloju i [gdje je čvor q čvor iz kojeg vodi vektor povezan s težinom m]. U praksi se brzini učenja (epsilon) obično daje vrijednost 0,1 ili manje. Vrijednosti mogu osigurati bržu konvergenciju rješenja, ali također mogu povećati nestabilnost i dovesti do neuspjeha konvergencije (Gallant, 1993). Delta vrijednost za čvor p u sloju j u jednadžbi (8a) dana je ili jednadžbom (8b) ili jednadžbom (8c), ovisno o tome je li čvor u izlaznom ili među sloju.

Jednadžba (8b) daje delta vrijednost za čvor p sloja j ako je čvor p izlazni čvor. Jednadžbe (8a) i (8b) izvedene su zajedno potpuno istim postupkom kao i jednadžba 5e, uz razumijevanje da se ovdje koristi funkcija aktiviranja sigme umjesto jednostavne linearne funkcije aktiviranja (upotreba različite funkcije aktiviranja obično će promijeniti vrijednost d). Oba skupa jednadžbi određena su pronalaskom derivacije odgovarajućih funkcija pogreške s obzirom na bilo koju određenu težinu. Jednadžba (8c) daje delta vrijednost za čvor p sloja j ako je čvor p srednji čvor (tj. Ako je čvor p u skrivenom sloju). Ova jednadžba kaže da je delta vrijednost datog čvora od interesa funkcija aktivacije na tom čvoru (aj sub p), kao i zbroj umnožaka delta vrijednosti relevantnih čvorova u sljedećem sloju s težinama povezane s vektorima koji povezuju čvorove.

Pojedinosti o izvođenju jednadžbe (8c), koja se odnosi na međučvorove, date su u Reedu i Marksu (1999., str. 53.-55.) I Richards i Jia (2005.). Dokaz da algoritam povratnog širenja zapravo izvodi gradijentno spuštanje radi minimiziranja pogreške daje npr. Gallant (1993., str. 217-219).

Jednadžbe (8a), (8b) i (8c) opisuju glavnu implementaciju algoritma povratnog širenja za višeslojne, napredne neuronske mreže. Valja napomenuti, međutim, da većina implementacija ovog algoritma koristi dodatnu klasu pondera poznatu kao pristranosti. Pristranosti su vrijednosti koje se dodaju zbrojevima izračunatim na svakom čvoru (osim ulaznih čvorova) tijekom faze prosljeđivanja. To jest, pristranost povezana s određenim čvorom dodaje se terminu Sj u jednadžbi (3a), prije korištenja aktivacijske funkcije na tom istom čvoru. Negativ pristranosti ponekad se naziva i prag (Bishop, 1995a).

Radi jednostavnosti, pristranosti se obično vizualiziraju jednostavno kao vrijednosti povezane sa svakim čvorom u međuizlaznom i izlaznom sloju mreže, ali se u praksi tretiraju na potpuno isti način kao i drugi ponderi, pri čemu su sve pristranosti jednostavno ponderi povezani s vektorima koji vode iz jedan čvor čija se lokacija nalazi izvan glavne mreže i čija je aktivacija uvijek 1 (slika 11). Promjena pristranosti za datu iteraciju treninga izračunava se tako za bilo koju drugu težinu [pomoću jednadžbi (8a), (8b) i (8c)], uz razumijevanje dai sub m u jednadžbi (8a) uvijek će biti jednako 1 za sve predrasude u mreži. Korištenje pristranosti u neuronskoj mreži povećava kapacitet mreže za rješavanje problema dopuštajući da se hiperravnine koje odvajaju pojedine klase pomaknu radi superiornog pozicioniranja. Konkretnije rasprave o korisnosti pristranosti u neuronskim mrežama daju, na primjer, Gallant (1993, str. 65-66), Bishop (1995a, str. 78) i Reed and Marks (1999, str. 15-17) .

Slika 11: Predodređenosti su utezi povezani s vektorima koji vode iz jednog čvora čija se lokacija nalazi izvan glavne mreže i čija je aktivacija uvijek 1.

Precizna topologija mreže potrebna za rješavanje određenog problema obično se ne može odrediti (Slika 12 Castellano i sur., 1997 Tamura i Tateishi, 1997 Reed i Marks, 1999 Richards i Jia, 2005), iako se istraživački napori u tom pogledu nastavljaju. Ovo je kritičan problem u području neuronske mreže, jer mreža koja je premala ili prevelika za postojeći problem može dati loše rezultate. Ovo je analogno problemu uklapanja krivulja pomoću polinoma: polinom s premalo koeficijenata ne može procijeniti funkciju od interesa, dok će polinom s previše koeficijenata uklopiti šum u podatke i proizvesti loš prikaz funkcije (npr. Bishop, 1995a, str. 9-15 Reed i Marks, 1999., str. 42).

Obično se koriste opća "pravila" koja se odnose na topologiju mreže. Uvijek se koristi barem jedan međusloj, kako je navedeno u odjeljku 4.2. Čak se ni jednostavni problemi, kao što je problem ekskluzivnog ILI, ne mogu riješiti bez među slojeva (slika 13). Mnoge primjene algoritma za širenje unatrag uključuju korištenje mreža koje se sastoje od samo jednog srednjeg sloja čvorova, iako upotreba dva međusloja može generirati vrhunske rezultate za određene probleme u koje su uključene funkcije višeg reda (Gallant, 1993 Reed i Marks, 1999 , str.38). Broj čvorova koji se koriste u svakom među sloju obično je između broja čvorova koji se koriste za ulazne i izlazne slojeve (npr. Richards i Jia, 2005.). U konačnici, jedina metoda koja se može pouzdano koristiti za određivanje odgovarajućeg broja slojeva u mreži za dati problem je pokušaj i pogreška (Gallant, 1993.).

Eksperimentalno sredstvo za određivanje odgovarajuće topologije za rješavanje određenog problema uključuje osposobljavanje mreže veće od potrebne, te naknadno uklanjanje nepotrebnih utega i čvorova tijekom treninga. Ovaj pristup, nazvan obrezivanje, zahtijeva unaprijed poznavanje početne veličine mreže, ali takve gornje granice možda neće biti teško procijeniti. Alternativno sredstvo za određivanje odgovarajuće topologije mreže uključuje algoritme koji počinju s malom mrežom i grade je veće. Takvi algoritmi poznati su kao konstruktivni algoritmi. Osim toga, mnoga istraživanja neuronskih mreža i dalje su usredotočena na uporabu evolucijskih i genetskih algoritama, temeljenih na pojednostavljenim načelima biološke evolucije, za određivanje topologije mreže, težine i ukupnog ponašanja mreže.

Slika 12: Tri od beskonačnog broja mogućih topologija mreže koje bi se mogle koristiti za povezivanje dva ulaza s dva izlaza.

Slika 13: Krivulje učenja za problem isključivog OR (XOR) (Leverington, 2001). Neuronska mreža bez skrivenih slojeva ne može riješiti problem XOR (gornja krivulja), ali neuronska mreža s jednim skrivenim slojem može riješiti problem s relativno malim brojem iteracija (donja krivulja).


5.6 Inicijalizacija mrežnih težina

Iako se idealne početne vrijednosti za pondere (tj. One koje će povećati učinkovitost i brzinu s kojima neuronska mreža uči) još ne mogu teoretski odrediti (Thimm i Fiesler, 1997), opća je praksa dodjeljivati ​​nasumično generirane pozitivne i negativne vrijednosti količine kao početne vrijednosti težine. Takva nasumična raspodjela može pomoći smanjiti šanse da se mreža zaglavi u lokalnim minimumima (Gallant, 1993). Obično se vrijednosti odabiru iz raspona [-a,+a] gdje je 0,1 5.7 Zamah

Brzina konvergencije mreže može se poboljšati povećanjem brzine učenja epsilon. Nažalost, povećanje e obično će rezultirati povećanjem nestabilnosti mreže, pri čemu će težinske vrijednosti nestabilno oscilirati dok se približavaju rješenju. Umjesto mijenjanja e, većina standardnih algoritama za širenje unatrag koristi termin impulsa kako bi ubrzala konvergenciju izbjegavajući nestabilnost. Termin zamaha dodaje se jednadžbi 8a i jednak je umnošku nekog razlomka 0

Slika 14: Krivulje učenja nastale korištenjem tri različite postavke impulsa (Leverington, 2001).


5.8 Prekomjerna generalizacija i obuka s bukom

Svrha osposobljavanja unatražne mreže za unaprijedno širenje je iterativno mijenjanje vrijednosti težine tako da se ponderi s vremenom približe rješenju koje povezuje ulaze i izlaze na način koji je koristan za korisnika. Obično je poželjno u obuci da mreža može generalizirati osnovne odnose između ulaza i izlaza na temelju podataka o obuci koji se ne sastoje od svih mogućih ulaza i izlaza za dati problem. Poteškoća koja se može pojaviti pri obuci neuronske mreže uključuje prilagođavanje vrijednosti težine tako blisko podacima o obuci da je korisnost mreže u obradi novih podataka smanjena ovaj problem naziva se pretjerana generalizacija (ili pretjerana obuka) (npr. , Biskup, 1995. Reed and Marks, 1999. Karystinos i Pados, 2000.). U pretjeranoj generalizaciji, mreža je prestala biti u mogućnosti povezati opće raspone vrijednosti s klasama, a umjesto toga povezuje ulazne vrijednosti s klasama na način koji je u suprotnosti s općenitijim odnosom koji se želi. Dok rane faze učenja općenito rezultiraju uspješnom evaluacijom glavnih značajki temeljne funkcije koja ispravno preslikava ulaze u ishode, kasnije faze učenja mogu uključivati ​​značajke skupa podataka za obuku koje su nekarakteristične za podatke u cjelini (npr. na korištenje nepotpunih ili bučnih podataka o obuci) (Reed i Marks, 1999.). Izmjerena pogreška u takvoj situaciji stalno će se smanjivati ​​tijekom obuke, ali će se i mogućnosti generalizacije mreže smanjivati ​​(jer mreža mijenja pondere kako bi odgovarala osobitostima podataka o obuci koji se koriste).

Jedan pristup koji se koristi za sprječavanje pretjerane generalizacije je prekid obuke prije nego što dođe do pretjerane generalizacije (Reed i Marks, 1999.). To jest, za datu mrežu, podatke o obuci i algoritam učenja može postojati optimalna količina obuke koja proizvodi najbolju generalizaciju. Iako je potencijalno učinkovito, ovo rješenje često nije korisno jer algoritmi koji pružaju informacije o tome kada treba prekinuti obuku nisu nužno pouzdani, te se algoritme može, na primjer, zavarati u prerano prekidanje obuke čimbenicima kao što su, npr. Lokalni minimumi na površini greške. Prerano prekid obuke rezultirat će mrežom koja nije osposobljena za najveći potencijal, dok kasno prekid obuke može rezultirati mrežom čiji rad karakterizira pretjerana generalizacija (Reed i Marks, 1999.).

Drugo rješenje koje se ponekad koristi za borbu protiv pretjerane generalizacije je upotreba podrhtavanja (tj. Dodavanje male količine umjetne buke podacima o obuci dok se mreža trenira) (npr., Bishop, 1995a, str. 346- 349 Bishop, 1995b Reed and Marks, 1999., str.277-289). To se izvodi dodavanjem slučajnog vektora svakom uzorku treninga svaki put kad se pošalje na mrežu. Dodavanje buke podacima o vježbanju omogućuje da se tijekom treninga kao takve uzmu u obzir vrijednosti koje su bliže stvarnim vrijednostima treninga, pa se upotreba podrhtavanja može smatrati načinom ekstrapolacije podataka o vježbanju na proksimalne vrijednosti. Korištenje podrhtavanja pomaže u popunjavanju inače oskudnih skupova podataka za obuku povezivanjem veće raznolikosti ulaznih vrijednosti (i kombinacija ulaznih vrijednosti) s izlaznim klasama, dopuštajući težinama mreže da se približe rješenju koje povezuje opće raspone vrijednosti s klasom oznake, umjesto povezivanja određenih vrijednosti s oznakama klasa (i time potencijalno izbjegavanje pretjerane generalizacije).


5.9 Kombiniranje rezultata neuronske mreže

Slučajna inicijalizacija mrežnih težina prije svakog izvođenja algoritma za obučavanje neuronske mreže može u nekim slučajevima uzrokovati da konačni rezultati klasifikacije variraju od izvođenja do izvođenja, čak i kada svi drugi čimbenici (npr. Podaci o obuci, brzina učenja, zamah, topologija mreže) se drže konstantnim. Osobito pri radu s vrlo ograničenim skupovima podataka o obuci, razlike u rezultatima mogu biti velike. U takvim je okolnostima najbolje proširiti podatke o obuci na temelju poboljšane istine. Ako to nije moguće, ponekad se mogu postići optimalni rezultati kombinacijom rezultata više klasifikacija neuronskih mreža. Na primjer, rezultati više neuronskih mreža mogu se kombinirati pomoću jednostavnog pravila konsenzusa: za dati piksel oznaka klase s najvećim brojem glasova "glasova" je ona koja je dodijeljena (to jest, rezultati pojedinačne neuronske mreže ovrhe se kombiniraju prostom većinom glasova) (Hansen i Salamon, 1990.). Obrazloženje iza takvog pravila konsenzusa jest da bi konsenzus brojnih neuronskih mreža trebao biti manje pogrešan od bilo koje pojedinačne mreže, pri čemu svaka mreža generira rezultate s različitim atributima pogreške kao posljedicu različitih težinskih inicijalizacija (Hansen i Salamon, 1990). U zajednici neuronskih mreža zanimljivo je korištenje konsenzusnih algoritama za generiranje konačnih rezultata koji su superiorniji od bilo koje pojedinačne klasifikacije neuronskih mreža.

Anzai, Y., 1992. Prepoznavanje uzoraka i strojno učenje. Academic Press, Boston.

Biskup, C.M., 1995.a. Neuronske mreže za prepoznavanje uzoraka. Oxford University Press, New York.

Biskup, C.M., 1995b. "Trening sa šumom ekvivalentan je Tihonovskoj regularizaciji", Neuronsko računanje, 7: 108-116.

Gallant, S.I., 1993. Učenje i ekspertski sustavi neuronskih mreža. MIT Press, Cambridge.

Hansen, L. K., i Salamon, P., 1990. Ansambli neuronskih mreža, IEEE Transactions on Pattern Analysis and Machine Intelligence, 12: 993-1001.

Holmstr m, L. i Koistinen, P., 1992. Koristeći aditivnu buku u treningu s povratnim širenjem, IEEE Transactions on Neural Networks, 3: 24-38.

Joshi, A., Ramakrishman, N., Houtis, EN i Rice, JR, 1997. "O neurobiološkim, neuro-zamagljenim, tehnikama strojnog učenja i statističkom prepoznavanju uzoraka", IEEE Transactions on Neural Networks, 8: 18-31 .

Leverington, D.W., 2001. Diskriminirajuća litologija u arktičkim okruženjima iz Zemljine orbite: Evaluation of Satellite Images and Classification Algorithms, PhD Thesis, U.Manitoba, Winnipeg, Manitoba.

Luger, G.F. i Stubblefield, WA 1993. Umjetna inteligencija: strukture i strategije za složeno rješavanje problema. 2. izdanje, Benjamin/Cumming Publishing, Redwood City, Kalifornija.

McClelland, JL, Rumelhart, DE i Hinton, GE, 1986. "Privlačnost paralelno distribuirane obrade", u Parallel Distributed Processing: Explorations in the Microstructure of Cognition - Foundations, Vol.1, MIT Press, Cambridge, pp.3 -44.

McClelland, J. L. i Rumelhart, D.E., 1988. Istraživanja u paralelnoj distribuiranoj obradi - Priručnik o modelima, programima i vježbama. MIT Press, Cambridge.

McCulloch, W.S., i Pitts, W., 1943.Logički račun ideja imanentnih živčanoj aktivnosti, Bilten matematičke biofizike, 5: 115-133.

Minsky, M. i Papert, S., 1969. Perceptroni. MIT Press, Cambridge.

Oh, S.-H., 1997. Poboljšanje algoritma za širenje pogreške s modificiranom funkcijom pogreške, IEEE Transactions on Neural Networks, 8: 799-803.

Reed, R.D., i Marks II, R.J., 1999. Neural Smithing, MIT Press, Cambridge, Mass.

Rich, E. i Knight, K., 1991. Umjetna inteligencija. McGraw-Hill, New York.

Richards, J.A., Jia, X., 2005., Analiza digitalne slike s daljinskog mjerenja, 5. izdanje, Springer-Verlag, New York.

Rosenblatt, F., 1962. Načela neurodinamike: Perceptroni i teorija moždanih mehanizama, Spartan, Washington DC.

Rumelhart, D.E., McClelland, J.L. i PDP Research Group, 1986. Paralelna distribuirana obrada: istraživanja u mikrostrukturi spoznaje. Vol.1 i 2, MIT Press, Cambridge, Mass.

Tamura, S. i Tateishi, M., 1997. Sposobnosti četveroslojne napredne neuronske mreže: četiri sloja naspram tri, IEEE transakcije na neuronskim mrežama, 8: 251-255.


2 odgovora 2

Svaki čvor u skrivenim slojevima ili u izlaznom sloju neuronske mreže naprijed ima svoj izraz pristranosti. (Ulazni sloj nema nikakvih parametara.) Barem tako radi u TensorFlow -u. Svakako, izgradio sam vaše dvije neuronske mreže u TensorFlowu na sljedeći način:

Evo sažetka ova dva modela koje TensorFlow pruža:

Prvi model ima 24 parametra, jer svaki čvor u izlaznom sloju ima 5 pondera i izraz pristranosti (tako da svaki čvor ima 6 parametara), a u izlaznom sloju postoje 4 čvora. Drugi model ima 24 parametra u skrivenom sloju (računa se na isti način kao gore) i 15 parametara u izlaznom sloju. Svaki čvor u izlaznom sloju ima 4 pondera i izraz pristranosti (dakle 5 parametara po čvoru u izlaznom sloju), a u izlaznom sloju postoje 3 čvora.


Kako izračunati težine i pristranost za McCulloch-Pittsov neuron? - Psihologija

McCulloch-Pittsov model bio je iznimno jednostavan umjetni neuron. Ulazi mogu biti nula ili jedan. A izlaz je bio nula ili jedan. Svaki ulaz bi mogao biti ili uzbuđujući ili inhibicijski.

Sada je cijela poanta bila zbroj ulaza. Ako je ulaz jedan i pobudne je prirode, dodao je jedan. Ako je bio jedan i bio je inhibitorni, oduzeo je jedan od zbroja. To se radi za sve ulaze i izračunava se konačni zbroj.

Sada, ako je ovaj konačni zbroj manji od neke vrijednosti (za koju odlučite, recimo T), izlaz je nula. Inače, izlaz je jedan.

Ovdje je grafički prikaz modela McCulloch-Pitts

Na slici sam predstavio stvari s imenovanim varijablama. Varijable w1, w2 i W3 označavaju koji je ulaz pobuđujući, a koji inhibicijski. To se naziva "utezi". Dakle, u ovom modelu, ako je težina 1, to je uzbudljiv ulaz. Ako je -1, to je inhibitorni ulaz.

x1, x2, i x3 predstavljaju ulaze. Moglo bi biti više (ili manje) ulaza ako je potrebno. U skladu s tim, bilo bi više 'w' koji bi naznačili je li taj određeni ulaz pobuđujući ili inhibicijski.

Sada, ako razmislite o tome, možete izračunati zbroj pomoću 'x i' w. nešto kao ovo:

To je ono što se naziva 'ponderirani zbroj'.

Sada kada je zbroj izračunat, provjeravamo je li zbroj

Sada, koristeći ovaj jednostavan model neurona, možemo stvoriti neke zanimljive stvari. Evo nekoliko primjera:

NOR vrata

Gornja slika je NOR vrata sa 3 ulaza. NOR vrata daju izlaz od 1 samo ako su svi ulazi nula (u ovom slučaju x1, x2 i x3) Možete isprobati različite moguće slučajeve ulaza (mogu biti nula ili jedan).

Imajte na umu da ovaj primjer koristi dva neurona. Prvi neuroni primaju ulazne podatke koje dajete. Drugi neuron radi na izlazu iz prvog neurona. Nema pojma koji su bili početni ulazi.

NAND vrata

Ova slika prikazuje kako stvoriti NAND vrata sa 3 ulaza s tim neuronima. NAND vrata daju nulu samo kada su svi ulazi 1. Ovom neuronu trebaju 4 neurona. Izlaz prva tri ulaz je za četvrti neuron. Ako isprobate različite kombinacije ulaza.

McCulloch-Pittsov model se više ne koristi. Ova vrata NOR i NAND već imaju izuzetno učinkovite sklopove. Stoga je besmisleno ponavljati istu stvar s manje učinkovitim modelima. Poanta je koristiti "međusobne veze" i prednosti koje ima.

Zamijenjeni su naprednijim neuronima. Ulazi mogu imati decimalne vrijednosti. Tako mogu i utezi. Neuroni zapravo obrađuju zbroj umjesto da samo provjeravaju je li manji ili nije.


Za svaki virtualni neuron trebala bi postojati težina pristranosti jer kontrolira prag na koji neuron reagira na kombinirani unos. Dakle, ako vaš skriveni sloj ima 100 neurona, to je 100 pondera za taj sloj. Isto vrijedi za svaki sloj.

Obično postoje dva različita pristupa pri provođenju pristranosti. Možete učiniti jedno ili drugo:

Kao zasebni vektor težina pristranosti za svaki sloj, s različitom (malo smanjenom) logikom za izračunavanje nagiba.

Kao dodatni stupac u matrici pondera, s odgovarajućim stupcem od 1 dodanih ulaznim podacima (ili izlazima prethodnog sloja), tako da potpuno isti kôd izračunava gradijente pristranosti težine i ažuriranja kao i za težine povezivanja.

U oba slučaja radite samo proračun povratnog širenja od delta aktivacije neurona do delta težine pristranosti, ne morate izračunavati deltu "aktivacije" za pristranost, jer se to ne može promijeniti, to je uvijek 1,0. Također, pristranost ne doprinosi deltama ništa više.


Matematička definicija

McCulloch i Pitts razvili su matematičku formulaciju poznatu kao linearna vrata praga, koji opisuje aktivnost jednog neurona s dva stanja, pucanje ili ne-pucanje. U svom najjednostavnijem obliku, matematička formulacija je sljedeća:

Gdje su $ I_1, I_2,…, I_N $ vrijednosti binarnih ulaza $ in <0,1> $ $ W_1, W_2,…, W_N $ su utezi pridruženi svakom ulazu $ in <-1,1> $ $ Sum $ je ponderirani zbroj ulaza, a $ T $ je unaprijed definirana vrijednost praga za aktivaciju neurona (tj. pucanje). Slika 3 prikazuje grafički prikaz umjetnog neurona McCulloch-Pitts.

Ulaz se razmatra uzbudljiv kada je njegov doprinos ponderiranom zbroju pozitivan, na primjer $ I_1 * W_1 $ $ = 1 * 1 = 1 $ dok se unos smatra inhibitorne kada je njegov doprinos ponderiranom iznosu negativan, na primjer $ I_1 * W_1 = 1 * -1 = -1 $. Ako je vrijednost $ Sum $ $ geq $ $ T $, neuron se aktivira, u protivnom se ne aktivira. Slika 4 prikazuje grafički prikaz funkcije praga.

Ovo je poznato kao a step-funkcija, gdje osovina $ y $ kodira aktivacijsko stanje neurona, a osovina $ Sum $ kodira izlaz ponderiranog zbroja ulaza.

Bilješka: Važno je naglasiti da je jedina uloga "utega" u McCulloch-Pittsovom modelu, kako je ovdje predstavljen, utvrditi je li ulaz pobuđujući ili inhibicijski. Ako ste upoznati sa suvremenim neuronskim mrežama, to je druga uloga. U modernim neuronskim mrežama utezi imaju dodatnu ulogu povećavajući i opadajući ulazne vrijednosti. Iz te perspektive, McCulloch-Pittsov model je zapravo neponderiran.


Gledaj video: MCP neuron (Kolovoz 2022).