Il sito contiene i migliori consigli, trucchi e soluzioni ai problemi che potresti incontrare. Segreti, trucchi di vita, storie e tutto ciò che riguarda la vita e le relazioni.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

3

Cos’è una rete neurale?

Come sai, il nostro cervello è una cosa complessa. Il coordinamento del suo lavoro avviene attraverso i neuroni – cellule nervose con rami che si estendono da loro. Intrecciandosi tra loro, i neuroni formano una rete neurale, un meccanismo intricato che determina tutta la diversità della psiche umana. Questa è la radice della nostra autocoscienza, il sentimento di noi come individui, guidati dai nostri desideri e aspirazioni interiori.

Se si verifica un malfunzionamento nel lavoro dei neuroni, la persona cambia oltre il riconoscimento. A seconda della gravità della lesione, i cambiamenti vanno da lievi segni di comportamento deviante alla cessazione del normale funzionamento del corpo. Il danno cerebrale è spesso fatale.

Ma oggi non parleremo di biologia, perché non solo il sistema del nostro cervello si chiama reti neurali, ma anche un complesso programma per computer con principi operativi simili. Come la materia grigia, è frattale, cioè consiste in molti programmi più semplici che formano una sorta di simbiosi.

Durante il funzionamento, la rete neurale impara, acquisisce esperienza e diventa più perfetta. Quindi, abbiamo a che fare con un vero organismo digitale, che si prevede un giorno supererà il suo creatore.

Come sono apparse le reti neurali

L’emergere del concetto di reti neurali artificiali risale agli anni ’40 del secolo precedente. In particolare, è associato agli scienziati McCulloch e Pitts, che hanno cercato di simulare i processi del cervello. Hanno anche proposto l’idea di creare un sistema di autoapprendimento progettato per eseguire varie operazioni logiche. Il problema era che le tecnologie di quel tempo erano lontane da quelle di oggi e gli inventori non riuscirono a realizzare appieno le loro idee.

(Warren McCulloch e Walter Pitts)

Il loro lavoro fu continuato dal fisiologo canadese Donald Hebb e nel 1949 fu presentato al mondo il primo algoritmo per il calcolo della ANN. Per i successivi 10 anni, servì come base per lo sviluppo di altri scienziati, fino a quando, finalmente, nel 1958, Frank Rosenblatt creò il parceptron, una tecnologia che imita il lavoro del nostro cervello. Per l’epoca, questa novità era incredibile. Scienziati sovietici e americani si unirono al lavoro, che diedero anche un notevole contributo alla ricerca.

Tra la fine del XX e l’inizio del XXI secolo, la tecnologia ha fatto un balzo in avanti, che è servito come un buon incentivo per un’attività scientifica più intensa, e nel 2007 l’informatico Jeffrey Hinton ha inventato un algoritmo di apprendimento profondo per le reti neurali, che è ora ampiamente utilizzato in auto a guida autonoma.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

(Geoffrey Hinton)

Un po ‘di storia

Per la prima volta, il concetto di reti neurali artificiali (ANN) è nato quando si cercava di simulare i processi del cervello. La prima grande svolta in quest’area può essere considerata la creazione del modello di rete neurale McCulloch-Pitts nel 1943. Gli scienziati hanno prima sviluppato un modello di un neurone artificiale. Hanno anche proposto la costruzione di una rete di questi elementi per eseguire operazioni logiche. Ma soprattutto, gli scienziati hanno dimostrato che una tale rete è in grado di apprendere.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Il passo successivo importante fu lo sviluppo da parte di Donald Hebb del primo algoritmo per il calcolo della ANN nel 1949, che divenne fondamentale per diversi decenni successivi. Nel 1958, Frank Rosenblatt ha sviluppato il parceptron, un sistema che imita i processi del cervello. Un tempo, la tecnologia non aveva analoghi ed è ancora fondamentale nelle reti neurali. Nel 1986, quasi contemporaneamente, indipendentemente l’uno dall’altro, gli scienziati americani e sovietici migliorarono in modo significativo il metodo fondamentale di insegnamento del perceptron multistrato. Nel 2007, le reti neurali hanno subito una rinascita. Lo scienziato informatico britannico Jeffrey Hinton ha sviluppato per la prima volta un algoritmo di apprendimento profondo per reti neurali multistrato, che ora viene utilizzato, ad esempio, per azionare veicoli senza pilota.

