Neuronové sítě
s učením o zaostalých chyba množení
Colin Fahey

Biologický neuronové sítě
1. Software
2. Úvod
Tento dokument popisuje, jak provádět umělé neuronové sítě, která může být vyškoleni, aby uznaly vzory.
Tento dokument popisuje model z neuronových sítí, která se dozvídá o algoritmus, který používá "vzad chyba množení."
Tento dokument obsahuje základní demonstrací na učení o "zaostalých chyba množení." Tento dokument má vazbu na počítači kód. Počítač kód zahrnuje demonstrace. Počítač kód může být použit k vytváření složitých neuronových sítí. Nicméně, počítačový kód je určen pouze pro demonstrační účely. Alternativou by mohla snížit provádění využití paměti a která by mohla zvýšit rychlost.
3. Alternativa k učení vzad chyba množení
Tento dokument popisuje model z neuronové sítě, která učí o algoritmus s názvem "vzad chyba množení." Tento algoritmus může vyžadovat velmi dlouho učit různé lekce. Také tento algoritmus může selhat náhodně naučit různé lekce v důsledku náhodné počáteční postavení neuronových sítí před vzdělávání.
Učení "sdružující aktivní vstup" je důležitou alternativou k učení "vzad chyba množení." Učení sdružující aktivní vstupy prostě sdružuje vstupy, které jsou současně aktivní. Takové studium může být rychlá a spolehlivá. Avšak pro mnoho praktických důvodů není zřejmý způsob, jak použít neuronovou síť, která učí o přidružení, vzhledem k tomu, že existuje zřejmý způsob, jak používat síť, která učí o zaostalých chyba množení.
Některé biologické neuronové sítě jsou známé, aby se dozvědět o sdružení aktivních vstupů. Zpětné množení chyba nebyla pozorována v žádné biologické neuronové sítě.
Tento dokument popisuje zajímavé používá pro neuronové sítě, která učí o zaostalých chyba množení. Nicméně, učení o sdružení je velmi důležité alternativní algoritmus pro učení. Navržení neuronových sítí, která se dozvídá o přidružení k vyřešení konkrétního problému může být obtížnější, že desgining alternativní neuronových sítí, která se dozvídá o zaostalých chyba množení, ale biologických systémů dozvědět o přidružení, a schopnost učit se z biologických systémů je zřejmá.
4. Biologický neuron
4.1 Neuron buněk

Biologický neuron "(multipolární" typ, ~4 um buněčné tělo)
A neuron je typ buněk, který má schopnost přijímat a přenášet nervové signály.
Neurony jsou základem nervových systémů, které jsou k dispozici u zvířat, ptáků, ryb a hmyzu.
Mozky se paměť a logiku, a jednoduchý reflexní systémů, jsou oba založeny na uspořádání neuronů.
Neurony se používají také přenášet signály na dlouhé vzdálenosti ve stvoření těla, například ze senzorů do mozku, nebo z mozku do svalů.
Chování na biologický neuron je velmi složité, ale následující zjednodušený popis zachycuje základní princip:
Hromadí na neuron signály od jiných neuronů, a pokud je celkový signál hromadění překročí práh, se neuron přenáší své vlastní signály do dalších neuronů.
4.2 Neuron díly

Části biologický neuron
|
Soma
|
Buňky těla z neuron
|
|
Dendrites
|
Vláken s chemickými receptory (vstupy), která rozšířila z buněk těla na neuron. A neuron má obyčejně mnoho dendrites, a dendrites často mají mnoho poboček.
|
|
Axon
|
A vlákniny s chemickými zářiče (výstupy) na její konec, který sahá od buněk těla na neuron. A neuron má jediný výběžek neuronu a výběžek neuronu má obvykle velmi málo poboček.
|
|
Synapse
|
Konfigurační taková, že výběžek neuronu jeden neuron a dendrites na další neuron jsou od sebe velmi malý rozdíl. V takové konfiguraci, chemické látky vypouštěné v výběžek neuronu na neuron překročení synapse a obdržela ve dendrites z jiných neuron. To je, jak neurony vliv jiných neuronů.
|
4.3 Neuron střelby
A neuron hromadí chemické signály z jeho dendrites, a pokud celková chemické hromadění přesahuje prahovou hodnotu v čase, je neuron "požáry," zaslání vlastního signálu prostřednictvím své výběžek neuronu.
Některé neurony jsou schopny střelby impulsů v pořadí 100 Hz.
Signály procházející neurony zapojit nahromadění (Na) sodný, draselný (K), a Chlór (Cl) iontů, a výsledný elektrochemický potenciál (tj. napětí).
Klidové napětí (-70 mV) a pálení (+30 mV) napětí lze měřit nebo dokonce ovlivněna konvenčních elektrických obvodů.
Následuje napětí záznam krysa neuron střelby ve výši zhruba 100 Hz když jediný chlup se dotkl a které se konalo v klidové poloze:

Na krysách neuron střelby (100 Hz) kvůli zastávají chlup.
Ačkoli podnětem je konstantní, je neuron signál je rychlý pulzující.
4.4 Neuronové sítě
Lidský mozek má přibližně 10^11 (100 miliard) neuronů.
Každý neuron ve vstupní mozek dostává od tolik jako 10^4 (10000) synapse.
I když se výběžek neuronu a dendrites na neuron často prodloužit pouze několik mikrometrů pryč z buněk těla, některé axons jsou v pořadí na metr délky.
Mozek má neuronů s relativně krátkou axons seskupeny v oblastech nebo v seskupení.
Mozek má také svazky neuronů s poměrně dlouhou axons na odkaz oblastí odděleny centimetrů.
Takto hierarchické sítě na zpracování prvků je tvořena.
4.5 Neuronové sítě stav
Postavení síť neuronů je i způsob, jakým se neurony jsou propojeny a signály na všech ze synapse.
Není jasné, kolik informaci by se ztratil v případě, že mozek byl tranquilized se do celkové nečinnosti pro jakékoliv množství času.
Lze si představit informace trvale pouze signály pohybující prostřednictvím sítě, a nikoliv sítě samotné, jako celulární automat simulací jako Conway's "Game of Life", jednoduché Dynamic Random Access Memory (DRAM) čipy, a ohlasy v komoře.
4.6 Neuronové sítě Získané
Konvenčního učení dochází tehdy, když vlastnosti dendrites změnit na synapse, aby se staly více či méně výkonné při přijímání chemické signály z výběžek neuronu.
Důvody pro tyto změny je složitý, ale výsledkem je, že neuron vyžaduje různé kombinace synapse vstupy do spouštěcí výstup signálu.
5. Umělý neuron
5.1 Definice
"Umělý neuron" je algoritmus nebo fyzické zařízení, které provádí matematický model inspirovaný základního chování biologický neuron.
A hromadí neuron signály od jiných neuronů nebo vstupy (např. senzorů), a pokud je celkový signál hromadění překročí práh, se neuron vysílá signál do dalších neuronů nebo výstupy (např. efektory).
Jakékoliv matematický model, který zahrnuje myšlenku hromadí více vstupů a poskytuje jednotný výkon (dále zdůrazňuje, že relativní intenzita vstupu ve vztahu k určité nominální hodnota) může být použit pro rozpoznávání obrazu.
Tyto modely mohou být základem pro umělý neuron.
Pokud je vliv na každého vstupu může být upraven tak, pak se model může podpora vzdělávání.
5.2 Aktivace funkce
"Aktivační funkce" je matematická funkce, která převádí vstupní hodnoty pod určitou hodnotu k relativně nízké výstupní hodnoty, a převádí vstupní hodnoty nad určitou hodnotu se poměrně vysokou výstupní hodnoty.
"Aktivaci funkce" se používá k přepočtu vážený součet vstupních hodnot na neuron na hodnotu, která představuje výstup z neuron.
A "sigmoid" funkce je obecné třídy hladkých funkcí, které asymptoticky přístup nižší limit pro vstupní hodnoty blížící se negativní nekonečna, a asymptoticky přístup horní limit pro vstupní hodnoty blíží pozitivní nekonečna.
Jeden konkrétní sigmoid funkce je "logistic sigmoid" funkce:

Na "Logistic Sigmoid" funkce: 1 / ( 1 + Exp( -x ) )
Na "logistic sigmoid" funkce může být použita jako "aktivační funkce" pro matematický model pro neuron.
Matematických derivát z "logistic sigmoid" může být vypočítán jako vzorec, aby bylo snadno vypočítat přidružené učení vzorec.
5.3 Neuronové sítě vstupní
A "neuronovou síť vstupní" představuje vstup do neuronové sítě.

Neuronové sítě vstupní
"Input" je číselné hodnoty na vstupu.
5.4 Neuronové sítě výstup
A "neuronovou síť výstup" představuje výstupu z neuronové sítě.

Neuronové sítě výstup
"Output" je číselná hodnota výstupu.
"Error" je číselná hodnota, která představuje rozdíl mezi hodnotou produkce a "Desired" hodnoty:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
Na "Desired" hodnota představuje požadovanou hodnotu, nebo ideální hodnota, nebo správnou hodnotu, že neuronová síť by měla vyrábět jako výstup v reakci na konkrétní vstupy.
Chybové hodnoty se vypočítává a přiděluje "Error" o výcvik algoritmus.
Chybové hodnoty se zpětnou vazbou na neuronové sítě.
Neuronových sítí lze přizpůsobit, aby zmenšila rozdíl mezi jeho výstupy a požadovaných hodnot, tj. v neuronové sítě se mohou učit, a tak může snížit budoucí chyby.
5.5 Neuron tělo
A "neuron tělo" představuje orgán společnosti neuron, které se hromadí vstupní příspěvky, a přidává zkreslení, a přeměňuje výsledná hodnota o "aktivaci funkce" vyrábět výstupní hodnoty.

Neuron tělo
"InputAccumulator" se o hodnotu, která reprezentuje kumulované od vstupních neuron odkazy, jejichž výstupy jsou spojeny do neuron tělo.
"Bias" je nastavitelná hodnota, která je kombinována s kumulovanými vstupní hodnoty.
"Output" je číselná hodnota představující výstupní hodnotu z neuron.
Výstupní hodnota se počítá pomocí následujícího vzorce:
Output = ActivationFunction( Bias + InputAccumulator );
"ErrorAccumulator" je číselná hodnota představující nahromaděné chyby.
Vzhledem k tomu, konkrétní výstupní hodnoty z neuron tělo, a vzhledem k tomu, konkrétní výstup chyb hodnoty, kumulované chyby hodnota se upraví podle tohoto vzorce:
ErrorAccumulator += Output * (1 - Output) * OutputError;
"Rate" je hodnota, která ovlivňuje, jak se "Bias" hodnotu změny v reakci na "ErrorAccumulator" hodnoty:
Bias += (-1) * Rate * ErrorAccumulator;
5.6 Neuron odkaz
A "neuron odkaz" představuje propojení mezi:
(1) vstup na neuronových sítí a vstup na neuron tělo;
nebo,
(2) na výstupu z neuron tělo a vstup na další neuron tělo;
nebo,
(3), výstup z neuron těla a výstupu z neuronové sítě.

Neuron odkaz
"Input" je cache na vstup do vazby.
"Weight" je nastavitelná hodnota, která ovlivňuje, jak signál hodnoty a chybové hodnoty propagovat prostřednictvím odkazu.
"Output" je vyrovnávací paměť pro výstup na tento odkaz.
Hodnota se vypočítává pomocí následujícího vzorce:
Output = Weight * Input;
"Error" je cache na chybu na tento odkaz.
"WeightedError" je cache na chyby na odkaz, který je vážený hmotnost faktor:
WeightedError = Weight * Error;
"Rate" je hodnota, která ovlivňuje, jak se "Weight" hodnotu změny v reakci na "Error" hodnoty a "Input" hodnoty.
Během neuronové sítě, učení, "Weight" hodnota se upraví v následujícím způsobem:
Weight += (-1) * Rate * Input * Error;
5.7 Neuronové sítě
A "neuronovou síť" obsahuje vstupy, výstupy, neuron subjekty, a odkazy.
Následující obrázek zobrazuje jednoduché neuronové sítě, se dvěma vstupy a dva neuron subjekty v první vrstvě, a jediný neuron v druhé vrstvě, a jeden výstup.

Příklad na neuronové sítě
Během simulace a neuronové sítě, vstupní hodnoty propagovat prostřednictvím odkazů a neuron subjekty, a nakonec se dostali na výstupy.

Příklad předal množení v neuronové sítě
Během školení, chybové hodnoty jsou uvedeny v výstupy, a tyto chyby propagovat zpět přes neuronové sítě, což má za následek změnu hmotnosti a chyb v neuron subjekty a odkazy.

Příklad vzad chyba množení v neuronové sítě
5.8 Neuronové sítě, simulace
Definice:
"Síťové simulace" je postup používaný při osvojování vstupy prostřednictvím sítě vazeb a neuron subjekty až do dosažení sítě výstupy.
Síťové simulace spočívá v simulaci všech jeho vazeb a neuron subjekty.
Simulace bez smyček nebo doba:
Existuje mnoho možných konfigurací, které zahrnují síťové smyčky.
Existuje mnoho neuron modely, které jsou závislé na čase.
Ale někteří z nejběžnějších aplikací na umělé neurony zapojit ani poutka, ani čas.
Následuje matematický model pro neuron orgán:
Output = ActivationFunction( Bias + InputAccumulator );
S tímto neuron model, a sítě bez "smyček," jsme prostě začít od vnějších podnětů, počítačové výstupy z první vrstvy neuronů, a zásobování jejich výstupů, jako jsou vstupy do další vrstvy, počítačové výstupy pro tuto vrstvu, a pokračovat přes vrstvy neuronů do konečné výstupy jsou počítány.
Smyčky:
Síť může mít propojení v podobě smyčky (či "cyklů)."
Například výstup na neuron může být připojen přímo na vstup na stejném neuron, která je příčinou "zpětnou vazbu."
Dalším příkladem je výstup na neuron č. 1 je připojen na vstupní neuron # 2, a výstup na neuron # 2 je připojen na vstupní neuron # 1.
Pokud můžete spustit z nějakého bodu v síti a stopových cestu prostřednictvím neuronů a spojení, dodržování jedné-pásmový tok signálů, a nakonec se dostali na to stejný časový bod, pak je cesta smyčku.
Smyčky představit zajímavé možnosti na signály proudící kolem sítě na neurčitou dobu.
Některé jednoduché modely předpokládají, že to trvá určitou dobu, na signály procházet jednotlivé neurony.
V takových modelů, signály rozešle prostřednictvím vedení s několika neurony rychleji než signály rozešle prostřednictvím vedení s mnoha neuronů.
A neuron připojen k samotné bude mít nejrychlejší signál oběhu sazby.
Je-li neuron má vstupní X, závaží W, je zkreslení B, a ne-negativní výstup Y (např. 0.0 -> 1.0), potom můžeme tvořit oscilátor jednoduše nastavením W = (-8) a B = +4 a spojovací Y k X;
pokaždé, když jsme se simulovat neuron, signál bude toggled do opačného stavu.
Síť s smyčky může být práce s činností iv případě, že nepřijímá externí signály (podněty) jako vstupy.
Buněčné automaty pravidla Conway's "Game of Life" by mohla být zavedena v neuronové síti, která vám malý tip na různorodost činností, které mohou nastat v neuronové sítě se smyčkami.
Finite-stav stroje (FSM), oscilátory, těkavé paměti (v protikladu k učení vzorců přes měnící se závaží), jsou umožněny zacyklení.
Je-li síť se smyčkami, nemůžeme aktualizace všech výstupů, dokud nebudeme počítat všechny výstupy, a tak je třeba být dočasné vyrovnávací paměť pro ukládání vypočítaných výstupy, dokud nebudeme počítat všechny výstupy, a pak budeme moci využívat nový výstupní hodnoty do neuronů v síti.
Každá metoda, která aktualizuje výstupy v aktuální síť v progresivním způsobem, místo aby vše-v-jednou cestou, zavádí svévolné objednání v čase, který by vedl k chaosu.
Fyzika simulací zahrnujících vázanou subjekty, jako jsou planety obíhající hvězda se vzájemné gravitační síly mezi všemi subjekty, vyžadují stejný typ přístupu: výpočet čisté síly na všechny subjekty, než se aktualizuje jakékoli rychlosti a polohy.
Time-závislost:
Jednoduchý sítě simulace obvykle zahrnuje vstupy způsobuje požadované výstupy po jedné simulaci časového kroku.
V takovém simulace, si myslíme, že pokud jde o "počet iterací" spíše než "čas v sekundách."
Nemusí být žádný korespondence mezi iterací a časovým horizontem.
Systém by mohl být navržen tak, aby se síť simulace (iterace) pouze v případě, kdy je k dispozici nový vstup, který by mohl nastat v nepravidelných intervalech na čas.
Nicméně domnívá, že matematický model pro neuron, která se pokouší simulovat pulzující výstup aspekt biologický neuron.
Pulzující mohou být charakterizovány z hlediska času, jako pulzující na určité frekvenci nebo s pulsy, jejichž křivka rozšiřuje na určitou dobu.
Můžeme mít jindy-závislé prvky v matematickém modelu pro neuron, jako je vstup akumulátor, jehož hodnota se dostane příspěvků ze vstupů, ale má úniku v poměru k jeho aktuální hodnotu.
Obecně můžeme najít elektrických obvodů obdobně pro prvky, které poslouchají některých matematických rovnic, a tak lze pokládat neuron jako obvod s rezistory, kondenzátory, a ne-lineární zesilovač.
Stejně jako obvodu může vykazovat složité době-závislé chování, výstup na neuron může být považován za funkci, která závisí na jeho vstupy a času na složité cestě.
5.9 Zpětné chyba množení
Definice:
"Zpětné chyba množení" je matematický postup, který začíná s chybou na výstupu z neuronové sítě a propaguje tuto chybu zpětně prostřednictvím sítě přinášel výstupní hodnoty odchylek pro všechny neurony v síti.
Zpětné chyba množení vzorce:
Chybové hodnoty na neuronové sítě výstupy jsou počítány pomocí následujícího vzorce:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
Tato chyba akumulace v neuron tělo je upravena podle výstupu z neuron tělo a výstup chyb (jak je uvedeno na spoje připojené k neuron tělo).
Každý výstup chyb hodnota přispívá k chybě akumulátoru v následujícím způsobem:
ErrorAccumulator += Output * (1 - Output) * OutputError;
V jistém smyslu všechny výstupní chyby v příštích vrstva úniku zpět přes vstupní váhy a hromadit se na výstup na neuron v předchozí vrstvu.
Toto kumulované hodnoty se násobí hodnotu, která je největší při současném výstupu na neuron je většinou neutrální (většina "nerozhodnuté)" a je nejméně při výstupu z neuron je nejextrémnější (velmi "některé)."
Hmotnost změn a zkreslení změna vzorce:
Základem je učení o úpravu váhy a zkreslení hodnot ve snaze snížit budoucí produkci chyb.
Získané "Hodnotit" je číselnou hodnotu, která v podstatě naznačuje, jak rychle a neuron upraví váhy a zkreslení hodnoty podle chybové hodnoty.
Následující vzorec ukazuje, jak změnit závaží na neuron s určitým souborem vstupních hodnot a jeho výstup chybovou hodnotu:
Weight += (-1) * Rate * Input * Error;
Následující vzorec ukazuje, jak změnit zkreslení na neuron vzhledem k současné produkce chyby pro neuron:
Bias += (-1) * Rate * Error;
6. Zaškolení neuronové sítě
6.1 Školení postup
Můžeme začít s vyškolenou síť a nadále snižovat výrobu chyba se dalšího vzdělávání, ale často začíná nepovolaných sítě.
Před vzdělávání, zvolit náhodný hodnoty pro všechny váhy všech neuronů v síti.
I pozorovány problémy, když jsem náhodně vybraných hodnot v intervalu [ -1.0, +1.0 ], a já jsem neměl problémy, když jsem vybrán náhodný hodnot z intervalu [ +0.1, +1.0 ].
I zmínit tyto připomínky, ale ty by mohly být v důsledku mé chyby.
Účelem náhodných vah je zmírnit možnost žádné patologické situace v síti.
Pokud jsou všechny neurony v síti začal se stejnou hmotností, síť by mít žádný základ pro zvýšení rozlišení mezi neurony.
Musím podotknout, že stanovení všech zkreslení hodnoty na nulu (0.0) je přijatelné.
Školení zahrnuje procházejí odbornou přípravu stanovené mnohokrát, možná stovky nebo tisíce krát.
Pro každý projít školení sada, máme za každou položku ve vzdělávání setu.
Výcvikový nastavena položka má řadu vstupů, a soubor požadované výstupy.
Jsme se simulovat sítě, pomocí sady vstupů specifikované školení položky.
Simulace výnosy výstupní hodnoty.
My propagovat chyby zpětně mysleli, že neuronová síť pro výpočet produkce chyby u všech neuronů.
Aktualizujeme všechny váhy a chyb.
Upozornění: Jeden akademický text, který popisované neuronové sítě obhajoval v průběhu celého vzdělávání a nastavit pouze sečtením hmotností změn a chyb.
Poté, co v průběhu celého vzdělávání set jsme soubor částky na změny hmotnosti a zkreslení změny.
Bereme tyto částky a aktualizovat všechny váhy a chyb.
Tyto částky mohou být obrovské školení pro velké soubory - a výsledný skok v hmotnost-prostor by byl nepřiměřeně velký.
Takže si myslím, že vydělí se počet vzdělávacích předmětů, se průměrné hmotnosti a průměrnou změnu hodnoty zkreslení změna hodnot, by bylo rozumné.
Existuje něco, odvolat se o výpočetní jediné hmotnost změnit vektor, že nějak se celý soubor školení do úvahy.
Nevím, jestli jsem prostě udělal chybu při provádění nápad, ale já téměř vzdal zcela na neuronové sítě, protože na tom, jak špatně to bylo obrácení ven.
Potom, když jsem se pokusil pak naivní alternativní, tj. procesu aktualizace, při každém školení položku, co pracoval dokonale.
Uvážíme-li celý soubor školení před uzavřením aktualizace má nějaké výhody a nevýhody:
Výhodou:
Jednotné odborné přípravy položek ve vzdělávání soubor s extrémními chybu (tj. špatné školení položku), nebude provádět velký příspěvek k aktualizaci, protože to bude "o vlivu na "dobré" údajů;
Nevýhoda:
Pokud N je počet položek ve vašem výcviku sada, rychlost pokroku pro optimální hmotnost vektoru bude rozdělena do N.
Nebo pro danou vzdálenost budete mít jen zlomek tipy směrem podél cesty ve srovnání s naivní přístup;
Snad tato technika bude pracovat pro vás, ale zkuste se na naivní přístup, než se vzdát v neuronových sítí v naprostý zklamání!
6.2 Nedodržení snížit chybu
Školení může selhat s cílem snížit celkové chyby pro vzdělávání setu.
Je důležité odhalit nepodařilo snížit chybu.
Následující seznam popisuje příčiny neúspěchu na snížení chyby, a možná řešení.
Položky v seznamu jsou uvedeny v přibližné pořadí pravděpodobnosti, přičemž první položka je nejvíce pravděpodobné.
(1) Hmotnost kombinaci dosáhla místní nejméně chyb povrchu, a je "přilepená;"
Řešení: Start nové simulace s novými náhodný závaží.
(2) Tato síť má příliš málo neuronech nebo vrstvy pro enkódování všechny uvedené modely ve své vzdělání stanovené;
Řešení: opatrně pobavit možnost přidání vrstvy nebo neuronů.
(3) Jeden nebo více položek ve vašem výcviku stanovena v rozporu, nebo je hrubě v rozporu s vašimi dalšími předměty odborné přípravy;
Řešení: Zkontrolujte své údaje stanovené pro nesrovnalosti.
Najít zkušební položky, které přinášel největší chyba na vaší vyškolené síti.
Podívejte se na techniky, aby průměrná hmotnost změny v rámci celého datového souboru za účelem snížení vlivu na žádné špatné věci.
(4) Vzdělávací kurz je příliš vysoká (něco přes 1.0 je pravděpodobně nadměrné), a aktualizuje vždy překročení cíle;
Řešení: Snižte vzdělávací kurz.
(5) Vzdělávací kurz je příliš nízký (něco pod 0.01 by mohly být příliš malé), a síť opravdu je konvergentní na ideální váhu kombinaci - ale je příliš pomalý;
Řešení: Zvyšte vzdělávací kurz.
Vzdělávání ve dvou-roviny, tři-neuron sítě tak, aby odpovídaly exkluzivní-nebo (xor) funkce, mohou i přes jednoduchost funkci, nedaří sblížit.
To může být překvapující a frustrující.
Nicméně, řešení je jednoduché, nastaví všechny neuron odkaz závaží na nové náhodné hodnoty a poté se pokusíte do vlaku sítě znovu.
V případě odborné přípravy síť, která bude shodovat s výhradním-nebo (xor) funkce, náhodné pozitivní závaží, jak se zdá, vést k úspěšnému učení pokaždé, že některé kombinace pozitivní a negativní závaží někdy způsobí, že se školení k nezdaru dramaticky.
Že je třeba zvolit nový náhodný počáteční hmotnosti, aby se vzpamatovali ze selhání sblížit je nešťastný důsledek kombinace vzdělávacím procesu.
Vzdělávací postup je v podstatě hledáním globální minimum nejpříkřejší sestup na povrch, a potenciál pro přítomnost "místní minimální," v němž hledání se může stát v pasti.
6.3 Celkově vzdělávání chyba
Celková chyba v síti může být charakterizována náměstí-odmocnině průměrné kvadratických chyb, nebo "root-znamenat-náměstí" (RMS).
Tato chyba na žádné konkrétní síti výstupu je dána tímto vzorcem:
Error = (Output - Desired);
Součet kvadratických chyb pro jedno školení bod je dán následujícím vzorcem:
double squaredError = 0.0;
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
squaredError += (output.Error * output.Error);
}
Součet kvadratických chyb pro celou sadu položek ve vzdělávání sestava je součet kvadratických chyb pro jednotlivé položky. Následující kód ukazuje, jak kvadratických chyb pro celý soubor vzdělávacích předmětů se může:
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);
}
}
Celkový root-znamenat-náměstí (RMS) ze chyba je dán druhá odmocnina z průměru z kvadratických chyb:
double rmsError = Math.Sqrt( squaredError / (double)totalTrainingItems );
Tato hodnota je jeden způsob, jak charakterizovat celkové chyby na síti zvážení všech případech odborné přípravy.
7. Výuka
Učení dochází tehdy, když se hmotnost a zkreslení hodnoty neuron odkazy a neuron těla jsou upravena v souladu se stanovenými síťové vstupy a výstupy chyba hodnot.
Vezměme si neuronová síť se dvěma vstupy (x1 a x2), a dvě linky (s hmotností w1 a w2), a jeden neuron tělo, a jeden výstup (y).

Neuronové sítě se dvěma vstupy, a jeden neuron tělo, a jeden výstup
Vlakem jsme tento neuron, které dodávají vstupy, počítačového výstupu, výpočetní chyby, výpočty hmotnosti a zkreslení změny a aktualizace vah a zkreslení, přílet do nového závaží ( w1', w2' ).
Je velmi zajímavý způsob, jak si tento proces.
Můžeme ohledem sada závaží jako vektor v jeden multi-dimenzionálním prostoru. Například pro dvě závaží jsme vektoru W = (w1, w2) ve dvou-dimenzionálním "hmotnosti vesmíru."
Při hmotnosti jsou upraveny tak, máme novou váhu vektorové W' = (w1',w2').
Můžeme si to jako bod W přechodu na nový bod W' jako součást procesu, aby se minimalizovalo výstupní chyba.
Normálně by člověk není spočítat výstupní chyby pro všechny možné kombinace hmotnosti, protože naděje je, že hmotnost proces úprav bude efektivně jeďte na nejlepší kombinaci.
Nicméně, nechte nás pozemku povrch, že v podstatě ukazuje, jak úspěšnosti neuron splňuje všechny položky v odborné přípravy stanovené v závislosti na jeho dvě váhy:

Součet kvadratických chyb pro určité školení nastavit jako funkce dvou závaží (w1, w2)
V zásadě, že cílem vzdělávání je k sestupu na nejnižší úrovni, na tento povrch, kde chyba byla co nejmenší.
Jakmile najdeme místo W = (w1, w2) že získá minimální hodnoty na tento povrch, učení je hotové a pak budeme moci využívat pouze školený neuron.
Následující graf ukazuje výstup na školená neuron, vztažené na všechny možné vstupy X = (x1, x2):

