English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
Rete neurale
con l'apprendimento di propagazione di errore indietro
Colin Fahey
neuron_group01.jpg
Una rete neurale biologica

1. Software

NeuralNetwork20080614.zip
Neurone rete codice sorgente (C#)
21971 bytes
MD5: 94443565716e1101a3326dc2ffd558fd

2. Introduzione

Questo documento descrive come attuare una rete neurale artificiale che sia in grado di essere addestrato a riconoscere i modelli.
Questo documento descrive un modello di una rete neurale che impara da un algoritmo che utilizza “indietro propagazione di errore.„
Il presente documento contiene le dimostrazioni di base di apprendimento “indietro errore„ di “propagazione.„  Il presente documento è un collegamento a computer codice.  Il computer include il codice di dimostrazioni.  Il computer codice può essere utilizzato per creare reti neurali complessi.  Tuttavia, il computer codice è solo per scopi di dimostrazione.  Un'alternativa attuazione potrebbe ridurre l'uso della memoria e potrebbe aumentare la velocità.

3. Alternativa a ritroso di apprendimento di propagazione di errore

Questo documento descrive un modello di una rete neurale che impara da un algoritmo denominato “indietro errore propagazione.„  Questo algoritmo può richiedere molto tempo per imparare varie lezioni.  Inoltre, questo algoritmo può fallire in modo casuale per saperne di varie lezioni a causa della casuale iniziale status della rete neurale prima formazione.
“Associando„ l'apprendimento “attivo ingressi„ costituisce un importante alternativa di apprendimento a “ritroso errore„ di “propagazione.„  Associando l'apprendimento attivo ingressi semplicemente associa ingressi che sono attivi contemporaneamente.  Tale apprendimento può essere veloce e affidabile.  Tuttavia, per molti scopi pratici, non vi è alcun evidente modo di usare una rete neurale che impara di associazione, che è evidente modo di usare una rete che impara a ritroso errore di propagazione.
Alcune reti neurali biologiche sono noti per imparare di associazione di ingressi attivi.  Indietro propagazione di errore non è stato rispettato in qualsiasi rete neurale biologica.
Questo documento descrive usi interessanti per una rete neurale che impara a ritroso errore di propagazione.  Tuttavia, l'apprendimento di associazione è molto importante algoritmo alternativo per l'apprendimento.  Progettazione di una rete neurale che impara di associazione per risolvere un particolare problema potrebbe essere più difficile che desgining un'alternativa rete neurale che impara a ritroso errore di propagazione, ma sistemi biologici di imparare associazione, e la capacità di apprendimento dei sistemi biologici è evidente.

4. Biologici neurone

4.1 Neurone cella

neuron_1umeter01.jpg
Un neurone biologico (tipo “multipolare,„ ~4 um cella corpo)
È un neurone tipo di cellula che ha la capacità di ricevere e trasmettere segnali nervosi.
Neuroni sono la base di sistemi nervosi, che si trova negli animali, uccelli, pesci e insetti.
Cervello con la memoria e logica, semplice e sistemi di riflesso, sono entrambi basati su accordi di neuroni.
Neuroni sono anche utilizzati per trasmettere segnali su lunghe distanze in una creatura del corpo, come ad esempio da sensori per il cervello, o dal cervello di muscoli.
Il comportamento di un neurone biologico è molto complessa, ma la seguente descrizione semplificata Cattura il principio di base:
Il neurone accumula segnali ricevuti da altri neuroni, e se il segnale di accumulo totale supera una soglia, il neurone trasmette la sua segnali ad altri neuroni.

4.2 Neurone parti

neuron_labels01.jpg
Parti di un neurone biologico
Soma
La cella corpo di un neurone
Dendrites
Fibre chimiche con i recettori (monte), che si estendono dalla cella corpo di un neurone.  Un neurone in genere ha molti dendrites, dendrites e spesso hanno molte filiali.
Assone
Una fibra con sostanze chimiche responsabili delle emissioni (uscite) a sua endpoint che si estende dalla cella corpo del neurone.  Un neurone ha un unico assone, e la assone di solito ha pochi rami.
Sinapsi
Una configurazione tale che l'assone di un neurone e il dendrites di un altro neurone sono separati da un piccolo gap.  In tale configurazione, le sostanze chimiche emesse da un assone di un neurone attraversare la sinapsi e sono ricevuti dal dendrites degli altri neurone.  Questo è il modo in neuroni influenzare altri neuroni.

4.3 Neurone cottura

Un neurone accumula segnali chimici dal suo dendrites, e se il totale delle sostanze chimiche accumulo supera una soglia entro un periodo di tempo, il neurone “incendi,„ l'invio di un proprio segnale attraverso il suo assone.
Alcuni neuroni sono in grado di sparare a impulsi l'ordine di 100 Hz.
I segnali che passa per i neuroni coinvolgere accumulo di (Na) di sodio, potassio (K), e (Cl) ioni cloro, e un conseguente potenziale elettrochimico (vale a dire, tensione).
La tensione di riposo e cottura (-70 mV) tensione (+30 mV) può essere misurata o anche influenzato da apparecchiature elettriche convenzionali circuiti.
Il seguente è una tensione di registrazione di un ratto neurone fuoco a un tasso di circa 100 Hz quando un unico baffo è toccato e ha tenuto fuori della propria posizione di riposo:
neuron_spikes_whisker01.jpg
Un ratto neurone (100 Hz) fuoco a causa di possesso di un baffo.
Il seguente è lo stesso segnale audio manifesta come: neuron_spikes_whisker01.wav
Anche se lo stimolo è costante, il neurone segnale è rapida e pulsante.

4.4 Rete neurale

Il cervello umano ha circa 10^11 (100 miliardi di euro) neuroni.
Ogni neurone del cervelletto riceve come input da molti come 10^4 (10000) sinapsi.
Anche se la assone e dendrites di un neurone spesso solo pochi micrometri di distanza dalla cella corpo, alcuni assoni sono dell'ordine di un metro di lunghezza.
Un cervello con neuroni è relativamente breve assoni raggruppati in settori o cluster.
Un cervello ha anche fasci di neuroni con assoni relativamente lungo per collegare le zone separate da centimetri.
Quindi una rete gerarchica di elementi di trasformazione è formato.

4.5 Lo stato della rete neurale

Lo stato di una rete di neuroni è sia il modo in cui i neuroni sono collegati i segnali e in tutte le sinapsi.
Non è chiaro quanta informazioni di stato andrebbero perduti se un cervello è stato in tranquilized al totale inattività per qualsiasi periodo di tempo.
Si può immaginare informazioni sostenuta solo da segnali si spostano attraverso la rete, e non di connettività di rete stessa, come simulazioni di automi cellulari come Conway's “Game of Life„, semplice Dynamic Random Access Memory (DRAM) chip, e fa eco in una camera.

4.6 Apprendimento rete neurale

Convenzionali di apprendimento si verifica quando la proprietà del dendrites a un cambiamento sinapsi a diventare più o meno efficienti a ricevere segnali chimici da un assone.
Le ragioni di tali cambiamenti sono complicate, ma il risultato è che un neurone richiede una diversa combinazione di fattori produttivi sinapsi di attivare un segnale di uscita.

5. Neurone artificiale

5.1 Definizione

Un “neurone artificiale„ è un algoritmo o un dispositivo fisico che implementa un modello matematico ispirato alla base di un comportamento biologico neurone.
Un neurone accumula segnali ricevuti da altri neuroni o fattori produttivi (ad esempio, sensori) e, se il segnale di accumulo totale supera una soglia, il neurone trasmette un segnale ad altri neuroni o uscite (ad esempio, effectors).
Qualsiasi modello matematico che riprende l'idea di accumulare più ingressi e produrre un unico output (che accentua la relativa intensità degli input relativi ad alcuni livello nominale) può essere utilizzato per il riconoscimento del modello.
Tali modelli possono essere la base di un neurone artificiale.
Se l'influenza di ciascun ingresso possono essere cambiate, quindi il modello in grado di supportare l'apprendimento.

5.2 Funzione di attivazione

Una “funzione di attivazione„ è una funzione matematica che converte i valori di ingresso al di sotto di un particolare valore ad un relativamente basso valore di uscita, ingresso e converte i valori al di sopra di un particolare valore ad un relativamente alto valore di uscita.
Una “funzione di attivazione„ è usato per convertire la somma ponderata dei valori di ingresso di un neurone ad un valore che rappresenta l'uscita del neurone.
Un “sigmoid„ funzione generale è un buon classe di funzioni che asintoticamente approccio un limite inferiore per i valori di input avvicina negative infinity, asintoticamente approccio e un limite massimo per l'ingresso avvicina valori positivi infinito.
sigmoid una specifica funzione è la funzione “logistic sigmoid„:
logistic_sigmoid_function.jpg
La funzione “Logistic Sigmoid„: 1 / ( 1 + Exp( -x ) )
“logistic sigmoid„ la funzione può essere utilizzata come una “funzione di attivazione„ di un modello matematico di un neurone.
Le riserve matematiche derivata del “logistic sigmoid„ può essere calcolato come una formula, il che la rende facile da calcolare un associato formula di apprendimento.

5.3 Rete neurale di input

Una “rete neurale ingresso„ costituisce un apporto a una rete neurale.
neural_network_input.jpg
Rete neurale di input
“Input„ è il valore numerico di input.

5.4 Rete neurale di uscita

Una “rete neurale uscita„ rappresenta una produzione di una rete neurale.
neural_network_output.jpg
Rete neurale di uscita
“Output„ è il valore numerico della produzione.
“Error„ è un valore numerico che rappresenta la differenza tra il valore di uscita e una “Desired„ valore:
Error = (Output - Desired);  // Derived from: Output = Desired + Error;
“Desired„ il valore rappresenta un valore desiderato, o un valore ideale o un valore corretto, che la rete neurale dovrebbe produrre un output in risposta a specifici fattori produttivi.
Il valore di errore viene calcolata e assegnata a “Error„ da un algoritmo di formazione.
Il valore di errore è il feedback a rete neurale.
La rete neurale in grado di adattarsi a ridurre la differenza fra le uscite e i valori desiderati; vale a dire, la rete neurale può imparare, e può quindi ridurre futuro errori.

5.5 Neurone corpo

Un “neurone corpo„ rappresenta il corpo di un neurone, che si accumula in ingresso contributi, e aggiunge un preconcetto, e trasforma il valore risultante dalla “funzione di attivazione„ di produrre un valore di uscita.
neuron_body.jpg
Neurone corpo
“InputAccumulator„ è un valore che rappresenta l'ingresso accumulato da neurone collegamenti le cui uscite sono collegati al neurone corpo.
“Bias„ regolabile è un valore che è combinato con il valore accumulato in ingresso.
“Output„ è un valore numerico che rappresenta il valore di uscita del neurone.
Il valore della produzione è calcolata utilizzando la formula seguente:
Output = ActivationFunction( Bias + InputAccumulator );
“ErrorAccumulator„ è un valore numerico che rappresenta accumulato errore.
Dato un determinato valore di uscita del neurone corpo, e dato un determinato valore di uscita di errore, l'errore accumulato valore è regolato secondo la seguente formula:
ErrorAccumulator += Output * (1 - Output) * OutputError;
“Rate„ è un valore che colpisce come il “Bias„ valore cambia in risposta alle “ErrorAccumulator„ valore:
Bias += (-1) * Rate * ErrorAccumulator;

5.6 Neurone link

Un “neurone link„ rappresenta un collegamento tra:
(1) di un ingresso della rete neurale e l'immissione di un neurone corpo;
o,
(2) per un output di un neurone corpo e un input di un altro neurone corpo;
o,
(3) una produzione di un neurone corpo e un valore di uscita della rete neurale.
neuron_link.jpg
Neurone link
“Input„ è una cache di input per il collegamento.
“Weight„ regolabile è un valore che colpisce come segnale di valori e propagare valori di errore tramite il link.
“Output„ è una cache dei risultati del collegamento.
Il valore è calcolato utilizzando la seguente formula:
Output = Weight * Input;
“Error„ è una cache di errore di collegamento.
“WeightedError„ è una cache di l'errore di link, ponderata con il fattore di ponderazione:
WeightedError = Weight * Error;
“Rate„ è un valore che colpisce come il valore “Weight„ modifiche in risposta a “Error„ il valore e il valore “Input„.
Durante tutto l'arco della rete neurale, il valore “Weight„ è regolata nel modo seguente:
Weight += (-1) * Rate * Input * Error;

5.7 Rete neurale

Una “rete neurale„ contiene input, output, neurone organismi, e link.
La seguente immagine è raffigurata una semplice rete neurale, con due ingressi e due organismi neurone in un primo strato, e un unico neurone in un secondo strato, ed uno di uscita.
neuron_network_drawing.jpg
Esempio di una rete neurale
Nel corso di una simulazione di una rete neurale, propagare valori di ingresso in avanti tramite i link e gli organismi neurone, e, infine, arrivare a risultati.
neuron_network_forward_propagation.jpg
Esempio di trasmettere la propagazione in una rete neurale
Nel corso di formazione, valori di errore sono forniti i risultati, e questi errori si propagano attraverso indietro della rete neurale, con conseguente modifica dei pesi e delle distorsioni nel neurone organismi e link.
neuron_network_backward_propagation.jpg
Esempio di propagazione indietro errore in una rete neurale

5.8 Simulazione di rete neurale

Definizione:
“Rete di simulazione„ è la procedura utilizzata per propagare ingressi di rete attraverso il link e gli organismi neurone fino a raggiungere la rete uscite.
Simulazione di rete comporta la simulazione di tutti i suoi elementi costitutivi dei collegamenti e degli organismi neurone.
Simulazioni o loop senza tempo:
Ci sono molte possibili configurazioni di rete che coinvolgono loop.
Ci sono molti modelli di neurone che dipendono da tempo.
Ma alcuni dei più comuni applicazioni di neuroni artificiali coinvolgere né tempo né loop.
Il seguente è un modello matematico di un neurone corpo:
Output = ActivationFunction( Bias + InputAccumulator );
Con questo modello di neurone, e una rete senza “loop,„ abbiamo semplicemente iniziare dal ingressi esterni, calcola i risultati del primo strato di neuroni, e la fornitura di tali risultati come input per il prossimo strato, calcola che per le uscite livello, e continuare attraverso strati di neuroni fino alla finale uscite sono calcolate.
Loop:
Una rete può avere connessioni in forma di loop (o “cicli).„
Ad esempio, l'output di un neurone può essere collegato direttamente ad un ingresso dello stesso neurone, provocando “commenti.„
Un altro esempio è l'output del neurone # 1 di essere connessi a input di neurone # 2, e l'output del neurone # 2 di essere connessi a input di neurone # 1.
Se è possibile avviare da un certo punto in una rete e traccia un percorso attraverso i neuroni e le connessioni, obbedendo il senso unico flusso dei segnali, e, infine, arrivare a questo stesso punto di partenza, poi il percorso è un loop.
Loop di introdurre la possibilità di interessanti segnali che scorre nei pressi di rete per indeterminato periodi di tempo.
Alcuni semplici modelli per scontato che ci vuole un determinato periodo di tempo per i segnali di passare attraverso i singoli neuroni.
In tali modelli, segnali circolare attraverso i loop con pochi neuroni più veloce di segnali circolare attraverso i loop con molti neuroni.
Un neurone collegato alla stessa abbia il più veloce tasso di diffusione del segnale.
Se un neurone ha un ingresso X, W un peso, una distorsione B, e un non negativo Y uscita (ad esempio, 0.0 -> 1.0), quindi siamo in grado di formare un oscillatore semplicemente impostando W = (-8) e B = +4 e la connessione Y a X;
ogni volta che simulare il neurone, il segnale sarà toggled il contrario di Stato.
Una rete con loop può essere impegnato con attività anche quando non accetta segnali esterni (stimoli) come input.
Automi cellulari regole di Conway's “Game of Life„ potrebbe essere attuato in una rete neurale, che vi dà un piccolo suggerimento della diversità di attività che può accadere in una rete neurale a loop.
Finite-state macchine (FSM), oscillatori, memoria volatile (in contrasto con i modelli di apprendimento tramite la modifica pesi), sono rese possibili da loop.
Se ha una rete loop, non siamo in grado di aggiornare eventuali risultati fino a quando non calcolare tutte le uscite; quindi, è necessario fornire un buffer temporaneo per memorizzare calcolata uscite fino a quando non calcolare tutte le uscite, quindi siamo in grado di commettere nuovi valori di output per i neuroni nella rete.
Qualsiasi metodo che aggiorna le uscite nella stessa rete in un modo progressivo, invece di tutto-at-once, introduce un ordine arbitrario nel tempo che porta al caos.
Fisica simulazioni che coinvolgono enti accoppiati, come ad esempio i pianeti in orbita intorno a una stella con gravitazionale reciproco tra le forze di tutti gli organismi, richiede lo stesso tipo di approccio: calcolare il netto forze a tutti gli organi prima di aggiornare qualsiasi velocità e posizione.
Tempo-dipendenza:
Una semplice rete di simulazione tipicamente coinvolge ingressi causa il desiderato uscite dopo un tempo di simulazione unico passo.
In una tale simulazione, pensiamo in termini di “numero di iterazioni tempo„ piuttosto che “in pochi secondi.„
Consulta non deve essere uno scambio di corrispondenza e iterazioni una scala temporale.
Un sistema potrebbe essere progettato in modo da fare una rete di simulazione (iterazione) solo quando nuovo ingresso è disponibile, che possono verificarsi a intervalli irregolari di tempo.
Tuttavia, prendere in considerazione un modello matematico di un neurone che cerca di simulare il pulsante di uscita di un aspetto biologico neurone.
Il pulsante potrebbe essere caratterizzato in termini di tempo, come ad esempio pulsante in una posizione di particolare frequenza o abbia la cui curva di impulsi si estende per un determinato periodo di tempo.
Possiamo avere altro tempo-dipendente elementi in un modello matematico di un neurone, come ad esempio un input accumulatori il cui valore viene contributi di fattori produttivi, ma ha una perdita proporzionale al suo valore attuale.
In generale, possiamo trovare un circuito elettrico per analogia elementi che obbedire alcune equazioni matematiche, e così si può considerare un neurone come un circuito con resistenze, condensatori, e un non-lineare amplificatore.
Proprio come un circuito in grado di esporre complessi tempo-dipendente problema, l'output di un neurone può essere considerata come una funzione che dipende dalla sua ingressi e tempo in un modo complicato.

5.9 Indietro errore di propagazione

Definizione:
“Indietro errore di propagazione„ è un procedimento matematico che inizia con l'errore l'output di una rete neurale e questo errore si propaga all'indietro attraverso la rete di rendimento di uscita valori di errore per tutti i neuroni della rete.
Indietro errore propagazione formule:
I valori di errore a rete neurale uscite sono calcolati con la seguente formula:
Error = (Output - Desired);  // Derived from: Output = Desired + Error;
L'errore di accumulo in un neurone corpo è regolato secondo l'uscita del neurone corpo e l'output di errore (specificato dal link collegato al neurone corpo).
Ogni uscita di errore valore contribuisce a accumulatore l'errore nel modo seguente:
ErrorAccumulator += Output * (1 - Output) * OutputError;
In un certo senso, tutti gli errori in uscita il prossimo livello di perdita indietro lungo il peso di ingresso e si accumulano l'output di un neurone in un livello precedente.
Questo valore accumulato viene moltiplicato per un valore che è maggiore quando la corrente di uscita del neurone è più neutro (la maggior parte “indecisi)„ ed è meno quando l'uscita del neurone è più estreme (molto “determinati).„
Una variazione di peso e la parzialità cambiare formule:
La base di apprendimento è l'adeguamento dei pesi e delle distorsioni valori, nel tentativo di ridurre la futura produzione errori.
“Vota„ l'apprendimento è un valore numerico che indica in sostanza quanto velocemente un neurone regola peso e la parzialità valori in base a valori di errore.
La formula seguente indica come cambiare i pesi di un neurone con un particolare insieme di valori di input e output di errore il suo valore:
Weight += (-1) * Rate * Input * Error;
La formula seguente indica come cambiare la polarizzazione di un neurone, vista l'attuale produzione di errore per il neurone:
Bias += (-1) * Rate * Error;

6. Formazione una rete neurale

6.1 Procedura di formazione

Si può iniziare con una formazione di rete e continuare a ridurre la produzione di errore con una maggiore formazione, ma spesso inizia con un poco di rete.
Prima di formazione, scegliere casuale valori per tutti i pesi di tutti i neuroni della rete.
Ho osservato problemi quando ho selezionato in modo casuale a valori in [ -1.0, +1.0 ] l'intervallo, e non ho avuto problemi quando ho selezionato a campione i valori di intervallo [ +0.1, +1.0 ].
Cito queste osservazioni, ma potrebbe essere dovuto ai miei errori.
Al fine di pesi è casuale per attenuare la possibilità di eventuali situazioni patologiche in una rete.
Se tutti i neuroni in una rete iniziato con lo stesso peso, la rete non avrebbe alcuna base per la crescente differenziazione tra neuroni.
Ho osservato che l'impostazione di tutti i pregiudizi valori a zero (0.0) è accettabile.
Una sessione di formazione che coinvolge attraverso una formazione impostare molte volte, forse centinaia o migliaia di volte.
Per ogni passare attraverso il training set, riteniamo che ogni elemento nella formazione.
Una serie di formazione oggetto ha una serie di fattori di produzione, e una serie di uscite desiderata.
Siamo simulare la rete, usando l'insieme di ingressi specificato dal punto di formazione.
La simulazione rese valori di output.
Siamo propagare il pensiero indietro errori della rete neurale per calcolare l'output errori per tutti i neuroni.
Aggiorniamo tutti i pesi e le distorsioni.
Attenzione: Un testo accademico che hanno discusso le reti neurali sostenuto passare attraverso l'intero set di formazione e solo riepilogo, elaborato variazioni di peso e pregiudizi.
Dopo aver attraversato l'intera formazione che abbiamo fissato una serie di somme di variazioni di peso e la parzialità modifiche.
Prendiamo queste somme e aggiornare tutti i pesi e le distorsioni.
Tali somme potrebbero essere enormi per i grandi insiemi di formazione - e il conseguente salto di peso-spazio sarebbe irragionevole grande.
Penso, quindi, dividendo per il numero di oggetti di formazione, per ottenere una variazione di peso medio di valori e media pregiudizi modificare i valori, sarebbe ragionevole.
C'è qualcosa di appello di calcolo su un unico vettore variazione di peso che assume in qualche modo l'intera formazione di cui al considerazione.
Non so se ho semplicemente fatto un errore in esecuzione l'idea, ma mi ha abbandonato quasi interamente su reti neurali a causa di come le cose sono state mal di svolta.
Poi, quando ho provato la ingenuo alternativa, e cioè fare aggiornamenti su ogni elemento di formazione, le cose funzionato perfettamente.
Considerando l'intero set di formazione prima di fare un aggiornamento ha alcuni vantaggi e svantaggi:
Vantaggi:
Unico di formazione oggetti di impostare la formazione con estrema errore (vale a dire, cattiva formazione voce), non rappresenterebbe un importante contributo per l'aggiornamento, perché sarà sopraffatto dalla influenza dei “buoni„ dati;
Svantaggio:
Se N è il numero di oggetti di impostare il vostro allenamento, il vostro tasso di progresso per il peso ottimale vettore sarà diviso per N.
O, per una determinata distanza si avrà solo una frazione di direzione accenni lungo il percorso rispetto agli approccio ingenuo;
Forse questa tecnica funzionerà per voi, ma provare l'approccio ingenuo prima di rinunciare a reti neurali in totale frustrazione!

6.2 La mancata riduzione di errore

Formazione potrebbe non riuscire a ridurre l'errore globale per la formazione.
E 'importante rilevare una mancata riduzione di errore.
La seguente lista descrive cause della mancata riduzione di errore, e le possibili soluzioni.
Le voci nella lista sono elencati in ordine approssimativo di probabilità, con la prima voce di essere più probabile.
(1) Il peso combinazione ha raggiunto un minimo locale l'errore di superficie, e si “è„ inceppata;
Soluzione: Avviare un nuovo simulazione con i nuovi pesi casuali.
(2) La rete è troppo pochi neuroni, o livelli di codificare tutti i modelli di formazione nel vostro fissati;
Soluzione: intrattenere con cautela la possibilità di aggiungere strati o neuroni.
(3) Uno o più oggetti di impostare il vostro allenamento in contraddizione o è gravemente in contrasto con altri elementi di formazione;
Soluzione: controllare il tuo insieme di dati per le irregolarità.
Trova la prova di elementi che producono la maggior parte di errore per il tuo formato rete.
Cerca in tecniche di peso medio di modifiche per l'intero insieme di dati per ridurre l'influenza di eventuali casi di cattiva.
(4) Il tasso di apprendimento è troppo alto (più di qualsiasi cosa 1.0 è probabilmente eccessivo), e gli aggiornamenti sempre il superamento obiettivo;
Soluzione: Ridurre il tasso di apprendimento.
(5) Il tasso di apprendimento è troppo bassa (sotto 0.01 nulla potrebbe essere troppo piccolo), e la rete è realmente convergenti sul peso ideale combinazione - ma è troppo lento;
Soluzione: Aumentare tasso di apprendimento.
Formazione di due strati, tre-neurone rete per abbinare l'esclusiva o (xor)-funzione, può, nonostante la semplicità della funzione, non riescono a convergere.
Questo può essere sorprendente e frustrante.
Tuttavia, la soluzione è semplice impostare tutti i pesi neurone link a nuovi valori casuali e poi tentare di formare di nuovo la rete.
Nel caso di formazione di una rete a partita esclusiva-o (xor) funzione, casuale positivo pesi sembrano portare a successo di apprendimento ogni volta, mentre alcune combinazioni di positivo e negativo pesi talvolta causare la formazione di fallire in modo drammatico.
La necessità di selezionare nuovi casuale peso iniziale per recuperare da un difetto di convergenza è uno spiacevole conseguenza della combinazione di procedura di apprendimento.
La procedura di apprendimento è essenzialmente alla ricerca di un minimo globale di ripida discesa su una superficie, e il potenziale per la presenza di un “minimo locale„ in cui la ricerca può diventare intrappolati.

6.3 Formazione globale di errore

L'errore di una rete può essere caratterizzata dalla radice quadrata della media degli errori al quadrato, o “root-media-(RMS) quadrato.„
L'errore in qualsiasi rete specifica di uscita è dato dalla seguente formula:
Error = (Output - Desired);
La somma dei quadrato gli errori di un unico punto di formazione è dato dalla seguente formula:
double squaredError = 0.0;
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
    squaredError += (output.Error * output.Error);
}
La somma di errori al quadrato per l'intero insieme di oggetti in una serie di formazione è la somma di errori al quadrato dei singoli elementi.  Il codice riportato di seguito mostra come il quadrato errori per tutta la serie di oggetti di formazione può essere calcolata:
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);
    }
}
La radice globale medio del quadrato (RMS) l'errore è dato dalla radice quadrata della media degli errori al quadrato:
double rmsError = Math.Sqrt( squaredError / (double)totalTrainingItems );
Questo valore è un modo per caratterizzare l'errore di una rete di formazione in considerazione tutti i casi.

