¿Cómo puedo calcular el número de parámetros en una red neuronal artificial para calcular su AIC?
classifier.summary()
de la sklear
clase.
¿Cómo puedo calcular el número de parámetros en una red neuronal artificial para calcular su AIC?
classifier.summary()
de la sklear
clase.
Respuestas:
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:
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.
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.
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