Número de parámetros en una red neuronal artificial para AIC

11

¿Cómo puedo calcular el número de parámetros en una red neuronal artificial para calcular su AIC?

Julian
fuente
Esta pregunta me parece perfectamente clara.
gung - Restablece a Monica
Puedes usar el comando classifier.summary()de la sklearclase.
Shekhar Shinde

Respuestas:

14

Cada conexión que se aprende en una red feedforward es un parámetro. Aquí hay una imagen de una red genérica de Wikipedia:

ingrese la descripción de la imagen aquí

Esta red está completamente conectada, aunque las redes no tienen que estarlo (por ejemplo, diseñar una red con campos receptivos mejora la detección de bordes en las imágenes). Con un ANN completamente conectado, el número de conexiones es simplemente la suma del producto del número de nodos en las capas conectadas. En la imagen de arriba, es decir . Esa imagen no muestra ningún nodo de sesgo, pero muchos ANN los tienen; si es así, incluya el nodo de sesgo en el total de esa capa. De manera más general (por ejemplo, si su ANN no está completamente conectada), simplemente puede contar las conexiones. (3×4)+(4×2)=20

gung - Restablece a Monica
fuente
Las conexiones pueden ser no únicas (ver ieeexplore.ieee.org/document/714176 ). Por lo tanto, ¿está bien simplemente contar las conexiones? ¿Quizás deberíamos distinguir entre parámetro e hiperparámetro?
Julian
El número total de conexiones sería 26 si se incluyeran los nodos de sesgo.
Agcala
0

La red neuronal es solo una función de funciones de funciones ... (según lo dictado por la arquitectura del modelo). Si la función resultante no se puede simplificar, el número total de parámetros (suma de todos los parámetros de cada nodo) en el modelo es el número que desea para el cálculo de AIC.

bonez001
fuente
0

Para una red MLP totalmente conectada , puede usar el siguiente código (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

entonces si tiene una red con la siguiente configuración de capa

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

simplemente llama a la función con

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