El artículo se compone de dos partes:
- 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.
- 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.

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:
- , 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.
- , 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 . 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, , . 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.
- (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 : el modelo se puede entrenar con fotografías, pero también puede funcionar bien con pinturas dibujadas.
- (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 funciona rápidamente y aumenta la precisión del reconocimiento. MobileNetV2 se utiliza en lugar de VGG-16, que se usaba originalmente en . La segunda red SSD define la ubicación de los objetos en la imagen.
- 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'.
- (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 (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: , , . 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 . 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 y .
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 pensamiento sistémico ! Не понятно, что менять и как оптимизировать имеющиеся достижения.
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!

Figura 2 –
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 ).
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 . 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 () con datos disponibles de o desde en la nube gratuita de .
- 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: para TensorFlow, para PyTorch, para Caffe2, para Chainer y .
- 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 (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í» – .
- El aumento en el número de publicaciones sobre aprendizaje automático ha comenzado (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: , algoritmos , 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 y .
- Creación , 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 () 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 .
- 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 y la razón del surgimiento del dinero en TI.
Gradualmente aparece una nueva (Machine Learning & Deep Learning), que se basa en la representación del programa como un conjunto de modelos de redes neuronales entrenados.

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:
- Boletín de noticias sobre Data Science. Principalmente sobre procesamiento de imágenes. Quien desee recibirlo, que envíe un correo electrónico (foobar167<guau-guau>gmail<punto>com). Envío enlaces a artículos y videos a medida que acumulo material.
- Lista general , que he tomado y que me gustaría tomar.
- , con los que se debería empezar a estudiar redes neuronales. Además, un folleto .
- , donde cada uno encontrará algo interesante para sí mismo.
- Han sido extremadamente útiles los canales de vídeo que analizan artículos científicos sobre Data Science. Encuéntralos, suscríbete a ellos y comparte los enlaces con tus colegas, y también conmigo. Ejemplos:
- y con instrucciones paso a paso y código abierto.
¡Gracias por su atención!
Fuente: habr.com
