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


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


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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.