7. Apprendimento

L'apprendimento si verifica quando il peso e la parzialità dei valori neurone e neurone link organi sono regolati in conformità con gli ingressi di rete specificato, l'output e valori di errore.
Prendere in considerazione una rete neurale con due ingressi (x1 e x2), e due collegamenti (con pesi w1 e w2), e un neurone corpo, ed uno di uscita (y).
neuron_network_single_neuron.jpg
Rete neurale con due ingressi, uno neurone e corpo, ed uno di uscita
Noi questo treno neurone con la fornitura di fattori di produzione, di elaborazione di uscita, l'errore di calcolo, l'informatica e la parzialità peso modifiche, e l'aggiornamento dei pesi e il pregiudizio, l'arrivo nuovi pesi ( w1', w2' ).
C'è un modo molto interessante di visualizzare questo processo.
Possiamo quanto riguarda la serie di pesi come un vettore in un multi-dimensionale spazio.  Per esempio, per due pesi abbiamo il vettore W = (w1, w2) in un bidimensionale “peso spazio.„
Quando i pesi sono adeguati, abbiamo un nuovo vettore W' = (w1',w2') peso.
Siamo in grado di visualizzare questo come un punto W di passare a un nuovo punto W' come parte di un processo di produzione per ridurre al minimo errore.
Normalmente non ci si potrebbe calcolare l'output di errore per tutte le possibili combinazioni di peso, perché la speranza è che il peso di adeguamento in modo efficiente processo di testa verso la migliore combinazione.
Tuttavia, dobbiamo tracciare la superficie che in sostanza, mostra come un neurone e soddisfa tutti gli elementi di una serie di formazione in funzione delle sue due pesi:
neuron_weight_space03.jpg
Somma di errori al quadrato per un determinato set di formazione in funzione di due pesi (w1, w2)
In sostanza, l'obiettivo di apprendimento è di scendere al livello più basso di questa superficie, dove è ridotto al minimo errore.
Una volta trovato il punto W = (w1, w2) che rese il valore minimo su questa superficie, l'apprendimento è terminato e quindi si può semplicemente utilizzare il formato neurone.
Il grafico seguente mostra l'output di un neurone addestrati in funzione di tutti i possibili ingressi X = (x1, x2):
neuron_input_space02.jpg
Neurone di uscita in funzione di due ingressi (x1, x2) per un peso combinazione che minimizza quadrato errore
Anche se la somma ponderata per questo due neurone di input è semplicemente (w1*x1 + w2*x2), la funzione di attivazione trasforma una semplice rotazione in aereo a una rupe.
Questa superficie è la corretta uscita per tutti i valori di input combinazioni (x1, x2) specificato dalla nostra formazione.
Ma si può immaginare come input vettori X = (x1, x2) formazione simile a valori porterà anche per il buon valori di output; questa funzione di reti neurali è chiamato “generalizzazione„ ed è il principale valore di reti neurali.
Come si cerca di “scendere„ la superficie del quadrato di errore, dobbiamo “prima di salto guardiamo!„
Aggiorniamo il peso vettore e preconcetto, e poi valutare “l'altezza„ della superficie a nostra nuova posizione.
Una conseguenza di questo è che si potrebbe passare a un punto con un errore più estreme.
Un'altra conseguenza è che ciò potrebbe richiedere un certo tempo a scendere alla profondità della nostra precedente posizione.
La possibilità di “un tuffo„ al più estreme cime e valli dell 'errore di superficie è direttamente collegato al “tasso„ di “apprendimento,„ perché il tasso di apprendimento determina l'influenza che hanno valori di errore sul nostro peso e la parzialità modifiche.
Il grafico che segue mostra come aumentare il tasso di apprendimento affretta il nostro arrivo a posizioni più basse sul quadrato di superficie di errore, se errore è ridotta a icona.
Il grafico mostra anche che l'aumento del tasso di apprendimento introduce anche la possibilità di fare male procedura:
neuron_training_error1512_zoom.jpg
Tendenza a breve termine di root-media-squared (RMS) errore per l'intero set di formazione su più iterazioni di formazione, per l'apprendimento tassi 0.1, 0.5, 1.0, e 2.0.
Qui è un grafico dei root-media-squared uscita di errore di un multi-layer di rete con una serie di formazione con elementi che 19386 vissuto molti cattivi passi sulla via di peso i migliori vettori:
neuron_training_error_spikes.jpg
Incontri di formazione talvolta picchi nella root-media-squared (RMS) errore, errore quando aumenta per alcuni iterazioni prima di riprendere una tendenza alla diminuzione.
Talvolta la tendenza è semplicemente buon convergenza a quella desiderata serie di pesi:
neuron_training_error1512.jpg
Tendenza di root-media-squared (RMS) errore per l'intero set di formazione su più iterazioni di formazione, per l'apprendimento tassi 0.1, 0.5, 1.0, e 2.0.

8. Esempio: in esclusiva-o (xor)

“Esclusiva-o„ (xor) è una funzione che accetta due ingressi booleani e le rese un unico booleana di uscita, secondo la seguente tabella:
X1
X2
Y = xor (X1, X2)
0
0
0
0
1
1
1
0
1
1
1
0
In generale, un singolo neurone ha ingressi {x1, x2, ...}, entrando attraverso collegamenti con pesi {w1, w2, ...}.
Il neurone calcola intermedio quantità d = bias + (w1*x1 + w2*x2 + ...), che può essere considerato come l'individuazione che aereo, in una infinita serie di piani paralleli, contiene un determinato punto con coordinate {x1, x2, ...}.
Il neurone calcola una produzione valore, y = ActivationFunction( d ), che ha l'effetto di suddividere l'infinita serie di piani in parallelo a due serie, con una bassa produzione di impostare valori di output, e gli altri produttori di impostare valori elevati di output.
Così, un singolo neurone spazio pluridimensionale divide in due regioni, separate da bias + w1*x1 + w2*x2 + ...  = 0 piano, basso e assegna valori di output a punti nella regione su un lato del piano, e assegna valori elevati di output a punti nella regione sul lato opposto dell'aereo.
Quindi, se due serie di punti nello spazio pluridimensionale sono distinte classifiche e può essere completamente separati da un aereo, poi un singolo neurone può essere utilizzato per classificare correttamente i punti da questi apparecchi come appartenenti a un set o degli altri.
- L'esclusiva funzione o (xor) punti in classifica a due dimensioni spazio (con coordinate (x1, x2)) in modo che punti nel set { (0,0), (1,1) } sono classificate come produrre un output di “0,„ e punti nel set { (0,1), (1,0) } sono classificate come produrre un output di “1.„
Non esiste un unico “piano„ (in questo caso, una linea) che possono separare questi quattro punti per i due insiemi.
Pertanto, un singolo neurone non possono essere utilizzati per classificare i punti sulla base dei esclusivo o (xor)-funzione.
Un singolo neurone può solo dividere uno spazio di punti a due regioni.
L'esclusivo o-(xor) classifica punti funzione in un modo che divide essenzialmente in due dimensioni spazio in tre regioni (o, in alternativa, quattro regioni).
Due neuroni possono dividere in due dimensioni spazio in tre regioni (ad esempio, di due distinte linee parallele), e possono quindi essere utilizzati per classificare i punti sulla base dei esclusivo o (xor)-funzione.
Un terzo neurone può essere utilizzato per combinare i risultati degli altri due neuroni a un unico output.
Il seguente rete neurale, con due ingressi e due organismi neurone in un primo strato, e un unico neurone in un secondo strato, e di un unico prodotto, possono essere utilizzati per classificare i punti sulla base dei esclusivo o (xor)-funzione.
Il seguente rete neurale può essere addestrato per calcolare l'esclusiva-(xor) o funzione, o la rete neurale può semplicemente avere il suo peso e la parzialità dei valori assegnati in un modo che produce il comportamento desiderato.
neuron_network_drawing.jpg
Una rete neurale in grado di classificare in base a punti di esclusiva-o (xor)
Il computer codice associato a questo documento dimostra la formazione della rete neurale mostrato nello schema di cui sopra per abbinare l'esclusiva-o (xor) funzione.
Il reti neurali a volte non riesce a imparare la funzione, ma il software può semplicemente essere riavviato per cercare di apprendimento con una nuova serie di peso iniziale.
Se il software con successo impara l'esclusiva-o (xor) funzione, quindi l'output è simile al seguente:
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
L'output è (y) entro il 2% del valore desiderato per ciascuna delle quattro combinazioni di variabili (x1, x2).
Anche se la rete è stato addestrato per saperne di valori di output per solo quattro combinazione di variabili (con valori 0.0 e 1.0, in rappresentanza di valori booleani), l'input per la rete neurale può essere impostato per ogni arbitrario in virgola mobile valori.
La seguente immagine mostra il valore di uscita della rete neurale addestrati per molte combinazioni di valori di input:
neuron_xor_surface02.jpg
Una rete neurale in grado di classificare in base a punti di esclusiva-o (xor)
La superficie rappresenta il valore di uscita della rete neurale per tutte le possibili combinazioni di ingresso nel (x1, x2) gamme [ -2.0, +2.0 ].
L'output è vicino al 0.0 a abbassa aree di superficie, e che l'output è vicino a 1.0 a zone più alte della superficie.
Si noti che la superficie è bassa per i punti a { (0,0), (1,1) }, e la superficie è elevata nei punti { (0,1), (1,0) }.
La rete è stata solo una formazione di produrre output desiderato per quattro specifiche combinazioni di variabili di ingresso, ma la rete neurale produce anche uscite per tutte le altre possibili combinazioni di valori di ingresso.
La capacità delle reti neurali per produrre risposte ragionevoli per casi generali dopo essere stato addestrato per casi specifici può essere considerato come “generalizzazione.„
Qualsiasi processo che si adatta punti dati a un modello, come ad esempio l'installazione di punti di una linea curva o di altri, anche “generalizzante„ produce un effetto, così il fatto che il montaggio una rete neurale per la produzione di output desiderato per specifiche lezioni di risultati in una sorta di generalizzazione non è straordinario, ma è comunque interessante osservare la capacità di generalizzare da casi specifici.

9. Esempio: Tic-tac-toe “(Naughts e delle traverse)„

9.1 Introduzione

Tic-tac-toe “(Naughts e delle traverse)„ è un semplice gioco giocato su una griglia 3 * 3 di cellule che possono essere contrassegnati con “O„ o “X„.
Giocatori alternativamente luogo “O„ e “X„ marchi in celle vuote fino a quando uno dei giocatori completa una riga, colonna o diagonale.
Perché ci sono 3 righe, colonne e 3, e 2 diagonali, non vi sono otto modelli di vincita per ogni giocatore.
tic_tac_toe_board_and_winning_patterns.jpg
Tic-Tac-Toe bordo e vincenti modelli
E 'banale per scrivere una funzione ricorsiva che esplora tutti i possibili Tic-Tac-Toe giochi, perché la durata massima del gioco è di nove mosse.
In ogni punto del gioco abbiamo semplicemente esaminare i risultati di passare in ciascuno dei rimanenti celle vuote.
Tale funzione può confermare che un Tic-Tac-Toe partita giocata con “perfetta giocatori„ si concluderà con nessun vincitore.

9.2 Formazione una rete neurale per indicare i migliori si muove

Una funzione ricorsiva possono esplorare tutti i possibili giochi e di determinare la mossa migliore per ogni bordo di configurazione.
Aggiungiamo ogni bordo di configurazione (ingressi), e la migliore mossa (desiderato uscite), a un elenco di oggetti di formazione.
Abbiamo poi addestrare la rete per produrre l'output desiderato per ogni serie di fattori produttivi.
La rete avrà 9 ingressi corrispondenti a ciascuna cella della griglia, apporto e il valore sarà limitato ai seguenti valori:
0: vuoto cella
+1: Protagonista giocatore
-1: Opponente giocatore
La rete avrà 9 risultati corrispondenti a ciascuna cella della griglia, e l'output dei valori sarà limitata ai seguenti valori:
0: Non spostare qui
1: Portare qui
Otto uscite verrà impostato a “0,„ ed uno di uscita verrà impostata a “1.„
Così, dopo la formazione della rete neurale, un consiglio di amministrazione di configurazione può essere specificato come input, e la rete neurale indicherà la migliore mossa.
L'uscita più vicino a “1„ indica la migliore mossa, e tutte le altre uscite dovrebbe essere vicina a “0.„
In generale, qualsiasi funzione booleana con parametri e uscite booleana può essere rappresentato da una rete neurale con due strati di neuroni.
Il primo strato di neuroni in grado di dividere spazio pluridimensionale per regioni, e il secondo strato combina la regione classifiche di esibire i valori di output.
Tic-Tac-Toe la rete neurale booleana produce risultati, e anche se gli ingressi sono tre stati ( -1, 0, +1 ), si potrebbe, in princple, convertire questi pochi valori discreti di ingresso a una serie di ingressi booleani.
Pertanto, due strati di neuroni dovrebbe essere sufficiente per imparare Tic-Tac-Toe.
Poiché la rete ha 9 uscite, ci sono 9 gli organismi neurone in finale (secondo) livello.
L'unica rete neurale progettazione decisione è di decidere il numero di organismi neurone a mettere in primo strato di rete neurale.
A prendere questa decisione, codice di computer in grado di generare e formare una rete neurale con N neuroni nel primo strato.
La capacità della rete neurale per saperne di completare la formazione fissato per Tic-Tac-Toe può essere graficamente.
Il grafico che segue illustra la formazione fissato errore nel corso di formazione per ciascuna delle 48 diverse reti neurali, con N = 1,2,...,48 neuroni nel primo strato.
neuron_training_tictactoe_nlayers01.jpg
Nel complesso la formazione fissato errore durante la formazione, per N = 1,2,...,48 neuroni nel primo strato (N = 1 è in cima, e N = 48 è in basso, e la maggior parte delle curve intermedie sono inferiori per i valori più alti di N)
Un altro modo per visualizzare questa tendenza è di formare una superficie dalla sequenza di curve:
neuron_training_tictactoe_surface01.jpg
Nel complesso la formazione fissato errore durante la formazione, per N = 1,2,...,48 neuroni nel primo strato (N = 1 è alle spalle, e N = 48 è nella parte anteriore)
Così, vediamo che mentre ci avviciniamo N = 48 neuroni nel primo strato, la rete sembra essere in grado di accettare tutti i casi di formazione.
Nulla di meno di 48 neuroni livelli sembra insufficiente per imparare il set completo di casi.
Per la diminuzione del numero di neuroni, ogni neurone riduce significativamente l'errore.
Tuttavia, quando il numero di neuroni è vicino al numero necessario per apprendere le informazioni di tutta la serie di lezioni, ogni neurone solo riduce l'errore di una parte relativamente piccola quantità.
La seguente immagine mostra una rete neurale con 9 ingressi, e 48 neurone organismi nel primo strato, e 9 neurone organismi in un secondo strato, e 9 uscite.
tic_tec_toe_network.jpg
Una rete neurale in grado di imparare a giocare tic-tac-toe
Il computer codice associato con il presente documento include il codice per costruire e formare la rete neurale sopra indicato.
La formazione di 4520 ha fissato gli elementi di formazione.
In 200 iterazioni di formazione (con la partecipazione di propagazione 3 passi, per un totale di simulazione 200 * 4520 * 3 = 2712000 passi e lo stesso numero di errore propagazione passi), l'errore globale è diminuito da 1.520 a 0.153.
(Tali numeri possono variare a seconda casuale condizioni iniziali.)
I corsi di formazione di diversi minuti.
Di seguito sono riportati due esempi di determinati ingressi e uscite di prodotti la formazione rete neurale:
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
La rete è stato addestrato a produrre le migliori mosse per il giocatore con il segno corrisponde a “+1.„
La migliore per spostare il giocatore avversario, il cui marchio corrisponde a “-1,„ può essere trovato moltiplicando tutti gli ingressi di (-1) prima che simula la rete neurale.

10. Formazione reti neurali

La seguente è una citazione da “Artificial Intelligence„ (3rd edition; Addison Wesley; 1993), di Patrick Henry Winston, capitolo 22, Learning by Training Neural Nets, p.  468.
Neurale-Net La formazione è uno Arte
Ora si sa che si devono affrontare molte scelte dopo si decide di lavorare su un problema di formazione di un rete neurale utilizzando indietro propagazione:
* Come si possono rappresentare le informazioni in rete neurale?
Come si può utilizzare rete neurale ingressi per esprimere ciò che sai?
Come si può utilizzare rete neurale uscite per determinare ciò che volete sapere?
* Quanti neuroni se avete nella vostra rete neurale?
Quanti ingressi?
Quante uscite?
Come molti pesi?
Come molti strati nascosti?
* Che cosa parametro di velocità si dovrebbe utilizzare nel retro-propagazione formula?
* Se il vostro treno rete neurale in fasi successive o simultaneamente?
Scelte sbagliate diminuendo l'efficacia.
Una piccola rete neurale non può sapere che cosa lo desiderate imparare.
Un grande netto impareranno lentamente, può rimane bloccata su massimi locale, e può esporre overfitting.
Un piccolo parametro di velocità instabilità può promuovere o fornire previsioni poveri.
Purtroppo, il buon scelte dipendono dalla natura dei campioni.
Matematicamente, è possibile visualizzare i campioni in qualità di rappresentante scorci di una funzione nascosta, con una dimensione per ogni ingresso.
Se vi sono molti fattori di produzione, la funzione del carattere multidimensionale rende difficile la funzione di pensare e impossibile da visualizzare.
Di conseguenza, la miglior guida per le scelte è tentativi ed errori, buttressed, se possibile, con riferimento alle scelte che hanno lavorato bene in problemi simili.
Di conseguenza, il successo di implementazione di reti neurali-tecnologia richiede tempo ed esperienza.
Neurale-net artisti esperti sono, non sono semplice manuale utenti.

