Come posso calcolare il numero di parametri in una rete neurale artificiale per calcolare il suo AIC?
classifier.summary()
dalla sklear
classe.
Come posso calcolare il numero di parametri in una rete neurale artificiale per calcolare il suo AIC?
classifier.summary()
dalla sklear
classe.
Risposte:
Ogni connessione che viene appresa in una rete feedforward è un parametro. Ecco un'immagine di una rete generica da Wikipedia:
Questa rete è completamente connessa, sebbene le reti non debbano esserlo (ad es. Progettare una rete con campi ricettivi migliora il rilevamento dei bordi nelle immagini). Con una ANN completamente connessa, il numero di connessioni è semplicemente la somma del prodotto dei numeri di nodi negli strati collegati. Nell'immagine sopra, cioè . Quell'immagine non mostra alcun nodo di polarizzazione, ma molti ANN li hanno; in tal caso, includere il nodo di polarizzazione nel totale per quel livello. Più in generale (ad esempio, se la tua ANN non è completamente connessa), puoi semplicemente contare le connessioni.
La rete neurale è solo una funzione delle funzioni delle funzioni ... (come dettato dall'architettura del modello). Se la funzione risultante non può essere semplificata, il numero totale di parametri (somma di tutto il numero di parametri di ciascun nodo) nel modello è il numero desiderato per il calcolo AIC.
Per una rete MLP completamente connessa puoi usare il seguente codice (Python):
def total_param(l=[]):
s=0
for i in range(len(l)-1):
s=s+l[i]*l[i+1]+l[i+1]
return s
quindi se si dispone di una rete con la seguente configurazione di layer
input: 435
hidden: 166
hidden: 103
hidden: 64
output: 15
basta chiamare la funzione con
total_param([435,166,103,64,15])
97208