Brevemente sulla cosa principale

Nel senso generale del termine, le reti neurali sono modelli matematici che funzionano sul principio delle reti di cellule nervose in un organismo animale. Le ANN possono essere implementate sia in soluzioni programmabili che hardware. Per facilità di percezione, un neurone può essere immaginato come una sorta di cellula, che ha molti buchi di input e un output. Il numero di segnali in ingresso formati in quello in uscita determina l’algoritmo di calcolo. Valori efficaci vengono forniti a ciascun input neuronale, che vengono poi propagati lungo le connessioni interneuronali (sinossi). Le sinapsi hanno un parametro: il peso, a causa del quale le informazioni di input cambiano quando si passa da un neurone a un altro. Il modo più semplice per immaginare come funzionano le reti neurali può essere rappresentato dall’esempio della miscelazione dei colori. I neuroni blu, verde e rosso hanno pesi diversi.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

La rete neurale stessa è un sistema di molti di questi neuroni (processori). Separatamente, questi processori sono abbastanza semplici (molto più semplici di un processore di personal computer), ma quando sono collegati a un sistema di grandi dimensioni, i neuroni sono in grado di eseguire compiti molto complessi.

A seconda dell’area di applicazione, una rete neurale può essere interpretata in diversi modi: ad esempio, dal punto di vista dell’apprendimento automatico, una ANN è un metodo di riconoscimento di pattern. Da un punto di vista matematico, questo è un problema multiparametrico. Dal punto di vista della cibernetica, è un modello di controllo adattivo della robotica. Per l’intelligenza artificiale, ANN è una componente fondamentale per modellare l’intelligenza naturale utilizzando algoritmi computazionali.

Il vantaggio principale delle reti neurali rispetto agli algoritmi di calcolo convenzionali è la loro capacità di apprendimento. Nel senso generale del termine, l’apprendimento consiste nel trovare i corretti coefficienti di accoppiamento tra i neuroni, nonché nel generalizzare i dati e nell’identificare relazioni complesse tra i segnali di ingresso e di uscita. Infatti, il buon esito dell’addestramento di una rete neurale significa che il sistema sarà in grado di identificare il risultato corretto in base ai dati non presenti nel training set.

Applicazione di reti neurali

Il campo di applicazione delle reti neurali è incredibilmente ampio ed è limitato solo dalla nostra immaginazione. Ne elenchiamo alcuni:

  • Sistemi di controllo automatico del trasporto. Piloti automatici.
  • Internet. Assistenti vocali, browser intelligenti, programmi di traduzione.
  • Economia e affari. Previsione dei tassi di cambio, moderni programmi di contabilità, robot di trading, programmi di valutazione del rischio, gestione delle macchine di produzione, controllo della qualità, ecc.
  • Medicinale. Metodi moderni di diagnosi, analisi dell’efficacia del trattamento, elaborazione di immagini mediche.
  • Robotica. Pianificazione del percorso, riconoscimento vocale e dei gesti.
  • Sicurezza. Gestione di sistemi di videosorveglianza e allarmi.
  • Giochi per computer e intrattenimento. Robot intelligenti, programmi analitici per scacchi e altri giochi.
  • Arte. Creazione di dipinti, libri e altri manufatti culturali.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

La situazione odierna

