Regularización? Ortogonalización! Mejora de redes compactas


Mientras otras compañías están discutiendo la administración remota del equipo, en Smart Engines continuamos compartiendo nuestra pila de tecnología con usted. Hoy sobre la optimización de las redes neuronales. Hacer un sistema de reconocimiento basado en redes neuronales que pueda funcionar rápidamente en teléfonos inteligentes y otros dispositivos móviles es extremadamente difícil. Y asegurarse de que la calidad sea alta es aún más difícil. En este artículo, hablaremos sobre un método simple para regularizar las redes neuronales que usamos en los motores inteligentes para mejorar la calidad de las redes "móviles" con una pequeña cantidad de parámetros. La idea del método se basa en una disminución gradual de la dependencia lineal de los filtros en las capas convolucionales durante el entrenamiento, debido a que cada neurona funciona de manera más eficiente y, por lo tanto, se mejora la capacidad de generalización del modelo.Para hacer esto, presentamos filtros en forma de vectores unidimensionales y ortogonalizamos un par con la mayor longitud de proyección entre sí.

Al diseñar las redes neuronales más modernas, se entiende que se realizarán de forma remota en el servidor, y los datos para el procesamiento llegarán a través del cliente en una PC o dispositivo móvil. Sin embargo, este enfoque es inaceptable cuando se trata de la seguridad de los datos personales que no desea transferir a algún lugar (por ejemplo, una foto de pasaporte o una tarjeta bancaria para el reconocimiento). Afortunadamente para nosotros, los dispositivos móviles de hoy tienen la capacidad suficiente para ejecutar redes neuronales, por lo que puede evitar el envío de datos a terceros. Otra cosa es que estas redes deben ser pequeñas y contener una pequeña cantidad de operaciones para no poner a prueba la paciencia del usuario. Tales condiciones limitan la calidad máxima alcanzable de su trabajo,y cómo mejorar las redes ligeras sin sacrificar el tiempo de ejecución es una pregunta abierta. Al reflexionar sobre esto, se nos ocurrió un nuevo método de regularización en redes neuronales, centrado en redes compactas y que consiste en la ortogonalización de filtros convolucionales.

La publicación es una versión corta del informe "La red neuronal convolucional pondera la regularización a través de la ortogonalización", presentado en noviembre de 2019 en la conferencia internacional ICMV 2019, Amsterdam, Países Bajos.

La idea de regularización usando ortogonalización


Como el método propuesto se relaciona con la regularización, primero recordamos brevemente de qué se trata. La regularización consiste en imponer algunas restricciones al modelo basadas en nuestras ideas sobre cómo se debe resolver la tarea. Como resultado, se incrementa la capacidad de generalización de la red. Por ejemplo, la regularización de L1 contribuye a la puesta a cero de parte del saldo al hacer que la red se descargue, L2 - mantiene coeficientes dentro de números pequeños, la deserción elimina las dependencias de neuronas individuales, etc. Estos métodos son una parte integral del proceso de aprendizaje de muchas redes modernas, especialmente si contienen una gran cantidad de parámetros: la regularización le permite lidiar bastante bien con el reciclaje.

Ahora volvamos a nuestro método. Hacemos una reserva de inmediato que, en primer lugar, consideramos el problema de clasificar imágenes con una red neuronal convolucional. La suposición sobre la base de la cual llegamos al uso de la ortogonalización es la siguiente: si la red tiene recursos extremadamente limitados para el concepto de patrones en los datos, entonces cada neurona debe funcionar de la manera más eficiente posible, y para que desempeñe la función estrictamente asignada a ella. En otras palabras, para que "conecte" características que cualquier otra neurona no puede detectar. Resolvemos este problema reduciendo gradualmente la relación lineal entre los vectores de peso de las neuronas durante el entrenamiento. Para hacer esto, modificamos el algoritmo clásico de ortogonalización, adaptándolo a las realidades del proceso de aprendizaje.

Ortogonalización de filtro de convolución


Defina los filtros de capa convolucional como un conjunto de vectores , donde c es el índice de la capa convolucional y N es el número de filtros que contiene. Después de actualizar los pesos durante la propagación hacia atrás del error, en cada capa convolucional individual buscamos un par de vectores con la longitud máxima de proyección uno encima del otro:



la proyección del vector f g sobre f k se puede calcular como . Luego, para ortogonalizar los filtros f a y f b , reemplazamos el primer paso del algoritmo de Gram-Schmidt con la



siguiente fórmula:



donde η es la velocidad de aprendizaje y el mostocoeficiente de ortogonalización, cuyos valores se encuentran en el intervalo [0.0, 1.0]. La introducción del coeficiente de ortogonalización se debe al hecho de que la ortogonalización "instantánea" de los filtros interrumpe en gran medida el proceso de aprendizaje, negando los cambios sistemáticos en los pesos sobre las iteraciones pasadas. Pequeños valores de mosto preservan la dinámica del aprendizaje y contribuyen a una disminución suave en la relación lineal entre los filtros en cada capa por separado. Observamos una vez más un punto importante en el método: en una iteración modificamos solo un vector para no dañar el algoritmo de optimización.


Higo. Visualización de una iteración.

Solo consideramos la ortogonalización de los filtros convolucionales, ya que en las redes neuronales modernas las capas convolucionales constituyen una gran parte de la arquitectura. Sin embargo, el algoritmo se generaliza fácilmente a los pesos de las neuronas en capas completamente conectadas.

Los experimentos


Pasamos de la teoría a la práctica. Para los experimentos, decidimos usar los 2 conjuntos de datos más populares para evaluar las redes neuronales en el campo de la visión por computadora: MNIST (clasificación de imágenes de números escritos a mano) y CIFAR10 (fotos de 10 clases: barcos, camiones, caballos, etc.).

Dado que suponemos que la ortogonalización será útil principalmente para redes compactas, tomamos una arquitectura similar a LeNet en 3 modificaciones, que difieren entre sí en la cantidad de filtros en capas convolucionales. La arquitectura de nuestra red, que se llamará LeNet 1.0 por conveniencia, se muestra en la Tabla 1. Las arquitecturas LeNet 2.0 y LeNet 3.5 derivadas de ella se distinguen por una gran cantidad de filtros en capas convolucionales, 2 y 3.5 veces, respectivamente.

Al elegir la función de activación, nos detuvimos en ReLU no solo porque es la función más popular y computacionalmente eficiente (le recordamos que todavía estamos hablando de redes rápidas). El hecho es que el uso de funciones lineales no por partes niega el efecto de la ortogonalización: por ejemplo, la tangente hiperbólica distorsiona fuertemente los vectores de entrada ya que tiene una pronunciada no linealidad en regiones cercanas a la saturación.

Tabla 1. Arquitectura de red LeNet 1.0 utilizada en los experimentos.
Capas
# #Un tipoParámetrosFunción de
activación
1conv8 filtros 3x3, zancada 1x1, sin rellenoRelu
2conv16 filtros 5x5, zancada 2x2, acolchado 2x2Relu
3conv16 filtros 3x3, zancada 1x1, acolchado 1x1Relu
4 4conv32 filtros 5x5, zancada 2x2, relleno 2x2Relu
5 5conv32 filtros 3x3, zancada 1x1, acolchado 1x1Relu
6 6conv32 filtros 3x3, zancada 1x1, acolchado 1x1Relu
7 7totalmente conectado10 neuronasSoftmax

Probamos 3 valores del mosto del coeficiente de ortogonalización : 0.01, 0.05, 0.1. Todos los experimentos se llevaron a cabo 10 veces, y los resultados se promediaron (desviación estándar ( std ) para la tasa de error se muestra en la tabla con los resultados). También calculamos cuánto porcentaje disminuyó el número de errores ( beneficio ).

Los resultados experimentales confirmaron que la mejora de la ortogonalización es mayor cuanto más pequeños son los parámetros en la red (tablas 2 y 3). También obtuvimos un resultado interesante de que el uso de la ortogonalización en el caso de redes "pesadas" conduce a una mala calidad.

Tabla 2. Resultados experimentales para MNIST
MnistLeNet 1.0 (52k parámetros)LeNet 2.0 (parámetros de 179k)LeNet 3.5 (378k parámetros)
Tasa de errorstdbeneficioTasa de errorstdbeneficioTasa de errorstdbeneficio
base0,402%0,033-0,366%0,026-0.361%0,028-
mosto = 0.010.379%0,0275,72%0.355%0,013,01%0.359%0,0260,55%
mosto = 0.050,36%0,02210,45%0.354%0,0183,28%0.356%0,0341,39%
mosto = 0.10.368%0,0158,46%3,53%0,0243,55%0.353%0,0182,22%

Tabla 3. Resultados experimentales para CIFAR10
Cifar10LeNet 1.0 (52k parámetros)LeNet 2.0 (parámetros de 179k)LeNet 3.5 (378k parámetros)
Tasa de errorstdbeneficioTasa de errorstdbeneficioTasa de errorstdbeneficio
base22,09%0,65-18,49%1.01-17,08%0,47-
mosto = 0.0121,56%0,862,38%18,14%0,651,89%17.33%0,49-1,46%
mosto = 0.0521,59%0,482,24%18,30%0,571,03%17.59%0,31-3,02%
mosto = 0.121,54%0,412,48%18,15%0,531,85%17.53%0.4 0.4-2,63%

Sin embargo, las redes LeNet ahora son raras y generalmente se utilizan modelos más modernos. Por lo tanto, también experimentamos con el modelo ResNet, facilitado por el número de filtros, que consta de 25 capas convolucionales. Las primeras 7 capas contenían 4 filtros, las siguientes 12 por 8 filtros y las últimas 6 por 16 filtros. El número total de parámetros entrenados de este modelo fue de 21 mil. El resultado fue similar: la ortogonalización mejora la calidad de la red.


Higo. Comparación de la dinámica de aprendizaje de ResNet en MNIST con y sin ortogonalización.

A pesar de las mejoras logradas en la calidad, para una total confianza en el correcto funcionamiento del método propuesto, debe ver qué cambios se han producido en los propios filtros. Para esto, los valores de la longitud máxima de proyección del filtro en 2, 12 y 25 capas ResNet se cancelaron para todas las épocas de entrenamiento. Damos la dinámica de los cambios en los gráficos a continuación. Lo más importante aquí es que en todas las capas hay una disminución en la dependencia lineal de los filtros.


Higo. Dinámica de los cambios en la longitud máxima de proyección de los filtros en una capa convolucional utilizando ResNet como ejemplo.

La regularización basada en ortogonalización es extremadamente fácil de implementar: en python usando el módulo numpy se necesitan menos de 10 líneas de código. Al mismo tiempo, no ralentiza el entrenamiento y es compatible con otros métodos de regularización.

Conclusión


A pesar de su simplicidad, la ortogonalización ayuda a mejorar la calidad de las redes "livianas", que imponen restricciones en el tamaño y la velocidad de ejecución. Debido a la proliferación de tecnologías móviles, tales restricciones son cada vez más comunes: una red neuronal no debe ejecutarse en algún lugar de la nube, sino directamente en un dispositivo con un procesador débil y poca memoria. La capacitación de tales redes va en contra de las tendencias modernas en la ciencia de las redes neuronales, donde se utilizan activamente conjuntos de modelos con millones de parámetros entrenados que ningún teléfono inteligente puede extraer. Es por eso que, en el marco de la resolución de problemas industriales, es extremadamente importante inventar y desarrollar métodos para mejorar la calidad de las redes simples y rápidas.

Lista de fuentes utilizadas


Alexander V. Gayer, Alexander V. Sheshkus, "La red neuronal convolucional pondera la regularización a través de la ortogonalización", Proc. SPIE 11433, Duodécima Conferencia Internacional sobre Visión Artificial (ICMV 2019), 1143326 (31 de enero de 2020); https://doi.org/10.1117/12.2559346

All Articles