Neuraalilaskennan verkon
kanssa oppiminen taaksepäin virhe lisääminen
Colin Fahey

Biologinen neuraalilaskennan verkon
1. Ohjelmisto
2. Johdanto
Tämä dokumentti kuvaa, miten toteuttaa keinotekoista neuraalilaskennan verkko, joka kykenee koulutetaan tunnista-malleja.
Tässä asiakirjassa kuvataan malli on neuraalilaskennan verkosto, joka oppii joka algoritmi, joka käyttää "taaksepäin virhe lisääminen."
Tämä asiakirja sisältää perus mielenosoituksia oppiminen "taaksepäin virhe lisääminen." Tämä asiakirja on linkki tietokone-koodi. Tietokoneen koodi sisältää mielenosoituksia. Tietokoneen koodi voidaan luoda monimutkaisia Neuroverkkojen. Kuitenkin atk-koodi on pelkästään esittelyä varten. Rintasyöpään täytäntöönpano voisi supistaa muistin käyttöä ja voisi lisätä nopeutta.
3. Vaihtoehto oppiminen taaksepäin virhe lisääminen
Tässä asiakirjassa kuvataan malli on neuraalilaskennan verkkoa, joka oppii joka algoritmi nimeltään "taaksepäin virhe lisääminen." Tämä algoritmi voi vaatia hyvin pitkän aikaa oppia eri oppituntia. Myös tämä algoritmi voi satunnaisesti epäonnistua oppia erilaisia kokemuksia, koska satunnaisesti alkuperäisestä asemasta on neuraalilaskennan verkkoon ennen koulutusta.
Learning "liittämällä aktiivinen tuotantopanoksia" on tärkeä vaihtoehto oppiminen "taaksepäin virhe lisääminen." Learning liittämällä aktiivinen tuotantopanosten yksinkertaisesti osakkuusyhtiöissä tuotantopanoksia, jotka ovat samanaikaisesti aktiivinen. Tällaista oppimista voidaan nopeasti ja luotettavasti. Kuitenkin moniin käytännön tarkoituksiin, ei ole ilmeinen tapa käyttää neuraalilaskennan verkosto, joka oppii järjestön kautta, kun kyseessä on ilmeinen tapa käyttää verkkoa, että oppii, taaksepäin virhe lisääminen.
Jotkut biologiset Neuroverkkojen ovat tiedossa oppia järjestön aktiivisten panoksia. Takautuvia virhe lisääminen ei ole havaittu mitään biologisia neuraalilaskennan verkkoon.
Tässä asiakirjassa kuvataan mielenkiintoisia käyttötapoja varten neuraalilaskennan verkosto, joka oppii, taaksepäin virhe lisääminen. Kuitenkin oppimisen yhdistys on erittäin merkittävä vaihtoehto algoritmi oppimiseen. Laaditaan neuraalilaskennan verkosto, joka oppii järjestön ratkaista tietty ongelma saattaa olla vaikeaa, että desgining vaihtoehtona neuraalilaskennan verkosto, joka oppii, taaksepäin virhe lisääminen, mutta biologisten järjestelmien oppia järjestön kautta, ja oppimisen kykyä biologisten järjestelmien on ilmeinen.
4. Biologiset hermopäätteiden
4.1 Neuron solu

Biologinen hermopäätteiden "(moninapainen" tyyppi, ~4 um solu-elin)
A hermopäätteiden on tyyppiä, solu, jolla on kyky vastaanottaa ja välittää Hermo-signaaleja.
Neurons ovat perustana Hermo-järjestelmät, löytyy eläimet, linnut, kalat ja hyönteiset.
Brainit muistilla ja logiikan, ja yksinkertainen reaktio, ovat molemmat perustuvat järjestelyt, neurons.
Neurons käytetään myös välittää signaaleja pitkiä matkoja, creature: n elin, esimerkiksi anturit, aivot, tai aivoissa, lihaksissa.
Käyttäytymisestä, biologinen hermopäätteiden on hyvin monimutkainen, mutta seuraavat yksinkertaistettu kuvaus vangitsee perusperiaate:
The hermopäätteiden kerää signaaleja muista neurons, ja jos koko merkki kertymisestä ylittää kynnyksen, hermopäätteiden lähettää omia viestejä muille neurons.
4.2 Neuron osat

Osia biologinen hermopäätteiden
|
Soma
|
Solu elin, joka hermopäätteiden
|
|
Dendrites
|
Fibers kemiallisia reseptoreita (panoksia), joka pidentää solun elin, joka hermopäätteiden. A hermopäätteiden tyypillisesti on monia dendrites, ja dendrites on usein monia sivukonttoreita.
|
|
Axon
|
A fiber kemiallisten päästöjen aiheuttajat (tuotokset) sen päätepisteenä, että ulottuu solun elin, hermopäätteiden. A hermopäätteiden on yksi axon, ja axon on yleensä hyvin muutamia konttoreita.
|
|
Synapse
|
A configuration sellainen, että axon yhden hermopäätteiden ja dendrites toisen hermopäätteiden erotetaan hyvin pieni ero. Kun tällainen kokoonpano, kemikaaleja pääsee joka axon on hermopäätteiden ylittää Synapse ja on saanut sitä dendrites myös muiden hermopäätteiden. Tämä on se, miten neurons vaikuttaa muiden neurons.
|
4.3 Neuron polttamalla
A hermopäätteiden kertyy kemiallisia signaaleja sen dendrites, ja jos kemikaalien kokonaismäärää kertymisestä ylittää raja-arvon kanssa jonkin aikaa, hermopäätteiden "tulipalot," lähettämällä oman signaalin avulla sen axon.
Jotkut neurons kykenevät ampumisen palkokasvit, järjestyksessä 100 Hz.
Signaalit kautta kulkevan neurons mukaan keskittymistä natriumia (Na)-, kalium-(K), ja kloorin (Cl) ioneja, ja tuloksena sähkökemiallisen mahdollisuuksia (eli jännite).
Lepovaiheen jännite (-70 mV) ja sytytysjärjestys jännite (+30 mV) voidaan mitata tai edes vaikuttaa perinteisten sähkö-ohjauspiirit.
Seuraavassa on jännite tallennus on rotta hermopäätteiden ampumisen, joka oli noin 100 Hz kun yhden whisker on koskettanut ja kävi pois sen levätessä kanta:

Rotilla hermopäätteiden ampumisen (100 Hz) vuoksi, joilla on whisker.
Vaikka kannustin on vakio, hermopäätteiden signaali on nopeaa pulsing.
4.4 Neuraalilaskennan verkon
Ihmisen aivot on noin 10^11 (100 miljardia) neurons.
Jokainen hermopäätteiden, cerebellum saa panosta niin monta kuin 10^4 (10000) Synapses.
Vaikka axon ja dendrites on hermopäätteiden usein ulottuu vain muutaman mikrometriä pois solun elin, jotkut axons ovat järjestyksessä, joka mittarin pituus.
A aivot on neurons suhteellisen lyhyen axons ryhmitelty alueilla tai ryhminä.
A aivoissa on myös nippua neurons suhteellisen pitkä axons yhdistää erilliset alueet senttimetriä.
Näin hierarkkinen verkosto käsittely elementit on muodostettu.
4.5 Neuraalilaskennan verkon tila
Asema verkoston neurons on sekä tapa, jolla neurons ovat kytketty ja signaalit lainkaan, Synapses.
On epäselvää, kuinka paljon statusta koskevat tiedot olisivat menettäneet, jos aivoissa oli tranquilized sisään yhteensä työvoiman ulkopuolelle jostain paljon aikaa.
Yksi voi kuvitella tietojen jatkuvan vain signaalit liikkuvat verkon kautta, eikä verkkoyhteyden itse, kuten cellular automata simulaatioita kuten Conway's "Game of Life", yksinkertainen Dynamic Random Access Memory (DRAM) sirut ja Kaikuja jaostossa.
4.6 Neuraalilaskennan verkko-oppiminen
Perinteiset oppiminen tapahtuu, kun ominaisuudet dendrites muutos, joka Synapse tulla enemmän tai vähemmän tehokkaita klo saaneen kemiallisten signaalien alkaen axon.
Syyt, joiden vuoksi tällaiset muutokset ovat monimutkaisia, mutta tuloksena on, että hermopäätteiden edellyttää erilaista yhdistelmää Synapse tuotantopanos käynnistää lähtösignaali.
5. Keinotekoinen hermopäätteiden
5.1 Määritelmä
"Keinotekoinen hermopäätteiden" on algoritmi tai fyysinen laite, joka implementoi matemaattisen mallin inspiroima perusasetuksen käyttäytymistä, biologinen hermopäätteiden.
A hermopäätteiden kerää signaaleja muista neurons tai tuotantopanosten (esim. anturit), ja jos koko merkki kertymisestä ylittää kynnyksen, hermopäätteiden lähettää viesti muille neurons tai tuotokset (esim. effectors).
Kaikki matemaattinen malli, joka sisältää ajatuksen kasaantua useita panoksia ja tuottaa yhden tuotoksen (joka korostaa suhteellinen intensiteetti tuotantopanoksista suhteellinen jossain nimellinen taso) voidaan käyttää hahmontunnistus.
Tällaisia malleja voidaan perusteella keinotekoinen hermopäätteiden.
Jos vaikuttaa jokaisen panosta voidaan muuttaa, niin malli voi tukea oppimista.
5.2 Aktivointi funktio
"Aktivointiaste funktio" on matemaattinen funktio, joka muuntaa input arvojen alapuolella erityisesti arvo on suhteellisen alhainen tuotannon arvosta, ja muuntaa input-arvot edellä tietty arvo on suhteellisen korkea tuotannon arvosta.
"Aktivointiaste toimintoa" käytetään muuntamaan painotettu summa input-arvot on hermopäätteiden-arvo, joka edustaa tuotokseksi, hermopäätteiden.
A "sigmoid" tehtävä on yleisen luokan sileiden toiminnot, jotka asymptotically lähestymistapa alaraja panos-arvot lähestyvät negatiivista äärettömyyttä, ja asymptotically lähestymistapa ylärajan panos-arvot lähestyvät myönteisiä äärettömään.
Yksi sigmoid funktio on "logistic sigmoid" tehtävä:

The "Logistic Sigmoid" tehtävä: 1 / ( 1 + Exp( -x ) )
The "logistic sigmoid" toimintoa voidaan käyttää "aktivointiaste toimii" matemaattisen mallin, joka hermopäätteiden.
Matemaattinen johdannainen, "logistic sigmoid" voidaan laskea kaava, jonka avulla on helppo laskea siihen liittyvän oppimisen mallia.
5.3 Neuraalilaskennan verkkoon syöttö
A "neuraalilaskennan verkoston panos" on panos on neuraalilaskennan verkkoon.

Neuraalilaskennan verkkoon syöttö
"Input" on numeerinen arvo tuotantopanoksista.
5.4 Neuraalilaskennan verkko-tuotos
A "neuraalilaskennan verkoston tuotos" on tuotos, joka neuraalilaskennan verkkoon.

Neuraalilaskennan verkko-tuotos
"Output" on numeerinen arvo tuotoksesta.
"Error" on numeerinen arvo, joka edustaa ero tuotoksen arvon ja "Desired" arvo:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
The "Desired" arvo on haluttu arvo, tai ihanteellinen arvo, tai oikea arvo, että neuraalilaskennan verkon pitäisi tuottaa tuotannon vastauksena erityisiä panoksia.
Virheen arvo on valmis ja määrätty "Error" jonka koulutus-algoritmia.
Virheen arvo on saadun palautteen neuraalilaskennan verkkoon.
The neuraalilaskennan verkosto voi sopeutua vähentää ero sen tuotokset ja haluamasi arvot, eli neuraalilaskennan verkko voi oppia, ja voi siten vähentää tulevia virheitä.
5.5 Neuron laitos
A "hermopäätteiden elin" edustaa elin, joka hermopäätteiden, joka kertyy input rahoitusosuudet, ja lisätään ennakkoluulottomasti, ja muuntaa tuloksena arvoa "aktivointi toiminto" tuottaa tuotoksen arvoa.

Neuron laitos
"InputAccumulator" on arvo, joka edustaa kertyneen panosta hermopäätteiden linkkejä, joiden tuotokset ovat kytketty ja hermopäätteiden elin.
"Bias" on säädettävissä arvoon, joka on yhdistetty kertyneen syötetty arvo.
"Output" on numeerinen arvo edustaa tuotannon arvo on hermopäätteiden.
Tuotos-arvo lasketaan seuraavan kaavan mukaisesti:
Output = ActivationFunction( Bias + InputAccumulator );
"ErrorAccumulator" on numeerinen arvo edustaa kertyneen virhe.
Koska tietyn tuotannon arvo on hermopäätteiden elin, ja koska tietty tuotos virhe arvo, kertyneen virhe arvo tarkistetaan seuraavan kaavan mukaan:
ErrorAccumulator += Output * (1 - Output) * OutputError;
"Rate" on arvo, joka vaikuttaa miten "Bias" arvo muuttuu vastauksena siihen "ErrorAccumulator" arvo:
Bias += (-1) * Rate * ErrorAccumulator;
5.6 Neuron-linkkiä
A "hermopäätteiden linkkiä" muodostaa yhteys:
(1) syöttö, neuraalilaskennan verkko-ja syöttö on hermopäätteiden elin;
tai,
(2) teho on hermopäätteiden laitos ja syöttö toisen hermopäätteiden elin;
tai,
(3) teho on hermopäätteiden elin ja jonka teho on neuraalilaskennan verkkoon.

Neuron-linkkiä
"Input" on välimuisti syötetyn tiedon linkki.
"Weight" on säädettävissä arvo, vaikuttaa siihen, miten signaalin arvojen ja virheiden arvot propagate linkin kautta.
"Output" on välimuisti tuotos linkkiä.
Arvo on laskettu käyttäen seuraavaa kaavaa:
Output = Weight * Input;
"Error" on välimuisti virheestä linkkiä.
"WeightedError" on välimuisti virhe linkkiä, painotettu paino tekijä:
WeightedError = Weight * Error;
"Rate" on arvo, joka vaikuttaa miten "Weight" arvo muuttuu vastauksena siihen "Error" arvo ja "Input" arvo.
Aikana neuraalilaskennan verkko-oppiminen, "Weight" arvo on tarkistettava seuraavalla tavalla:
Weight += (-1) * Rate * Input * Error;
5.7 Neuraalilaskennan verkon
A "neuraalilaskennan verkko" sisältää panokset, tuotokset, hermopäätteiden elinten ja linkkejä.
Seuraava kuva kuvaa yksinkertaisen neuraalilaskennan verkko, jossa on kaksi tuotantopanokset, ja kaksi hermopäätteiden elinten ensimmäinen kerros, ja yksi hermopäätteiden joka toinen kerros ja yksi lähtö.

Esimerkki on neuraalilaskennan verkon
Aikana simulaatio on neuraalilaskennan verkko, tulo-arvot propagate eteenpäin linkkien ja hermopäätteiden elimissä, ja lopulta saapuvat lähtöihin.

Esimerkki eteenpäin lisääminen on neuraalilaskennan verkon
Koulutuksen aikana, virheiden arvot ovat tarjotaan tuotoksia, ja nämä virheet propagate taaksepäin kautta neuraalilaskennan verkosto, jolla pyritään muuttamaan painot ja harhojen vuonna hermopäätteiden elinten ja linkkejä.

Esimerkki taaksepäin virhe lisääminen on neuraalilaskennan verkon
5.8 Neuraalilaskennan verkon simulointi
Määritelmä:
"Verkon simulointi" on menettely, käytetään levittämään verkoston tuotantopanosten yhteyksillään ja hermopäätteiden elinten saapumiseen asti verkko-lähtöihin.
Verkko-simulointi liittyy animaatio kaikki sen linkit ja hermopäätteiden elimissä.
Simulaatiot ilman silmukoita tai aika:
On olemassa monia mahdollisia verkko-kokoonpanoissa, joissa silmukoita.
On olemassa monia hermopäätteiden mallit, jotka riippuvat aika.
Mutta joitakin yleisimpiä sovelluksia keinotekoinen neurons mukaan ole silmukoita eikä aikaa.
Seuraavassa on matemaattinen malli, joka hermopäätteiden laitos:
Output = ActivationFunction( Bias + InputAccumulator );
Tämän hermopäätteiden malli, ja verkkoon ilman "silmukoita," emme yksinkertaisesti alkaa ulkoisten tuotantopanosten, lasken tuotokset ensimmäisen kerroksen neurons, ja toimittamaan ne tuotokset panoksina on seuraava taso, lasken tuotokset, että kerroksella, ja jatkaa läpi kerroksittain neurons, kunnes lopullinen lähdöt ovat tietokonetomografiaa.
Silmukat:
Verkko voi olla yhteydet muodossa silmukoita (tai "sykliä)."
Esimerkiksi tuotos on hermopäätteiden voidaan liittää suoraan syöttö, että sama hermopäätteiden, mikä aiheuttaa "palautetta."
Toinen esimerkki on tuotoksen hermopäätteiden # 1 on kytketty panos hermopäätteiden # 2, ja tuotos hermopäätteiden # 2 on kytketty panos hermopäätteiden # 1.
Jos voit alkaa jossain vaiheessa verkon ja jäljittämiseksi polun kautta neurons ja liitännät, noudata yksi tapa kulkua signaaleja, ja lopulta saapuvat, että sama lähtökohta, niin polku on silmukka.
Loops käyttöön mielenkiintoisen mahdollisuuden signaalien virtaava ympäri verkkoa toistaiseksi aikaa.
Jotkut yksinkertaisia malleja olettaa, että se vie tietyn määrän aikaa signaaleja läpi yksittäisiä neurons.
Tällaisissa malleissa, signaalit liikkuvat läpi silmukoiden kanssa muutaman neurons nopeammin kuin signaalit liikkuvat kautta silmukoita monia neurons.
A hermopäätteiden kytketty itse on nopein merkki liikkeeseen verokantaa.
Jos hermopäätteiden on input X, paino W, bias B, ja ei-negatiivinen tuotantokuilu Y (esim. 0.0 -> 1.0), niin voimme muodostaa oscillator yksinkertaisesti asettamalla W = (-8) ja B = +4 ja yhdyslinjat Y, X;
joka kerta, kun me simuloi hermopäätteiden, signaali on toggled on päinvastainen.
Verkon silmukat voidaan kiireinen toimintaan silloinkin, kun se ei hyväksy ulkoisia merkkejä (ärsykkeiden) panoksia.
The cellular automata sääntöjen Conway's "Game of Life" voitaisiin toteuttaa yhdessä neuraalilaskennan verkko, joka antaa sinulle pieni vivahdus monimuotoisuuden toiminta, joka voi tapahtua jossakin neuraalilaskennan verkon silmukat.
Finite-tilassa koneita (FSM), oscillators, volatile memory (päinvastoin kuin oppimismalleja kautta muuttuviin painot) ovat tehneet mahdolliseksi looping.
Jos verkko on silmukoita, emme voi päivittää kaikki lähdöt, kunnes me lasken kaikki lähdöt, joten tarvitsemme väliaikainen puskuri tallentaa computed tuotokset, kunnes me lasken kaikki lähdöt, ja sitten voimme sitoutua uuden tuotoksen arvot kuin neurons in verkkoon.
Kaikki menetelmät, että päivitykset tuotosten todellinen verkon edistyksellisellä tavalla, sen sijaan että kaikki-kerran tavalla, otetaan käyttöön mielivaltaisia tilaus ajoissa, joka johtaa kaaokseen.
Fysiikan simulaatiot, johon kytketty yhteisöjä, kuten planeetat maata kiertäviä tähti keskinäistä gravitaatiovakiolla voimien välillä kaikki tahot, vaatia samanlaista lähestymistapaa: lasken verkon voimia kaikissa elimissä ennen päivittämistä kaikki nopeus ja sijainti.
Aika-riippuvuus:
Yksinkertainen verkko-simulaatio yleensä tuotantopanosten aiheuttavat halutun lähtöjen jälkeen yhden simulaation aika askel.
Tällaisessa simulointi, emme ajattele "määrä toistojen" sijaan "aika sekunteina."
Siellä ei tarvitse olla mitään välinen kirjeenvaihto toistojen ja ajassa.
A-järjestelmä voi olla suunniteltu tehdä verkon simulointi (iteration) ainoastaan silloin, kun uusi tulo on käytettävissä, jotka saattavat ilmetä epäsäännöllisin väliajoin aikaa.
Kuitenkin harkita matemaattinen malli, joka hermopäätteiden, että yrittää jäljitellä pulsing tuotosta osa biologisen hermopäätteiden.
The pulsing voisi luonnehtia ajallisesti, kuten pulsing tietyn taajuuden tai ottaa pulssin, jonka käyrä ulottuu tietyn määrän aikaa.
Meillä voi olla jokin muu aika-riippuvaisia tekijöitä matemaattisen mallin, joka hermopäätteiden, kuten syöttö-akkuja, joiden arvo saa osuuksista tuotantopanoksia, mutta hänellä on vuoto suhteessa sen käypä arvo.
Yleisesti ottaen voimme löytää sähkö-piiri analogisesti alkuaineille, että noudatetaan tiettyjä matemaattisia yhtälöitä, joten kukaan voi pitää hermopäätteiden kuin virtapiirin kanssa vastuksia, kondensaattoreita, ja ei-lineaarisen vahvistimen.
Aivan kuten piiri voi esiintyä monimutkaiset aika-riippuvaisen käyttäytymisen, tuotos on hermopäätteiden voidaan pitää funktiona, että riippuu sen tuotantopanosten ja aika monimutkainen tapa.
5.9 Takautuvia virhe lisääminen
Määritelmä:
"Takautuvia virhe lisääminen" on matemaattisella menettelyllä, joka alkaa virheen klo tuotos on neuraalilaskennan verkko-ja propagates tämän virheen taaksepäin verkon kautta tuottaa tuotannon virhe-arvot kaikille neurons in verkkoon.
Takautuvia virhe lisääminen kaavoja:
Virhe-arvot on neuraalilaskennan verkko-lähdöt ovat lasketaan seuraavan kaavan mukaisesti:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
Virhe kertyminen on hermopäätteiden elin on mukauttaa tuotos, hermopäätteiden laitos ja tuotoksen virhe (määritelty linkkejä liittymien määrä hermopäätteiden elin).
Kunkin tuotannon virhe-arvo edistää virhe akulla, seuraavalla tavalla:
ErrorAccumulator += Output * (1 - Output) * OutputError;
Tavallaan kaikki tuotoksesta virheitä seuraavan kerroksen vuoto taaksepäin kautta syötetyn painot ja kerääntyä klo tuotos on hermopäätteiden joka edelliselle tasolle.
Tämä kertyneen arvo kerrottuna arvo, joka on suurin, kun nykyinen tuotos ja hermopäätteiden on erittäin neutraali (useimmat "undecided)" ja vähiten silloin, kun tuotos ja hermopäätteiden on äärimmäisissä (hyvin "tiettyihin)."
Paino muutos-ja BiAS muuttaa kaavoja:
Tämän perusteella oppiminen on mukauttamiseen painot ja bias-arvot yritetään vähentää tulevaisuudessa tuotos virheitä.
Learning "Rate" on numeerinen arvo, että lähinnä osoittaa, miten nopeasti hermopäätteiden säädin paino-ja BiAS-arvojen mukaan virhe arvoja.
Seuraavaa kaavaa osoittaa, kuinka muuttaa painot on hermopäätteiden kanssa erityisesti asetettu panos-arvot ja sen tuotos virhe arvo:
Weight += (-1) * Rate * Input * Error;
Seuraavaa kaavaa osoittaa, kuinka muuttaa esiasetuksia, hermopäätteiden, kun otetaan huomioon nykyinen tuotos virheestä, joka hermopäätteiden:
Bias += (-1) * Rate * Error;
6. Koulutuksen neuraalilaskennan verkon
6.1 Koulutus menettely
Yksi voi aloittaa koulutettu verkko-ja edelleen vähentää tuotantoa virhe, täydennyskoulutus, mutta yksi usein alussa on epäpätevä verkkoon.
Ennen koulutusta, valita satunnaisesti arvot kaikille painot kaikki neurons in verkkoon.
I havaittu ongelmia, kun olen satunnaisesti valittujen arvojen mukaisesti intervalli [ -1.0, +1.0 ], ja minulla ei ollut ongelmia, kun valitaan satunnaisesti arvoja haastatteluajankohdan [ +0.1, +1.0 ].
Mainitsen nämä huomautukset, mutta ne saattavat olla syynä minun virheitä.
Tarkoituksena satunnaisesti painoja on lieventää mahdollisuutta patologisten tilanteiden verkkoon.
Jos kaikki neurons muodostavat verkoston aloittivat saman painoista, verkko ei olisi perusteella lisätä erotella neurons.
Olen havainnut, että asettamalla kaikki harha-arvoja nollasta (0.0) on hyväksyttävää.
A koulutustilaisuus liittyy eletään koulutus asettaa monta kertaa, ehkä satoja tai tuhansia kertoja.
Kunkin läpi koulutuksen asetettu, pidämme kunkin kohteen koulutusta asetettu.
A koulutus asetettu tuote on asetettu lähtötietoja, ja määrittää halutun lähtöihin.
Voimme simuloida verkon käyttäen asettaa panoksia määritelty koulutusta kohtaan.
Näiden simulaatioiden tuotosten tuotannon arvoja.
Meidän propagate virheet taaksepäin ajatellut, että neuraalilaskennan verkon compute tuotoksesta virheitä kaikkien neurons.
Meidän päivittää kaikki painot ja harhojen.
Varoitus: Yksi akateemista tekstiä, että keskustellaan Neuroverkkojen kannattanut käydä läpi koko koulutuksen asetettu ja vain yhteenlaskua painon muutoksia ja harhojen.
Sen jälkeen käydään läpi koko koulutuksen asettaa meillä on asettanut erien painon muutoksia ja ennakkoluulottomasti muutoksia.
Otamme nämä summat ja päivittää kaikki painot ja harhojen.
Nämä summat voitaisiin valtavan suuria koulutus asetetaan - ja tuloksena hypätä paino-space olisi kohtuuttoman suuri.
Joten luulen, jakamalla sen mukaan, kuinka monta koulutusta kohteet, saavat keskimääräinen paino muuttaa arvoja ja keskimääräinen bias muuttaa arvoja, olisi kohtuullinen.
On jotain muutoksenhakuaika noin computing yhden painon muutos vektori, että jotenkin kestää koko koulutuksen asettaa sisään.
En tiedä, jos olen vain tehnyt virheen täytäntöönpanossa ajatus, mutta olen lähes luopui täysin Neuroverkkojen sillä, kuinka huonosti asiat olivat muuttumassa.
Sitten, kun olen kokeillut sinisilmäisiä vaihtoehto, nimittäin päivittää, kun jokainen koulutusta kohtaan, asiat toiminut moitteetta.
Kun otetaan huomioon koko koulutuksen, ennen kuin tekee päivitys on joitakin etuja ja haittoja:
Etuja:
Yhtenäinen koulutus kohteet koulutusta asetettu äärimmäinen virhe (eli huono koulutus erä) ei tee suurta panosta päivitys, koska se on ylikuormitu, jonka vaikutusvalta "hyvää" tietoa;
Haittoja:
Jos N on useita kohteita koulutukseen asetettu, koron edistymisen optimaalinen paino vektori on jaettuna N.
Tai, tietyn etäisyyden sinulla on vain murto-osa suuntaan vihjeitä pitkin matkaa verrattuna siihen sinisilmäisiä lähestymistapaa;
Ehkä tämä tekniikka toimii sinulle, mutta kokeilla sinisilmäisiä lähestymistapa, ennen kuin luopua Neuroverkkojen in utter turhautumista!
6.2 Jättäminen vähentää virhe
Koulutus ei ehkä vähentää yleistä virhe koulutusta asetettu.
On tärkeää havaita, ettei vähentää virhe.
Seuraavassa luettelossa kuvataan syitä epäonnistumiseen vähentää virhe, ja mahdollisia ratkaisuja.
Erien luettelo on lueteltu lähentää, jotta todennäköisyydellä, ensimmäinen erä on todennäköisin.
(1) paino yhdistelmä on saavuttanut paikallisen vähintään virhe pinta-alasta, ja se on "juuttunut;"
Ratkaisu: Aloita uusi simuloinnin uusi satunnaisesti painoja.
(2) Verkosto on liian vähän neurons tai faasien koodaa kaikki mallit in your koulutuksen määrä;
Ratkaisu: cautiously viihdyttää mahdollisuus lisätä kerroksia tai neurons.
(3) Yksi tai useampia kohteita koulutukseen asettaa ristiriidassa tai on törkeästi ristiriidassa teidän muu koulutus kohteita;
Ratkaisu: Tarkista tietosi asettaa sääntöjenvastaisuuksia.
Etsi Testiaineet että sato kaikkein virhe teidän koulutettu verkkoon.
Look sisään tekniikoita keskimääräinen paino muuttuu yli koko aineistosta vähentää vaikuttaa kaikista huonoista tapauksista.
(4) The oppimisen kurssi on liian korkea (jotain yli 1.0 on todennäköisesti liiallisen), ja päivitykset aina yli tavoitteen;
Ratkaisu: Vähennä oppimisen verokantaa.
(5) The oppimisen korko on liian alhainen (jotain alle 0.01 saattaa olla liian pieni), ja verkko on todella konvergoituvat, ihanteellinen paino yhdistelmä - mutta on liian hidas;
Ratkaisu: Nosta oppimisen verokantaa.
Koulutus kahden kerroksen, kolmen hermopäätteiden verkon ottelu yksinoikeus-tai (xor) funktio, voi siitä huolimatta, yksinkertaisuus toiminnon, eivät lähentyä.
Tämä voi olla yllättäviä ja turhauttavaa.
Kuitenkin ratkaisu on yksinkertaisesti vahvistettava kaikki hermopäätteiden linkkiä painot uusiin satunnaisia arvoja ja sitten yrittää kouluttaa verkon uudelleen.
Kun kyseessä ovat koulutus-verkosto vastaa yksinoikeudella tai (xor) tehtävä, satunnainen positiivinen painot näyttävät johtaa onnistuneeseen oppimiseen joka kerta, kun taas tiettyjen yhdistelmien positiiviset ja negatiiviset painot joskus aiheuttaa sen, että koulutusta ei dramaattisesti.
Tarve valita uusi satunnainen alkuperäisten painotusten toipua epäonnistumisen lähentyvän on valitettava seuraus yhdistelmä kognitiivista menettelyä.
Oppimisprosessi on pääasiassa etsivät maailmanlaajuinen vähintään jyrkimmän descent-ala, ja mahdollinen esiintyminen on "paikallinen minimi," jonka hakuun voi tulla loukussa.
6.3 Kaiken kaikkiaan koulutuksen virhe
Yleinen virhe verkosto voi luonnehtia neliön-juuri, että keskimäärin squared virheitä, tai "juuri-tarkoitan-aukio" (RMS).
Virhe milloin tahansa verkoston tuotos on antanut seuraavan kaavan mukaan:
Error = (Output - Desired);
Summan squared virheet yksittäiseen koulutushankkeeseen Esityslistalla on antanut seuraavan kaavan mukaan:
double squaredError = 0.0;
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
squaredError += (output.Error * output.Error);
}
Summan squared virheet koko joukko kohteita koulutusta sarja summa squared virheitä yksittäisiä kohteita. Seuraava koodi näyttää, miten neliösumman virheet koko joukon koulutus kohteet voivat olla valmis:
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);
}
}
Yleinen juuri-tarkoitan-aukio (RMS), että virhe on antanut neliöjuuren keskiarvo neliösumman virheet:
double rmsError = Math.Sqrt( squaredError / (double)totalTrainingItems );
Tämä arvo on yksi tapa luonnehtia yleinen virhe verkossa otetaan huomioon kaikki koulutuksen tapauksissa.
7. Oppiminen
Oppiminen tapahtuu, kun paino-ja BiAS-arvot hermopäätteiden linkkejä ja hermopäätteiden elimet ovat mukautetaan tietyn verkon tuotantopanosten ja tuotoksen virhe arvoja.
Tarkastelemaan neuraalilaskennan verkosto, jossa on kaksi tuloa (x1 ja x2), ja kaksi (yhteydet painot w1 ja w2), ja yksi hermopäätteiden elin, ja yksi output (y).

Neuraalilaskennan verkosto, jossa on kaksi tuotantopanokset, ja yksi hermopäätteiden elin, ja yksi output
Me koulutamme tämän hermopäätteiden toimittamalla tuotantopanokset, computing tuotoksen, computing virhe, computing paino ja ennakkoluulottomasti muutoksia, ja ajan tasalle painot ja bias, saapuu uusia painot ( w1', w2' ).
On hyvin mielenkiintoinen tapa havainnollistaa tätä prosessia.
Voimme osalta asetettujen painojen kuin vektorin moniulotteinen avaruus. Esimerkiksi kahden painoista olemme vektorin W = (w1, w2) on kaksiulotteinen "paino tilaa."
Kun painot on muutettava, meillä on uusi paino vektorin W' = (w1',w2').
Voimme havainnollistaa tätä esitystä W siirtymässä uuteen kohtaan W' osana prosessi, jossa pyritään minimoimaan tuotannon virhe.
Tavallisesti kukaan ei compute tuotoksesta virhe kaikista mahdollisista paino-yhdistelmiä, koska toivoa on, että paino säätö prosessi tehokkaasti eläintä kohti paras yhdistelmä.
Kuitenkin olkaamme juonen pinta-että lähinnä osoittaa, miten hyvin hermopäätteiden täyttää kaikki kohteet, koulutusta asetettu funktiona sen kaksi painot:

Summa squared virheet tietyn koulutuksen asetettu funktio kahden painoista (w1, w2)
Pohjimmiltaan tavoitteena oppiminen on laskeutumaan mahdollisimman alhaiselle tasolle, tämä ala, jos virhe on pieni.
Kun löydämme kohta W = (w1, w2) että sadot vähimmäis-arvo tästä pinta-alasta, oppiminen on päättynyt, ja sitten voimme vain käyttää koulutettu hermopäätteiden.
Seuraavassa kuviossa on esitetty tuotos koulutettu hermopäätteiden on tehtävä kaikki mahdollinen tuotantopanosten X = (x1, x2):

Neuron tuotos on tehtävä kahden tuotantopanosten (x1, x2): paino-yhdistelmä, minimoi squared error
Vaikka painotettu summa tämän kahden-input hermopäätteiden on yksinkertaisesti (w1*x1 + w2*x2), aktivointi funktio muuttuu yksinkertainen käännellä lentokone, joka cliff.
Tämä ala on oikea tuotos-arvot kaikille input yhdistelmät (x1, x2) määritelty meidän koulutus asetettu.
Mutta voitte kuvitella, kuinka input vektorit X = (x1, x2) samanlaisia koulutus-arvot johtaisi myös asianmukaisen tuotannon arvoja; tämä piirre Neuroverkkojen on "yleistys," ja se on tärkein arvo Neuroverkkojen.
Kuten me yrittää "laskeutua" pinnan squared error, meidän on "karkausvuosi, ennen kuin me odotamme!"
Me päivitys paino vektori-ja ennakkoluulottomasti, ja sitten arvioida "korkeus" pinta meidän uuteen paikkaan.
Yksi seuraus tästä on, että voisimme siirtyä siihen pisteeseen, jolla on enemmän äärimmäisiä virhe.
Toinen seuraus on se, että se saattaa kestää jonkin aikaa laskeutua takaisin syvyys edellisessä paikassa.
Mahdollisuus "leaping" lisää äärimmäisiä huippujen ja laaksojen, virhe-ala on suoraan sidoksissa "oppimisen verokantaa," koska oppiminen koron määrää, miten paljon vaikutusvaltaa virhe arvot ovat meidän paino ja ennakkoluulottomasti muutoksia.
Seuraavassa kuviossa esitetään, kuinka lisätä oppimista rate kiirehtii meidän saapuessa pienempi kantaa squared error-ala, jos virhe on pieni.
Kaaviosta käy myös ilmi, että lisäämällä oppimisen verokantaa myös luodaan mahdollisuus tehdä huonoja vaiheita:

Lyhyen aikavälin kehitys juuri-tarkoitan-squared (RMS) virhe koko koulutuksen asettaa useiden koulutuksen toistojen, oppiminen hinnat 0.1, 0.5, 1.0, ja 2.0.
Tässä on kaavio, juuri-tarkoitan-squared tuotos virhe on monikerroksinen verkko, jossa koulutusta asetettu 19386 kohteita, joita kokeneet monia huonoja toimia polun paras paino vektorit:

Koulutus joskus kohtaamiset huippua, juuri-tarkoitan-squared (RMS) virhe, kun virhe kasvaa jonkin toistojen, ennen kuin jatkat laskeva suuntaus.
Joskus suuntaus on yksinkertaisesti joustavaa siirtymistä haluttuun sarjan painot:

Trend, juuri-tarkoitan-squared (RMS) virhe koko koulutuksen asettaa useiden koulutuksen toistojen, oppiminen hinnat 0.1, 0.5, 1.0, ja 2.0.
8. Esimerkki: Exclusive-tai (xor)
"Exclusive-tai" (xor) on toiminto, hyväksyy kaksi Boolen panosten ja tuotosten yhtenä Boolen tuotos seuraavan taulukon mukaisesti:
|
X1
|
X2
|
Y = xor (X1, X2)
|
|
0
|
0
|
0
|
|
0
|
1
|
1
|
|
1
|
0
|
1
|
|
1
|
1
|
0
|
Yleensä yhden hermopäätteiden on sisäänmenot {x1, x2, ...}, kautta saapuvien yhteyksien painot {w1, w2, ...}.
The hermopäätteiden pakottavaa välituotteena määrä d = bias + (w1*x1 + w2*x2 + ...), jota ei voida pitää tunnistaa, jotka plane, on loputon joukko rinnakkaisia lentokoneita, sisältää tietyn pisteen koordinaatit {x1, x2, ...}.
The hermopäätteiden pakottavaa tuotannon arvo, y = ActivationFunction( d ), joiden vaikutus on halkaistu ääretön joukko rinnakkaisia lentokoneita sisään kaksi, yhdellä tuottavat alhaisen tuotoksen arvot, ja muille asetetut tuottavat korkean tuotoksen arvot.
Näin ollen yhden hermopäätteiden halkeaa moniulotteinen tilaa kahdelle alueilla, jotka erotetaan toisistaan lentokoneen bias + w1*x1 + w2*x2 + ... = 0, ja antaa alhaisen tuotoksen arvot kohtiin alueen toisella puolella olevien lentokoneella, ja antaa korkean tuotoksen arvot kohtiin alueen vastakkaiselle puolelle ja lentokoneella.
Näin ollen, jos kaksi pistettä, moniulotteinen avaruus on erilliset luokitusten ja voi olla täysin erotettu toisistaan lentokoneessa, sitten yhden hermopäätteiden voidaan käyttää oikein luokitella kohtiin, jotka asetetaan kuuluvan yhden tai toisella.
Yksinoikeus-tai (xor) toiminto luokittelee kohtia kaksiulotteisessa avaruudessa (koordinaatit (x1, x2)) siten, että kohtiin asetettujen { (0,0), (1,1) } on luokiteltu tuottavat tuotoksen "0," ja huomauttaa, että asetettu { (0,1), (1,0) } on luokiteltu tuottavat tuotos "1."
Ei ole olemassa yhtä "plane" (tässä tapauksessa linja), jotka voivat erillisen nämä neljä kohtaa, kaksi sarjaa.
Näin ollen yhden hermopäätteiden ei voida luokitella kohtiin mukaan yksinoikeus-tai (xor) funktio.
Yksi hermopäätteiden voi vain jakaa avaruuden pisteitä kahden alueilla.
Yksinoikeus-tai (xor) toiminto luokittelee kohtia siten, että pääosin jakaa kaksi-ulotteinen tilaa kolmelle alueilla (tai vaihtoehtoisesti neljä aluetta).
Kaksi neurons voidaan jakaa kaksi-ulotteinen tilaa kolmelle alueilla (esim. kaksi erillistä rinnakkaista), ja ne voidaan siten käyttää luokitella kohdat mukaan yksinoikeus-tai (xor) funktio.
A kolmasosaa hermopäätteiden voidaan yhdistää tuotokset kaksi muuta neurons sisään yhden tuotoksen.
Seuraavat neuraalilaskennan verkko, jossa on kaksi tuotantopanokset, ja kaksi hermopäätteiden elinten ensimmäinen kerros, ja yksi hermopäätteiden joka toinen kerros, ja yksittäinen tuotos, voidaan luokitella kohdat mukaan yksinoikeus-tai (xor) funktio.
Seuraavat neuraalilaskennan verkko voi olla joko koulutettu compute yksinoikeus-tai (xor) toimintoa, tai neuraalilaskennan verkosto voi yksinkertaisesti olla sen paino-ja BiAS-arvoista tavalla, joka tuottaa toivottua käyttäytymistä.

A neuraalilaskennan verkko pystyy luokittelemaan kohdat mukaan yksinoikeus-tai (xor)
Tietokoneen koodi liittyvät tämä asiakirja osoittaa, koulutusta neuraalilaskennan verkko näkyy kaavion yläpuolella vastaa yksinoikeudella tai (xor) funktio.
The Neuroverkkojen joskus ei saada toimimaan, mutta ohjelmiston voi yksinkertaisesti olla uudelleen yrittää oppimiseen, uusien alkuperäisten painoja.
Jos ohjelmisto onnistui oppii yksinoikeus-tai (xor) funktio, niin tuotos muistuttaa seuraavasti:
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
Tuotos (y) on 2% haluttu arvo kunkin neljän yhdistelmät muuttujien (x1, x2).
Vaikka verkosto oli koulutettu oppia tuotoksen arvot vain neljä yhdistelmä muuttujat (arvot 0.0 ja 1.0, jotka edustavat Boolean-arvot), tuotantopanokset, neuraalilaskennan verkko voidaan asettaa mihin tahansa mielivaltaiseen kelluvia-point-arvot.
Seuraava kuva osoittaa tuotoksen koulutetut neuraalilaskennan verkosto monta yhdistelmää panos-arvot:

A neuraalilaskennan verkko pystyy luokittelemaan kohdat mukaan yksinoikeus-tai (xor)
Sen pinta-ala edustaa tuotokseksi, neuraalilaskennan verkon kaikki mahdollinen panos yhdistelmistä (x1, x2) vuonna valikoimia [ -2.0, +2.0 ].
Tuotos on lähellä 0.0 on alentaa alueilla pintaan, ja tuotanto on lähellä 1.0 on korkein aloilla pintaan.
Huomaa, että ala on pieni, kohdat { (0,0), (1,1) }, ja pinta on korkealla kohtia { (0,1), (1,0) }.
Verkosto oli vain koulutettu tuottaa halutut tulokset, joiden neljä erityistä panosmuuttujien yhdistelmiä, mutta neuraalilaskennan verkosto tuottaa myös tulokset, joiden kaikki muut mahdolliset yhdistelmät panos-arvoja.
Mahdollisuus, Neuroverkkojen tuottaa kohtuullisen vastauksia yleisiin tapauksissa, kun se on koulutettu tietyissä tapauksissa voidaan pitää "yleistys."
Mikä tahansa prosessi, joka sopii havaintoa sellaisen mallin, kuten asentamisesta huomauttaa linjan tai muiden käyrä, myös tuottaa "yleisesti" vaikutus, niin että asentamisesta yksi neuraalilaskennan verkosto tuottaa halutut tuotokset erityisiä opetuksia tuloksia eräänlainen yleistys ei ole satunnaiseriä, mutta se on kuitenkin mielenkiintoista havaita, kyky yleistää, tietyissä tapauksissa.
9. Esimerkki: Tic-tac-toe "(Naughts ja ylittää)"
9.1 Johdanto
Tic-tac-toe "(Naughts ja ylittää)" on yksinkertainen peli pelataan joka 3 * 3 ruudukon soluista, jotka voivat olla merkitty "O" tai "X".
Pelaajat vuorotellen paikka "O" ja "X" arvosanat tyhjyys soluja, kunnes yksi toimijoista suorittaa rivi, sarake, tai diagonaalisesti.
Koska siellä on 3 riviä ja 3 saraketta ja 2 vinoriveillä, siellä on kahdeksan voittaneen kaavoja jokaiselle pelaajalle.

Tic-Tac-Toe aluksella ja voittaneet mallit
On triviaalia kirjoittamaan rekursiiviset funktio, että tutkitaan kaikki mahdolliset Tic-Tac-Toe pelejä, koska enimmäiskesto peli on yhdeksän liikkuu.
Kussakin vaiheessa peliä emme yksinkertaisesti tarkastella tuloksia menossa jokaisesta jäljellä olevasta tyhjyys soluja.
Tällainen toiminto voi vahvistaa, että Tic-Tac-Toe peli pelataan "täydellinen pelaajat" loppuu, joilla ei ole voittaja.
9.2 Koulutuksen neuraalilaskennan verkon ilmoittamaan paras liikkuu
A rekursiiviset funktio voi tutkia kaikki mahdolliset pelit ja määrittää paras siirtyä kunkin hallituksen kokoonpanon.
Me lisäämme jokaisen hallintoneuvoston kokoonpano (panoksia), ja paras liikkua (halutut tuotokset), luettelo koulutus kohteita.
Sitten juna verkon tuota toivottua tuotokset kunkin asettaa panoksia.
Verkosto on 9 tuotantopanosten vastaavat kunkin solusta verkkoon, ja input-arvot on rajattu seuraavat arvot:
0: tyhjyys solu
+1: Protagonisti pelaaja
-1: Opponointi pelaaja
Verkosto on 9 tuotokset vastaavat kunkin solusta verkkoon, ja output-arvot on rajattu seuraavat arvot:
0: Älä siirrä tässä
1: Siirrä tästä
Kahdeksan tuotokset on asetettu "0," ja yksi tuotos on asetettu "1."
Niinpä sen jälkeen, kun koulutusta neuraalilaskennan verkkoon, johtokunnan kokoonpano voidaan määrittää input, ja neuraalilaskennan verkko ilmoittaa paras liikkua.
Tuotos lähimpänä "1" ilmoittaa paras liikkua, ja kaikki muut lähdöt olisi lähellä "0."
Yleensä kaikki funktion Boolen parametrit ja Boolen tuotokset voivat olla edustettuina on neuraalilaskennan verkosto, jossa on kaksi kerrosta neurons.
Ensimmäinen kerros neurons voi jakaa moniulotteinen tilaa alueille, ja toinen kerros yhdistyvät alueen luokittelujen tuottaa asianmukaiset tuotanto-arvot.
The Tic-Tac-Toe neuraalilaskennan verkosto tuottaa Boolen tuotoksia, ja vaikka tuotantopanokset ovat kolme valtiota ( -1, 0, +1 ), voisimme, periaatteella, muuntaa nämä muutamat diskreetti tulokytkentä arvojen joukko Boolen panoksia.
Näin ollen kaksi kerrosta neurons olisi riittävästi oppia Tic-Tac-Toe.
Koska verkosto on 9 tuotoksia, on olemassa 9 hermopäätteiden elinten lopullinen (toinen) kerroksella.
Ainoa jäljellä neuraalilaskennan verkon suunnittelu päätös on päättää, kuinka monta hermopäätteiden elimet ottaneet ensimmäisen kerroksen, neuraalilaskennan verkkoon.
Voit tehdä tämän päätöksen, atk-koodi voi luoda ja kouluttaa neuraalilaskennan verkon N neurons in ensimmäinen kerros.
Mahdollisuus on neuraalilaskennan verkon oppia täydellisen koulutuksen asetettu Tic-Tac-Toe voidaan Kaaviossa näytetään.
Seuraavassa kuviossa esitetään koulutuksen yleistä asettaa virhe koulutuksen aikana kunkin 48 eri Neuroverkkojen, N = 1,2,...,48 neurons in ensimmäinen kerros.

Kaiken kaikkiaan koulutuksen asettaa virhe koulutuksen aikana, N = 1,2,...,48 neurons, että ensimmäisessä kerroksessa (N = 1 on ylhäällä, ja N = 48 on alareunassa, ja useimmat välitavoitteet kaartaa ovat alempia korkea-arvoista N)
Toinen tapa nähdä tämä suuntaus on muodostaa pintaa järjestyksessä kaartaa:

Kaiken kaikkiaan koulutuksen asettaa virhe koulutuksen aikana, N = 1,2,...,48 neurons, että ensimmäisessä kerroksessa (N = 1 on taakse, ja N = 48 on edessä)
Näin näemme, että kun lähestytään N = 48 neurons in ensimmäinen kerros, verkosto näyttää olevan valmis hyväksymään kaikki koulutus tapauksissa.
Kaikki alle 48 neurons tasoilla vaikuttaa riittävästi oppia täydellisen tapauksista.
For pieniä määriä neurons, kutakin ylimääräistä hermopäätteiden vähentää merkittävästi yleistä virhe.
Kuitenkin, kun määrä neurons on lähellä määrää tarvitse opetella koko joukko kokemuksia, kutakin ylimääräistä hermopäätteiden vain vähentää virhe on suhteellisen pieni summa.
Seuraava kuva osoittaa neuraalilaskennan verkoston kanssa 9 tuotantopanokset, ja 48 hermopäätteiden elinten ensimmäinen kerros, ja 9 hermopäätteiden elinten toinen kerros, ja 9-lähtöihin.

A neuraalilaskennan verkko pystyy opettelee soittamaan tic-tac-toe
Tietokoneen koodi liittyvät tämä asiakirja sisältää koodin rakentaa ja kouluttaa neuraalilaskennan verkon edellä on kuvattu.
Koulutuksen asetetut on 4520 koulutuksen kohteita.
Vuonna 200 koulutuksen toistojen (joihin 3 lisääminen vaiheet, yhteensä 200 * 4520 * 3 = 2712000 simuloinnin vaiheet ja sama määrä virhe lisääminen vaiheet), yleinen virhe laski 1.520, 0.153.
(Nämä luvut voivat vaihdella sen mukaan, satunnaisesti alkuperäiset olosuhteet.)