Redes neuronales. Hacia dónde se dirige todo esto

El artículo se compone de dos partes:

  1. Una breve descripción de algunas arquitecturas de redes para la detección de objetos en imágenes y segmentación de imágenes con los enlaces más comprensibles para mí. Intenté seleccionar videos explicativos, preferentemente en español.
  2. La segunda parte consiste en un intento de comprender la dirección del desarrollo de arquitecturas de redes neuronales. Y las tecnologías basadas en ellas.

Redes neuronales. Hacia dónde se dirige todo esto

Figura 1 – Comprender las arquitecturas de redes neuronales no es fácil

Todo comenzó cuando hice dos aplicaciones de demostración para clasificación y detección de objetos en un teléfono Android:

  • Demo de backend, donde los datos se procesan en el servidor y se envían al teléfono. Clasificación de imágenes de tres tipos de osos: pardo, negro y de peluche.
  • Demo de frontend, donde los datos se procesan en el mismo teléfono. Detección de objetos de tres tipos: avellana, higo y dátil.

Hay una diferencia entre las tareas de clasificación de imágenes, detección de objetos en imágenes y segmentación de imágenes. Por lo tanto, surgió la necesidad de conocer qué arquitecturas de redes neuronales detectan objetos en imágenes y cuáles pueden segmentar. Encontré los siguientes ejemplos de arquitecturas con los enlaces más comprensibles para mí:

  • Una serie de arquitecturas basadas en R-CNN (Rregiones con Cconvolución Nredes Nneuronales características): R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN. Para la detección de objetos en una imagen, se destacan regiones limitadas (bounding boxes) mediante el mecanismo de Red de Propuestas de Regiones (RPN). Inicialmente, se utilizó un mecanismo más lento, Busqueda Selectiva, en lugar de RPN. Luego, las regiones limitadas destacadas se ingresan a una red neuronal normal para clasificación. En la arquitectura R-CNN hay bucles evidentes "for" que iteran sobre las regiones limitadas, con hasta 2000 pasadas a través de la red interna AlexNet. Debido a estos ciclos evidentes "for", la velocidad de procesamiento de imágenes se ralentiza. El número de ciclos evidentes, las pasadas por la red neuronal interna, se reduce con cada nueva versión de la arquitectura, y se realizan decenas de otros cambios para aumentar la velocidad y para reemplazar la tarea de detección de objetos por segmentación de objetos en Mask R-CNN.
  • YOLO (Ysolo Dmira La Dnce) - la primera red neuronal que reconocía objetos en tiempo real en dispositivos móviles. Una característica distintiva: la diferenciación de objetos en una sola pasada (basta con ver una vez). Es decir, en la arquitectura YOLO no hay ciclos ‘for’ explícitos, lo que permite que la red funcione rápidamente. Por ejemplo, una analogía: en NumPy, durante las operaciones con matrices, tampoco hay ciclos ‘for’ explícitos, que en NumPy se implementan en niveles más bajos a través del lenguaje de programación C. YOLO utiliza una cuadrícula de ventanas predefinidas. Para evitar que un mismo objeto se identifique múltiples veces, se usa el coeficiente de solapamiento de ventanas (IoU, Intersección over Unión). Esta arquitectura opera en un amplio rango y posee alta robustez: el modelo se puede entrenar con fotografías, pero también puede funcionar bien con pinturas dibujadas.
  • SSD (Single Shot MultiBox ataquesetector) - se utilizan los hacks más efectivos de la arquitectura YOLO (por ejemplo, non-maximum suppression) y se añaden nuevos, para que la red neuronal funcione más rápido y con más precisión. Una característica distintiva: la diferenciación de objetos en una sola pasada usando una cuadrícula de ventanas (default box) en una pirámide de imágenes. La pirámide de imágenes está codificada en tensores convolucionales a través de operaciones de convolución y pooling secuenciales (durante la operación max-pooling, la dimensión espacial disminuye). De este modo, se determinan tanto objetos grandes como pequeños en una sola pasada de la red.
  • MobileSSD (MóvilNetV2 + SSD) - una combinación de dos arquitecturas de redes neuronales. La primera red MobileNetV2 funciona rápidamente y aumenta la precisión del reconocimiento. MobileNetV2 se utiliza en lugar de VGG-16, que se usaba originalmente en el artículo original. La segunda red SSD define la ubicación de los objetos en la imagen.
  • SqueezeNet es una red neuronal muy pequeña, pero precisa. Por sí sola, no resuelve la tarea de detección de objetos. Sin embargo, puede aplicarse en combinación con diferentes arquitecturas. Y utilizarse en dispositivos móviles. Una característica distintiva es que primero los datos se comprimen a cuatro filtros convolucionales 1×1, y luego se expanden a cuatro filtros 1×1 y cuatro filtros 3×3. Una iteración de compresión-expansión de datos se llama 'Fire Module'.
  • DeepLab (Segmentación Semántica de Imágenes con Redes Neurales Convolucionales Profundas) – segmentación de objetos en una imagen. La característica distintiva de la arquitectura es la convolución dilatada, que conserva la resolución espacial. Luego sigue una etapa de postprocesamiento de los resultados utilizando un modelo probabilístico gráfico, lo que permite eliminar pequeños ruidos en la segmentación y mejorar la calidad de la imagen segmentada. Detrás del aterrador nombre «modelo probabilístico gráfico» se oculta simplemente un filtro Gaussiano que está aproximado a cinco puntos.
  • Intenté entender el funcionamiento RefineDet (Single-Shot Refinement Neural Network for Object Detección), pero no entendí mucho.
  • También observé cómo funciona la tecnología de atención: video1, video2, video3. La característica distintiva de la arquitectura de atención es la identificación automática de regiones de mayor interés en la imagen (RoI, Regiones of Interés) mediante una red neuronal llamada Unidad de Atención. Las regiones de mayor atención son similares a las regiones delimitadas (bounding boxes), pero a diferencia de ellas, no están fijas en la imagen y pueden tener bordes difusos. Luego, se extraen características de las regiones de mayor atención que son 'alimentadas' a redes neuronales recurrentes con arquitecturas LSDM, GRU o Vanilla RNN. Las redes neuronales recurrentes pueden analizar la relación entre características en una secuencia. Originalmente, las redes neuronales recurrentes se utilizaban para traducir texto a otros idiomas, y ahora también para la traducción de imágenes a texto y de texto a imagen.

Al estudiar estas arquitecturas me di cuenta de que no entendía nada. Y no se debe a que mi red neuronal tenga problemas con el mecanismo de atención. La creación de todas estas arquitecturas se asemeja a un enorme hackathon, donde los autores compiten en hacks. Hack (hack) es una solución rápida a un problema de programación difícil. Es decir, entre todas estas arquitecturas no hay una conexión lógica clara y visible. Todo lo que las une es un conjunto de hacks más exitosos que se copian entre sí, más la operación de convolución con retroalimentación (retropropagación del error, backpropagation). No hay 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 hacks, son extremadamente difíciles de recordar y aplicar en la práctica. Son conocimientos fragmentados. En el mejor de los casos, se recuerdan algunos momentos interesantes e inesperados, pero la mayor parte de lo comprendido y no comprendido desaparece de la memoria en pocos días. Será bueno si, después de una semana, al menos se recuerda el nombre de la arquitectura. ¡Y eso que se han pasado varias horas e incluso días de trabajo leyendo artículos y viendo videos de revisión!

Redes neuronales. Hacia dónde se dirige 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 incluso estos conocimientos fragmentados no sean comprendidos por los lectores. Pero las construcciones de gerundio en oraciones de diez líneas con fórmulas tomadas 'del aire' son un tema para un artículo aparte (problema publish or perish).

Por esta razón, surgió la necesidad de sistematizar la información sobre redes neuronales y, de este modo, aumentar la calidad de comprensión y retención. Así, el tema principal del análisis de tecnologías y arquitecturas de redes neuronales artificiales se convirtió en la siguiente tarea: descubrir hacia dónde se dirige todo esto, y no el funcionamiento de alguna red neuronal en particular.

Hacia dónde se dirige todo esto. Resultados principales:

  • El número de startups en el campo del aprendizaje automático en los últimos dos años ha caído drásticamente. Posible razón: 'las redes neuronales han dejado de ser algo nuevo'.
  • Cualquiera podrá crear una red neuronal funcional para resolver una tarea sencilla. Para ello, tomará un modelo listo del 'zoológico de modelos' (model zoo) y entrenará la última capa de la red neuronal (transfer learning) con datos disponibles de Google Dataset Search o desde 25,000 conjuntos de datos de Kaggle en la nube gratuita de Jupyter Notebook.
  • Los grandes productores de redes neuronales han comenzado a crear 'zoológicos de modelos' (model zoo). Con ellos se puede crear rápidamente una aplicación comercial: TF Hub para TensorFlow, MMDetection para PyTorch, Detectron para Caffe2, chainer-modelzoo para Chainer y otros.
  • Redes neuronales operando en tiempo real (real-time) en dispositivos móviles. De 10 a 50 fotogramas por segundo.
  • La aplicación de redes neuronales en teléfonos (TF Lite), navegadores (TF.js) y en artículos de uso cotidiano (IoT, Iinternet of Tde las cosas). Especialmente en teléfonos que ya soportan redes neuronales a nivel de 'hardware' (neuroaceleradores).
  • «Cada dispositivo, prenda de vestir y, posiblemente, incluso la comida tendrán una dirección IP-v6 y se comunicarán entre sí» – Sebastián Thrun.
  • El aumento en el número de publicaciones sobre aprendizaje automático ha comenzado a superar la Ley de Moore (duplicarse cada dos años) desde 2015. Es evidente que necesitamos redes neuronales para analizar artículos.
  • Las siguientes tecnologías están ganando popularidad:
    • PyTorch – la popularidad está creciendo rápidamente y, al parecer, está superando a TensorFlow.
    • Selección automática de hiperparámetros AutoML – la popularidad está creciendo suavemente.
    • Disminución gradual de la precisión y aumento de la velocidad de cálculos: lógica difusa, algoritmos de boosting, cálculos inexactos (aproximados), cuantización (cuando los pesos de la red neuronal se convierten en números enteros y se cuantifican), neuroaceleradores.
    • Traducción de imágenes a texto y de texto a imagen.
    • Creación objetos tridimensionales a partir de videos, ahora en tiempo real.
    • Lo principal en DL es la gran cantidad de datos, pero recopilarlos y etiquetarlos no es fácil. Por eso se desarrolla la automatización de la etiquetación (automated annotation) para redes neuronales usando redes neuronales.
  • Con las redes neuronales, la informática se ha convertido de repente en una ciencia experimental y ha surgido una crisis de reproducibilidad..
  • El dinero en TI y la popularidad de las redes neuronales han surgido al mismo tiempo, cuando el cálculo se ha convertido en un valor de mercado. La economía de los activos se está transformando de economía de activos a economía computacional.. Vea mi artículo sobre econofísica y la razón del surgimiento del dinero en TI.

Gradualmente aparece una nueva metodología de programación ML/DL (Machine Learning & Deep Learning), que se basa en la representación del programa como un conjunto de modelos de redes neuronales entrenados.

Redes neuronales. Hacia dónde se dirige todo esto

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

Sin embargo, aún no ha surgido una «teoría de las redes neuronales», en el marco de la cual se puede pensar y trabajar de manera sistemática. Lo que ahora se llama «teoría» son en realidad algoritmos experimentales y heurísticos.

Enlaces a mis recursos y otros:

¡Gracias por su atención!

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster