Perché le funzionalità derivate vengono utilizzate nelle reti neurali?


13

Ad esempio, si vuole prevedere i prezzi delle case e avere due caratteristiche di input: la lunghezza e la larghezza della casa. A volte, si includono anche funzioni di input polinomiali "derivate", come area, che è lunghezza * larghezza.

1) Qual è lo scopo di includere funzionalità derivate? Una rete neurale non dovrebbe imparare la connessione tra lunghezza, larghezza e prezzo durante l'allenamento? Perché la terza funzione, area, non è ridondante?

Inoltre, a volte vedo anche che le persone eseguono algoritmi di selezione genetica sulle funzionalità di input per ridurne il numero.

2) Qual è lo scopo di ridurre le funzionalità di input se tutte contengono informazioni utili? La rete neurale non dovrebbe assegnare pesi adeguati a ciascuna funzione di input in base alla sua importanza? Qual è il punto di eseguire algoritmi di selezione genetica?

Risposte:


8

nlnlnl

2): Ci sono due ragioni che conosco per questo. Innanzitutto, se hai migliaia di funzionalità fornite (come spesso accade nei dati del mondo reale) e hai poco tempo a disposizione della CPU per l'addestramento (anche un evento comune), puoi utilizzare una serie di algoritmi di selezione delle diverse funzionalità per ridurre lo spazio delle funzionalità in anticipo. Gli approcci di principio a questo spesso usano misure teoriche dell'informazione per selezionare le caratteristiche con il più alto potere predittivo. In secondo luogo, anche se puoi permetterti di allenarti su tutti i dati e tutte le funzionalità che hai, le reti neurali sono spesso criticate per essere modelli di "scatola nera". Ridurre in anticipo lo spazio delle funzionalità può aiutare a mitigare questo problema. Ad esempio, un utente che guarda l'NN non può facilmente dire se un peso di 0,01 significa "0, ma il processo di ottimizzazione non è arrivato abbastanza" o "


0

1) La maggior parte delle reti neurali non può eseguire moltiplicazioni; possono solo calcolare somme (che vengono poi alimentate individualmente attraverso una funzione di attivazione ). Devono invece stimare tali moltiplicazioni se sono importanti, il che richiede molti neuroni, specialmente se i fattori possono estendersi su ampi intervalli.

Se si scopre che l'area della casa è in effetti una caratteristica importante, aiuterai la rete se la fornisci con l'area, perché può quindi utilizzare i neuroni che avrebbe richiesto per stimare la moltiplicazione della larghezza e della lunghezza fare altre cose.

Pertanto, includere le funzionalità polinomiali può in alcuni casi essere vantaggioso per la rete, ma in altri casi non ha effetti significativi. Inoltre, le funzionalità polinomiali sono solo un tipo di funzionalità derivate che possono essere utili alla rete. Un altro tipo di funzionalità derivata che può rivelarsi utile è ad esempio i logaritmi delle variabili di input (considerati positivi) che anche la rete deve stimare per ottenere.

Un'idea sarebbe quella di consentire alla rete di eseguire più operazioni tra numeri rispetto alle sole aggiunte, per consentirle di calcolare in modo efficiente cose come le funzionalità polinomiali stesse, ma non è chiaro come funzionerebbe. Un'architettura che sembra fare qualcosa di simile è la rete di somma dei prodotti .

2) Tranne il costo computazionale menzionato da John, aumentando il numero di parametri nel modello, cosa inevitabile che si verifica quando si introducono più input, aumenta anche il rischio di overfit della rete , soprattutto se si hanno pochi dati di training.

Tuttavia, questo può essere trasformato in un problema molto meno se si utilizza un buon metodo di regolarizzazione. (Il dropout sembra funzionare molto bene per quello) Teoricamente, con un metodo di regolarizzazione abbastanza buono, l'overfitting non dovrebbe essere affatto un problema. Come sottolinea Hinton, un umano ha nell'ordine di 10 ^ 14 sinapsi nel cervello (corrispondente alle connessioni nella rete neurale), ma vive solo nell'ordine di 10 ^ 9 secondi, ma sembra che siamo ancora in grado di generalizzare abbastanza bene. Quindi, chiaramente, avere molti parametri che possono essere sintonizzati dovrebbe essere solo un vantaggio con l'algoritmo giusto.

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.