E non importa quanto sarebbe promettente questa tecnologia, finora le ANN sono ancora molto lontane dalle capacità del cervello e del pensiero umano. Tuttavia, le reti neurali vengono già utilizzate in molte aree dell’attività umana. Finora, non sono in grado di prendere decisioni altamente intellettuali, ma sono in grado di sostituire una persona dove prima era necessaria. Tra le numerose aree di applicazione di ANN, si possono notare: la creazione di sistemi di autoapprendimento dei processi produttivi, veicoli senza pilota, sistemi di riconoscimento delle immagini, sistemi di sicurezza intelligenti, robotica, sistemi di monitoraggio della qualità, interfacce di interazione vocale, sistemi di analisi e molto altro. Questo uso diffuso delle reti neurali è, tra le altre cose, dovuto all’emergere di vari modi per accelerare l’apprendimento di RNA.

Oggi il mercato delle reti neurali è enorme: miliardi e miliardi di dollari. Come dimostra la pratica, la maggior parte delle tecnologie delle reti neurali nel mondo differiscono poco l’una dall’altra. Tuttavia, l’uso di reti neurali è un’impresa molto costosa, che nella maggior parte dei casi può essere consentita solo da grandi aziende. Per lo sviluppo, l’addestramento e il test delle reti neurali, è necessaria una grande potenza di calcolo, è ovvio che i grandi attori del mercato IT ne hanno abbastanza. Tra le principali società che guidano lo sviluppo in quest’area ci sono la divisione DeepMind di Google, la divisione Microsoft Research, IBM, Facebook e Baidu.

Certo, tutto questo è positivo: le reti neurali si stanno sviluppando, il mercato sta crescendo, ma finora il compito principale non è stato risolto. L’umanità non è riuscita a creare una tecnologia che sia persino vicina alle capacità del cervello umano. Diamo un’occhiata alle principali differenze tra il cervello umano e le reti neurali artificiali.

Perché le reti neurali sono ancora lontane dal cervello umano?

La differenza più importante, che cambia radicalmente il principio e l’efficienza del sistema, è la diversa trasmissione del segnale nelle reti neurali artificiali e nella rete biologica dei neuroni. Il fatto è che nella RNA i neuroni trasmettono valori che sono valori reali, cioè numeri. Nel cervello umano vengono trasmessi impulsi con un’ampiezza fissa e questi impulsi sono quasi istantanei. Quindi, ci sono una serie di vantaggi per la rete umana di neuroni.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

In primo luogo, le linee di comunicazione nel cervello sono molto più efficienti ed economiche rispetto alle RNA. In secondo luogo, il circuito a impulsi garantisce la semplicità dell’implementazione della tecnologia: è sufficiente utilizzare circuiti analogici invece di complessi meccanismi computazionali. Infine, le reti di impulsi sono protette dalle interferenze acustiche. I numeri effettivi sono soggetti a rumore, il che aumenta la probabilità di errori.

Prospettive per le reti neurali

Il movimento luddista iniziò all’inizio del XIX secolo. Questa parola è stata usata per descrivere le persone che partecipano alle proteste contro l’urbanizzazione. Con l’industrializzazione della società, quando le macchine utensili iniziarono a sostituire gradualmente i lavoratori, molte persone rimasero senza lavoro ed erano estremamente insoddisfatte della loro situazione. Immagina solo che shock avrebbero sperimentato se avessero saputo che in un paio di centinaia di anni le macchine saranno in grado di parlare e persino di muoversi in modo indipendente!

Nel frattempo, questi tempi sono arrivati, e oggi ci sono anche retrogradi che temono che la robotica e lo sviluppo della tecnologia in generale possano fare uno scherzo crudele con le persone. Dopotutto, se le macchine sono già in grado di svolgere così tante attività oggi, in futuro occuperanno tutti i lavori, rendendo le persone superflue. E questa posizione è confermata solo dalle valutazioni di esperti che di tanto in tanto prevedono l’imminente scomparsa di una determinata professione.

