Neuronske mreže
učenje s po unatrag propagacija pogreške
Colin Fahey

A biološka neuronska mreža
1. Software
2. Uvod
Ovaj dokument opisuje kako provesti umjetne neuronske mreže koja je sposobna da su obučeni da prepoznaju uzoraka.
Ovaj dokument opisuje model je neuronska mreža koja uči po jedan algoritam koji koristi "unatrag propagacija pogreške."
Ovaj dokument sadrži osnovne demonstracija učenja by "unatrag propagacija pogreške." Ovaj dokument ima link na računalu kod. Računalo broj uključuje demonstracije. Računalo kod može biti korišten za stvaranje složenih neuronske mreže. Međutim, računalo code je samo za demonstracijskoj funkciji. Alternativa provedbu mogao smanjiti memorije i mogao povećati brzinu.
3. Izbor za učenje prema unatrag propagacija pogreške
Ovaj dokument opisuje model je neuronska mreža koja uči po jedan algoritam pod nazivom "unatrag propagacija pogreške." Ovaj algoritam može zahtijevati vrlo dugo vremena kako bi naučili razne lekcije. Također, ovaj algoritam može nasumično ne naučiti razne lekcije zbog slučajnog početno stanje je neuronska mreža prije treninga.
Learning by "povezivanje aktivnih ulaza" važan je alternativa učenje prema "unatrag propagacija pogreške." Learning by povezivanje aktivnih ulaza jednostavno ulazi suradnicima koji su istodobno aktivni. Takva učenja može biti brz i pouzdan. Ipak, za mnoge praktične svrhe, nije očigledan način da se koriste neuronske mreže koja uči po udruga, dok je jedan ocigledan nacin na korištenje mreže koji uči po unatrag propagacija pogreške.
Neki biološki neuronske mreže kako bi naučili su poznati po udruga aktivnih ulaza. Povratni propagacija pogreške nije promatrao u bilo koje biološke neuralne mreže.
Ovaj dokument opisuje zanimljive koristi za neuronska mreža koja uči by unatrag propagacija pogreške. Međutim, učenje po udruga je vrlo važan alternativni algoritam za učenje. Projektiranje jedan neuronska mreža koja uči po udruga riješiti određeni problem može biti teže da desgining alternativa neuronska mreža koja uči by unatrag propagacija pogreške, ali biološki sustavi naučiti od strane udruge, te mogućnost učenja bioloških sustava je evidentno.
4. Biološki neuronske
4.1 Neuron stanica

Biološki neuronske "(multipolar" tipa, ~4 um stanica tijela)
A neuronske je vrsta stanica koja ima mogućnost za primanje i prijenos signala nerve.
Neurons su na temelju nervni sustavi, pronađena u životinje, ptice, ribe, kukci.
Mozak s memorijom i logike, i jednostavan refleks sustava, oba su na temelju dogovora od neurons.
Neurons su također korišteni za transport signala na velikim udaljenostima u stvorenje je tijelo, kao što je iz senzora do mozga, ili iz mozga do mišića.
The ponašanja biološki neuronske je vrlo kompleksan, ali sljedeće bilježi pojednostavljeni opis osnovnih principa:
Akumulira u neuronske signale primljene od drugih neurons, i ako je ukupan signal akumulacija prelazi praga, neuronske prenosi svoje vlastite signale na druge neurons.
4.2 Neuron dijelovi

Dijelovi biološki neuronske
|
Giant Cock
|
The cell tijelo od neuronske
|
|
Dendrites
|
Vlakana s kemijskim receptori (ulaza) da se produljiti iz stanica tijela jedne neuronske. A neuronske obično ima mnogo dendrites, dendrites i često imaju mnoge grane.
|
|
Akson
|
A vlakno s kemijskim emitters (izlaza) na krajnja točka koja se proteže od stanica tijela, neuronske. A neuronske je jedan Akson, i Akson obično ima vrlo malo grane.
|
|
Sinapsa
|
A takvih konfiguracija da Akson jedne neuronske i dendrites druge neuronske su odvojeni vrlo mali jaz. U takvoj konfiguraciji, kemikalije emitiraju po jedan Akson od neuronske preko sinapsa i su primili od strane dendrites s druge neuronske. To je, kako neurons utjecaj drugih neurons.
|
4.3 Neuron plamena
A neuronske akumulira kemijski signali iz svojih dendrites, i ako je ukupna akumulacija prelazi kemijske praga unutar vremenskog razdoblja, neuronske "požari," slanje vlastitog signala putem svojih Akson.
Neki neurons su sposobna plamena impulsi po naređenju 100 Hz.
The signali prolaze kroz neurons uključivati akumulacije od (Na) Natrij, kalij (K), i Klor (Cl) iona, te je rezultat elektrokemijski potencijal (na primjer, napon).
Počivalište napon (-70 mV) i plamena napon (+30 mV) može biti izmjerena ili čak i pod utjecajem konvencionalnog električne strujna kola.
Sljedeći je napon snimanje jedne rat neuronske plamena na stopa grubo 100 Hz kada jedan zalistak se dotače i održava izvan njegove odmarajući položaj:

A rat neuronske plamena (100 Hz) zbog drži zalistak.
Iako je poticaj je konstanta, neuronske signal je brzo pulsiranje.
4.4 Neuronske mreže
Ljudski mozak ima oko 10^11 (100 milijardi) neurons.
Svaki neuronske u mali mozak prima input iz koliko 10^4 (10000) synapses.
Iako je Akson i dendrites od neuronske često se produljiti samo nekoliko mikrometar udaljen od stanica tijela, neke axons su na red od jednog metra u dužini.
A mozak je neurons s relativno kratkom axons grupirane u područja ili klasteri.
A mozak također ima pakete neurons s relativno dugo axons na link područja separated by centimetra.
Tako je jedan hijerarhijska mreža obrade elemenata je formirana.
4.5 Neuronske mreže status
Stanje mreže neurons je i način neurons su povezani i signali na sve od synapses.
To je nejasno koliko je status informacije će biti izgubljeno ukoliko mozak je tranquilized u ukupno neaktivnosti za bilo koju količinu vremena.
One mogu zamisliti informacije kontinuirana samo signali se kreće kroz mreže, a ne s mrežnim povezivanjem sama, kao što su stanični automati simulacije poput Conway's "Game of Life", jednostavan Dynamic Random Access Memory (DRAM) čips, i odjekuje u chamber.
4.6 Neuronska mreža za učenje
Konvencionalne učenje se događa kada svojstva dendrites promijeniti na sinapsa da se više ili manje efikasna na primanje kemijske signale iz jednog Akson.
Razlozi za takve promjene su komplicirana, ali rezultat je da neuronske zahtijeva različitu kombinaciju sinapsa ulazi da se aktiviraju jedan izlazni signal.
5. Umjetne neuronske
5.1 Definicija
An "umjetne neuronske" je algoritam ili fizički uređaj koji implementira jedan matematički model nadahnut osnovnih ponašanja biološki neuronske.
A akumulira neuronske signale primljene od drugih neurons ili inputa (npr., senzori), i ako je ukupan signal akumulacija prelazi praga, neuronske prenosi signal na druge neurons ili izlaza (npr., effectors).
Bilo koji matematički model koji uključuje ideju gomilajućim više ulaza i izdašan jedan izlaz (accentuates da je intenzitet u odnosu na ono što se umeće u odnosu na neke nominalne razini) mogu se koristiti za raspoznavanje uzoraka.
Takvi modeli mogu biti temelj jedne umjetne neuronske.
Ako utjecajem svaki unos može se mijenjati, onda se model može podržati učenje.
5.2 Aktiviranje funkcija
An "aktivaciju funkcija" je matematička funkcija koja pretvara ulazne vrijednosti ispod određenu vrijednost na relativno niska izlazna vrijednost, i pretvara ulazne vrijednosti iznad određenu vrijednost na relativno visoke izlazne vrijednosti.
An "aktivaciju funkcija" se koristi za pretvoriti u težinski zbroj ulaznih vrijednosti jedne neuronske u vrijednost koja predstavlja izlaz na neuronske.
A "sigmoid" funkcija je opće klasa glatke funkcije koje asymptotically pristup nižu granicu za unos vrijednosti približavaju negativne beskonačnosti, i asymptotically pristup jedan gornji limit za unos vrijednosti približavaju pozitivne beskonačnosti.
Jedan specifičan sigmoid funkcija je "logistic sigmoid" funkcija:

The "Logistic Sigmoid" funkcija: 1 / ( 1 + Exp( -x ) )
The "logistic sigmoid" funkcija se može koristiti kao "aktivaciju funkcija" za matematički model jedne neuronske.
The mathematical izvedenice od "logistic sigmoid" može biti kompjutorska kao formula, što je lako izračunati pridružena učenje formula.
5.3 Neuronske mreže input
A "neural network input" predstavlja ono što se umeće na neuronske mreže.

Neuronske mreže input
"Input" je brojčana vrijednost je ono što se umeće.
5.4 Neural network output
A "neural network output" izlazni predstavlja jedan od neuronske mreže.

Neural network output
"Output" je brojčana vrijednost od output.
"Error" je brojčana vrijednost koja predstavlja razliku između izlaznog vrijednost i "Desired" vrijednost:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
The "Desired" vrijednost predstavlja željenu vrijednost, ili idealno vrijednost, ili ispraviti vrijednost, da je neuronska mreža bi trebala proizvoditi kao output u odgovoru na specifične ulaza.
The error vrijednost je kompjutorska i dodijeljen "Error" je trening algoritam.
Greška je vrijednost povratne informacije na neuronske mreže.
The neural network mogu prilagoditi kako bi smanjiti razliku između svojih rezultata i željene vrijednosti, tj., neuronska mreža može naučiti, i na taj način može smanjiti buduće greške.
5.5 Neuron tijela
A "neuronske tijelo" predstavlja tijelo jedne neuronske, koja akumulira input doprinosa, i dodaje pristrasnosti, i transformira je rezultat vrijednosti koje je "za aktivaciju funkcija" za stvaranje jedne izlazne vrijednosti.

Neuron tijela
"InputAccumulator" je vrijednost koja predstavlja akumulirane unos iz neuronske veze, čiji izlazi su povezani s neuronske tijela.
"Bias" je podesivo vrijednost koja je u kombinaciji s nagomilanih ulazna vrijednost.
"Output" je brojčana vrijednost predstavlja output vrijednost od neuronske.
Izlazni vrijednost je kompjutorska pomoću sljedećih formula:
Output = ActivationFunction( Bias + InputAccumulator );
"ErrorAccumulator" je brojčana vrijednost predstavljaju akumulirana pogreška.
S obzirom na specifične izlazne vrijednosti od neuronske tijela, i daje određeni output error vrijednost, ukupna pogreška vrijednost je prilagođen prema sljedećoj formuli:
ErrorAccumulator += Output * (1 - Output) * OutputError;
"Rate" je vrijednost koja utječe na način na koji "Bias" vrijednost promjene u odgovoru na "ErrorAccumulator" vrijednost:
Bias += (-1) * Rate * ErrorAccumulator;
5.6 Neuron link
A "neuronske veze" predstavlja vezu između:
(1) jedan unos na neuronske mreže i jedna ulazna od neuronske tijela;
ili,
(2) jedan je izlaz neuronske tijelo i ono što se umeće druge neuronske tijela;
ili,
(3) jedan je izlaz neuronske tijelo i jedan izlaz u neuronskih mreža.

Neuron link
"Input" je predmemorija za ono što se umeće na link.
"Weight" je podesivo vrijednost koja utječe na vrijednosti i kako signal pogreške vrijednosti propagirati kroz vezu.
"Output" je predmemorija za jedan izlazni link.
Vrijednost je kompjutorska pomoću sljedećih formula:
Output = Weight * Input;
"Error" je predmemorija za pogreške na link.
"WeightedError" je predmemorija je pogreška u vezu, težinski faktor je težina:
WeightedError = Weight * Error;
"Rate" je vrijednost koja utječe na način na koji "Weight" vrijednost promjene u odgovoru na "Error" vrijednost i "Input" vrijednost.
Tijekom neural network učenje, "Weight" vrijednost je podešena na sljedeći način:
Weight += (-1) * Rate * Input * Error;
5.7 Neuronske mreže
A "neural network" sadrži ulaza, izlaza, neuronske tijela, i linkovi.
Sljedeća slika prikazuje jednostavne neuronske mreže, s dva ulaza i dva neuronske tijela u prvi sloj, i jedan neuronske u drugi sloj, i jedan izlaz.

Primjer jedne neuronske mreže
Tijekom simulacije je neuronska mreža, unos vrijednosti razmnožavati naprijed kroz neuronske veze i tijela, i na kraju stižemo izlaza.

