La Red de Conocimientos Pedagógicos - Currículum vitae - Explicación detallada de DenseNet

Explicación detallada de DenseNet

Como mejor artículo de CVPR2017, Densenet rompe con el pensamiento fijo de profundizar el número de capas de red (ResNet) y ampliar la estructura de la red (Inception) para mejorar el rendimiento de la red. Desde el punto de vista de las funciones, a través de la reutilización de funciones y la configuración de omisión, no solo se reduce considerablemente la cantidad de parámetros de red, sino que, combinado con los supuestos de flujo de información y reutilización de funciones, DenseNet es digno de ser el mejor artículo del año en la Cumbre de Visión por Computadora 2017.

La red neuronal convolucional, después de dormir durante casi 20 años, se ha convertido en una de las estructuras de red más importantes en la dirección del aprendizaje profundo. Desde la estructura inicial de cinco capas de LeNet hasta la estructura de 19 capas de VGG, pasando por Highway Networks y ResNet que abarcaron redes de 100 capas por primera vez, la profundización de la capa de red se ha convertido en una de las principales direcciones de desarrollo de CNN.

A medida que aumenta el número de capas de red CNN, los problemas de desaparición de gradiente y degradación del modelo aparecen frente a la gente. El uso generalizado del procesamiento por lotes ha aliviado el problema de la desaparición de gradiente hasta cierto punto. ResNet y Highway Network establecieron desvíos mediante la construcción de mapeos de identidad, lo que reduce aún más la aparición de desaparición de gradientes y degradación del modelo. Las redes fractales paralelizan redes de diferentes profundidades, asegurando la propagación de gradientes mientras se obtiene profundidad. Las redes aleatoriamente profundas inactivan algunas capas de la red. No solo demuestra la profunda redundancia de ResNet, sino que también alivia los problemas anteriores. Aunque estos diferentes marcos de red profundizan la cantidad de capas de red a través de diferentes implementaciones, todos contienen la misma idea central de conectar mapas de características entre capas de red.

He Mingkai hizo una suposición cuando propuso ResNet. Si una red más profunda tiene varias capas y otra red poco profunda puede aprender el mapeo de identidad, entonces el rendimiento del modelo entrenado por esta red más profunda no será el mismo. Será más débil que esta red poco profunda. En términos simples, si agrega algunas capas que pueden aprender el mapeo de identidad a una determinada red para formar una nueva red, el peor resultado es que estas capas en la nueva red se convertirán en exactamente el mismo mapeo después del entrenamiento, sin afectar el rendimiento del red original. De manera similar, DenseNet también supone que la reutilización de funciones es un mejor método de extracción de funciones que aprender funciones redundantes varias veces.

Una de las principales ventajas de ResNet es que el gradiente puede fluir a través de la función de identidad hasta la capa anterior, pero el método de superposición del mapeo de identidad y la salida de la transformación no lineal es aditivo, lo que destruye el flujo de información. en la red hasta cierto punto.

Para optimizar aún más la difusión del flujo de información, DenseNet propone una estructura de red gráfica.

Como se muestra en la figura, la entrada de la capa I no solo está relacionada con la salida de la capa i-1, sino también con la salida de todas las capas anteriores. Nota:

Dado que DenseNet requiere operaciones cat en mapas de características de diferentes capas, los mapas de características de diferentes capas deben mantener el mismo tamaño de característica, lo que limita la implementación de reducción de resolución en la red. Para utilizar la reducción de resolución, el autor divide DenseNet en varios bloques Dense, como se muestra en la siguiente figura:

En el mismo bloque denso, se requiere que el tamaño de la característica permanezca igual y las capas de transición se establecen entre diferentes bloques densos para lograr Downsampling. En los experimentos del autor, la capa de transición consta de una agrupación promedio de BN + conv (1 × 1) + 2 × 2.

En Denseblock, suponiendo que la salida de cada transformación no lineal H son K mapas de características, entonces la entrada de la red de I capa es K^(I-1)×K, aquí podemos ver One Gran diferencia entre DenseNet y las redes existentes: DenseNet puede aceptar menos mapas de características como salida de la capa de red, como se muestra en la siguiente figura.

La razón es que cada capa en el mismo Denseblock está asociada con todas las capas anteriores. Si consideramos la característica como el estado global de un Denseblock, entonces el objetivo de entrenamiento de cada capa es utilizar el estado global existente para determinar el valor de actualización que debe agregarse al estado global. Por lo tanto, el número k de mapas de características generados por cada capa de red también se denomina tasa de crecimiento. También determina cuánta información necesita cada capa para actualizar el estado global.

Como veremos más adelante, en los experimentos del autor, solo se necesita una pequeña k para lograr un rendimiento de última generación.

Mientras que DenseNet acepta menos k, que es el número de mapas de características como salida Sin embargo, dado que los mapas de características de diferentes capas se combinan mediante la operación cat, los canales del mapa de características final serán grandes y se convertirán en una carga para la red. El autor utiliza 1 × 1 Conv (cuello de botella) como método de reducción de dimensionalidad de características para reducir la cantidad de canales. Para mejorar la eficiencia computacional, la transformación no lineal mejorada se convirtió en BN-RELU-conv(1×1)-BN-RELU-conv(3×3). El DenseNet que utiliza la capa de cuello de botella se llama Densenet-B. el autor utilizó 1 × 65433.

Para optimizar aún más la simplicidad del modelo, también podemos reducir la cantidad de mapas de características en la capa de transición. Si un Denseblock contiene m mapas de características, entonces podemos generar una capa de transición para sus conexiones de salida. ¿θm? Mapa de características de salida. donde θ es el factor de compresión. Cuando θ = 1, la capa de transición mantendrá el tamaño de la entidad original sin cambios.

La DenseNet con compresión y θ=0,5 se denomina DenseNet-C, y la DenseNet con compresión de cuello de botella y θ=0,5 se denomina DenseNet-BC.

Dado que DenseNet realiza una operación cat en la entrada, un efecto intuitivo es que el mapa de características aprendido por cada capa puede ser utilizado directamente por todas las capas posteriores, lo que hace que las características sean reutilizables en toda la red y el modelo sea más conciso.

La eficiencia de los parámetros de DenseNet se puede ver en la figura anterior: la figura de la izquierda contiene varios parámetros estructurales y estadísticas de rendimiento finales de DenseNet. Se puede ver que cuando el modelo logra el mismo error de prueba, el original. DenseNet suele tener entre 2 y 3 veces más parámetros que DenseNet-BC. La figura del medio muestra la comparación entre DenseNet-BC y ResNet. Con la misma precisión del modelo, DenseNet-BC solo requiere aproximadamente un tercio de los parámetros de ResNet. A la derecha hay una comparación de ResNet con más de 1001 capas de parámetros durante el entrenamiento y 100 capas de DenseNet-BC con solo 0,8 millones de parámetros, aunque convergen aproximadamente en la misma época de entrenamiento de DenseNet-BC.

Otra razón por la que DenseNet tiene un rendimiento tan alto es que cada capa de la red no solo recibe supervisión de la pérdida en la red original, sino también porque existen múltiples desvíos y atajos. La regulación de Internet es diversa. Las ventajas de la supervisión profunda también se confirman en las redes supervisadas en profundidad (DSN). (Cada capa oculta en DSN tiene un clasificador, lo que la obliga a aprender algunas características discriminativas). A diferencia de DSN, DenseNet tiene una función de pérdida única, lo que facilita la construcción de modelos y el cálculo de gradientes.

DenseNet fue diseñado desde el principio para tener una estructura de red en la que una capa de la red pueda utilizar los mapas de características de todas las capas anteriores. Para explorar la reutilización de funciones, el autor realizó experimentos relacionados. El autor utiliza DenseNet entrenado con L = 40, K = 12. Para todas las capas convolucionales en cualquier Denseblock, se calcula el valor absoluto promedio del peso del mapa de características de la capa anterior en esta capa. Este promedio muestra la utilización de esta capa para la capa de entidades anterior. La siguiente figura muestra el mapa de calor dibujado por este promedio:

De la figura, podemos sacar las siguientes conclusiones:

p>.

a) Algunas características extraídas de capas anteriores aún se pueden utilizar directamente en capas más profundas.

b) Incluso la capa de transición utilizará las características de todas las capas del Denseblock anterior.

c) En comparación con la capa de transición anterior, la tasa de utilización de las capas en el segundo y tercer bloque denso es muy baja, lo que indica que la capa de transición genera una gran cantidad de características redundantes. Esto también proporciona evidencia que respalda la necesidad de compresión de DenseNet-BC.

d) Aunque la última capa de clasificación utiliza información multicapa del Denseblock anterior, prefiere usar las características de los últimos mapas de características, lo que indica que algunas pueden generarse en las últimas capas de la red.

El autor entrenó varios modelos DenseNet en varios conjuntos de datos de referencia y los comparó con modelos de última generación (principalmente ResNet y sus variantes):

Desde arriba Como se puede ver De la tabla, DenseNet solo requiere una pequeña tasa de crecimiento (12, 24) para lograr un rendimiento de vanguardia, mientras que DenseNet-BC, que combina cuellos de botella y compresión, tiene muchos menos parámetros que ResNet y sus variantes, DenseNet y DenseNet-BC logró un rendimiento superior al de ResNet en el conjunto de datos original y en el conjunto de datos aumentado.

Explicación detallada de DenseNet