Questa posizione ha il diritto di esistere, ma non è del tutto corretta, poiché nel tempo non solo le vecchie professioni scompaiono, ma ne compaiono anche di nuove. Sì, ci sono pastori e cacciatori di un ordine di grandezza in meno rispetto a prima, ma sono apparsi programmatori e operatori di marketing. Nei momenti di svolta della storia, l’economia si riorienta, estirpando il superfluo e generosamente dotando coloro che sono richiesti.

La crescente influenza delle reti neurali artificiali è evidente, ed è probabile che presto saranno letteralmente ovunque, ma averne paura significa rifiutare la natura umana stessa, che consiste nel desiderio di scoperta e realizzazione.

Creazione di blocchi neurali

Per prima cosa, devi decidere quali sono i componenti di base di una rete neurale – i neuroni -. Il neurone prende i dati di input, esegue determinate operazioni matematiche con esso e quindi restituisce il risultato. Un neurone con due input ha questo aspetto:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Tre cose stanno accadendo qui. Innanzitutto, ogni ingresso viene moltiplicato per il suo peso (mostrato in rosso nel diagramma ):

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Quindi tutti gli ingressi ponderati vengono sommati insieme all’offset b(indicato in verde nel diagramma ):

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Infine, l’importo viene trasferito tramite la funzione di attivazione (contrassegnata in giallo nel diagramma ):

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

La funzione di attivazione viene utilizzata per collegare input non correlati a un output che ha una forma semplice e prevedibile. Di norma, la funzione sigmoide è considerata la funzione di attivazione utilizzata :

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

La funzione sigmoide emette solo numeri in un intervallo (0, 1). Puoi pensarlo come una compressione da (−∞, +∞)a (0, 1). Grandi numeri negativi diventano ~0e grandi numeri positivi diventano ~1.

Un semplice esempio di lavoro con i neuroni in Python

Supponiamo di avere un neurone con due input che utilizza una funzione di attivazione del sigmoide e ha i seguenti parametri:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

w = [0,1]È solo un modo di scrivere w1 = 0, w2 = 1in forma vettoriale. Assegniamo un input con un valore al neurone x = [2, 3]. Per una rappresentazione più compatta, verrà utilizzato il prodotto scalare.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Dato che l’input era x = [2, 3], l’output sarà uguale 0.999. È tutto. Questo processo di passaggio dei dati di input per ricevere l’output è chiamato feedforward.

Costruire un neurone da zero in Python

Cominciamo a implementare il neurone. Ciò richiederà l’uso di NumPy. È una potente libreria Python computazionale che utilizza operazioni matematiche:

uno

2

3

quattro

cinque

6

7

otto

nove

10

undici

12

13

quattordici

quindici

sedici

17

diciotto

diciannove

venti

21

22

23

24

25

26

27

importa numpy come np

def sigmoide ( x ) :

# La nostra funzione di attivazione: f (x) = 1 / (1 + e ^ (- x))

ritorno 1 / ( 1 + np . exp ( x ) )

classe Neuron :

def __init__ ( self , weight , bias ) :

. pesi = pesi

. bias = bias

def feedforward ( self , input ) :

# Immettere i dati di peso, aggiungere l’offset

# e successivo utilizzo della funzione di attivazione

totale = np . punto ( self . pesi , input ) + self . pregiudizio

ritorno sigmoide ( totale )

pesi = np . matrice ( [ 0 , 1 ] ) # w1 = 0, w2 = 1

bias = 4 # b = 4

n = Neuron ( pesi , bias )

x = np . matrice ( [ 2 , 3 ] ) # x1 = 2, x2 = 3

stampa ( n . feedforward ( x ) ) # 0.9990889488055994

Riconosci i numeri? Questo è lo stesso esempio discusso in precedenza. Anche la risposta ricevuta questa volta è uguale 0.999.

Un esempio di raccolta di neuroni in una rete neurale

Una rete neurale è essenzialmente un gruppo di neuroni interconnessi. Una semplice rete neurale si presenta così:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Sul livello introduttivo della rete, ci sono due ingressi – x1e x2. Ci sono due neutroni sullo strato nascosto – h1e h2. C’è un neurone sul livello di output – о1. Si noti che gli input per о1sono risultati di output h1e h2. Ecco come viene costruita la rete neurale.

Un livello nascosto è qualsiasi livello tra il livello di input e il livello di output, che sono rispettivamente il primo e l’ultimo livello. Possono esserci diversi livelli nascosti.

Formazione sulla rete neurale

Output ŷ di una semplice rete neurale a due strati:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Nell’equazione precedente, i pesi W e le distorsioni b sono le uniche variabili che influenzano l’output ŷ.

Naturalmente, i valori corretti per i pesi e le distorsioni determinano l’accuratezza delle previsioni. Il processo di messa a punto di pesi e pregiudizi dai dati di input è noto come addestramento della rete neurale.

Ogni iterazione del processo di formazione consiste nei seguenti passaggi

  • calcolare l’output previsto ŷ chiamato propagazione in avanti
  • l’aggiornamento di pesi e pregiudizi chiamati backpropagation

Il grafico sequenziale di seguito illustra il processo:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Distribuzione diretta

Come abbiamo visto nel grafico sopra, la propagazione in avanti è solo un semplice calcolo e per una rete neurale a 2 strati di base, l’output della rete neurale è dato da:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Aggiungiamo feedforward al nostro codice Python per farlo. Si noti che per semplicità abbiamo assunto che gli offset siano 0.

Tuttavia, abbiamo bisogno di un modo per valutare la “bontà” delle nostre previsioni, cioè fino a che punto sono le nostre previsioni). La funzione di perdita ci consente di fare proprio questo.

Funzione di perdita

Sono disponibili molte funzioni di perdita e la natura del nostro problema dovrebbe determinare la nostra scelta della funzione di perdita. In questo articolo useremo la somma dei quadrati degli errori come funzione di perdita.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

La somma degli errori al quadrato è la media della differenza tra ciascun valore previsto e il valore effettivo.

L’obiettivo dell’allenamento è trovare una serie di pesi e pregiudizi che riducano al minimo la funzione di perdita.

Propagazione posteriore

Ora che abbiamo misurato il nostro errore di previsione (perdite), dobbiamo trovare un modo per propagare l’errore indietro e aggiornare i nostri pesi e pregiudizi.

Per scoprire l’importo appropriato da correggere per pesi e bias, dobbiamo conoscere la derivata della funzione di perdita rispetto a pesi e bias.

Ricordiamo dall’analisi che la derivata di una funzione è la tangente della pendenza della funzione.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Se abbiamo una derivata, possiamo semplicemente aggiornare i pesi e i bias aumentandoli / diminuendoli (vedi diagramma sopra). Questa si chiama discesa del gradiente.

Tuttavia, non possiamo calcolare direttamente la derivata della funzione di perdita rispetto ai pesi e ai bias, poiché l’equazione della funzione di perdita non contiene pesi e bias. Pertanto, abbiamo bisogno di una regola della catena per facilitare il calcolo.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Fuh! Era macchinoso, ma ci ha permesso di ottenere ciò di cui avevamo bisogno: la derivata (pendenza) della funzione di perdita rispetto ai pesi. Ora possiamo regolare i pesi di conseguenza.

Aggiungiamo la funzione di backpropagation al nostro codice Python:

Derivati ​​parziali

Le derivate parziali possono essere calcolate, quindi si sa quale è stato il contributo all’errore per ogni peso. La necessità di derivati ​​è ovvia. Immagina una rete neurale che cerca di trovare la velocità ottimale per un veicolo autonomo. Se l’auto rileva che sta andando più veloce o più lenta della velocità richiesta, la rete neurale cambierà la velocità, accelerando o decelerando l’auto. Cosa sta accelerando / decelerando in questo caso? Derivate di velocità.

Diamo un’occhiata alla necessità di derivati ​​parziali usando un esempio.

Supponiamo che ai bambini venga chiesto di lanciare una freccetta contro un bersaglio, mirando al centro. Ecco i risultati:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Ora, se troviamo un errore generale e lo sottraiamo semplicemente da tutti i pesi, riassumeremo gli errori commessi da ciascuno. Quindi, diciamo che il bambino ha colpito troppo in basso, ma chiediamo a tutti i bambini di sforzarsi di colpire il bersaglio, quindi questo porterà alla seguente immagine:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

L’errore di diversi bambini può diminuire, ma l’errore totale è ancora in aumento.

Trovate le derivate parziali, troviamo separatamente gli errori corrispondenti a ciascun peso. Se si correggono selettivamente i pesi, è possibile ottenere quanto segue:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Iperparametri

Una rete neurale viene utilizzata per automatizzare la selezione delle funzionalità, ma alcuni parametri vengono configurati manualmente.

Tasso di apprendimento

La velocità di apprendimento è un iperparametro molto importante. Se il tasso di apprendimento è troppo basso, anche dopo aver addestrato la rete neurale per un lungo periodo, sarà lontano dai risultati ottimali. I risultati saranno simili a questo:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

D’altra parte, se il tasso di apprendimento è troppo alto, la rete risponderà molto rapidamente. Il risultato è il seguente:

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Reti neurali profonde

L’apprendimento profondo è una classe di algoritmi di apprendimento automatico che impara a comprendere i dati in modo più approfondito (in modo più astratto). Gli algoritmi più diffusi per le reti neurali di deep learning sono presentati nel diagramma seguente.

In parole semplici sul complesso: cosa sono le reti neurali? Scrivere una rete neurale feedforward da zero.

Algoritmi di rete neurale popolari (http://www.asimovinstitute.org/neural-network-zoo )

Più formalmente nel deep learning:

  • Una cascata (pipeline, come flusso trasmesso sequenzialmente) di una pluralità di strati di elaborazione (non lineari) viene utilizzata per estrarre e trasformare le caratteristiche;
  • Basato sullo studio delle caratteristiche (presentazione delle informazioni) nei dati senza apprendimento supervisionato. Le funzioni di livello superiore (che sono negli ultimi strati) sono ottenute dalle funzioni di livello inferiore (che sono negli strati degli strati iniziali);
  • Esplora viste stratificate che corrispondono a diversi livelli di astrazione; i livelli formano una gerarchia di presentazione.

Addestra la rete neurale utilizzando le funzioni XOR

Perché la funzione XOR è così interessante? Semplicemente perché non può essere ottenuto da un neurone: 0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0. Tuttavia, è facilmente ottenibile aumentando il numero di neuroni. Cercheremo di addestrare una rete con 3 neuroni nello strato nascosto e 1 output (poiché abbiamo un solo output). Per fare ciò, dobbiamo creare un array di vettori X e Y con i dati di addestramento e la rete neurale stessa:

// массив входных обучающих векторов Vector[] X = { new Vector(0, 0), new Vector(0, 1), new Vector(1, 0), new Vector(1, 1) }; // массив выходных обучающих векторов Vector[] Y = { new Vector(0.0), // 0 ^ 0 = 0 new Vector(1.0), // 0 ^ 1 = 1 new Vector(1.0), // 1 ^ 0 = 1 new Vector(0.0) // 1 ^ 1 = 0 }; Network network = new Network(new int[]{2, 3, 1}); // создаём сеть с двумя входами, тремя нейронами в скрытом слое и одним выходом 

Quindi iniziamo l’addestramento con i seguenti parametri: velocità di apprendimento – 0,5, numero di epoche – 100000, valore di errore – 1e-7:

network.Train(X, Y, 0.5, 1e-7, 100000); // запускаем обучение сети 

Dopo l’allenamento, esaminiamo i risultati eseguendo un passaggio diretto per tutti gli elementi:

for (int i = 0; i 

Fonte di registrazione: lastici.ru

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More