Neuron výstupu jako funkce dvou vstupů (x1, x2) o hmotnosti kombinaci, která minimalizuje squared error
I přesto, že vážený součet pro tyto dva vstupy-neuron je pouze (w1*x1 + w2*x2), aktivace funkce ukáže jednoduchý otáčí v rovině na útesu.
Tento povrch má správná výstupní hodnoty pro všechny vstupní kombinace (x1, x2) stanovené tréninku nastavit.
Ale můžete si představit, jak vstupní vektory X = (x1, x2) podobná školení hodnoty by také vést ke správné hodnoty výstupu, tato funkce neuronových sítí, se říká "generalizace" a je hlavní hodnota neuronových sítí.
Jak jsme pokus o "sestupu" povrchu kvadratických chyb, musíme "skok, než jsme vypadat!"
My aktualizace hmotnost vektoru a zkreslení, a pak jsme se vyhodnotí "výšku" hladiny v našem novém sídle.
Jedním z důsledků je to, že bychom mohli přesunout na místo s více extrémní chyby.
Dalším důsledkem je, že to může chvíli trvat až sestoupí zpět do hloubky naší předchozí umístění.
Možnost "vyskakující" na více extrémních vrcholy a údolími chyby plocha je v přímém vztahu k "učení sazby," protože učení sazba určuje, jaké hodnoty mají vliv chyb na naší hmotnosti a zkreslení změny.
Následující graf ukazuje, jak zvýšit sazbu učení urychlí našeho příjezdu na nižších pozicích na squared error plocha, kde chyba byla co nejmenší.
Graf také ukazuje, že zvyšující se vzdělávacím kurzu také zavádí možnost, aby špatné kroky:

Krátkodobý trend root-znamenat-(RMS) kvadratických chyb pro celý soubor školení do několika iterací školení, vzdělávací kurzy pro 0.1, 0.5, 1.0, a 2.0.
Tady je graf z kořene-znamenat-čtvercový výstup chyb z více-vrstvy sítě s tréninkovým soubor s 19386 položky, které se zkušenostmi mnoha špatných kroků na cestě k nejlepším hmotnost vektorů:

Školení občas narazí na tretry v kořenovém-znamenat-kvadrát (RMS) chyba, chyba, kdy se zvyšuje o některých iterací před obnovením klesající tendenci.
Někdy je prostě trend konvergence hladké do požadovaného souboru váhy:

Trend z kořene-znamenat-(RMS) kvadratických chyb pro celý soubor školení do několika iterací školení, vzdělávací kurzy pro 0.1, 0.5, 1.0, a 2.0.
8. Příklad: Výhradní-nebo (xor)
"Exclusive-nebo" (xor) je funkce, která akceptuje dva booleovské vstupy a výnosy jedinou logickou výstup podle následující tabulky:
|
X1
|
X2
|
Y = xor (X1, X2)
|
|
0
|
0
|
0
|
|
0
|
1
|
1
|
|
1
|
0
|
1
|
|
1
|
1
|
0
|
Obecně lze říci, že jediný neuron má vstupy {x1, x2, ...}, vstupující prostřednictvím vazeb s váhami {w1, w2, ...}.
Na neuron spočítáme průběžném množství d = bias + (w1*x1 + w2*x2 + ...), které mohou být považovány za určení, která rovině, v nekonečné soubor paralelních rovinách, obsahuje určitého bodu se souřadnicemi {x1, x2, ...}.
Spočítáme na neuron výstupní hodnoty, y = ActivationFunction( d ), která má za následek rozdělení nekonečná řada paralelních rovinách se do dva soubory, jeden soubor produkující nízké výstupní hodnoty, a jiná skupina produkující vysoký výstupní hodnoty.
Proto jediný neuron rozděluje vícerozměrný prostor se do dvou regionů, oddělené roviny bias + w1*x1 + w2*x2 + ... = 0, a přiděluje nízké výstupní hodnoty na body v tomto regionu na jedné straně roviny, a přiřadí vysokou výstupní hodnoty na body v tomto regionu na opačné straně na rovině.
Pokud tedy dvě sady bodů v vícerozměrný prostor mají odlišné klasifikace a může být zcela odděleny rovinou, pak jediný neuron může být použita správně třídit bodů z těchto souborů jako něco, co patří do jednoho souboru, nebo druhé.
Výlučná nebo-(xor) funkce klasifikuje bodů ve dvou-rozměrném prostoru (se souřadnicemi (x1, x2)) tak, aby body v souboru { (0,0), (1,1) } jsou klasifikovány jako vyrábějí o výkonu "0," a bodů v souboru { (0,1), (1,0) } jsou klasifikovány jako vyrábějí o výkonu "1."
Neexistuje jediný "rovině" (v tomto případě se linie), které může samostatný ty čtyři body, se do dvou sad.
Proto jediný neuron nemohou být použity ke klasifikaci bodů podle výlučného-nebo (xor) funkce.
Jediný neuron může rozdělit prostor na dvě místa v regionech.
Výlučná nebo-(xor) funkce klasifikuje body, a to způsobem, který rozděluje v podstatě ve dvou-rozměrném prostoru se do tří regionů (nebo, alternativně, čtyři regiony).
Dva neurony lze rozdělit dva-rozměrném prostoru se do tří regionů (např. tím, že dva různé paralelní linie), a tak může být použita pro klasifikaci bodů podle výlučného-nebo (xor) funkce.
Třetí neuron může být použit k kombinovat výstupy z dalších dvou neuronů se do jediného výstupu.
Následující neuronové sítě, se dvěma vstupy a dva neuron subjekty v první vrstvě, a jediný neuron v druhé vrstvě, a jediný výstup, mohou být použity ke klasifikaci bodů podle výlučného-nebo (xor) funkce.
Následující neuronové sítě může být buď vyškoleni pro výpočet výlučné-(xor) nebo funkci, nebo neuronové sítě může jednoduše mít svou váhu a zkreslení hodnoty přiřazeny takovým způsobem, který produkuje požadované chování.

A neuronovou síť schopnou klasifikaci bodů podle výhradní-nebo (xor)
Počítač kód související s tímto dokumentem prokáže, školení neuronové sítě je uvedeno v grafu výše, aby odpovídal výhradní-nebo (xor) funkce.
Neuronových sítí někdy nedokáže naučit se funkce, ale program jednoduše spustit zkusit učení se nový soubor na původní hmotnosti.
Pokud tento software úspěšně učí výlučné-nebo (xor) funkce, pak se výstup podobný následujícímu:
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
Výstup (y) je do 2% z požadované hodnoty pro každou ze čtyř kombinací proměnných (x1, x2).
Přestože sítě byl vyškolen k tomu, aby se dozvědět výstupní hodnoty jen pro čtyři kombinace proměnných (s hodnotami 0.0 a 1.0, což booleovské hodnoty), vstupy do neuronové sítě může být nastavena na libovolnou plovoucí-bodové hodnoty.
Následující obrázek ukazuje výstup z vyškolených neuronové sítě pro mnoho kombinací vstupních hodnot:

A neuronovou síť schopnou klasifikaci bodů podle výhradní-nebo (xor)
Povrch je výstup z neuronové sítě pro všechny možné vstupní kombinace (x1, x2) v rozmezí [ -2.0, +2.0 ].
Výstupem je poblíž 0.0 v snižuje oblastech na povrchu, a na výstupu je poblíž 1.0 v nejvyšších oblastech na povrch.
Všimněte si, že povrch je na nízké v místech { (0,0), (1,1) }, a povrch je vysoce na body { (0,1), (1,0) }.
Síť byla pouze vyškolený k výrobě požadované výstupy na čtyři konkrétní kombinace vstupních proměnných, ale neuronová síť také produkuje výstupy pro všechny ostatní možné kombinace vstupních hodnot.
Schopnost neuronové sítě k výrobě přiměřenou odpovědí na obecné případy, poté, co byly vyškoleni pro zvláštní případy lze považovat za "zobecnění."
Jakýkoli proces, který vejde datových bodů na modelu, jako jsou body uchycení na řádku nebo jiné křivky, také produkuje "generalizing" účinek, tak skutečnost, že vybavení neuronové sítě k výrobě požadované výstupy na konkrétní výsledky výuky v jakési zobecnění není mimořádného, ale přesto je zajímavé sledovat schopnost generalizovat z konkrétních případech.
9. Příklad: Tic-tac-toe "(Naughts a Kříže)"
9.1 Úvod
Tic-tac-toe "(Naughts a Kříže)" je jednoduchá hra hraje na 3 * 3 mřížkou buněk, které mohou být označeny "O" nebo "X".
Hráči střídavě místo "O" a "X" značek v neobydlených buněk, dokud jeden z hráčů ukončí řádek, sloupec nebo diagonální.
Protože tam jsou 3 řádky a 3 sloupce, diagonály a 2, je zde osm vítězných modelů pro každého hráče.

Tic-Tac-Toe palubě a vítězné modely
Je triviální napsat rekurzivní funkci, která ukazuje všechny možné Tic-Tac-Toe hry, protože maximální doba trvání hry je devět tahů.
Na každý bod v zápase jsme jednoduše přezkoumat výsledky pohybující se v každém ze zbývajících neobydlených buněk.
Tyto funkce mohou potvrdit, že Tic-Tac-Toe hra hraje s "perfektním hráči" skončí bez vítěze.
9.2 Zaškolení neuronové sítě se označují nejlepší tahy
A rekurzivní funkce může prozkoumat všechny možné hry a určit nejlepší tah pro každého palubě konfigurace.
Přidáme každé palubě konfiguraci (vstupy), a nejlepší tah (požadované výstupy), na seznam vzdělávacích předmětů.
Pak jsme vlakem ze sítě pro výrobu požadované výstupy pro každý soubor vstupů.
Tato síť bude mít 9 vstupů pro každou buňku na rozvodné síti, a vstupní hodnoty se omezují na tyto hodnoty:
0: Neobydlené buněk
+1: Protagonista hráč
-1: Soupeř hráče
Tato síť bude mít 9 výstupů pro každou buňku na rozvodné síti, a výstupní hodnoty se omezují na tyto hodnoty:
0: Ani hnout zde
1: Move zde
Osm výstupů bude nastaven na "0," a jedním výstupem bude nastaven na hodnotu "1."
Takto, po školení neuronové sítě, konfigurace palubě mohou být specifikovány jako vstupní a neuronové sítě se označují nejlepší tah.
Výstup nejblíže k "1" uvádí nejlepší tah, a všechny ostatní výstupy by měly být blízko "0."
V obecné rovině jakoukoli funkci s parametry a logická hodnota logická hodnota výstupů může být reprezentován jako neuronové sítě se ze dvou vrstev neuronů.
První vrstvu neuronů můžeme rozdělit na vícerozměrný prostor v regionech, a druhá vrstva kombinuje regionu klasifikace vyrobit příslušnou výstupní hodnoty.
Na Tic-Tac-Toe neuronové sítě produkuje logickou výstupy, a přestože se vstupy mají tři státy ( -1, 0, +1 ), bychom mohli, v princple, převést tyto málo diskrétní vstupní hodnoty pro soubor logických vstupů.
Proto dvě vrstvy neuronů by měly být dostatečné k tomu, aby se dozvědět Tic-Tac-Toe.
Vzhledem k tomu, že síť má 9 výstupů, existují 9 neuron subjekty v konečném znění (druhá) vrstva.
Jedinou zbývající neuronové sítě design rozhodnutí je rozhodování o počtu neuron orgány, aby v první vrstva z neuronové sítě.
Chcete-li, aby toto rozhodnutí, počítačový kód můžete vytvářet a vycvičit neuronové sítě s N neuronů v první vrstvě.
Schopnost neuronových sítí se dozvíte kompletní sada pro vzdělávání Tic-Tac-Toe může být graphed.
Následující graf ukazuje celkový vzdělávání stanovené chyba během školení pro každou z 48 různých typů neuronových sítí, s N = 1,2,...,48 neuronů v první vrstvě.

Celkově odborné přípravy stanovené chyba během výcviku, na N = 1,2,...,48 neuronů v první vrstvě (N = 1 je na vrcholu, a N = 48 je na dně, a většina meziproduktů křivky jsou nižší pro vyšší hodnoty N)
Dalším způsobem, jak si tohoto trendu je vytvořit povrch z sekvence křivek:

Celkově odborné přípravy stanovené chyba během výcviku, na N = 1,2,...,48 neuronů v první vrstvě (N = 1 je vzadu, a N = 48 je v přední)
Proto vidíme, že jak jsme přístup N = 48 neuronů v první vrstvě, síť se zdá být schopni přijmout všechny odborné přípravy případech.
Něco méně než 48 neuronů úrovních se jeví jako nedostatečné k tomu, aby se dozvědět kompletní sadu případů.
Pro nízký počet neuronů, každý další neuron výrazně snižuje celkovou chybu.
Nicméně, když počet neuronů se blíží k počtu povinni seznámit se s celou sadu lekcí, každý další neuron pouze snižuje chyby relativně malé částky.
Následující obrázek ukazuje neuronové sítě s 9 vstupy, a 48 neuron subjekty v první vrstvě, a 9 subjektů neuron v druhé vrstvě, a 9 výstupů.

A neuronovou síť schopnou učit se hrát tic-tac-toe
Počítač kód související s tímto dokumentem obsahuje kód na budování a vzdělávání neuronové sítě je uvedeno výše.
Školení soubor má 4520 položek, odborné přípravy.
V 200 iterací vzdělávání (zahrnující 3 množení kroky, tedy celkem 200 * 4520 * 3 = 2712000 simulace kroků a stejný počet chyb množení schodů), celková chyba se snížil z 1.520 k 0.153.
(Tato čísla se mohou lišit v závislosti na náhodných počátečních podmínek.)
Vzdělání požadovaného několik minut.
Následující dva příklady z uvedených vstupů a výstupů vyrobené z vyškolených neuronové sítě:
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
Síť byla vyškoleni k výrobě nejlepších tahů pro hráče, jejichž značka odpovídá "+1."
Nejlepší tah za soupeře hráč, jehož značka odpovídá "-1," lze nalézt vynásobením všech vstupů do (-1) před simulaci neuronové sítě.
10. Školení neuronových sítí
Následující je citát z "Artificial Intelligence" (3rd edition; Addison Wesley; 1993), o Patrick Henry Winston, kapitola 22, Learning by Training Neural Nets, p. 468.
Neuro-Net Školení je umění
Nyní vím, že jste čelit mnoha volby poté, co se rozhodnou pracovat na problém vzdělávání má neuronová síť pomocí zpět množení:
* Jak můžete představují informace v neuronové čisté jde?
Jak můžete použít neuronovou síť vstupy vyjádřit to, co znáte?
Jak můžete použít neuronovou síť výstupů určit, co chcete vědět?
* Jak mnoho neuronů byste měli mít ve svém neuronová síť?
Kolik vstupů?
Kolik výstupy?
Kolik závaží?
Kolik skrytých vrstev?
* Jaká sazba parametru by měla používat v zadní-množení vzorec?
* Pokud byste vlak vaše neuronové sítě v etapách nebo současně?
Špatné možnosti vést k snížení výkonu.
Malá neuronová síť se nesmí dozvědět, co ho chcete naučit.
Velkou čistou se naučí pomalu, může narazíte na lokální maxima, a může vykazovat přeučení.
Malý kurz parametr nestability mohou podporovat nebo poskytovat chudým předpovědi.
Bohužel, řádné volby závisí na charakteru vzorků.
Matematicky, si můžete prohlédnout vzorky za reprezentativní letmé pohledy na skryté funkce, s jedním rozměr pro každý vstup.
Pokud existují různé vstupy, funkce je vícerozměrný charakter činí z funkce těžké přemýšlet o nemožné a vizualizovat.
V souladu s tím nejlepším průvodcem na vaší volby je pokusů a omylů, buttressed, je-li to možné, že s přihlédnutím k možnosti, kteří pracovali dobře v podobné problémy.
Proto platí, že úspěšné nasazení neuronových-čisté technologie vyžaduje čas a zkušenosti.
Neuronové-net odborníci jsou umělci, nejsou pouhou příručku uživatele.
11. Tvorba vstupních hodnot a výstupní hodnoty vhodná pro neuronové sítě
Matematický model pro neuron tělo, představeného v tomto dokumentu vytváří výslednou hodnotu pomocí "logistické půlměsícovitý funkce" (tj. ( 1 / (1 + Exp(-x)) )).
Proto se výstupy se omezují na škále od 0.0 k 1.0.
Takže, matematický model a neuronové sítě v tomto dokumentu mohou být použity přímo učit se a produkovat výstupy v rozmezí od 0.0 k 1.0, například pro logickou výstupy, nebo pro průběžné výstupy jsou omezeny pouze na část této řady.
Nicméně v síti může být také použit k naučit vyrábět a výstupy v každém omezeném rozsahu v případě, že výstupy jsou převedeny do a ze rozmezí od 0.0 k 1.0.
Předpokládejme například, že závěrečné výstupní hodnoty jsou omezeny na rozmezí od P k Q, a předpokládám Z zastupuje libovolný konečný výstup hodnoty omezen na rozmezí od P k Q, a předpokládám Y představuje odpovídající neuronové sítě výstup omezen na rozsah od 0.0 k 1.0.
Následující vzorce mohou být použity pro konverzi mezi oběma typy výstupních hodnot:
Y = (Z - P) / (Q - P); // Q > P; Q != P
Z = P + (Q - P) * Y; // Q > P
Konverze konečný výstup do neuronové sítě, výstupem je nutné v průběhu vzdělávání.
Přeměnit neuronové sítě, výstup na konečné produkce je nezbytná při běžném simulace.
Vstupy do neuronové sítě nejsou tak malé, jak výstupy, protože odkazy jsou váhy hodnot, které mohou zmírnění nebo zesilovat vstupní hodnoty libovolně.
Nicméně, vstupní hodnoty daleko mimo rozmezí od -1.0 k 1.0 by mohly způsobit problémy, protože před závaží mít možnost upravit, krajní hodnoty budou vždy nejprve dorazí jako parametr pro "logistické funkce půlměsícovitý" ( 1 / (1 + Exp(-x)) ).
Extrémní hodnoty do této funkce bude výstup z neuron velmi blízko 0.0 nebo 1.0, a když chyby propagovat vzad prostřednictvím sítě do neuron, že se chyba bude vážený (Output * (1 - Output)), které bude velmi malý.
Proto přeměně původní vstupní hodnoty se pohybují od 0.0 k 1.0 před poskytnutím těchto hodnot na vstupy z neuronové sítě je nejspíš dobrý nápad.
Představte původní vstupní hodnoty, je omezeno na rozmezí od A k B, a předpokládám W představuje svévolné původní vstupní hodnoty omezen na rozmezí od A k B, a předpokládám X představuje odpovídající neuronové sítě vstupní hodnotu, kterou si vybereme omezit na rozmezí od 0.0 k 1.0.
Následující vzorec lze použít ke konverzi původní vstupní hodnoty na hodnotu vhodnou pro dodávky do neuronové sítě.
(Není nutné převést neuronové sítě vstupní hodnoty na hodnotu v původní vstupní řady.)
X = (W - A) / (B - A); // B > A; B != A
12. Odkazy
Následující knihy mohou být užitečné při porozumění neuronové sítě a jejich aplikace.
[1] Artificial Intelligence (3rd ed) (Patrick Henry Winston; Addison-Wesley; 1993)
Tato kniha je velmi zajímavá a užitečná.
Autor popisuje mnoho fascinujících témat, s příklady, s dostatečně podrobně, aby vám umožní používat pojmy v praktických situacích.
Autor popisuje neuronové sítě a "zpět množení" učení v podstatných detailů, včetně matematických derivace.
[2] Artificial Intelligence: A New Synthesis (Nils J Nilsson; Morgan Kaufmann; 1998)
Tato kniha, stejně jako odkaz [1], je fascinující a praktický úvod do umělé inteligence.
Nicméně tato kniha je o něco stručnější než referenční [1].
Myslím, že osoba by měla mít prospěch z obou čtení [1] a [2].
Chtěl bych jen doporučit tuto knihu, pokud máte silný zájem ve všech umělé inteligence, že doporučuji odkaz [1] dokonce i těm, kteří jsou konkrétně zájem o učení neuronových sítí.
[3] Focus on AI (Prima Tech / Prima Publishing)
Součástí hry vývoji série vydané Andre LaMothe.
Tato kniha je užitečná pro programátory hra, a naplněna jest počítačový kód příkladů, které dokládají, že neuronové sítě, genetické algoritmy, fuzzy logika a všechny použít na herní postava chování.