[DNN]CNN análisis estructural y cálculo de parámetros


Fuente: Cálculo de parámetros CNN
de análisis LeNet5

Principalmente quiero resumir cómo calcular los parámetros de una red neuronal.

1. Información general

  • La cantidad de parámetro de DNN: no tiene nada que ver con la cantidad de neuronas, sino solo con el tamaño del kernel de convolución y la cantidad de mapas de características. Determina el tamaño del modelo de salida final (complejidad espacial)
  • El número de conexiones de DNN: solo está relacionado con el número de neuronas.El número de neuronas, es decir, el tamaño del mapa de características, determina la complejidad computacional del razonamiento del modelo. Es decir, el número de FLOPS comúnmente visto en el código.

1.1 Método de cálculo de la cantidad de parámetros

Cálculo de parámetros (básico) de la capa de activación Para la capa de
activación de una neurona, si la entrada son m vectores, los parámetros involucrados son el peso wi del vector de entrada, el valor de sesgo bk y el número de parámetros es m+1 .
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

(1) Método de cálculo de capa convolucional:
el proceso de cálculo de convolución incluye: después de calcular el producto interno del núcleo de convolución y el área correspondiente de la imagen, se agrega un sesgo y luego se envía a la función de activación.

Por lo tanto, los parámetros involucrados en la convolución incluyen: los parámetros del kernel de convolución y el sesgo.
inserte la descripción de la imagen aquí
(2) El método de cálculo de parámetros de la capa completamente conectada: el
proceso de cálculo de la capa completamente conectada incluye: el valor de la señal de entrada se multiplica por los pesos de las neuronas de salida m y se suma, luego se agrega el sesgo y finalmente se envía a la activación función. Obtenga el valor de la señal de salida.

Entonces, los parámetros de la capa completamente conectada involucran: el peso y el sesgo de las neuronas.
inserte la descripción de la imagen aquí
(3) Método de cálculo de la capa de agrupación
La capa de agrupación reduce la muestra después de la agrupación. No tiene parámetros, pero después de la reducción de muestreo, necesita multiplicar el peso y agregar un sesgo antes de ingresar a la capa de activación. Entonces se introducen 2 parámetros.
inserte la descripción de la imagen aquí
(4) Conexión RBF
La diferencia con la conexión completa general es que la red neuronal de base radial no tiene sesgo. Suponga que la entrada es m, la salida es n y la cantidad del parámetro es m*n.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

1.2 Cálculo del número de neuronas

Para la capa convolucional, el número de neuronas solo está relacionado con el tamaño del mapa de características generado por la capa convolucional.Si el mapa de características de salida es 10x10x1, entonces el número de neuronas en la capa convolucional es 100.
inserte la descripción de la imagen aquí

1.3 Cálculo del número de conexiones/FLPOS

Las conexiones se refieren al número de interacciones entre parámetros. También determina la potencia de cálculo necesaria para el razonamiento del modelo una vez.

Por ejemplo, la primera capa convolucional de LeNet5.
inserte la descripción de la imagen aquí

连接次数:(5*5+1)*6   *(28*28)=122,304

El parámetro entrenable de la operación de convolución es (5*5+1)*6

El lado izquierdo son los parámetros entrenables de la convolución, y el lado derecho es el número de neuronas en cada mapa de características de la capa C1. La correspondencia izquierda y derecha es 1 par de 28*28, y la multiplicación es el número de conexiones . (Cada enlace corresponde a 1 cálculo. Se puede saber de wa+b que cada parámetro participa en 1 cálculo, por lo que también se incluye el sesgo b de 1 unidad)

2. Estructura de LeNet5 y cálculo de parámetros

2.1 Estructura

inserte la descripción de la imagen aquí

  • Imagen de entrada: 32*32
  • Capa de convolución C1: tamaño=5*5, canal=(6,6,6,6,6,6), num=6, zancada=1, relleno=0
  • Capa de reducción de resolución S2: 2*2, paso = 2
  • Capa de convolución C3: tamaño=5*5, canal=(3,...,3,4,...,4,6), num=16, zancada=1, relleno=0
  • Capa de reducción de resolución S4: 2*2, paso = 2
  • Capa de convolución C5: tamaño=5*5, canal=(16,16,16,…16), num=120, zancada=1, relleno=0
  • Capa F6 totalmente conectada: entrada=120, salida=84
  • Capa totalmente conectada F7 (salida, neuronas de base radial): entrada=84, salida=10

2.2 Cálculo de la cantidad del parámetro correspondiente:

C1: (5x5+1)x6=156	

Cada operación de convolución más la función de activación requiere 5x5+1, un total de 6 núcleos de convolución, por lo que (5x5+1)x6

S2:6x2=12

Cada gráfico corresponde a un peso y un sesgo, un total de 6, por lo que el parámetro es 6x2=12.

C3: (5x5x3+1)x6+(5x5x4+1)x6+ (5x5x4+1)x3+(5x5x6+1)x1=456+606+303+152=1516 

Aquí hay 16 núcleos de convolución, y la cantidad de canales no solo es la misma, como se muestra en la tabla.
Tabla 1: Correspondencia de convolución de C3
tabla 1

S4:2x16=32

Cada gráfico corresponde a un peso y un sesgo, un total de 16, por lo que el parámetro es 32.

C5:(5x5x16+1)x120=48120

Cada núcleo de convolución tiene 16 canales, más un sesgo. Un total de 120 núcleos de convolución.

F6:(120+1)x84=10164

Por cada valor de salida, 120 pesos y 1 sesgo, se emiten un total de 84 valores de salida.

F7:84x10=840

La última capa de salida, debido a que es una neurona de base radial, solo ingresa 84 pesos y un total de 10 valores de salida. 84*10.

Parámetros totales: 156+12+1516+32+48120+10164+840=60840.
Tenga en cuenta que los parámetros de la capa totalmente conectada representan el 97,2% de los parámetros totales.

2.3 Número de conexiones/FLOPS

La primera capa convolucional de LeNet5.

C1:156x28x28

Hay un total de (5x5+1)*6 parámetros para la operación de convolución y el tamaño del mapa de características de salida es 28x28. Multiplicado es el número total de conexiones.

S2: (2x2+1)x6x14x14

Una operación de agrupación debe operar en 2x2 píxeles de la imagen original, y el tamaño del mapa de características de salida es 14x14

C3:1516x10x10=151600
S4:(2x2+1)x16x5x5=2000
C5:48120*1*1=48120
F6:10164*1*1=10164
out:84*10=840

Supongo que te gusta

Origin blog.csdn.net/condom10010/article/details/129388131
Recomendado
Clasificación