È possibile ottenere una ANN migliore rimuovendo alcune connessioni?


11

Mi chiedevo se in alcune circostanze è possibile che le ANN funzionino meglio se si eliminano alcune connessioni come ad esempio:

Costruire una ANN prendendo in parallelo due ANN e A a più strati (stessi nodi di input e output) aggiungendo alcune connessioni di "comunicazione" tra gli strati nascosti di A e B?

Si potrebbero ottenere risultati di generalizzazione migliori?

Questo è in qualche modo utilizzato nella pratica o si usano sempre reti multistrato completamente connesse?

Risposte:


7

Sì, è possibile. Alcune persone hanno esaminato questo problema in dettaglio. Ecco un vecchio documento su un metodo per farlo: danno cerebrale ottimale


Perché staccare i nodi è meglio della regolarizzazione? Ho pensato, con la regolarizzazione non è necessario potare le connessioni - quelle "non necessarie" avranno solo pesi molto piccoli e basta.
Andreister

@andreister Non penso sia meglio della regolarizzazione. Penso che sia una (prima) alternativa alla regolarizzazione. È un documento molto vecchio, la regolarizzazione è diventata mainstream nella ML dalla metà alla fine degli anni novanta.
carlosdc,

7

Come regola generale, le reti piccole e / o sparse si generalizzano meglio. Puoi lasciare che il tuo algoritmo di allenamento elimini le connessioni non necessarie all'interno di una rete di dimensioni fisse applicando una qualche forma di decadimento del peso, oppure puoi applicare un algoritmo che mira a ottimizzare l'architettura / topologia di rete stessa rimuovendo input non necessari, nodi nascosti o connessioni.

Dai un'occhiata a questi riferimenti per idee e punti di partenza per ulteriori ricerche, oppure cerca l'uso di algoritmi evolutivi per progettare, potare e ottimizzare le architetture.

  1. Castellano, G., Fanelli, AM (2000) "Selezione variabile mediante modelli di reti neurali", Neurcomputing (31)
  2. Ji C., Psaltis D. (1997) "Network Synthesis through Data-Driven Growth and Decay", Neural Networks Vol. 10, n. 6, pagg. 1133-1141
  3. Narasimha PL et al (2008) "Un metodo integrato di potatura crescente per l'addestramento alla rete feedforward", Neurocomputing (71), pagg. 2831-2847
  4. Schuster, A. (2008) 'Robust Artificial Artificial Network Architectures', International Journal of Computational Intelligence (4: 2), pp. 98-104

Mi piacerebbe davvero saperne di più sulla parte "risposta all'uso degli algoritmi evolutivi per progettare, potare e ottimizzare le architetture". Forse farò una domanda al riguardo!
Artem Kaznatcheev,

6

Nella maggior parte dei casi, se si rimuovono connessioni non necessarie, si otterrà una rete migliore. È facile sovrastare (sovrautilizzare) la rete, nel qual caso funzionerà male sul set di dati di validazione.

La potatura di connessioni non necessarie ridurrà molto probabilmente la probabilità di sovrallenamento. Si prega di consultare: http://en.wikipedia.org/wiki/Overfitting .


5

Sì, è possibile. Possiamo considerare, collegamento tra unità computazionali, numero di livelli nascosti, unità per livello nascosto ecc. Come iperparametri. È possibile scoprire valori ottimali per questi parametri conducendo una serie di esperimenti.

Per esempio:

Puoi dividere il tuo set di dati nel modo seguente: Set di formazione 60% di dati, Convalida incrociata del 20% di dati, Test del 20% di dati,

Quindi allenare il NN utilizzando il set di dati di allenamento e il parametro di ottimizzazione utilizzando il set di dati di convalida incrociata.

Finalmente puoi usare il tuo set di dati di test per valutare le prestazioni del tuo NN.

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.