Proprietà per la costruzione di una rete neurale Perceptron multistrato utilizzando Keras?


8

Sto cercando di costruire e addestrare una rete neurale percettrice multistrato che preveda correttamente quale presidente ha vinto in quale contea per la prima volta. Ho le seguenti informazioni per i dati di allenamento.

Popolazione totale Età media% Laurea triennale o superiore Tasso di disoccupazione Reddito pro capite Numero totale di famiglie Dimensione media delle famiglie% Abitazione occupata dal proprietario% Abitazione occupata dal locatore% Abitazione vacante Valore della casa mediana Crescita della popolazione Crescita della popolazione pro capite Crescita del reddito pro capite

Sono 14 colonne di dati di allenamento e la 15a colonna è ciò che dovrebbe essere l'output.

Sto cercando di usare Keras per costruire una rete neurale percettrice multistrato, ma ho bisogno di aiuto per comprendere alcune proprietà e i pro dei contro della scelta di diverse opzioni per queste proprietà.

  1. FUNZIONE DI ATTIVAZIONE

So che il mio primo passo è trovare una funzione di attivazione. Ho sempre studiato le reti neurali utilizzate funzioni di attivazione sigmoide. Una funzione di attivazione sigmoid è la migliore? Come fai a sapere quale usare? Keras offre inoltre la possibilità di utilizzare una funzione di attivazione softmax, softplus, relu, tanh, linear o hard_sigmoid. Sto bene usando qualunque cosa, ma voglio solo essere in grado di capire perché e i pro e i contro.

  1. INIZIALIZZAZIONI DI PROBABILITÀ

So che le inizializzazioni definiscono la distribuzione di probabilità utilizzata per impostare i pesi casuali iniziali dei livelli di Keras. Le opzioni che Keras offre sono uniformi lecun_uniform, normal, identity, orthogonal, zero, glorot_normal, glorot_uniform, he_normal e he_uniform. In che modo la mia selezione influisce sul risultato o sul modello finale? Non dovrebbe importare perché stiamo "allenando" qualunque modello casuale iniziamo e creiamo comunque una ponderazione più ottimale degli strati?

Risposte:


6

1) L'attivazione è una scelta di architettura, che si riduce a una scelta di iperparametri. È possibile formulare un argomento teorico per l'utilizzo di qualsiasi funzione, ma il modo migliore per determinarlo è provare diversi e valutare su un set di convalida. È anche importante ricordare che puoi mescolare e abbinare le attivazioni di vari livelli.

2) In teoria sì, molte inizializzazioni casuali sarebbero le stesse se i tuoi dati fossero estremamente ben educati e l'ideale della tua rete. Ma in pratica le inizializzazioni cercano di garantire che il gradiente inizi in modo ragionevole e che il segnale possa essere riproposto correttamente. Probabilmente in questo caso una qualsiasi di queste inizializzazioni funzionerebbe in modo simile, ma l'approccio migliore è provarle, cambiando se si ottengono risultati indesiderati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.