ANN per la scienza dei dati | Nozioni di base sulla rete neurale artificiale

Contenuti

Questo post è stato pubblicato come parte del Blogathon sulla scienza dei dati

In questo post, Spiegherò i concetti base delle reti neurali e del loro codice. Attualmente, molti studenti imparano semplicemente a codificare le reti neurali senza comprenderne le basi e come funziona internamente. Primo, Cosa sono le reti neurali?

Cos'è la rete neurale?

Neural Network è una serie di algoritmi che cercano di imitare il cervello umano e trovare il collegamento tra i set di dati. Viene utilizzato in vari casi d'uso come regressione, classificazione, accreditamento immagine e molto altro.

Come abbiamo detto in precedenza, le reti neurali cercano di imitare il cervello umano, allora potrebbero esserci differenze e somiglianze tra loro. Parliamone brevemente.

Algunas diferencias importantes entre ellos son que la neuronale rosso biológica realiza un procesamiento paralelo, mentre la rete neurale artificiale esegue l'elaborazione seriale, anche nel primo, l'elaborazione è più lenta (in millisecondi), mentre in quest'ultimo la lavorazione è più veloce (in un nanosecondo).

architettura ANN

Una rete neurale ha molti livelli e ogni livello svolge una funzione specifica, y a misura que aumenta la complejidad del modelo, aumenta anche il numero di strati, questo è il motivo per cui è noto come perceptron multistrato.

La forma più pura di una rete neurale ha tre strati: il livello di input, la capa oculta y la capa de salida. Il livello di ingresso raccoglie i segnali di ingresso e li trasferisce al livello successivo e, finalmente, la capa de salida da el pronóstico final y estas redes neuronales deben entrenarse con algunos datos de addestramento, così come con algoritmi di apprendimento automatico prima di fornire un particolare ostacolo. Ora, capiamo di più sul perceptron.

Informazioni su Perceptron

Come discusso in precedenza, il perceptron multistrato è semplicemente gli strati nascosti o densi. Sono costituiti da molti neuroni e i neuroni sono l'unità principale che lavora insieme per formare il perceptron.. In parole semplici, come puoi vedere nella foto sopra, cada círculo representa neuronas y una combinación vertical de neuronas representa perceptrones que es simplemente una capa densa.

Ora, nella foto sopra, puoi vedere la vista dettagliata di ogni neurone. Qui, ogni neurone ha dei pesi (nella foto sopra w1, w2, w3) e pregiudizi e, in base a questi calcoli, sono eseguiti come, combinazione = bias + pesos * iscrizione (F = w1 * x1 + w2 * x2 + w3 * x3) y por último se aplica la funzione sveglia uscita = attivazione (combinazione) nella foto sopra, l'attivazione è sigmoide rappresentata da 1 / (1 + e-F). Ci sono alcune altre funzioni di attivazione, Che cosa riprendere, ReLU . che perde, soh e molti altri.

ANN lavoro

All'inizio, le informazioni vengono inviate al livello di input che successivamente le trasferisce ai livelli nascosti, e l'interconnessione tra questi due strati assegna pesi a ciascun input in modo casuale nel punto iniziale. e successivamente il bias viene aggiunto a ciascun neurone di input e dopo questo, la somma ponderata che è una combinazione di pesi e bias viene passata attraverso la funzione di attivazione. La función de activación tiene la responsabilidad de qué nodo disparar para la extracción de características y por último se calcula la salida. L'intera procedura è nota come Propagazione in avanti.. Dopo aver confrontato il modello di output con l'output originale e l'errore è noto e infine, i pesi vengono aggiornati in propagazione all'indietro per ridurre l'errore e questa procedura continua per un certo numero di epoche (iterazione). In sintesi, si aggiornano i pesi del modello e si fa la previsione.

Vantaggio

  1. ANN ha la capacità di apprendere e modellare relazioni complesse e non lineari, poiché molte relazioni input-output non sono lineari.
  2. Dopo l'allenamento, ANN può dedurre relazioni invisibili da dati invisibili e, perché, si generalizza.
  3. A differenza di molti modelli di apprendimento automatico, ANN non ha restrizioni sui set di dati, poiché i dati devono avere una distribuzione gaussiana o nessun'altra distribuzione.

Applicazioni

Ci sono molte applicazioni di ANN. Alcuni di loro sono :

  1. Pre-elaborazione delle immagini e accreditamento dei caratteri.
  2. Previsione.
  3. Valutazione del credito.
  4. Intercettazione di una frode.
  5. Gestione del portafoglio.

PARTE DI CODIFICA

Ora codifichiamo e comprendiamo i concetti che lo utilizzano.

1. Comprensione e caricamento dei set di dati

Prima importazione di librerie come NumPy, panda e importare anche le cosiddette classi sequenziali dense dalla libreria Keras.

importa numpy come np
importa panda come pd
da keras.models import Sequential
da keras.layers import Dense

Ora, qui userò il set di dati sull'insorgenza del diabete degli indiani Pima, che è un set di dati di apprendimento automatico standard dal repository di apprendimento automatico UCI e il collegamento può essere trovato di seguito. Questo set di dati riporta l'anamnesi del paziente e se ha avuto un'insorgenza di diabete entro cinque anni, è anche un ostacolo alla classificazione binaria.

Puoi scaricare i set di dati da qui:

Set di dati

Ora importa il set di dati usando i panda e in seguito capiamo di più sui set di dati e in seguito dividiamo i set di dati in variabili dipendenti e indipendenti.

set di dati = pd.read_csv('pima-indiani-diabete.csv')
X = set di dati[:,0:8]
y = set di dati[:,8]

2. Definizione del modello Keras

I modelli in Keras sono definiti come una sequenza di livelli in cui ogni livello viene aggiunto uno dopo l'altro. L'input deve contenere le caratteristiche di input e viene specificato durante la creazione del primo livello con input_dims discussione. Qui input_dims sarà 8.

Ora sorge la domanda su come possiamo scegliere il numero di strati e il numero di neuroni in ogni strato.

È abbastanza difficile sapere quanti strati dovremmo usare. In generale per questo Sintonizzatore Keras Usato, che ha una gamma di strati, una gamma di neuroni e alcune funzioni di attivazione. e successivamente, attraverso permutazioni e combinazioni, prova a trovare qual è il più adatto. Ma uno svantaggio è che ci vuole molto tempo. Puoi controllare la sua documentazione. Sintonizzatore Keras per ulteriori dettagli.

In questo esempio, viene utilizzata una rete completamente connessa con tre livelli che è definito usando la classe densa. Il primo argomento prende il numero di neuroni in quello strato e, e attivazione L'argomento accetta la funzione di attivazione come input. Qui, ReLU viene utilizzato come funzione di attivazione nei primi due strati e sigmoide nell'ultimo strato, poiché è un ostacolo alla classificazione binaria.

modello = Sequenziale()
modello.aggiungi(Denso(12, input_dim=8, attivazione = 'rileggere'))
modello.aggiungi(Denso(8, attivazione = 'rileggere'))
modello.aggiungi(Denso(1, attivazione='sigmoide'))

3. Compila il modello Keras

Durante la compilazione, debemos especificar la función de pérdida para calcular los errores, l'ottimizzatore per aggiornare i pesi e le metriche.

In questa circostanza, noi useremo binary_crossentropy Come la perduto argomento dato che si tratta di un ostacolo alla classificazione binaria.

Qui prenderemo ottimizzatore Che cosa “Adamo“Dal momento che si sintonizza automaticamente e si comporta bene su un'ampia gamma di problemi e alla fine raccoglieremo e riporteremo l'accuratezza della classifica per mezzo di metrica discussione.

modello.compila(perdita="binary_crossentropy", ottimizzatore="Adamo", metriche=['precisione'])

4. Vestibilità del modello Keras.

Ora adatteremo il nostro modello ai dati caricati chiamando adattarsi() funzione nel modello.

La procedura di addestramento verrà eseguita per un numero fisso di iterazioni attraverso il set di dati specificato tramite il epoche discussione. Il numero di righe nel set di dati deve essere aggiornato e viene aggiornato all'interno di ogni epoca, e stabilisci usando il Dimensione del lotto discussione.

Qui, eseguiremo 150 epoche e una dimensione del lotto di 10.

model.fit(X, e, epoche=150, batch_size=10)

5. Esamina il modello Keras

La valutazione del modello sul set di dati può essere eseguita utilizzando il esaminare() funzione. Servono due argomenti, In altre parole, ingresso e uscita. Genererà una previsione per ogni coppia di input e output e raccoglierà i punteggi, inclusa la perdita media e qualsiasi metrica, come la precisione.

il esaminare() La funzione restituirà una lista con due valori, il primo è la perdita del modello e il secondo sarà la precisione del modello nel set di dati. Ci interessa solo riportare l'accuratezza e, perché, ignoriamo il valore della perdita.

_, accuratezza = modello.valutare(X, e)
Stampa('Precisione: %.2F' % (precisione*100))

6.Fare previsioni

La previsione si può fare chiamando prevedere() funzione nel modello. Qui viene utilizzata la funzione di attivazione sigmoide nel livello di output, quindi le previsioni saranno una probabilità nell'intervallo tra 0 e 1.

forecasts = model.predict(X)
arrotondato = [il giro(X[0]) per x nelle previsioni]

Riepilogo del codice finale

Aquí hemos aprendido cómo crear su primer modelo de red neuronal usando la poderosa biblioteca Keras Python para el apprendimento profondo.

Ci sono sei passaggi principali nell'uso di Keras per creare una rete neurale o un modello di deep learning che carichi i dati, definire la rete neurale in Keras, dopo compilare, valutare e infine fare previsioni con il modello.

CONCLUSIONE

In questo post abbiamo compreso i concetti base delle reti neurali artificiali e del loro codice. Nella parte di codifica, Abbiamo utilizzato il set di dati sull'insorgenza del diabete degli indiani Pima. qui abbiamo capito in dettaglio i sei passaggi principali per creare reti neurali. A parte questo, molte cose non sono state trattate nei blog e, prossimo, Ho fornito i link di altri blog da cui è possibile consultare gli argomenti.

  1. Diversi tipi di funzioni di costo e loro applicazioni.
  2. Acerca de Gradient Descent.
  3. Documentazione Keras

Il supporto mostrato in questo post non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.