Red de conocimiento informático - Problemas con los teléfonos móviles - Cálculo del tamaño de la característica de salida de la capa convolucional y análisis de parámetros de relleno en Tensorflow

Cálculo del tamaño de la característica de salida de la capa convolucional y análisis de parámetros de relleno en Tensorflow

? Las redes neuronales se basan en transformaciones afines: tomar un vector como entrada y multiplicarlo con una matriz para producir la salida (generalmente agregando un vector de sesgo antes de que el resultado pase por una no linealidad). Esto funciona para cualquier tipo de entrada, ya sea una imagen, un clip de sonido o una colección desordenada de características: independientemente de sus dimensiones, su representación se puede aplanar en un vector antes de la transformación.

? Las imágenes, los clips de sonido y muchos otros tipos de datos similares tienen una estructura inherente. Más formalmente, comparten estas importantes propiedades:

? Pero cuando se aplican transformaciones afines, estas propiedades no se explotan, de hecho, todos los ejes se tratan de la misma manera, no se considera la información topológica; . Sin embargo, explotar la estructura implícita de los datos puede resultar útil al resolver problemas de visión por computadora o problemas como el reconocimiento de voz, en cuyo caso es mejor preservar la estructura implícita de los datos. Aquí es donde entra en juego la convolución discreta.

? La convolución discreta es una transformación lineal que conserva el concepto de ordenamiento. Es escaso (solo unas pocas unidades de entrada contribuyen a una unidad de salida determinada) y reutiliza parámetros (se aplica el mismo peso a múltiples posiciones de la entrada).

? El siguiente es un ejemplo de convolución discreta

? La cuadrícula azul claro de la izquierda se llama mapa de características de entrada y el área sombreada se llama núcleo o filtro de convolución. El núcleo de convolución La forma es la siguiente:

? El núcleo de convolución se desliza de izquierda a derecha y de arriba a abajo a lo largo del mapa de características de entrada. En cada posición, se calcula el producto entre cada elemento del núcleo de convolución y su elemento de entrada superpuesto, y luego se suman los resultados para obtener la salida en la posición actual. El resultado final de este proceso es una matriz llamada mapa de características de salida (matriz verde a la derecha).

? En una red neuronal, la entrada y salida de cada capa se denominan mapas de características o características. Al diseñar y construir una red neuronal convolucional, debemos conocer el tamaño de las dimensiones de las características de entrada y salida de cada capa de la red. Por ejemplo, para convoluciones 2D, el tamaño de la característica tiene la forma , que representa el tamaño del lote, la altura, el ancho y el número de canales. Entonces, cómo calcular con precisión el tamaño de la característica de salida se convierte en una cuestión clave.

tf.pad implementa operaciones de expansión en tensores de entrada. paddings controla el tamaño de expansión de cada dimensión, y valores_constantes representa el valor de relleno, que por defecto es 0. El relleno consiste en agregar una cantidad adecuada de filas y columnas a cada lado del mapa de características de entrada para que cada cuadrado de entrada se use como el centro de la ventana de convolución.

? La siguiente figura muestra el tamaño del mapa de características de entrada, el tamaño del núcleo de convolución, el tamaño del parche de llenado y el proceso de operación de convolución del tamaño de paso

? Existen las dos fórmulas siguientes:

? Muchos blogs citarán una o ambas de las dos fórmulas anteriores al describir el tamaño del mapa de características de salida de la capa convolucional. Sin embargo, a menudo no se explica cuál es la diferencia entre estas dos fórmulas, lo que lleva a preguntas sobre cuál es la diferencia entre estas dos fórmulas y en qué situaciones se aplican estas dos fórmulas. Para solucionar este problema, primero debemos entender el origen de estas dos fórmulas.

La diferencia más obvia aquí es que con la fórmula theano, en el modo MISMO primero debes calcular el tamaño del relleno y luego usar esa fórmula para obtener el tamaño de las características de salida. Para la fórmula de tensorflow, ya sea en modo VÁLIDO o en modo MISMO, no necesitamos calcular el tamaño del relleno, solo el tamaño del mapa de características de salida.

Aquí estaremos confundidos. Después de realizar la operación de convolución a través de dos fórmulas, ¿los resultados de las características de salida finales son los mismos? Después del cálculo, podemos obtener la siguiente conclusión:

? Conclusión: la fórmula theano es aplicable al marco theano cuando el modo de llenado es VÁLIDO y el modo de llenado es MISMO y el tamaño del núcleo de convolución es impar. número, también es aplicable al marco de tensorflow; de manera similar, las fórmulas de tensorflow se aplican al marco de tensorflow. fuerte> Aplicable a los cálculos del marco tensorflow. Cuando el modo de llenado es VÁLIDO y el modo de llenado es MISMO y el tamaño del núcleo de convolución es un número impar, también es aplicable a los cálculos del marco theano.

? A continuación, utilizamos tamaños de núcleo de convolución pares e impares para verificar la conclusión anterior.

Los pasos de la operación de convolución del modo VÁLIDO y el modo MISMO son los siguientes:

Modo VÁLIDO: utilice directamente el núcleo de convolución para suavizar el mapa de características de entrada y completar la operación de convolución

Modo MISMO: se puede dividir aproximadamente en dos pasos, primero. Primero realice una operación de llenado para expandir el tamaño del mapa de características de entrada; luego use un núcleo de convolución para suavizar el mapa de características expandido para completar la operación de convolución.

Para verificar la inferencia anterior, el siguiente paso es para utilizar una operación de convolución personalizada El método se compara con el resultado de llamar a la interfaz de operación de convolución de tensorflow. En el modo VÁLIDO, el proceso de operación de convolución consiste en deslizar el núcleo de convolución de izquierda a derecha y de arriba a abajo en el mapa de características de entrada. Si las dimensiones restantes no cumplen con los requisitos de tamaño y paso del núcleo de convolución, se utilizará una estrategia de abandono para obtener el resultado de convolución final. Como no hay relleno en el modo VÁLIDO, los resultados de la operación de convolución son los mismos. El modo SAME se utiliza aquí para verificar la operación de convolución personalizada, y los resultados de la operación de convolución personalizada en el modo MISMO se comparan con los resultados de la interfaz tensorflow

Aquí, ¿los pasos de operación del SAME? El modo también se divide en dos pasos principales:

La operación de convolución personalizada del modo MISMO se divide en los siguientes cuatro pasos: ?