El artículo consta de dos partes:
- Una breve descripción de algunas arquitecturas de red para detectar objetos en una imagen y segmentación de imágenes con los enlaces de recursos más comprensibles para mí. Traté de elegir explicaciones en video y preferiblemente en ruso.
- 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.

Figura 1 - Comprender la arquitectura de las redes neuronales no es fácil
Todo comenzó con el hecho de que hizo dos aplicaciones de demostración para clasificar y detectar objetos en un teléfono Android:
- Demostración de fondo , cuando los datos se procesan en el servidor y se transfieren al teléfono. Clasificación de imágenes de tres tipos de osos: marrón, negro y peluche.
- Demostración frontal cuando los datos se procesan en el teléfono. Detección de objetos de tres tipos: avellanas, higos y dátiles.
Hay una diferencia entre las tareas de clasificar imágenes, detectar objetos en una imagen y segmentar imágenes . Por lo tanto, era necesario averiguar qué arquitecturas de redes neuronales detectan objetos en imágenes y cuáles pueden segmentarse. Encontré los siguientes ejemplos de arquitecturas con los enlaces de recursos más comprensibles para mí:
- Una serie de arquitecturas basadas en R-CNN ( R egions con características de red N onural de onvolución): R-CNN, Fast R-CNN, Faster R-CNN , Mask R-CNN . Para detectar un objeto en una imagen usando el mecanismo de Red de Propuesta de Región (RPN), se asignan cuadros delimitadores. Inicialmente, se utilizó el mecanismo de búsqueda selectiva más lento en lugar del RPN. Luego, las regiones limitadas seleccionadas se alimentan a la entrada de una red neuronal normal para su clasificación. En la arquitectura de R-CNN hay ciclos explícitos de enumeración "para" en regiones limitadas, en total hasta 2000 ejecuciones a través de la red interna AlexNet. Debido a los bucles "for" explícitos, la velocidad de procesamiento de imágenes se ralentiza. El número de ciclos explícitos, se ejecuta a través de la red neuronal interna, disminuye con cada nueva versión de la arquitectura, y se llevan a cabo docenas de otros cambios para aumentar la velocidad y reemplazar la tarea de detectar objetos con segmentación de objetos en Máscara R-CNN.
- YOLO ( O lly O Lok O once) es la primera red neuronal que reconoce objetos en tiempo real en dispositivos móviles. Característica distintiva: distinguir objetos en una ejecución (solo mira una vez). Es decir, no hay bucles "for" explícitos en la arquitectura YOLO, por lo que la red es rápida. Por ejemplo, esto es una analogía: en NumPy no hay bucles "for" explícitos en operaciones con matrices, que se implementan en NumPy en niveles inferiores de arquitectura a través del lenguaje de programación C. YOLO utiliza una cuadrícula de ventanas predefinidas. Para evitar que se detecte el mismo objeto varias veces, se utiliza el coeficiente de superposición de ventana (IoU, Intersection o ver Union). Esta arquitectura funciona en una amplia gama y tiene una gran robustez : el modelo se puede entrenar en fotografías, pero al mismo tiempo funciona bien en pinturas pintadas.
- SSD (Detector MultiBox S ingle S hot): se utilizan los "hacks" más exitosos de la arquitectura YOLO (por ejemplo, supresión no máxima) y se agregan otros nuevos para hacer que la red neuronal sea más rápida y precisa. Característica distintiva: distinguir objetos en una ejecución utilizando una cuadrícula de ventanas dada (cuadro predeterminado) en la pirámide de imágenes. La pirámide de imágenes está codificada en tensores de convolución durante sucesivas operaciones de convolución y agrupación (con la operación de agrupación máxima, la dimensión espacial disminuye). De esta manera, los objetos grandes y pequeños se determinan en una sola ejecución de red.
- MobileSSD ( Mobile NetV2 + SSD ) es una combinación de dos arquitecturas de red neuronal. La primera red MobileNetV2 es rápida y aumenta la precisión del reconocimiento. MobileNetV2 se utiliza en lugar de VGG-16, que se utilizó originalmente en el artículo original . La segunda red SSD determina la ubicación de los objetos en la imagen.
- SqueezeNet es una red neuronal muy pequeña pero precisa. Por sí solo, no resuelve el problema de detectar objetos. Sin embargo, se puede usar con una combinación de diferentes arquitecturas. Y ser utilizado en dispositivos móviles. Una característica distintiva es que los datos se comprimen primero en cuatro filtros convolucionales 1 × 1, y luego se expanden a cuatro filtros convolucionales 1 × 1 y cuatro 3 × 3. Una de estas iteraciones de compresión-expansión de datos se llama "Módulo de Fuego".
- DeepLab (Segmentación de imagen semántica con redes convolucionales profundas): segmentación de objetos en la imagen. Una característica distintiva de la arquitectura es una convolución diluida, que preserva la resolución espacial. Esto es seguido por la etapa de postprocesamiento de los resultados utilizando un modelo gráfico probabilístico (campo aleatorio condicional), que le permite eliminar pequeños ruidos en la segmentación y mejorar la calidad de la imagen segmentada. Detrás del nombre formidable "modelo probabilístico gráfico" está el filtro gaussiano habitual, que se aproxima en cinco puntos.
- Traté de entender el dispositivo RefineDet (Red neuronal de refinamiento de disparo único para la detección de objetos), pero entendí muy poco.
- También miré cómo funciona la tecnología de atención: video1 , video2 , video3 . Una característica distintiva de la arquitectura de "atención" es la asignación automática de regiones de mayor atención a la imagen (RoI, R egions of f Iterest) utilizando una red neuronal llamada Unidad de Atención. Las regiones de mayor atención son similares a las regiones limitadas (cuadros delimitadores), pero a diferencia de ellas, no están fijas en la imagen y pueden tener bordes borrosos. Luego, de las regiones de mayor atención, se distinguen características (características) que se "alimentan" a redes neuronales recurrentes con arquitecturas LSDM, GRU o Vanilla RNN . Las redes neuronales recursivas pueden analizar la relación de los signos en una secuencia. Las redes neuronales recursivas se utilizaron originalmente para traducir texto a otros idiomas, y ahora para traducir imágenes en texto y texto en imágenes .
Mientras estudiaba estas arquitecturas, me di cuenta de que no entendía nada . Y el punto no es que mi red neuronal tenga problemas con el mecanismo de atención. La creación de todas estas arquitecturas parece una especie de gran hackathon donde los autores compiten en hacks. Hack es una solución rápida para una tarea de software difícil. Es decir, no hay una conexión lógica visible y comprensible entre todas estas arquitecturas. Todo lo que los une es un conjunto de los hacks más exitosos que se prestan entre sí, más una operación de convolución común con retroalimentación (propagación inversa del error, propagación inversa). ¡Ningún pensamiento sistémico ! No está claro qué cambiar y cómo optimizar los logros existentes.
Como resultado de la falta de una conexión lógica entre los hacks, son extremadamente difíciles de recordar y poner en práctica. Esto es conocimiento fragmentado. En el mejor de los casos, se recuerdan varios momentos interesantes e inesperados, pero la mayor parte de lo que se entiende e incomprensible desaparece de la memoria en pocos días. Será bueno si en una semana recuerdo al menos el nombre de la arquitectura. ¡Pero tomó varias horas e incluso días de tiempo de trabajo leer artículos y ver videos de revisión!

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 este conocimiento fragmentado no sea entendido por el lector. Pero los participios en oraciones de diez líneas con fórmulas tomadas "desde el techo" es un tema para un artículo separado (problema de publicación o fallecimiento ).
Por esta razón, se hizo necesario sistematizar la información en redes neuronales y, por lo tanto, aumentar la calidad de la comprensión y la memorización. Por lo tanto, el tema principal de análisis de las tecnologías y arquitecturas individuales de las redes neuronales artificiales fue la siguiente tarea: averiguar dónde se mueve todo esto , y no el dispositivo de ninguna red neuronal en particular por separado.
¿A dónde va todo esto? Los principales resultados:
- El número de nuevas empresas en el campo del aprendizaje automático ha disminuido considerablemente en los últimos dos años. Posible razón: "las redes neuronales han dejado de ser algo nuevo".
- Todos podrán crear una red neuronal que funcione para resolver un problema simple. Para hacer esto, tome el modelo terminado del "zoológico modelo" y entrene la última capa de la red neuronal ( aprendizaje de transferencia ) en los datos terminados de Google Dataset Search o de 25 mil conjuntos de datos Kaggle en la nube gratuita de Jupyter Notebook .
- Los grandes fabricantes de redes neuronales comenzaron a crear "zoológicos modelo" (zoológico modelo). Con ellos, 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 en tiempo real en dispositivos móviles. 10 a 50 cuadros 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 y T hings). Especialmente en teléfonos que ya admiten redes neuronales a nivel de hardware (neuroaceleradores).
- "Cada dispositivo, ropa y posiblemente incluso comida tendrán una dirección IP-v6 y se comunicarán entre sí" - Sebastian Trun .
- El aumento en las publicaciones de aprendizaje automático ha comenzado a superar la ley de Moore (que se duplica cada dos años) desde 2015. Obviamente, se necesitan redes neuronales de análisis de artículos.
- Las siguientes tecnologías están ganando popularidad:
- PyTorch : la popularidad está creciendo rápidamente y parece superar 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 de refuerzo, cálculos inexactos (aproximados), cuantización (cuando los pesos de una red neuronal se convierten en enteros y cuantificados), neuroaceleradores.
- Traducción de imagen en texto y texto en imagen .
- Creación de objetos tridimensionales en video , ahora en tiempo real.
- Lo principal en DL es una gran cantidad de datos, pero recopilarlos y marcarlos no es fácil. Por lo tanto, se está desarrollando una anotación automatizada para redes neuronales que usan redes neuronales.
- Con las redes neuronales, la informática de repente se convirtió en una ciencia experimental y surgió una crisis de reproducibilidad .
- El dinero de 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 del oro y las divisas se está convirtiendo en la computación de la moneda de oro . Vea mi artículo sobre econofísica y la razón de la aparición del dinero de TI.
Gradualmente, aparece una nueva metodología de programación ML / DL (Machine Learning & Deep Learning), que se basa en la presentación del programa como una colección de modelos entrenados de redes neuronales.

Figura 3 - ML / DL como una nueva metodología de programación
Sin embargo, la "teoría de las redes neuronales" no apareció, dentro del marco de la cual uno puede pensar y trabajar sistemáticamente. Lo que ahora se llama "teoría" es en realidad algoritmos heurísticos experimentales.
Enlaces a mis y no solo recursos:
- Boletín de ciencia de datos. Principalmente procesamiento de imágenes. Quien quiera recibir, deje que envíe un correo electrónico (foobar167 <gaff-gaf> gmail <dot> com). Envío enlaces a artículos y videos a medida que se acumula material.
- Una lista general de cursos y artículos que he tomado y que me gustaría tomar.
- Cursos y videos para principiantes , de los cuales vale la pena comenzar a estudiar redes neuronales. Además del folleto "Introducción al aprendizaje automático y las redes neuronales artificiales" .
- Herramientas útiles donde todos encontrarán algo interesante para ellos.
- Los canales de video para el análisis de artículos científicos sobre Data Science resultaron ser extremadamente útiles. Encuentra, suscríbete y envía enlaces a tus colegas y a mí también. Ejemplos:
Gracias por su atencion!