Nombre de paramètres dans un réseau neuronal artificiel pour AIC

11

Comment puis-je calculer le nombre de paramètres dans un réseau neuronal artificiel afin de calculer son AIC?

Funkwecker
la source
Cette question me semble parfaitement claire.
gung - Rétablir Monica
Vous pouvez utiliser la commande classifier.summary()de la sklearclasse.
Shekhar Shinde

Réponses:

14

Chaque connexion apprise dans un réseau à action directe est un paramètre. Voici une image d'un réseau générique de Wikipedia:

entrez la description de l'image ici

(3×4)+(4×2)=20

gung - Réintégrer Monica
la source
Les connexions peuvent être non uniques (voir ieeexplore.ieee.org/document/714176 ). Par conséquent, est-il acceptable de simplement compter les connexions? Peut-être faudrait-il distinguer entre paramètre et hyperparamètre?
Funkwecker
Le nombre total de connexions serait de 26 si des nœuds de biais étaient inclus.
agcala
0

Le réseau neuronal n'est qu'une fonction de fonctions de fonctions ... (comme dicté par l'architecture du modèle). Si la fonction résultante ne peut pas être simplifiée, le nombre total de paramètres (somme de tous les paramètres de chaque nœud) dans le modèle est le nombre souhaité pour le calcul AIC.

bonez001
la source
0

Pour un réseau MLP entièrement connecté, vous pouvez utiliser le code (Python) suivant:

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

alors si vous avez un réseau avec la configuration de couche suivante

input:  435
hidden: 166 
hidden: 103 
hidden:  64
output:  15

vous appelez simplement la fonction avec

total_param([435,166,103,64,15]) 
97208
agcala
la source