Redes neuronales. A dónde va todo esto?

El artículo consta de dos partes:

  1. Una breve descripción de algunas arquitecturas de red para la detección de objetos en imágenes y segmentación de imágenes con los enlaces a recursos más comprensibles para mí. Intenté elegir explicaciones en vídeo y preferiblemente en ruso.
  2. La segunda parte es un intento de comprender la dirección del desarrollo de las arquitecturas de redes neuronales. Y tecnologías basadas en ellos.

Redes neuronales. A dónde va todo esto?

Figura 1: comprender las arquitecturas de redes neuronales no es fácil

Todo empezó creando dos aplicaciones de demostración para clasificación y detección de objetos en un teléfono Android:

  • Demostración de back-end, cuando los datos se procesan en el servidor y se transmiten al teléfono. Clasificación de imágenes de tres tipos de osos: pardos, negros y de peluche.
  • Demostración de front-endcuando los datos se procesan en el propio teléfono. Detección de objetos (detección de objetos) de tres tipos: avellanas, higos y dátiles.

Existe una diferencia entre las tareas de clasificación de imágenes, detección de objetos en una imagen y Segmentación de imagen. Por lo tanto, era necesario descubrir qué arquitecturas de redes neuronales detectan objetos en imágenes y cuáles pueden segmentar. Encontré los siguientes ejemplos de arquitecturas con los enlaces a recursos más comprensibles para mí:

  • Una serie de arquitecturas basadas en R-CNN (Rregiones con Convolución Neuro Ncaracterísticas de red): R-CNN, Fast R-CNN, R-CNN más rápido, Máscara R-CNN. Para detectar un objeto en una imagen, los cuadros delimitadores se asignan mediante el mecanismo de Red de propuesta de región (RPN). Inicialmente, se utilizó el mecanismo de búsqueda selectiva más lento en lugar de RPN. Luego, las regiones limitadas seleccionadas se envían a la entrada de una red neuronal convencional para su clasificación. La arquitectura R-CNN tiene bucles "for" explícitos en regiones limitadas, con un total de hasta 2000 ejecuciones a través de la red interna AlexNet. Los bucles "for" explícitos reducen la velocidad de procesamiento de imágenes. La cantidad de bucles explícitos que se ejecutan a través de la red neuronal interna disminuye con cada nueva versión de la arquitectura, y se realizan docenas de otros cambios para aumentar la velocidad y reemplazar la tarea de detección de objetos con segmentación de objetos en Mask R-CNN.
  • YOLO (You Only Look Once) es la primera red neuronal que reconoció objetos en tiempo real en dispositivos móviles. Característica distintiva: distinguir objetos de una sola vez (solo mirar una vez). Es decir, en la arquitectura YOLO no hay bucles "for" explícitos, por lo que la red funciona rápidamente. Por ejemplo, esta analogía: en NumPy, al realizar operaciones con matrices, tampoco hay bucles "for" explícitos, que en NumPy se implementan en niveles inferiores de la arquitectura a través del lenguaje de programación C. YOLO utiliza una cuadrícula de ventanas predefinidas. Para evitar que el mismo objeto se defina varias veces, se utiliza el coeficiente de superposición de ventana (IoU). Iintersección over Unión). Esta arquitectura opera en una amplia gama y tiene un alto robustez: Se puede entrenar a un modelo con fotografías pero aún así desempeñarse bien en pinturas dibujadas a mano.
  • SSD (SIngle Scaja múltiple caliente Detector): se utilizan los "trucos" más exitosos de la arquitectura YOLO (por ejemplo, supresión no máxima) y se agregan otros nuevos para que la red neuronal funcione más rápido y con mayor precisión. Característica distintiva: distinguir objetos en una ejecución utilizando una cuadrícula de ventanas determinada (cuadro predeterminado) en la pirámide de imágenes. La pirámide de imágenes se codifica en tensores de convolución mediante sucesivas operaciones de convolución y agrupación (con la operación de agrupación máxima, la dimensión espacial disminuye). De este modo se determinan en un recorrido de red tanto objetos grandes como pequeños.
  • MóvilSSD (MóvilNetV2+ SSD) es una combinación de dos arquitecturas de redes neuronales. Primera red MóvilNetV2 Funciona rápidamente y aumenta la precisión del reconocimiento. Se utiliza MobileNetV2 en lugar de VGG-16, que se utilizó originalmente en artículo original. La segunda red SSD determina la ubicación de los objetos en la imagen.
  • ApretarNet – una red neuronal muy pequeña pero precisa. Por sí solo no resuelve el problema de la detección de objetos. Sin embargo, se puede utilizar en una combinación de diferentes arquitecturas. Y utilizado en dispositivos móviles. La característica distintiva es que los datos primero se comprimen en cuatro filtros convolucionales de 1 × 1 y luego se expanden en cuatro filtros convolucionales de 1 × 1 y cuatro de 3 × 3. Una de esas iteraciones de compresión-expansión de datos se denomina "Módulo de incendio".
  • Laboratorio profundo (Segmentación de imágenes semánticas con redes convolucionales profundas): segmentación de objetos en la imagen. Una característica distintiva de la arquitectura es la convolución dilatada, que preserva la resolución espacial. A esto le sigue una etapa de posprocesamiento de los resultados utilizando un modelo probabilístico gráfico (campo aleatorio condicional), que permite eliminar pequeños ruidos en la segmentación y mejorar la calidad de la imagen segmentada. Detrás del formidable nombre de “modelo probabilístico gráfico” se esconde un filtro gaussiano convencional, cuya aproximación es de cinco puntos.
  • Intenté descubrir el dispositivo. RefinarDet (Un solo tiro Refinarment Red neuronal para objetos Detsección), pero no entendí mucho.
  • También vi cómo funciona la tecnología de "atención": vídeo1, vídeo2, vídeo3. Una característica distintiva de la arquitectura de "atención" es la selección automática de regiones de mayor atención en la imagen (RoI, REGIONES of Iinterés) utilizando una red neuronal llamada Unidad de Atención. Las regiones de mayor atención son similares a los cuadros delimitadores, pero a diferencia de ellos, no están fijos en la imagen y pueden tener límites borrosos. Luego, de las regiones de mayor atención, se aíslan los signos (características), que se "alimentan" a redes neuronales recurrentes con arquitecturas. LSDM, GRU o vainilla RNN. Las redes neuronales recurrentes pueden analizar la relación de características en una secuencia. Las redes neuronales recurrentes se utilizaron inicialmente para traducir texto a otros idiomas y ahora para traducir imágenes a texto и texto a imagen.

Mientras exploramos estas arquitecturas me di cuenta que no entiendo nada. Y no es que mi red neuronal tenga problemas con el mecanismo de atención. La creación de todas estas arquitecturas es como una especie de gran hackathon, donde los autores compiten en hacks. Hack es una solución rápida a un problema de software difícil. Es decir, no existe una conexión lógica visible y comprensible entre todas estas arquitecturas. Lo único que los une es un conjunto de los trucos más exitosos que se toman prestados entre sí, además de uno común para todos. operación de convolución de bucle cerrado (error de retropropagación, retropropagación). No pensamiento sistémico! No está claro qué cambiar y cómo optimizar los logros existentes.

Como resultado de la falta de conexión lógica entre los trucos, son extremadamente difíciles de recordar y aplicar en la práctica. Este es un conocimiento fragmentado. En el mejor de los casos, se recuerdan algunos momentos interesantes e inesperados, pero la mayor parte de lo comprendido e incomprensible desaparece de la memoria a los pocos días. Será bueno que en una semana recuerdes al menos el nombre de la arquitectura. ¡Pero se dedicaron varias horas e incluso días de trabajo a leer artículos y mirar videos de reseñas!

Redes neuronales. A dónde va todo esto?

Figura 2 - Zoológico de redes neuronales

La mayoría de los autores de artículos científicos, en mi opinión personal, hacen todo lo posible para que el lector no comprenda ni siquiera este conocimiento fragmentado. Pero las frases participiales en oraciones de diez líneas con fórmulas tomadas "de la nada" son un tema para un artículo separado (problema publicar o perecer).

Por este motivo, surge la necesidad de sistematizar la información mediante redes neuronales y, así, incrementar la calidad de la comprensión y la memorización. Por lo tanto, el tema principal del análisis de tecnologías y arquitecturas individuales de redes neuronales artificiales fue la siguiente tarea: descubre a dónde va todo, y no el dispositivo de ninguna red neuronal específica por separado.

¿A dónde va todo esto? Resultados principales:

  • Número de startups de aprendizaje automático en los últimos dos años cayeron fuertemente. Posible razón: “las redes neuronales ya no son algo nuevo”.
  • Cualquiera puede crear una red neuronal funcional para resolver un problema simple. Para hacer esto, tome un modelo listo para usar del "zoológico modelo" y entrene la última capa de la red neuronal (transferencia de aprendizaje) sobre datos preparados de Búsqueda de conjuntos de datos de Google o fuera 25 mil conjuntos de datos de Kaggle en gratis Cuaderno Jupyter en la nube.
  • Los grandes fabricantes de redes neuronales comenzaron a crear "zoológicos modelo" (zoológico modelo). Utilizándolos puedes crear rápidamente una aplicación comercial: Centro TF para TensorFlow, MMDetección para PyTorch, detector para Caffe2, modelzoo-chainer para cadena y otros.
  • Redes neuronales trabajando en tiempo real (en tiempo real) en dispositivos móviles. De 10 a 50 fotogramas por segundo.
  • El uso de redes neuronales en teléfonos (TF Lite), en navegadores (TF.js) y en artículos para el hogar (IoT, Internet of Tcosas). Especialmente en teléfonos que ya soportan redes neuronales a nivel de hardware (aceleradores neuronales).
  • “Cada dispositivo, prenda de vestir y tal vez incluso comida tendrá dirección IP-v6 y comunicarse entre sí" - Sebastián Thrun.
  • El número de publicaciones sobre aprendizaje automático ha comenzado a crecer exceder la ley de Moore (duplicándose cada dos años) desde 2015. Obviamente, necesitamos redes neuronales para analizar artículos.
  • Las siguientes tecnologías están ganando popularidad:
    • PyTorch – La popularidad está creciendo rápidamente y parece estar superando a TensorFlow.
    • Selección automática de hiperparámetros. AutoML – la popularidad está creciendo sin problemas.
    • Disminución gradual de la precisión y aumento de la velocidad de cálculo: lógica difusa, algoritmos impulsando, cálculos inexactos (aproximados), cuantificación (cuando los pesos de la red neuronal se convierten en números enteros y se cuantifican), aceleradores neuronales.
    • Traducción imágenes a texto и texto a imagen.
    • creación Objetos XNUMXD de vídeo, ahora en tiempo real.
    • Lo principal de DL es que hay muchos datos, pero recopilarlos y etiquetarlos no es fácil. Por lo tanto, la automatización del marcado se está desarrollando (anotación automatizada) para redes neuronales que utilizan redes neuronales.
  • Con las redes neuronales, la informática de repente se volvió ciencia experimental y surgió crisis de reproducibilidad.
  • El dinero de la TI y la popularidad de las redes neuronales surgieron simultáneamente cuando la informática se convirtió en un valor de mercado. La economía está cambiando de una economía de oro y divisas a computación-moneda-oro. Vea mi artículo sobre econofísica y el motivo de la aparición del dinero de TI.

Poco a poco aparece uno nuevo. Metodología de programación ML/DL (Machine Learning & Deep Learning), que se basa en representar el programa como un conjunto de modelos de redes neuronales entrenados.

Redes neuronales. A dónde va todo esto?

Figura 3 – ML/DL como nueva metodología de programación

Sin embargo, nunca apareció "teoría de las redes neuronales", dentro del cual puedes pensar y trabajar sistemáticamente. Lo que ahora se llama “teoría” son en realidad algoritmos heurísticos experimentales.

Enlaces a mis recursos y a otros:

Gracias por su atención!

Fuente: habr.com

Añadir un comentario