Primjer naprijed propagacije u neuronske mreže
Tijekom treninga, error vrijednosti date su u izlaza, i ove greške razmnožavati unatrag kroz neuronske mreže, što je rezultiralo u modifikacija težine i biases u neuronske tijela i linkovi.

Primjer unatrag propagacija pogreške u neuronske mreže
5.8 Neuronske mreže simulacija
Definicija:
"Mreža simulacija" je postupak koji se širiti mreža ulazi kroz veze i tijela do postizanja neuronske mreže izlaza.
Mreža simulacija uključuje simulacija svih njenih konstitutivnih neuronske veze i tijela.
Simulations bez petlje ili vrijeme:
Mnogo je moguće konfiguracije mreže koja uključuje petlje.
Postoje mnogi modeli neuronske koje ovise o vremenu.
Ali neke od najčešćih primjena umjetne neurons uključivati ni petlje, ni vrijeme.
Sljedeći je matematički model jedne neuronske tijela:
Output = ActivationFunction( Bias + InputAccumulator );
S ovom neuronske model, i mreže bez "petlje," mi jednostavno početi od vanjskih ulaza, izlaza računati na prvi sloj neurons, opskrbu i oni izlaze kao ulazi na sljedeći layer, izračunali da izlaza za sloj, i dalje kroz razine neurons do konačnog rezultata su kompjutorska.
Petlje:
A mreže mogu imati veze u obliku petlje (ili "ciklusi)."
Na primjer, izlaz na neuronske mogu biti spojeni izravno na ulaz neuronske da je isti, nanoseći "povratne informacije."
Drugi primjer je izlazni neuronske # 1 je povezan s unosom neuronske # 2 i izlazni neuronske # 2 se spojeni na ulaz neuronske # 1.
Ako možete pokrenuti iz neke točke u mreži i trasirati put kroz neurons i veze, obeying u jednom smjeru od toka signala, i na kraju dolazimo na isti polazišta, zatim put je petlja.
Petlje uvesti zanimljiva mogućnost signali teče oko mreže za neodređeno vrijeme.
Neki jednostavni modeli pretpostavljaju da se uzima određenu količinu vremena za signale kroz pojedinačne neurons.
U takvim modelima, signali kružiti kroz petlje s nekoliko neurons brže od signali kružiti kroz petlje s mnogo neurons.
A neuronske spojeno na sebi imat će najbrži signal circulation rate.
Ako neuronske je ono što se umeće X, težine W, prednapon B, i non-negative output Y (npr., 0.0 -> 1.0), a zatim smo se jedan oblik oscilator jednostavno postavljanjem W = (-8) i B = +4 i povezivanju Y da X;
svaki put mi je pretvarati se neuronske, signal će biti toggled na suprotnoj države.
A mreža s petlje može biti zauzet s aktivnost čak i kad ga ne prihvaća vanjski signali (osjeta) kao ulazi.
Na stanični automati pravila Conway's "Game of Life" mogao biti implementiran u neuronske mreže, koja Vam daje mali savjet od raznolikosti aktivnosti koje se mogu dogoditi u neuronska mreža s petlje.
Strojevi s konačnim brojem stanja (FSM), oscillators, izbrisiva memorija (u kontrastu učenje uzoraka preko mijenjanje težine), omogućeno petlje.
Ako se mreža ima petlje, ne može ažurirati sve do izlaza smo izračunali sve izlazi; tako, mi tražimo privremenog tampon za pohranu kompjutorska izlaza dok smo izračunali sve izlazi, i onda bismo mogli počiniti novi izlaz vrijednosti na neurons u mreži.
Bilo koja metoda koja ažuriranja rezultata u stvarnoj mreži u progressive način, umjesto jednog sve-u-jednom način, uvodi proizvoljnog poredak u vremenu koje vodi do kaosa.
Fizika simulacije uključuju povezanih entiteta, kao što su planete orbiting zvijezda s međusobnom teži snaga između svih tijela, zahtijevati istu vrstu pristupa: izračunati neto snage na svim tijela prije nego što ažurirate bilo koje brzine i pozicije.
Time-ovisnost:
A jednostavni mrežni simulacija obično uključuje nanošenje ulazi željeni izlazi nakon jednog vremena simulacije korak.
U takvom simulacija, mislimo u smislu "broja ponavljanje," a ne "vrijeme u sekundama."
Postoji potreba ne biti bilo koja prepiska između ponavljanje i vrijeme razmjera.
A sistem može biti dizajniran da mreža simulacija (iteracija) samo kada je dostupna nova input, koje bi mogle nastati u neregularnim intervalima vremena.
Međutim, razmislite o jednom od matematički model neuronske da pokuša imitirati trepereće output aspekt biološki neuronske.
Trepereće može biti karakterizirana u smislu vremena, kao što je pulsiranje na određenoj frekvenciji ili vlasništvo impulsi čiji je krivulja se proteže za određenu količinu vremena.
Možemo imati druge vremensko-ovisne elemente u matematički model jedne neuronske, kao što je ono što se umeće kolektor čija vrijednost dobiva doprinosa iz inputa, ali ima proporcionalnu leak svoje trenutne vrijednosti.
Općenito, možemo naći jedan električni vod analogiju za elemente koji pokoravaju određenim matematičkih jednadžbi, i na taj način može se tiče jedne neuronske kao sklop s otpornici, capacitors, i ne-linearno pojačalo.
Samo kao sklop mogu izlagati kompleks vrijeme ovisno o ponašanju, izlaz na neuronske može se smatrati kao funkcija koja ovisi o njegovoj ulazi i vrijeme u komplicirano način.
5.9 Povratni propagacija pogreške
Definicija:
"Povratni propagacija pogreške" je matematički postupak koji počinje s pogrešku na izlaz od neuronske mreže i propagates ovo pogreška unatrag kroz mrežu do prinosa output error vrijednosti za sve neurons u mreži.
Povratni propagacija pogreške formule:
The error vrijednosti na neuronske mreže izlaza su kompjutorska pomoću sljedećih formula:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
The error akumulacije u neuronske tijelo je prilagođen prema izlaz na neuronske tijela i output error (Navedeni linkovi povezani s neuronske tijela).
Svaki output error vrijednost pridonosi greška kolektor na sljedeći način:
ErrorAccumulator += Output * (1 - Output) * OutputError;
U smislu, sve izlaz pogreške na sljedeći sloj leak unatrag kroz ono što se umeće težine i nagomilati na izlaz neuronske je u prethodnom sloju.
To je ukupna vrijednost pomnožen vrijednost koja je najveća kada je trenutni izlaz iz neuronske je većina neutralna (većina "neodlučan)" a najmanje kada je izlaz iz neuronske je najradikalniji izraz (vrlo "siguran)."
Težina mijenjaju i pristrasnosti promjenu formule:
Osnova učenja je prilagođavanja težine i pristrasnosti vrijednosti u pokušaju da smanje budućnosti izlazne pogreške.
Learning "Ocijenite" je numerička vrijednost koja u suštini označava koliko će se brzo jedne neuronske prilagođava težinu i pristrasnosti vrijednosti prema vrijednosti pogreške.
Sljedeća formula pokazuje kako promijeniti težine od neuronske s određeni skup ulaznih vrijednosti i njen output error vrijednost:
Weight += (-1) * Rate * Input * Error;
Sljedeća formula pokazuje kako promijeniti prednapon od neuronske S obzirom na sadašnju output error za neuronske:
Bias += (-1) * Rate * Error;
6. Obuka jedne neuronske mreže
6.1 Obuka postupak
Jedan može započeti s trenirao mreža i dalje smanjiti output error s daljnja usavršavanja, ali često počinje s untrained mreže.
Prije treninga, odaberite slučajnih vrijednosti za sve težine svih neurons u mreži.
Sam promatrao problema kad sam nasumično odabranih vrijednosti u interval [ -1.0, +1.0 ], i ja nisu imali problema kad sam odabrao slučajne vrijednosti iz intervala [ +0.1, +1.0 ].
I spomenuti ove primedbe, ali može biti zbog moje pogreške.
Svrha slučajnih težine je smanjenja mogućnost bilo kakvih patoloških stanja u mreži.
Ako je sve u mreži neurons počeo s istim težine, mreža bi nemaju osnova za sve veću razliku između neurons.
Da sam to čuvao sve prednapon postavljanje vrijednosti na nulu (0.0) je prihvatljivo.
A trening uključuje prolazi kroz trening set mnogo puta, možda i stotine ili tisuće puta.
Za svaku proći kroz trening set, smatramo svaku stavku u trening set.
A training set stavka ima skup ulazi i niz željenog rezultata.
Mi simulaciju mreže, koristeći skup ulaza navedenim u stavku trening.
The Simulation donosi izlazne vrijednosti.
Mi razmnožavati pogreške unatrag mislio na neuronske mreže kako bi izračunali izlaz greške za sve neurons.
Mi se ažuriraju svi utezi i biases.
Oprez: Jedan akademski tekst koji je objašnjeno neuronske mreže zagovarala prolazi kroz cijeli skup trening i samo summing up weight izmjenama i biases.
Nakon što prolazi kroz cijeli skup treninga smo skupa iznosa od težine promjena i promjena prednapona.
Mi uzeti ove sume i ažurirati svi utezi i biases.
Takvi mogu biti ogromne sume za velike treninga postavlja - i uslijed skoka u masi-prostor bi biti nerazumno velike.
Tako mislim podjele po broju treninga predmeta, da bi dobili prosječnu težinu promijeniti vrijednosti i prosječne prednapon promjenu vrijednosti, bilo bi razumno.
Tu je nešto više povjerenja o computing jedan vektor težina promijeni da nekako traje cijeli set trening u obzir.
Ne znam ako sam jednostavno pogriješili u provedbi ideja, ali sam gotovo u potpunosti odustali na neuronske mreže, jer kako se loše stvari su izlaskom.
Tada, kada sam pokušao je naivan alternativa, odnosno stvaranje ažuriranja na svaki trening stavku, što je radio savršeno.
S obzirom na cijeli set trening uoči odlaska ažuriranje ima neke prednosti i nedostataka:
Advantage:
Pojedinačni artikli treninga u trening set s ekstremnim pogrešku (tj. loše trening stavka) neće napraviti veliki doprinos na update, jer će se osvaja po utjecajem "dobre" podatke;
Nedostatak:
N Ako je broj predmeta u svom treningu set, Vaš napredak stopa na optimalnu težinu vektor će biti podijeljen po N.
Ili, za određenu udaljenost imat ćete samo djeliću smjeru hints uz put u odnosu na naivan pristup;
Možda ova tehnika će raditi za vas, ali isprobati i naivan pristup prije nego što odustati na neuronske mreže u vanjsko frustracija!
6.2 Pogreška se smanjila pogreška
Obuka svibanj ne smanjuju ukupnu pogrešku za trening set.
Važno je otkriti, ako ih ne smanje pogreške.
Sljedeći popis opisuje uzroke kvara na smanjenje pogreške, i moguća rješenja.
Stavke na popisu navedeni su u Približan poredak vjerojatnost, s prvom stavku se većina probable.
(1) težinu kombinacija je postignut lokalni minimum od pogreške površine, te se "zaglavi;"
Solution: Pokrenite novu simulacija s novim slučajnih težine.
(2) U mreži ima previše neurons ili slojeva do kodirati sve od uzoraka u vašem treningu set;
Solution: Cautiously zabavljati mogućnost dodavanja slojeva ili neurons.
(3) Jedna ili više stavki u vašem treningu postaviti contradicts ili grubog je u skladu s drugim trening predmeta;
Rješenje: Provjerite svoje podatke set za nepravilnosti.
Pronađite test stavke koje rezultiraju najviše error osposobljena za svoju mrežu.
Potražite u tehnikama za prosječnu težinu promjene na cijeli skup podataka za smanjenje utjecaja bilo loše slučajevima.
(4) U učenje stopa je previsok (ništa više od 1.0 je vjerojatno pretjeranim), te ažuriranja uvijek overshoot cilj;
Solution: Smanjenje stope učenja.
(5) U učenju je preniska stopa (nešto ispod 0.01 može biti premala), i mreža je zaista na različite težine idealna kombinacija - ali je previše spora;
Solution: Povećajte učenje stopa.
Obuka jedan sloj-dva, tri-neuronske mreže kako bi se slagala s ekskluzivni-ili (xor) funkcija, može, bez obzira na jednostavnost funkcija, ne isticati se.
To može biti iznenađujuće i frustrirajuće.
Međutim, rješenje je jednostavno skup svih neuronske veze utezi na novi slučajnih vrijednosti, a zatim pokušaj da trenirati mrežu.
U slučaju trening mreže kako bi se slagala s ekskluzivni-ili (xor) funkcija, slučajni pozitivno težine činiti se to dovesti do uspješnog učenja svaki put, dok je određene kombinacije pozitivne i negativne težine ponekad uzrokovati treninga na propast dramatično.
Potreba za odabir nove slučajne početne težine za oporavak od kvara približavanje je nesretni posljedica kombinacija je postupak učenja.
The learning postupak je u osnovi traže globalni minimum by steepest silazak na površini, i potencijal za prisutnost "lokalnog minimuma" u kojoj se pretraživanje može biti zaustavljen.
6.3 Ukupni obuku o pogrešci
Ukupnu pogrešku na mreži može se odlikuje trga-root u prosjeku squared errors, ili "root-mean-square" (RMS).
Greška u bilo koje specifične mrežni izlaz je dobio od sljedećih formula:
Error = (Output - Desired);
Zbroj squared errors za jedan trening stavka je given by sljedećih formula:
double squaredError = 0.0;
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
squaredError += (output.Error * output.Error);
}
Zbroj squared errors za cijeli set predmeta u trening set je zbroj squared errors of pojedinih predmeta. Sljedeći kod prikazuje kako squared errors za cijeli set trening stavke mogu se kompjutorska:
double squaredError = 0.0;
for
(
int trainingItemIndex = 0;
trainingItemIndex < totalTrainingItems;
trainingItemIndex++
)
{
trainingSet.SetAllInputNodeValues( trainingItemIndex );
Simulate( propagationIterations );
trainingSet.SetAllOutputNodeErrorValues( trainingItemIndex );
PropagateErrors( propagationIterations );
UpdateWeightsAndBiases();
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
squaredError += (output.Error * output.Error);
}
}
Cjelokupni root-mean-square (RMS) od pogreške je dobio po kvadratni korijen prosjek od squared errors:
double rmsError = Math.Sqrt( squaredError / (double)totalTrainingItems );
Ova vrijednost je jedan od načina da karakterizira ukupnu pogrešku od mreže s obzirom na sve treninge slučajevima.
7. Learning
Učenje se događa kada težinu i pristrasnosti vrijednosti neuronske veze i neuronske tijela prilagođen u skladu s Navedeni mrežni ulaz i izlaz error vrijednosti.
Zamislite neuronska mreža s dva ulaza (x1 i x2), i dvije veze (s težine w1 i w2), i jedan neuronske tijela, i jedan izlaz (y).

Neuronske mreže s dva ulaza i jedan neuronske tijela, i jedan izlaz
Mi vlak ovog neuronske by dobavu inputa, računalni izlaz, računarstvo greška, računanje težina i pristrasnosti promjene, i ažuriranju težine i pristrasnosti, dolazite na novi utezi ( w1', w2' ).
Tu je vrlo zanimljiv način predočiti taj proces.
Možemo odnosu na skup težine kao vektor u multi-dimenzionalan prostor. Na primjer, za dvije težine imamo vektor W = (w1, w2) u dvodimenzionalni "prostor težinu."
Kada se podešava težine, imamo novi vektor težina W' = (w1',w2').
Možemo zamišljati kao točka W seli na novu točku W' kao dio procesa kako bi se smanjili output error.
Normalno jedan ne bi izračunali output error za sve moguće kombinacije težinu, jer se nada da će proces prilagođavanja težina efikasno glavu prema najbolja kombinacija.
Ipak, neka nam zemljište površine koja u suštini pokazuje koliko dobro jedna neuronske zadovoljava sve stavke u trening postavljen kao funkcija njegove dvije težine:

Sum of squared errors za određeni trening postavljen kao funkcija od dvije težine (w1, w2)
U osnovi, cilj učenja je da se spuštaju na najniži nivo ove površine, gdje pogreška je minimizirana.
Nakon što smo pronašli mjesto W = (w1, w2) da donosi minimalnu vrijednost na ovoj površini, učenje je završila i onda smo se jednostavno koristiti trenirao neuronske.
Sljedeći grafikon prikazuje izlazni je trenirao neuronske kao funkcija svih mogućih ulaza X = (x1, x2):

Neuron output kao funkcija od dva ulaza (x1, x2) za težinu kombinaciju da se minimizira squared error
Iako opterećen sam za ovo dvoje-input neuronske je jednostavno (w1*x1 + w2*x2), aktivaciju funkcija pretvara jednostavan zakrenuti plane na litici.
Ova površina je ispravan izlaz vrijednosti za sve kombinacije ulaznih (x1, x2) naveden naš training set.
No, možete zamisliti kako ulazni vektori X = (x1, x2) slične obuke vrijednosti bi također dovesti do odgovarajuće izlazne vrijednosti; ovu značajku, neuronske mreže se naziva "generalization" i je glavna vrijednost neuronske mreže.
Kao što smo pokusaj da se "spuštamo" na površini od squared error, moramo "skakati prije nego što izgleda!"
Mi ažurirati vektor težina i pristrasnosti, a zatim ćemo procijeniti "visinu" od površine na našu novu lokaciju.
Jedna posljedica toga je da smo mogli kretati do točke s više pogrešaka.
Druga posljedica je da se može potrajati do spuštamo nazad na dubini od naših prethodnih lokaciji.
Mogućnost "poskakujući" na više vrhova i dolova i error surface je izravno vezan uz "učenje stopa," jer je učenje stopa određuje koliko utjecaj pogreške vrijednosti su na našoj težinu i pristrasnosti promjene.
Sljedeći grafikon prikazuje kako se brzina poveća učenje hastens naš dolazak na nižoj poziciji na squared error surface, gdje pogreška je minimizirana.
Grafikon također pokazuje da povećanje stope učenja uvodi i mogućnost izrade loše korake:

Kratkoročni trend root-mean-squared error (RMS) za cijeli trening postavi nad nekoliko treninga ponavljanje, za učenje stope 0.1, 0.5, 1.0, i 2.0.
Ovdje je graf od root-mean-squared error output of multi-layer mreža s treninga set s 19386 stavke koje iskusni mnoge loše korake na putu do najbolje vektori težina:

Obuka ponekad susrete spikes u root-mean-squared error (RMS), kada je greška povećava za neke ponavljanje prije nastavljate jednom smanjuje trend.
Ponekad se taj trend je jednostavno glatka konvergencije na željeni skup težine:

Trend u root-mean-squared error (RMS) za cijeli trening postavi nad nekoliko treninga ponavljanje, za učenje stope 0.1, 0.5, 1.0, i 2.0.
8. Primjer: Ekskluzivna-ili (xor)
"Ekskluzivna-ili" (xor) je funkcija koja prima dva logička ulaza i donosi jednu Booleova izlaz prema sljedećoj tablici:
|
X1
|
X2
|
Y = xor (X1, X2)
|
|
0
|
0
|
0
|
|
0
|
1
|
1
|
|
1
|
0
|
1
|
|
1
|
1
|
0
|
Općenito, jedan neuronske je {x1, x2, ...} ulazi, ulazi kroz veze s težine {w1, w2, ...}.
The neuronske računa jedne srednje količine d = bias + (w1*x1 + w2*x2 + ...), koja se može smatrati identifikacije koja plane, u beskonačni skup paralelnih avionima, sadrži određene točke s koordinatama {x1, x2, ...}.
The neuronske računa jednog output value, y = ActivationFunction( d ), koja ima učinak splitting je beskonačni skup paralelnih zrakoplovi u dva seta, s jedne set producing low output vrijednosti, a drugi set proizvodnje visoke izlazne vrijednosti.
Ovako, jedan neuronske raspala višedimenzionalno prostora u dvije regije, separated by avion bias + w1*x1 + w2*x2 + ... = 0, a dodjeljuje niske izlazne vrijednosti za točke u regiji na jednoj strani, plane, a dodjeljuje izlaz visoke vrijednosti do točke u regiji na suprotnoj strani od ravnine.
Tako, ako je dva seta višedimenzionalna točaka u prostoru imaju različite klasifikacije i može biti potpuno odvojene od ravnine, onda jednu neuronske se može koristiti za pravilno svrstati bodova iz one garniture da pripada jednoj ili drugoj postavi.
Ekskluzivni ili (xor) funkcija svrstavaju bodova u dvodimenzionalni prostor (s koordinate (x1, x2)) takav da je skup točaka u { (0,0), (1,1) } su klasificirani kao izlaz za proizvodnju jednog od "0," i bodova u set { (0,1), (1,0) } su klasificirani kao izlaz za proizvodnju jednog od "1."
Ne postoji jedinstveno "ravnina" (u ovom slučaju, na jednoj liniji) da mogu odvojene one četiri boda u dva kompleta.
Stoga, jedan neuronske ne može se koristiti za klasificirati bodova prema ekskluzivni-(xor) ili funkcija.
Jedan neuronske može samo razbiti prostor bodova u dvije regije.
Ekskluzivni ili (xor) funkcija svrstavaju bodova na način da u osnovi dijeli jedan dvodimenzionalni prostor u tri regije (ili, alternativno, četiri regije).
Dva neurons može split dvodimenzionalni prostor u tri regije (npr., dva različita paralelne linije), te na taj način može se koristiti za klasificirati bodova prema ekskluzivni-(xor) ili funkcija.
A treći neuronske može se koristiti spajanja izlaza s druge dvije neurons u jednom output.
Sljedeći neuronske mreže, s dva ulaza i dva neuronske tijela u prvi sloj, i jedan neuronske u drugi sloj, i jedan izlaz, može se koristiti da klasificirati bodova prema ekskluzivni-(xor) ili funkcija.
Sljedeći neuronska mreža može biti obučeni da compute ekskluzivni-(xor) ili funkcija, ili neuralne mreže mogu jednostavno imati njene težine i pristrasnosti vrijednosti dodijeljen na način da kreira željenu ponašanje.

A neural network sposoban razvrstavanje bodova prema ekskluzivni-ili (xor)
Računalo kod povezana s ovom dokumentu pokazuje obuku i neuronska mreža u dijagram prikazan iznad kako bi se slagala s ekskluzivni-(xor) ili funkcija.
The neuronske mreže ponekad ne uspije, da bi saznali funkcija, ali je softver može se jednostavno pokrenuti ispočetka kako bi se učenje pokušajte s novi set početne težine.
Ako je softver uspješno uči isključivo-ili (xor) funkcija, onda je izlaz sličan sljedećem:
x1 = 0.0000 x2 = 0.0000 y = 0.0172 error = 0.0172
x1 = 1.0000 x2 = 0.0000 y = 0.9802 error = -0.0198
x1 = 0.0000 x2 = 1.0000 y = 0.9839 error = -0.0161
x1 = 1.0000 x2 = 1.0000 y = 0.0154 error = 0.0154
Izlazni (y) je u roku od 2% od željene vrijednosti za svaku od četiri kombinacije od varijabli (x1, x2).
Iako je mreža je trenirao kako bi naučili izlazne vrijednosti za samo četiri kombinacije varijabli (s vrijednosti 0.0 i 1.0, predstavljajući Boolean vrijednosti), ulazi u neuronske mreže može se namjestiti na bilo koji proizvoljni pokretni zarez vrijednosti.
Sljedeća slika prikazuje izlaz iz trenirao neuronska mreža za mnoge kombinacije ulaznih vrijednosti:

A neural network sposoban razvrstavanje bodova prema ekskluzivni-ili (xor)
Površina predstavlja izlaz u neuronskih mreža za sve moguće ulazne kombinacije (x1, x2) u rasponima [ -2.0, +2.0 ].
Izlazni je blizu 0.0 na snižava područja površine, a izlazni je blizu 1.0 na najvišim područjima površine.
Primjetite da je površina za nisku na bodova { (0,0), (1,1) }, a površina je visoko na bodova { (0,1), (1,0) }.
Mreža je samo osposobljena za proizvodnju željenog izlaza za četiri specifične kombinacije ulaznih varijabli, ali je neuronska mreža i proizvodi izlaza za sve druge moguće kombinacije ulaznih vrijednosti.
Mogućnost neuronske mreže za izradu razumne odgovore za opće slučajevima nakon što je osposobljena za određenim slučajevima može smatrati "generalization."
Bilo koji proces koji odgovara podataka ukazuje na model, kao što dolikuje bodova na line ili druge krivulje, također proizvodi "generalizing" efekt, tako i činjenica da dolikuje jednom neuronska mreža za stvaranje željenog rezultata za određene lekcije rezultate u neku vrstu generalization nije izvanrednih, ali je svejedno zanimljivo promatrati mogućnost uopćiti iz specifičnih slučajeva.
9. Primjer: Tic-tac-toe "(Naughts i prešao)"
9.1 Uvod
Tic-tac-toe "(Naughts i prešao)" je jednostavna igra igrao na 3 * 3 grid i stanice koje mogu biti označene s "O" ili "X".
Igrači naizmjence mjesto "O" i "X" maraka u nezauzet stanice dok jedan od igrača dovrši redak, stupac ili dijagonalno.
Budući da postoji 3 reda i 3 stupca, i 2 dijagonala, nalazi se osam najpovoljnijeg uzoraka za svaki igrač.

Tic-Tac-Toe odbora i pobjednički uzoraka
To je trivijalan napisati rekurzivnih funkcija koje istražuje sve moguće Tic-Tac-Toe igre, jer je maksimalno trajanje igre je devet poteze.
U svakom trenutku u igri mi jednostavno pregledati rezultate kretanja u svakoj od preostalih nezauzet stanice.
Takva funkcija može potvrditi da je Tic-Tac-Toe igra "igrača" igrali sa "savršenom" će kraj bez pobjednika.
9.2 Obuka jedne neuronske mreže pokazujući najbolje poteze
A recursive function mogu istražiti sve moguće igre i odrediti najbolji potez za svaku board oblik.
Mi smo dodali svaka zajednica konfiguracije (ulazi), a najbolji potez (željenog rezultata), na listu predmeta trening.
Mi zatim vlakom mreže za izradu željenog izlaza za svaki skup ulaza.
Mreža će imati 9 ulazi li u svaku ćeliju u grid i unos vrijednosti će biti ograničeni na sljedeće vrijednosti:
0: nezauzet stanica
+1: protagonist player
-1: Protivnik player
Mreža će imati 9 rezultata koji odgovaraju svakoj ćeliji u rešetki, i izlaz vrijednosti će biti ograničeni na sljedeće vrijednosti:
0: Do not move ovdje
1: Premjesti ovdje
Osam izlaza će biti postavljena na "0," i jedan izlaz će biti postavljen na "1."
Tako je, nakon treninga je neuronska mreža, pansion konfiguracija može biti navedena kao input, i neuronska mreža će ukazati na najbolji potez.
Izlazni se nalazi na "1" će ukazati na najbolji potez, i svih drugih izlaza treba da bude blizu "0."
Općenito, bilo koja funkcija sa parametrima u Booleovoj algebri Boolean i izlaza može biti zastupljena je neuronska mreža s dvije razine neurons.
Prvi sloj neurons mogu podijeliti višedimenzionalno prostora u regijama, i drugi sloj kombinira regiji klasifikacije za izradu odgovarajuće izlazne vrijednosti.
The Tic-Tac-Toe neuronska mreža proizvodi logička izlaza, i iako se ulazi su tri države ( -1, 0, +1 ), mogli bismo, u princple, pretvoriti ovih nekoliko diskretna unos vrijednosti za skup Boolean ulaza.
Dakle, dvije razine neurons bi trebalo biti dovoljno da bi saznali Tic-Tac-Toe.
Budući da je mreža ima 9 izlaza, tu su 9 neuronske tijela u konačnom (drugi) sloj.
Jedina preostala neural network design odluka je odlučujući broj neuronske tijela staviti u prvi sloj od neuronske mreže.
Za izvršenje ove odluke, računalo može generirati kod i trenirati jednom neuronska mreža s N neurons u prvi sloj.
Mogućnost od neuronske mreže kako bi naučili kompletan trening set za Tic-Tac-Toe može biti graphed.
Sljedeći grafikon prikazuje ukupnu trening set pogreška tijekom treninga za svaku od 48 različitih neuronske mreže, s N = 1,2,...,48 neurons u prvi sloj.

Ukupni training set pogreška tijekom treninga, za N = 1,2,...,48 neurons u prvi sloj (N = 1 je na vrhu, i N = 48 je na dnu, a većina srednje krivulje su niži za veće vrijednosti N)
Drugi način na koji možete predočiti taj trend je da se formira na površini od niza krivulja:

Ukupni training set pogreška tijekom treninga, za N = 1,2,...,48 neurons u prvi sloj (N = 1 je na povratak, i N = 48 je na pročelju)
Ovako, vidimo da smo kao pristup N = 48 neurons u prvi sloj, mreža čini se da je u mogućnosti prihvatiti sve treninga slučajevima.
Sve manje od 48 neurons razinama čini nedovoljno kako bi naučili potpuni skup predmeta.
Za nizak broj neurons, svaki dodatni neuronske značajno smanjuje ukupnu pogrešku.
Međutim, kada je broj neurons je tik uz broj potrebnih da biste saznali cijeli skup od lekcija, svaki dodatni neuronske samo smanjuje pogreška je relativno mali iznos.
Sljedeća slika prikazuje neuronska mreža sa 9 ulaza i 48 neuronske tijela u prvi sloj, i 9 neuronske tijela u drugi sloj, i 9 izlaza.

A neural network sposobni za učenje igrati tic-tac-toe
Računalo kod povezane s ovog dokumenta sadrži kod za izgradnju i trenirati u neuronske mreže prikazan iznad.
The training set treninga je 4520 predmeta.
U 200 obuke ponavljanje (uključuje 3 propagacija korake, za ukupno 200 * 4520 * 3 = 2712000 simulacija korake i isti broj propagacija pogreške korake), ukupnu pogrešku smanjen iz 1.520 da 0.153.
(Ti brojevi mogu se razlikovati prema slučajne početne uvjete.)
Obuka je potrebno nekoliko minuta.
Evo dva primjera naveden ulaza i izlaza proizveden od trenirao neuronske mreže:
Scenario #1:
Input:
1.0000 -1.0000 0.0000
0.0000 1.0000 -1.0000
-1.0000 0.0000 0.0000
Best move:
0.0001 0.0000 0.0676
0.0001 0.0000 0.0000
0.0000 0.0000 0.9870
Scenario #2:
Input:
-1.0000 -1.0000 0.0000
1.0000 1.0000 0.0000
0.0000 0.0000 0.0000
Best move:
0.0000 0.0000 0.0859
0.0000 0.0000 0.9819
0.0000 0.0000 0.0000
Mreža je osposobljena za izradu najbolje poteze za igrača čiji mark odgovara "+1."
Najbolji potez za protivnički igrač, čiji je žig odgovara "-1," mogu se naći se množenjem sve ulazi by (-1) pred simulacijom na neuronske mreže.
10. Trening neuronskih mreža
Sljedeći je citat iz "Artificial Intelligence" (3rd edition; Addison Wesley; 1993), Patrick Henry Winston, poglavlje 22, Learning by Training Neural Nets, p. 468.
Neuronske-NET Trening je Art
Sada znam da ti lice mnogo izbora nakon što se odlučite za rad na problem po jedan trening neuronska mreža pomoću unatražnim rasprostiranjem:
* Kako ste vi informacije u neuronska mreža uvjete?
Kako možete koristiti neuronska mreža ulazi izraziti ono što ste znali?
Kako možete koristiti neuronska mreža izlaza kako biste utvrdili što želite znati?
* Koliko neurons treba da imate u svom neuronska mreža?
Koliko ulazi?
Koliko izlazi?
Koliko težine?
Koliko skrivene slojeve?
* Što stopa parametra bi trebalo da koristite u back-propagacija formula?
* Ako vaš vlak neuronska mreža u fazama ili istovremeno?
Krivi izbori dovesti do lošije.
A small neuronska mreža svibanj ne nauče što ga želite naučiti.
Veliko net će naučiti polako, svibanj dobiti zaglavi na lokalnoj Maxima, i svibanj izlagati overfitting.
A mala stopa parametar svibanj promicanje nestabilnosti ili dati siromasima predviđanja.
Nažalost, pravi izbor ovisi o prirodi i uzoraka.
Mathematically, možete pogledati uzorke kao predstavnik glimpses od skrivenih funkcija, s jedne dimenzije za svaki unos.
Ako postoji mnogo ulaza, u funkciji je višedimenzionalno karakter čini funkcija je teško razmišljati o i nemoguće predočiti.
U skladu s tim, najbolji vodič za vaš izbor je suđenje i pogreške, buttressed, ako je moguće, s obzirom na izbore koji su radili dobro u slične probleme.
Ovako, uspješne implementacije i živčanog-net tehnologija zahtijeva vremena i iskustva.
Neuronske-net stručnjaci su umjetnici, oni nisu puke priručnik korisnicima.
11. Unošenjem ulaznih vrijednosti i izlazne vrijednosti pogodna za neuronske mreže
The mathematical model jedne neuronske tijela izneseni u ovom dokumentu proizvodi jedan izlaz vrijednost pomoću "logističkih sigmoid funkcija" (tj., ( 1 / (1 + Exp(-x)) )).
Stoga, outputs su ograničena na raspon od 0.0 da 1.0.
Dakle, matematički model je neuronska mreža izneseni u ovom dokumentu mogu se koristiti izravno za učenje i izradu rezultata u rasponu od 0.0 da 1.0, kao što je za logičko izlaza, ili za kontinuirano izlazi ograničena na dio tog raspona.
No, mreža može se koristiti za učenje i izradu rezultata u bilo kojem ograničenom nizu, ako se pretvaraju u izlaze i iz raspona od 0.0 da 1.0.
Na primjer, pretpostavimo konačne izlazne vrijednosti su ograničene u rasponu od P da Q, i pretpostavimo Z predstavlja proizvoljan final output vrijednost ograničena na raspon od P da Q, i pretpostavimo Y predstavlja odgovarajuću neural network output ograničena na raspon od 0.0 da 1.0.
Sljedeće formule se može koristiti za pretvoriti između dvije vrste izlazne vrijednosti:
Y = (Z - P) / (Q - P); // Q > P; Q != P
Z = P + (Q - P) * Y; // Q > P
Pretvoriti konačni izlaz na neural network output je potrebno za vrijeme treninga.
Pretvoriti jedan neural network output da konačni output je potrebno tijekom normalne simulacija.
Ulazi u neuronske mreže nisu ograničene kao izlaze, jer veze imaju težinu vrijednosti koje se mogu razrijediti ili povećati unos vrijednosti proizvoljno.
Međutim, ono što se umeće vrijednosti daleko izvan raspona od -1.0 da 1.0 može uzrokovati probleme, jer pred težine imaju priliku da prilagodi, ekstremnih vrijednosti će prvi stići kao parametar na "sigmoid logističkih funkcija" ( 1 / (1 + Exp(-x)) ).
Extreme vrijednosti za tu funkciju će izlaz na neuronske vrlo blizu 0.0 ili 1.0, i kada se greške razmnožavati unatrag kroz neuronske mreže kako bi da, o pogrešci će se ponderirana po (Output * (1 - Output)), koji će biti vrlo mali.
Stoga, obraćajući originalne ulazne vrijednosti u rasponu od 0.0 da 1.0 prije pružanje onih vrijednosti do ulaza u neuronska mreža je vjerojatno dobra ideja.
Smatram originalne ulazne vrijednosti su ograničene u rasponu od A da B, i pretpostavimo W predstavlja originalni unos proizvoljnog vrijednost ograničena na raspon od A da B, i pretpostavimo X predstavlja odgovarajuću neuronska mreža ulazna vrijednost da odlučite ograničiti na rasponu od 0.0 da 1.0.
Sljedeće formule se može koristiti da pretvori u izvorne vrijednosti ono što se umeće na odgovarajuće vrijednosti za dobavu na neuronske mreže.
(Nema potrebe da se pretvoriti neuronska mreža ulazna vrijednost u vrijednost u originalnoj ulazni raspon.)
X = (W - A) / (B - A); // B > A; B != A
12. Reference
Sljedeća knjiga svibanj biti korisni u razumijevanju neuronske mreže i njihova primjena.
[1] Artificial Intelligence (3rd ed) (Patrick Henry Winston; Addison-Wesley; 1993)
Ova knjiga je vrlo zanimljiva i korisna.
Autor opisuje mnoge fascinantan teme, s primjerima, s dovoljno detalja da Vam omogućiti da koristite koncepata u praktičnim situacijama.
Autor opisuje neuronske mreže i "učenje" s unatražnim "rasprostiranjem" u značajan detalj, uključujući i matematičku derivations.
[2] Artificial Intelligence: A New Synthesis (Nils J Nilsson; Morgan Kaufmann; 1998)
Ova knjiga, kao referentni [1], fascinantan je i praktični uvod u umjetne inteligencije.
Međutim, ova knjiga je malo više nego jedar referentni [1].
Mislim da osoba koja će imati koristi od čitanja i [1] i [2].
Ja bih samo preporučiti ovu knjigu ako imate jake interesa u svim Umjetna inteligencija, dok je preporučujem referentni [1] čak i onima koji su posebno zainteresirani za učenje o neuronske mreže.
[3] Focus on AI (Prima Tech / Prima Publishing)
Dio igre development series edited by Andre LaMothe.
Ova knjiga je korisna za igru programera, i napuni je računalo kod primjeri pokazuju da neuronske mreže, genetski algoritmi, neizrazita logika, sve primijenjene na ponašanje lika igra.