Come eseguire in modo efficace la modellazione della rete neurale?


13

Quale dovrebbe essere il rapporto tra numero di osservazioni e numero di variabili? Come rilevare overfitting nel modello di rete neurale e quali sono i modi per evitare overfitting? Se voglio eseguire la classificazione con Neural Network, le classi dovrebbero avere la stessa frequenza? Per favore aiutatemi.


1
Hai davvero bisogno di NN? Questo metodo è piuttosto considerato obsoleto (in parte perché in genere è molto difficile rispondere alle tue domande).

1
@mbq: forse questa dovrebbe essere una domanda separata, ma potresti espandere la tua affermazione che le reti neurali sono considerate obsolete? (e da chi?)
naught101

1
@ naught101 Questo è un commento del 2010 ... Oggi purtroppo abbiamo una rinascita di questa follia, quindi dovremo aspettare qualche anno in modo che le NN diventino di nuovo obsolete (;

1
@mbq: questo non risponde alla mia domanda. Ma forse questo fa: stackoverflow.com/questions/683124/neural-networks-obsolete
naught101

Risposte:


25

Il consiglio che vorrei dare è il seguente:

  1. Esaurire le possibilità dei modelli lineari (ad es. Regressione logistica) prima di passare alle reti neurali, specialmente se si hanno molte caratteristiche e non troppe osservazioni. Per molti problemi una rete neurale non supera i semplici classificatori lineari e l'unico modo per scoprire se il tuo problema è in questa categoria è provarlo e vedere.

  2. Analizzare i metodi del kernel (ad es. Support Vector Machines (SVM), regressione logistica del kernel), prima i modelli di processo gaussiani. In entrambi i casi, l'eccessivo adattamento viene controllato efficacemente regolando un piccolo numero di iperparametri. Per i metodi del kernel, questo viene spesso eseguito mediante convalida incrociata, per i modelli di processo gaussiani ciò viene eseguito massimizzando la probabilità marginale (nota anche come "prova" bayesiana per il modello). Ho scoperto che è molto più facile ottenere un modello ragionevole usando questi metodi che con le reti neurali, poiché i mezzi per evitare un eccesso di adattamento sono molto più semplici.

  3. Se vuoi davvero usare una rete neurale, inizia con una rete di funzioni (regolarizzata) a base radiale, piuttosto che una rete di tipo Perceptron Multilayer feedforward (MLP).

  4. Se usi una MLP, usa la regolarizzazione. In tal caso, sarà meno sensibile alle scelte sull'architettura, come l'ottimizzazione del numero di unità nascoste. Invece, tutto ciò che devi fare è scegliere un buon valore per il parametro di regolarizzazione. Il "framework di prove" bayesiano di MacKay fornisce un buon metodo per impostare il parametro di regolarizzazione. Se si utilizza la regolarizzazione, il numero di osservazioni e il numero di variabili diventa molto meno problematico.

Per rilevare un eccesso di adattamento, è sufficiente eseguire la convalida incrociata per testare le prestazioni di generalizzazione.

Per quanto riguarda le classi con frequenze uguali, la cosa da ricordare è che se si allena un modello con un set di addestramento bilanciato, ma le classi non sono bilanciate nei dati operativi, è molto probabile che il modello sottovaluti la classe di minoranza. Se si utilizza un classificatore probabilistico come la regressione logistica o una rete neurale, è sempre possibile correggere le probabilità stimate per tenerne conto dopo l'allenamento. Se il tuo set di dati è molto sbilanciato, consiglierei la ponderazione differenziale dei modelli delle classi positiva e negativa, con i fattori di ponderazione selezionati per convalida incrociata.

Tuttavia, quando le classi sono molto sbilanciate, normalmente gli errori falsi negativi e falsi positivi comportano costi diversi (ad esempio nei test di screening medico un falso negativo è molto peggio di un falso positivo). Così spesso tutto ciò che devi fare è includere i costi di classificazione errata nella funzione di errore utilizzata per addestrare la rete.

Se sei un utente MATLAB (come me), posso consigliare vivamente il software NETLAB (Ian Nabney e Chris Bishop) o il software che accompagna il libro Gaussian Process for Machine Learning di Rasmussen e Williams. Posso consigliare vivamente il libro "Reti neurali per il riconoscimento di schemi" di Chris Bishop per chiunque inizi con le reti neurali. È un libro geniale, che tratta il materiale con grande chiarezza e il minimo livello di matematica richiesto per capire veramente cosa stai facendo, e la maggior parte di esso è implementata nel software NETLAB (che può anche essere eseguito con Octave).

HTH

PS Il modo migliore per modellare con una rete neurale è probabilmente quello di utilizzare un approccio bayesiano basato su Hybrid Monte Carlo (HMC), sviluppato da Radford Neal. In generale i problemi iniziano nella modellazione quando si tenta di ottimizzare alcuni parametri e si finisce per adattarsi eccessivamente. La soluzione migliore è non ottimizzare mai nulla ed emarginare (integrare) piuttosto che i parametri. Purtroppo questa integrazione non può essere eseguita analiticamente, quindi è necessario utilizzare approcci basati sul campionamento. Tuttavia, questo è (a) computazionalmente costoso e (b) un po 'di "arte nera" e ha richiesto profonda conoscenza ed esperienza.

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.