Argomenti di tendenza
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Ho rimosso il 74% dei neuroni da una rete neurale.
Questo ha ridotto l'accuratezza di solo lo 0,50%.
Ecco un'analisi (con codice):
Una rete neurale addestrata ha sempre neuroni che non contribuiscono sostanzialmente alle prestazioni.
Ma consumano comunque memoria.
Questi possono essere rimossi senza compromettere significativamente l'accuratezza.
Vediamo come identificarli!
Ecco i passaggi:
Passo 1) Allena la rete neurale come al solito.
Passo 2) Passa il set di validazione attraverso la rete addestrata e, per ogni neurone nei livelli nascosti, calcola:
- L'attivazione media
- La varianza delle attivazioni (se le attivazioni possono essere -ve)
Controlla questo👇

Passo 3) Potare i neuroni che hanno una media e una varianza di attivazione prossime allo zero poiché hanno poco impatto sull'output del modello.
Idealmente, traccia le prestazioni attraverso diversi soglie di potatura per selezionare il modello che si adatta ai tuoi compromessi tra dimensione e accuratezza.
Controlla questo 👇

Diamo un'occhiata al codice.
Iniziamo definendo una rete neurale semplice e addestrandola.
Poiché calcoleremo in seguito le attivazioni a livello di neurone per il potatura, restituiamo tutte le attivazioni intermedie nella fase di avanzamento.
Controlla questo👇

Successivamente, definiamo due liste con tre elementi:
- Una memorizzerà la media delle attivazioni
- L'altra memorizzerà la deviazione standard delle attivazioni
Passiamo il set di validazione attraverso il nostro modello per calcolare queste statistiche per ogni strato nascosto.
Controlla questo 👇

A questo punto, creiamo un grafico di distribuzione delle statistiche a livello di neuroni che abbiamo generato sopra.
Come mostrato di seguito, la maggior parte delle attivazioni medie dei neuroni e la loro deviazione standard sono fortemente distribuite attorno a valori prossimi allo zero.
Proviamo a potarli ora.

Per la potatura, iteriamo su un elenco di soglie e:
- Creiamo una nuova rete e trasferiamo i pesi che superano la soglia.
- Valutiamo la nuova rete e calcoliamo il totale dei parametri.
- Aggiungiamo i risultati a un elenco.
Controlla questo 👇

Questa tabella confronta l'accuratezza e la riduzione delle dimensioni del modello potato attraverso diversi soglie rispetto al modello originale.
Con media=0.1 e deviazione standard=0.4:
- L'accuratezza del modello diminuisce dello 0,08%.
- Le dimensioni del modello si riducono del 62%.
È una grande riduzione.
Controlla questo 👇

Ecco un altro risultato interessante.
Con media=0.5 e deviazione standard=1:
- L'accuratezza del modello diminuisce dello 0,5%.
- La dimensione del modello si riduce del 74%.
Quindi, sostanzialmente, otteniamo prestazioni quasi simili per 1/4 dei parametri.
Controlla questo 👇

Certo, c'è un compromesso tra accuratezza e dimensione. Man mano che riduciamo la dimensione, la sua accuratezza diminuisce (guarda il video).
Ma nella maggior parte dei casi, l'accuratezza non è l'unico parametro che ottimizziamo.
Invece, diversi parametri operativi come efficienza, memoria, ecc., sono i fattori chiave.
48,61K
Principali
Ranking
Preferiti