11. Rendere i valori di input e output valori adatti per una rete neurale

Il modello matematico di un neurone corpo presentati in questo documento produce un valore di output utilizzando la “logistica Funzione sigmoidea„ (vale a dire, ( 1 / (1 + Exp(-x)) )).
Pertanto, i risultati sono limitati alla gamma da 0.0 a 1.0.
Quindi, il modello matematico di una rete neurale presentati in questo documento può essere utilizzato direttamente da imparare e produrre output nella gamma da 0.0 a 1.0, come ad esempio per booleana uscite, o per il continuo uscite limitata solo a una parte di tale gamma.
Tuttavia, la rete può essere usato anche per imparare e produrre output in qualsiasi gamma limitata se le uscite sono convertiti da e per la gamma da 0.0 a 1.0.
Supponiamo, ad esempio, i valori di output finale sono limitati alla gamma da P a Q, e supponiamo Z rappresenta un arbitrario output finale limitato al valore che varia tra P a Q, e supponiamo Y rappresenta una corrispondente rete neurale produzione limitata dal campo da 0.0 a 1.0.
Le seguenti formule possono essere utilizzati per convertire tra i due tipi di valori di output:
Y  = (Z - P)  /  (Q - P);          // Q > P; Q != P

Z  =   P  +  (Q - P) * Y;          // Q > P
Conversione di un output finale di una rete neurale di uscita è necessario durante la formazione.
Convertire una rete neurale output in un output finale è necessario, nel corso del normale simulazione.
Ingressi a reti neurali non sono così limitati, poiché i risultati, perché i collegamenti sono valori di peso che può attenuare o amplificare i valori di input arbitrario.
Tuttavia, l'ingresso valori di gran lunga al di fuori della gamma da -1.0 a 1.0 potrebbe causare problemi, perché i pesi prima di avere la possibilità di regolare, l'estrema valori arrivare prima come parametro per la “logistica Funzione sigmoidea„ ( 1 / (1 + Exp(-x)) ).
Valori estremi di funzione che renderà l'uscita del neurone molto vicino a 0.0 o 1.0, e quando gli errori si propagano a ritroso attraverso la rete a quella neurone, l'errore verrà attribuita la ponderazione di (Output * (1 - Output)), che sarà estremamente ridotto.
Pertanto, la conversione dei valori di input originale per la gamma da 0.0 a 1.0 prima di fornire tali valori agli ingressi della rete neurale è probabilmente una buona idea.
Supponiamo che l'originale ingresso valori sono limitati alla gamma da A a B, e supponiamo W rappresenta un originale ingresso arbitrario valore limitato alla gamma da A a B, e supponiamo X rappresenta una rete neurale corrispondente valore di input che abbiamo scelto di limitare il vanno da 0.0 a 1.0.
La seguente formula può essere utilizzato per convertire il valore originale di ingresso ad un valore appropriato per la fornitura di rete neurale.
(Non vi è alcuna necessità di convertire una rete neurale valore di input per un valore nella gamma di input originale.)
X  = (W - A)  /  (B - A);          // B > A; B != A

12. Riferimenti

I seguenti libri possono essere utili per capire le reti neurali e loro applicazioni.
[1] Artificial Intelligence (3rd ed) (Patrick Henry Winston; Addison-Wesley; 1993)
Questo libro è molto interessante e utile.
L'autore descrive molti argomenti affascinante, con esempi, con dettaglio sufficiente a consentire di utilizzare i concetti in situazioni pratiche.
L'autore descrive le reti neurali e “ritorno propagazione„ di apprendimento significativo nel dettaglio, comprese le riserve matematiche in italiano.
[2] Artificial Intelligence: A New Synthesis (Nils J Nilsson; Morgan Kaufmann; 1998)
Questo libro, come riferimento [1], è un affascinante e pratica introduzione alla Intelligenza Artificiale.
Tuttavia, questo libro è un po 'più concisa di riferimento [1].
Penso che una persona che potrebbero trarre vantaggio da entrambi i [1] lettura e [2].
Vorrei solo raccomandare questo libro se si ha un forte interesse per tutti Intelligenza Artificiale, che raccomando [1] riferimento anche a quelle che sono specificamente interessati a conoscere le reti neurali.
[3] Focus on AI (Prima Tech / Prima Publishing)
Parte del gioco lo sviluppo serie a cura di Andre LaMothe.
Questo libro è utile per i programmatori di gioco, ed è pieno di esempi di codice per computer dimostrare che le reti neurali, algoritmi genetici, logica fuzzy, applicata a tutti i caratteri comportamento di gioco.
colinfahey.com
informazioni di contatto
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية