Menú
Está libre
registro
hogar  /  Instalacion y configuracion/ Programas de reconocimiento de imágenes en redes neuronales. Desarrollo de un sistema de reconocimiento de imágenes basado en el aparato de redes neuronales artificiales.

Programas de reconocimiento de imágenes en redes neuronales. Desarrollo de un sistema de reconocimiento de imágenes basado en el aparato de redes neuronales artificiales.

1

Una red neuronal es un modelo matemático y su implementación en forma de implementación de software o hardware-software, que se basa en modelar la actividad de las redes neuronales biológicas, que son redes de neuronas en un organismo biológico. El interés científico por esta estructura surgió porque el estudio de su modelo permite obtener información sobre un determinado sistema. Es decir, un modelo de este tipo puede tener una implementación práctica en varias ramas de la ciencia y la tecnología modernas. El artículo analiza cuestiones relacionadas con el uso de redes neuronales para la construcción de sistemas de identificación de imágenes que se utilizan ampliamente en los sistemas de seguridad. Se investigan en detalle cuestiones relacionadas con el tema del algoritmo de reconocimiento de imágenes y su aplicación. Proporciona brevemente información sobre la metodología para el entrenamiento de redes neuronales.

Redes neuronales

aprender con redes neuronales

reconocimiento de imagen

paradigma de percepción local

sistemas de seguridad

1. Yann LeCun, J.S. Denker, S. Solla, R.E. Howard y L. D. Jackel: Óptimo daño cerebral, en Touretzky, David (Eds), Avances en los sistemas de procesamiento de información neuronal 2 (NIPS * 89). - 2000 .-- 100 p.

2. Zhigalov K.Yu. Método de vectorización fotorrealista de datos de medición por láser para su uso posterior en SIG // Izvestiya vysshikh uchebnykh zavod. Geodesia y fotografía aérea. - 2007. - No. 6. - P. 285–287.

3. Ranzato Marc'Aurelio, Christopher Poultney, Sumit Chopra y Yann LeCun: aprendizaje eficiente de representaciones dispersas con un modelo basado en energía, en J. Platt et al. (Eds), Avances en sistemas de procesamiento de información neuronal (NIPS 2006). - 2010 .-- 400 p.

4. Zhigalov K.Yu. Preparación de equipos para su uso en sistemas. control automatizado construcción de carreteras // Ciencias naturales y técnicas. - M., 2014. - No. 1 (69). - S. 285-287.

5. Y. LeCun y Y. Bengio: Redes convolucionales para imágenes, habla y series de tiempo, en Arbib, M. A. (Eds) // El manual de teoría del cerebro y redes neuronales. - 2005 .-- 150 p.

6. Y. LeCun, L. Bottou, G. Orr y K. Muller: Efficient BackProp, en Orr, G. y K. Muller (Eds) // Redes neuronales: Trucos del oficio. - 2008 .-- 200 p.

Hoy, el progreso tecnológico y de la investigación cubre todos los nuevos horizontes, avanzando rápidamente. Uno de ellos es modelar el mundo natural circundante utilizando algoritmos matemáticos. En este aspecto, existen tareas triviales, por ejemplo, modelar las vibraciones del mar, y tareas multicomponentes extremadamente complejas, no triviales, por ejemplo, modelar el funcionamiento del cerebro humano. En el proceso de estudiar este tema, se identificó un concepto separado: una red neuronal. Una red neuronal es un modelo matemático y su implementación en forma de implementación de software o hardware-software, que se basa en modelar la actividad de las redes neuronales biológicas, que son redes de neuronas en un organismo biológico. El interés científico por esta estructura surgió porque el estudio de su modelo permite obtener información sobre un determinado sistema. Es decir, un modelo de este tipo puede tener una implementación práctica en varias ramas de la ciencia y la tecnología modernas.

Una breve historia del desarrollo de las redes neuronales.

Cabe señalar que inicialmente el concepto de "red neuronal" se origina en el trabajo de los matemáticos, neurolingüistas y neuropsicólogos estadounidenses W. McCulloch y W. Pitts (1943), donde los autores lo mencionan por primera vez, lo definen y hacen el primer intento de construir un modelo red neuronal... Ya en 1949, D. Hebb propuso el primer algoritmo de aprendizaje. Luego hubo una serie de estudios en el campo del aprendizaje neuronal, y los primeros prototipos funcionales aparecieron alrededor de 1990-1991. siglo pasado. Sin embargo, la potencia de cálculo de los equipos de esa época no era suficiente para el funcionamiento lo suficientemente rápido de las redes neuronales. Para 2010, el poder de las tarjetas de video GPU ha aumentado considerablemente y apareció el concepto de programación directamente en tarjetas de video, lo que aumentó significativamente (3-4 veces) el rendimiento de las computadoras. En 2012, las redes neuronales ganaron por primera vez el campeonato ImageNet, lo que marcó su rápido desarrollo y la aparición del término Deep Learning.

V mundo moderno Las redes neuronales tienen una cobertura colosal, los científicos consideran que las investigaciones realizadas en el campo del estudio de las características y estados de comportamiento de las redes neuronales son extremadamente prometedoras. La lista de áreas en las que las redes neuronales han encontrado aplicación es enorme. Esto incluye el reconocimiento y clasificación de imágenes, y la previsión, y la solución de problemas de aproximación, y algunos aspectos de compresión de datos, análisis de datos y, por supuesto, aplicación en sistemas de seguridad de distinta índole.

El estudio de las redes neuronales se está llevando a cabo activamente en las comunidades científicas de hoy. diferentes paises... Con tal consideración, se presenta como un caso especial de varios métodos de reconocimiento de patrones, análisis discriminante y métodos de agrupamiento.

Cabe destacar, además, que durante el último año se ha destinado financiación a startups en el ámbito de los sistemas de reconocimiento de imágenes desde hace más de los 5 años anteriores, lo que indica una demanda bastante elevada de este tipo de desarrollos en el mercado final.

Aplicación de redes neuronales para el reconocimiento de imágenes.

Considere las tareas estándar que resuelven las redes neuronales cuando se aplican a las imágenes:

● identificación de objetos;

● reconocimiento de partes de objetos (por ejemplo, caras, brazos, piernas, etc.);

● definición semántica de los límites de los objetos (le permite dejar solo los límites de los objetos en la imagen);

● segmentación semántica (le permite dividir la imagen en varios objetos separados);

● selección de normales de superficie (le permite convertir imágenes bidimensionales en imágenes tridimensionales);

● resaltar objetos de atención (le permite determinar a qué prestaría atención una persona en una imagen determinada).

Cabe señalar que el problema del reconocimiento de imágenes tiene un carácter llamativo, la solución de este problema es un proceso complejo y extraordinario. Al realizar el reconocimiento, el objeto puede ser un rostro humano, un dígito escrito a mano, así como muchos otros objetos que se caracterizan por una serie de características únicas, lo que complica significativamente el proceso de identificación.

En este estudio, consideraremos un algoritmo para crear y aprender a reconocer símbolos escritos a mano de una red neuronal. Una de las entradas de la red neuronal leerá la imagen y una de las salidas se utilizará para generar el resultado.

En esta etapa, es necesario detenerse brevemente en la clasificación de las redes neuronales. Hoy en día existen tres tipos principales:

● redes neuronales convolucionales (CNN);

● redes recurrentes (aprendizaje profundo);

● aprendizaje por refuerzo.

Uno de los ejemplos más comunes de construcción de una red neuronal es la topología de red neuronal clásica. Una red neuronal de este tipo se puede representar como un gráfico completamente conectado, su rasgo característico es la propagación hacia adelante de información y la propagación hacia atrás de la señalización sobre un error. Esta tecnologia no tiene propiedades recursivas. Una red neuronal ilustrativa con topología clásica se puede representar en la Fig. 1.

Arroz. 1. Red neuronal con la topología más simple

Arroz. 2. Red neuronal con 4 capas de neuronas ocultas

Una de las desventajas claramente significativas de esta topología de red es la redundancia. Debido a la redundancia al suministrar datos en forma de, por ejemplo, una matriz bidimensional a la entrada, se puede obtener un vector unidimensional. Entonces, para la imagen de una letra latina manuscrita descrita usando una matriz de 34x34, se requieren 1156 entradas. Esto sugiere que poder computacional, gastado en la implementación de la solución de hardware-software de este algoritmo será demasiado grande.

El problema fue resuelto por el científico estadounidense Ian Le Koon, quien analizó el trabajo de los premios Nobel de medicina T. Wtesel y D. Hubel. Como parte de su estudio, el objeto del estudio fue la corteza visual del cerebro del gato. El análisis de los resultados mostró que la corteza contiene varias células simples, así como varias células complejas. Las células simples reaccionaron a la imagen de líneas rectas recibidas de los receptores visuales y las células complejas, al movimiento de traslación en una dirección. Como resultado, se desarrolló el principio de construcción de redes neuronales, llamado convolucional. La idea de este principio era que para implementar el funcionamiento de la red neuronal, la alternancia de capas convolucionales, que generalmente se denotan como C - Capas, capas de submuestreo S - Capas y capas completamente conectadas F - Capas, en la salida de se utilizan la red neuronal.

En el corazón de la construcción de una red de este tipo hay tres paradigmas: el paradigma de la percepción local, el paradigma de los pesos compartidos y el paradigma del submuestreo.

La esencia del paradigma de percepción local es que no se alimenta toda la matriz de imagen a cada neurona de entrada, sino una parte de ella. El resto de las partes se alimentan a otras neuronas de entrada. En este caso, puede observar el mecanismo de paralelización, utilizando este método, puede guardar la topología de la imagen de capa a capa, procesándola multidimensionalmente, es decir, durante el procesamiento, se pueden usar varias redes neuronales.

El paradigma de ponderaciones compartidas sugiere que se puede utilizar un pequeño conjunto de ponderaciones para múltiples relaciones. Estos conjuntos también se denominan "núcleos". Para el resultado final del procesamiento de imágenes, podemos decir que los pesos compartidos tienen un efecto positivo en las propiedades de la red neuronal, cuyo estudio de comportamiento aumenta la capacidad de encontrar invariantes en imágenes y filtrar componentes de ruido sin procesarlos.

Con base en lo anterior, podemos concluir que al aplicar el procedimiento de plegado de imagen en base al kernel, aparecerá una imagen de salida, cuyos elementos serán la característica principal del grado de conformidad con el filtro, es decir, una Se generará un mapa de características. Este algoritmo se muestra en la Fig. 3.

Arroz. 3. Algoritmo para generar un mapa de características

El paradigma del submuestreo es que la imagen de entrada se reduce al disminuir la dimensión espacial de su equivalente matemático: una matriz n-dimensional. La necesidad de submuestreo se expresa en invarianza a la escala de la imagen original. Al aplicar la técnica de capas alternas, es posible generar nuevos mapas de características a partir de los existentes, es decir, una implementación práctica este método radica en el hecho de que se adquirirá la capacidad de degenerar una matriz multidimensional en una matriz vectorial y luego completamente en una cantidad escalar.

Implementar el entrenamiento de redes neuronales

Las redes existentes se dividen en 3 clases de arquitecturas en términos de aprendizaje:

● aprendizaje supervisado (percepción);

● aprendizaje no supervisado (redes de resonancia adaptativa);

● aprendizaje combinado (redes de funciones de base radial).

Uno de los criterios más importantes para evaluar el rendimiento de una red neuronal en el caso del reconocimiento de imágenes es la calidad del reconocimiento de imágenes. Cabe señalar que para una evaluación cuantitativa de la calidad del reconocimiento de imágenes utilizando el funcionamiento de una red neuronal, el algoritmo de error de raíz cuadrada media se usa con mayor frecuencia:

(1)

En esta dependencia, Ep es el p-ésimo error de reconocimiento para un par de neuronas,

Dp es la salida esperada de la red neuronal (por lo general, la red debería esforzarse por lograr un reconocimiento del 100%, pero esto no sucede en la práctica), y la construcción O (Ip, W) 2 es el cuadrado de la salida de la red, que depende de la entrada p-ésima y el conjunto de los coeficientes de peso W. Esta construcción incluye tanto los núcleos de convolución como los coeficientes de peso de todas las capas. El cálculo del error consiste en calcular la media aritmética de todos los pares de neuronas.

Como resultado del análisis, se derivó una regularidad de que el valor nominal del peso, cuando el valor de error es mínimo, se puede calcular en base a la relación (2):

(2)

A partir de esta dependencia, podemos decir que el problema de calcular el peso óptimo es la diferencia aritmética de la derivada de la función de error de primer orden con respecto al peso, dividida por la derivada de la función de error de segundo orden.

Las dependencias dadas permiten calcular trivialmente el error que se encuentra en la capa de salida. El cálculo del error en las capas ocultas de neuronas se puede implementar utilizando el método de retropropagación del error. La idea principal del método es difundir información, en forma de señalización de un error, desde las neuronas de salida a las neuronas de entrada, es decir, en la dirección opuesta a la propagación de señales a través de la red neuronal.

También vale la pena señalar que el entrenamiento de la red se lleva a cabo en bases de datos especialmente preparadas de imágenes clasificadas en un gran número de clases y lleva bastante tiempo.
Hoy en día, la base de datos más grande es ImageNet (www.image_net.org). Ella tiene acceso libre para instituciones académicas.

Conclusión

Como resultado de lo anterior, cabe señalar que las redes neuronales y los algoritmos, implementados en el principio de su funcionamiento, se pueden utilizar en los sistemas de reconocimiento de una tarjeta de huellas dactilares para los órganos de asuntos internos. A menudo es componente de software un complejo de software y hardware destinado a reconocer una imagen compleja tan única como un dibujo, que es un dato de identificación, no resuelve por completo las tareas que se le asignan. Un programa basado en algoritmos basados ​​en una red neuronal será mucho más eficiente.

Para resumir, podemos resumir lo siguiente:

● las redes neuronales pueden encontrar aplicación, tanto en el tema del reconocimiento de imágenes como de textos;

● esta teoría permite hablar de la creación de una nueva clase de modelos prometedores, a saber, modelos basados ​​en modelos inteligentes;

● Las redes neuronales son capaces de aprender, lo que indica la posibilidad de optimizar el funcionamiento del proceso. Esta capacidad es una opción extremadamente importante para implementación práctica algoritmo;

● La evaluación del algoritmo de reconocimiento de patrones mediante un estudio de redes neuronales puede tener un significado cuantitativo, por lo que existen mecanismos para ajustar los parámetros al valor requerido mediante el cálculo de los coeficientes de peso requeridos.

Hoy en día, la investigación adicional de las redes neuronales parece ser un área de investigación prometedora que se aplicará con éxito en aún más ramas de la ciencia y la tecnología, así como en las actividades humanas. Enfoque de desarrollo sistemas modernos El reconocimiento ahora está cambiando al campo de la segmentación semántica de imágenes 3D en geodesia, medicina, creación de prototipos y otras áreas de la actividad humana; estos son algoritmos bastante complejos y esto se debe a:

● falta de un número suficiente de bases de datos de imágenes de referencia;

● falta de un número suficiente de expertos gratuitos para la formación inicial del sistema;

● las imágenes no se almacenan en píxeles, lo que requiere recursos adicionales tanto de la computadora como de los desarrolladores.

Cabe destacar también que en la actualidad existe una gran cantidad de arquitecturas estándar para la construcción de redes neuronales, lo que facilita enormemente la tarea de construir una red neuronal desde cero y la reduce a la selección de una red neuronal adecuada. tarea específica estructura de red.

Actualmente, hay un gran número de empresas innovadoras en el mercado que se dedican al reconocimiento de imágenes utilizando tecnologías de aprendizaje de redes neuronales para el sistema. Se sabe con certeza que lograron una precisión de reconocimiento de imágenes en la región del 95% utilizando una base de datos de 10,000 imágenes. Sin embargo, todos los logros están relacionados con imágenes estáticas, con secuencias de video en en la actualidad todo es mucho más complicado.

Referencia bibliográfica

Markova S.V., Zhigalov K.Yu. APLICACIÓN DE UNA RED NEURAL PARA LA CREACIÓN DE UN SISTEMA DE RECONOCIMIENTO DE IMÁGENES // Investigación fundamental. - 2017. - No. 8-1. - S. 60-64;
URL: http://fundamental-research.ru/ru/article/view?id=41621 (fecha de acceso: 24.03.2019) Llamamos a su atención las revistas publicadas por la "Academia de Ciencias Naturales"

Ya se ha dicho bastante como una de las herramientas para resolver tareas difíciles de formalizar. Y aquí, en Habré, se mostró cómo utilizar estas redes para el reconocimiento de imágenes, en relación con la tarea de descifrar captcha. Sin embargo, existen bastantes tipos de redes neuronales. ¿Y es la red neuronal completamente conectada (PNN) clásica tan buena para el problema del reconocimiento de imágenes (clasificación)?

1. Tarea

Entonces, vamos a resolver el problema del reconocimiento de imágenes. Puede ser el reconocimiento de rostros, objetos, símbolos, etc. Propongo comenzar por considerar el problema del reconocimiento de números escritos a mano. Esta tarea es buena por varias razones:

    Para reconocer un carácter escrito a mano, es bastante difícil componer un algoritmo formalizado (no inteligente), y esto queda claro, solo tienes que mirar el mismo número escrito por diferentes personas

    La tarea es bastante relevante y tiene que ver con OCR (reconocimiento óptico de caracteres)

    Hay una base de datos gratuita de símbolos escritos a mano disponible para descargar y experimentar.

    Hay bastantes artículos sobre este tema y es muy fácil y conveniente comparar diferentes enfoques.

Se propone utilizar la base de datos MNIST como entrada. Esta base de datos contiene 60.000 pares de entrenamiento (imagen - etiqueta) y 10.000 pruebas (imágenes sin etiquetas). Las imágenes se normalizan en tamaño y se centran. El tamaño de cada dígito no es más de 20x20, pero están inscritos en un cuadrado de 28x28. En la figura se muestra un ejemplo de los primeros 12 dígitos del conjunto de entrenamiento de la base de datos MNIST:

Por tanto, la tarea se formula de la siguiente manera: crear y entrenar una red neuronal para reconocer caracteres escritos a mano, tomando sus imágenes como entrada y activando una de las 10 salidas... Por activación nos referimos al valor 1 en la salida. En este caso, los valores de las otras salidas deberían (idealmente) ser iguales a -1. Explicaré más adelante por qué no se usa la escala.

2. Redes neuronales "regulares".

La mayoría de la gente entiende por redes neuronales "ordinarias" o "clásicas" redes neuronales de retroalimentación completamente conectadas con propagación inversa de un error:

Como sugiere el nombre, en una red de este tipo, cada neurona está conectada a cada una, la señal va solo en la dirección de la capa de entrada a la salida, no hay recursiones. Llamaremos a dicha red en forma abreviada PNS.

Primero, debe decidir cómo enviar datos a la entrada. La solución más simple y casi indiscutible para PNS es expresar la matriz de imagen bidimensional como un vector unidimensional. Aquellos. para la imagen de una figura manuscrita con un tamaño de 28x28, tendremos 784 entradas, que ya es bastante. Entonces, lo que sucede es aquello por lo que a muchos científicos conservadores no les gustan los científicos de redes neuronales y sus métodos: la elección de la arquitectura. Y no les gusta, porque la elección de la arquitectura es puro chamanismo. Hasta ahora, no existen métodos que permitan determinar de forma inequívoca la estructura y composición de una red neuronal en función de la descripción del problema. En defensa, diré que tal método casi nunca se creará para tareas difíciles de formalizar. Además, existen muchas técnicas de reducción de red diferentes (por ejemplo, OBD), así como diferentes heurísticas y reglas generales. Una de estas reglas establece que el número de neuronas en la capa oculta debe ser al menos un orden de magnitud mayor que el número de entradas. Si tenemos en cuenta que la transformación de una imagen a un indicador de clase en sí es bastante compleja y esencialmente no lineal, una capa no es suficiente aquí. Con base en lo anterior, estimamos aproximadamente que el número de neuronas en las capas ocultas será del orden de 15000 (10,000 en la 2da capa y 5,000 en la tercera). Además, para una configuración con dos capas ocultas, el número enlaces personalizables y entrenables habrá 10 millones entre las entradas y la primera capa oculta + 50 millones entre la primera y la segunda + 50 mil entre el segundo y el fin de semana, si asumimos que tenemos 10 salidas, cada una de las cuales denota un número de 0 a 9. Total aproximadamente 60.000.000 conexiones... No en vano mencioné que son personalizables, lo que significa que durante el entrenamiento, deberás calcular el gradiente de error para cada uno de ellos.

¿Qué puedes hacer aquí? La belleza de la inteligencia artificial requiere sacrificio. Pero si lo piensas bien, te viene a la mente que cuando transformamos una imagen en una cadena lineal de bytes, estamos perdiendo algo irremediablemente. Además, con cada capa, esta pérdida solo empeora. Y así es: perdemos la topología de la imagen, es decir, la relación entre sus partes individuales. Además, la tarea de reconocimiento implica la capacidad de la red neuronal para ser resistente a pequeños cambios, rotaciones y cambios en la escala de la imagen, es decir. debe extraer de los datos algunas invariantes que no dependan de la caligrafía de tal o cual persona. Entonces, ¿qué debería ser una red neuronal para que no sea muy compleja computacionalmente y, al mismo tiempo, más invariable a diversas distorsiones de imagen?

3. Redes neuronales convolucionales

La solución a este problema la encontró el científico franco-estadounidense Ian LeCune, inspirado en el trabajo de los premios Nobel en el campo de la medicina Torsten Nils Wiesel y David H. Hubel. Estos científicos examinaron la corteza visual del cerebro del gato y encontraron que existen las llamadas células simples que reaccionan de manera particularmente fuerte a las líneas rectas en diferentes ángulos y células complejas que responden al movimiento de las líneas en una dirección. Yang LeCun sugirió el uso de las llamadas redes neuronales convolucionales.

6. Resultados

El programa matlabcentral incluye un archivo de una red neuronal ya entrenada, así como una GUI para demostrar los resultados del trabajo. A continuación se muestran ejemplos de reconocimiento:



El enlace contiene una tabla de comparación de métodos de reconocimiento basados ​​en MNIST. Primer lugar para redes neuronales convolucionales con un resultado de errores de reconocimiento del 0,39%. La mayoría de estas imágenes mal identificadas no son reconocidas correctamente por todos. Además, en el trabajo se utilizaron distorsiones elásticas de las imágenes de entrada, así como entrenamiento preliminar no supervisado. Pero sobre estos métodos como algo más en otro artículo.

Enlaces.

  1. Yann LeCun, J. S. Denker, S. Solla, R. E. Howard y L. D. Jackel: Optimal Brain Damage, en Touretzky, David (Eds), Advances in Neural Information Processing Systems 2 (NIPS * 89), Morgan Kaufman, Denver, CO, 1990
  2. Y. LeCun y Y. Bengio: Redes convolucionales para imágenes, habla y series de tiempo, en Arbib, M. A. (Eds), The Handbook of Brain Theory and Neural Networks, MIT Press, 1995
  3. Y. LeCun, L. Bottou, G. Orr y K. Muller: Efficient BackProp, en Orr, G. y Muller K. (Eds), Neural Networks: Tricks of the trade, Springer, 1998
  4. Ranzato Marc "Aurelio, Christopher Poultney, Sumit Chopra y Yann LeCun: Efficient Learning of Sparse Representations with an Energy-Based Model, en J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press , 2006

Amigos, continuamos la historia sobre las redes neuronales, que comenzamos la última vez, y sobre.

Que es una red neuronal

En el caso más simple, una red neuronal es un modelo matemático que consta de varias capas de elementos que realizan cálculos en paralelo. Inicialmente, dicha arquitectura se creó por analogía con los elementos informáticos más pequeños del cerebro humano: las neuronas. Los elementos computacionales más pequeños de una red neuronal artificial también se denominan neuronas. Las redes neuronales suelen constar de tres o más capas: una capa de entrada, una capa oculta (o capas) y una capa de salida (Fig.1), en algunos casos no se tienen en cuenta las capas de entrada y salida, y luego el número de Las capas de la red se cuentan por el número de capas ocultas. Este tipo de red neuronal se llama perceptrón.

Arroz. 1. El perceptrón más simple

Una característica importante de una red neuronal es su capacidad para aprender con el ejemplo, esto se denomina aprendizaje supervisado. La red neuronal se entrena en una gran cantidad de ejemplos que consisten en pares de entrada y salida (entrada y salida que se corresponden entre sí). En problemas de reconocimiento de objetos, dicho par será la imagen de entrada y la etiqueta correspondiente: el nombre del objeto. La enseñanza de una red neuronal es un proceso iterativo que reduce la desviación de la salida de la red de una "respuesta del profesor" dada, una etiqueta que corresponde a una imagen determinada (Fig. 2). Este proceso consta de pasos llamados épocas de aprendizaje (generalmente son miles), en cada uno de los cuales se ajustan los "pesos" de la red neuronal, los parámetros de las capas ocultas de la red. Una vez completado el proceso de entrenamiento, la calidad de la red neuronal suele ser lo suficientemente buena para realizar la tarea para la que fue entrenada, aunque el conjunto óptimo de parámetros que reconoce perfectamente todas las imágenes a menudo es imposible de encontrar.


Arroz. 2. Entrenamiento de la red neuronal

¿Qué son las redes neuronales profundas?

Las redes neuronales profundas, o profundas, son redes neuronales que constan de varias capas ocultas (Fig. 3). Esta figura es una imagen de una red neuronal profunda, que le da al lector una idea general de cómo es una red neuronal. Sin embargo, la arquitectura real de las redes neuronales profundas es mucho más compleja.


Arroz. 3. Una red neuronal con muchas capas ocultas

Los creadores de las redes neuronales convolucionales se inspiraron, por supuesto, primero en las estructuras biológicas del sistema visual. Los primeros modelos computacionales basados ​​en el concepto de flujo visual jerárquico de primates se conocen como Fukushima Neocognitron (Figura 4). La comprensión moderna de la fisiología del sistema visual es similar al tipo de procesamiento de información en redes convolucionales, al menos para el reconocimiento rápido de objetos.


Arroz. 4. Diagrama que muestra las conexiones entre capas en el modelo Neocognitron.

Posteriormente, este concepto fue implementado por el investigador canadiense Ian LeCune en su red neuronal convolucional, que creó para reconocer caracteres escritos a mano. Esta red neuronal constaba de dos tipos de capas: capas convolucionales y capas de submuestreo (o capas de agrupación). En él, cada capa tiene una estructura topográfica, es decir, cada neurona está asociada a un punto fijo de la imagen original, así como a un campo receptivo (un área de la imagen de entrada que es procesada por esta neurona). En cada ubicación de cada capa, hay varias neuronas diferentes, cada una con su propio conjunto de pesos de entrada asociados con las neuronas en el corte rectangular de la capa anterior. Diferentes fragmentos rectangulares de entrada con el mismo conjunto de pesos están asociados con neuronas de diferentes ubicaciones.

La arquitectura general de una red neuronal profunda para el reconocimiento de patrones se muestra en la Figura 5. La imagen de entrada se representa como un conjunto de píxeles o áreas pequeñas de la imagen (por ejemplo, 5 por 5 píxeles)


Arroz. 5. Diagrama de red neuronal convolucional

Como regla general, las redes neuronales profundas se representan de forma simplificada: como etapas de procesamiento, que a veces se denominan filtros. Cada etapa se diferencia de otra en una serie de características, como el tamaño del campo receptivo, el tipo de características que la red aprende a reconocer en una capa determinada y el tipo de cálculo realizado en cada etapa.

Los campos de aplicación de las redes neuronales profundas, incluidas las redes convolucionales, no se limitan al reconocimiento facial. Son ampliamente utilizados para el reconocimiento de señales de voz y audio, procesamiento de lecturas de diferentes tipos sensores o para la segmentación de imágenes complejas de múltiples capas (como mapas satelitales) o imágenes médicas (radiografías, imágenes de resonancia magnética funcional, ver).

Redes neuronales en biometría y reconocimiento facial

Para lograr una alta precisión de reconocimiento, la red neuronal se entrena previamente en una gran variedad de imágenes, por ejemplo, en la base de datos MegaFace. Este es el principal método de entrenamiento para el reconocimiento facial.


Arroz. 6. La base de datos MegaFace contiene 1 millón de imágenes de más de 690 mil personas.

Una vez que la red ha sido entrenada para reconocer caras, el proceso de reconocimiento facial se puede describir de la siguiente manera (Figura 7). Primero, la imagen se procesa mediante un detector de rostros: un algoritmo que detecta una sección rectangular de la imagen con un rostro. Este fragmento se normaliza para que la red neuronal lo procese más fácilmente: se obtendrá el mejor resultado si todas las imágenes de entrada son el mismo tamaño, cromaticidad, etc. La imagen normalizada se alimenta a la entrada de la red neuronal para que la procese el algoritmo. Este algoritmo suele ser un desarrollo exclusivo de la empresa para mejorar la calidad del reconocimiento, pero también existen soluciones "estándar" para este problema. La red neuronal crea un vector de características único, que luego se transfiere a la base de datos. Sistema de búsqueda lo compara con todos los vectores de características almacenados en la base de datos y da un resultado de búsqueda en forma de un cierto número de nombres o perfiles de usuario con rasgos faciales similares, a cada uno de los cuales se le asigna un cierto número. Este número representa el grado de similitud de nuestro vector de características con el que se encuentra en la base de datos.


Arroz. 7. Proceso de reconocimiento facial

Determinando la calidad del algoritmo

Precisión

Cuando elegimos qué algoritmo aplicar a un objeto o problema de reconocimiento facial, debemos tener un medio para comparar la efectividad de diferentes algoritmos. En esta parte describiremos las herramientas con las que se hace esto.

La calidad del sistema de reconocimiento facial se evalúa mediante un conjunto de métricas que corresponden a escenarios típicos de uso del sistema de autenticación mediante biometría.

Como regla general, el rendimiento de cualquier red neuronal se puede medir en términos de precisión: después de establecer los parámetros y completar el proceso de capacitación, la red se prueba en un conjunto de pruebas para el que tenemos una respuesta del profesor, pero que es independiente de la conjunto de entrenamiento. Normalmente, este parámetro es una medida cuantitativa: un número (a menudo como porcentaje) que indica qué tan bien el sistema es capaz de reconocer nuevos objetos. Otra medida común es el error (se puede expresar como un porcentaje o en un equivalente numérico). Sin embargo, existen medidas más precisas para la biometría.

En biometría en general y biometría para reconocimiento facial en particular, existen dos tipos de aplicaciones: verificación e identificación. La verificación es el proceso de confirmar una determinada identidad mediante la comparación de una imagen de un individuo (un vector de rasgos faciales u otro vector de rasgos, por ejemplo, una retina o huellas dactilares) con una o más plantillas guardadas previamente. La identificación es el proceso de determinar la identidad de un individuo. Las muestras biométricas se recopilan y comparan con todas las plantillas de la base de datos. Hay una identificación en un conjunto cerrado de características si se supone que existe una persona en la base de datos. Por lo tanto, el reconocimiento combina uno o ambos términos: verificación e identificación.

A menudo, además del resultado directo de la comparación, se requiere evaluar el nivel de "confianza" del sistema en su decisión. Este valor se denomina "puntuación de similitud" (o puntuación de similitud). Una puntuación de similitud más alta indica que las dos muestras biométricas comparadas son más similares.

Hay varios métodos para evaluar la calidad del sistema (tanto para la tarea de verificación como para la identificación). Hablaremos de ellos la próxima vez. Y te quedas con nosotros y no dudes en dejar comentarios y hacer preguntas.

NOTAS

  1. Fukushima (1980) "Neocognitron: Un modelo de red neuronal autoorganizada para un mecanismo de reconocimiento de patrones que no se ve afectado por el cambio de posición", Biological Cybernetics.
  2. LeCun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard y L.D. Jackel (1989) "Retropropagación aplicada al reconocimiento del código postal escrito a mano", Computación neuronal, vol. 1, págs., 541-551.
  3. Jiaxuan You, Xiaocheng Li, Melvin Low, David Lobell, Stefano Ermon Proceso gaussiano profundo para la predicción del rendimiento de cultivos basado en datos de teledetección.
  4. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016) Aprendizaje profundo. Prensa del MIT.
  5. Poh, C-H. Chan, J. Kittler, Julian Fierrez (UAM) y Javier Galbally (UAM) (2012) Descripción de métricas para la evaluación del desempeño biométrico.

AlexNet es una red neuronal convolucional que ha tenido un gran impacto en el desarrollo del aprendizaje automático, especialmente en los algoritmos de visión por computadora. La red ganó el concurso de reconocimiento de imágenes ImageNet LSVRC-2012 por un amplio margen en 2012 (con un 15,3% de errores frente al 26,2% en el segundo lugar).

La arquitectura de AlexNet es similar a la de LeNet de Yann LeCum. Sin embargo, AlexNet tiene más filtros por capa y capas convolucionales anidadas. La red incluye convoluciones, agrupación máxima, abandono, aumento de datos, activaciones de ReLU y descenso de gradiente estocástico.

Características de AlexNet

  1. Como función de activación, se usa Relu en lugar de arcotangente para agregar no linealidad al modelo. Debido a esto, con la misma precisión del método, la velocidad se vuelve 6 veces más rápida.
  2. Usar un abandono en lugar de regularización resuelve el problema de sobreajuste. Sin embargo, el tiempo de entrenamiento se duplica con una tasa de abandono de 0,5.
  3. La superposición de uniones se realiza para reducir el tamaño de la red. Debido a esto, el nivel de errores del primer y quinto nivel se reduce al 0,4% y al 0,3%, respectivamente.

Conjunto de datos de ImageNet

ImageNet es una colección de 15 millones de imágenes etiquetadas con alta resolución dividido en 22.000 categorías. Las imágenes se recopilaron en línea y se etiquetaron manualmente mediante el crowdsourcing Mechanical Turk de Amazon. Desde 2010, el Desafío anual de reconocimiento visual a gran escala de ImageNet (ILSVRC) se lleva a cabo como parte del Desafío de objetos visuales de Pascal. El desafío utiliza una parte del conjunto de datos de ImageNet con 1000 imágenes en cada una de las 1000 categorías. Se obtienen un total de 1,2 millones de imágenes para formación, 50.000 imágenes para verificación y 150.000 para pruebas. ImageNet consta de imágenes con diferentes resoluciones. Por lo tanto, para la competencia, se escalan a una resolución fija de 256 × 256. Si la imagen original era rectangular, entonces se recorta a un cuadrado en el centro de la imagen.

Arquitectura

Foto 1

La arquitectura de la red se muestra en la Figura 1. AlexNet contiene ocho capas ponderadas. Los primeros cinco son convolucionales y los otros tres están completamente conectados. La salida pasa a través de una función de pérdida softmax que genera una distribución de 1000 etiquetas de clase. La red maximiza la regresión logística multilineal, lo que equivale a maximizar la media en todos los casos de entrenamiento del logaritmo de la probabilidad de etiquetado correcto sobre la distribución de expectativas. Los núcleos de la segunda, cuarta y quinta capas convolucionales están asociados solo con los mapas de núcleos de la capa anterior que están en la misma GPU. Los núcleos de la tercera capa convolucional están asociados con todos los mapas de núcleos de la segunda capa. Las neuronas en capas completamente conectadas están conectadas a todas las neuronas en la capa anterior.

Por lo tanto, AlexNet contiene 5 capas convolucionales y 3 capas completamente conectadas. Relu se aplica después de cada capa convolucional y completamente conectada. La deserción se aplica antes de la primera y segunda capas completamente conectadas. La red contiene 62,3 millones de parámetros y requiere 1,1 mil millones de cálculos en un pase directo. Las capas convolucionales, que representan el 6% de todos los parámetros, hacen el 95% de los cálculos.

Educación

AlexNet pasa por 90 eras. El entrenamiento toma 6 días al mismo tiempo para dos GPU Nvidia Geforce GTX 580, que es la razón por la que la red se divide en dos. El descenso de gradiente estocástico se utiliza con una tasa de aprendizaje de 0,01, un impulso de 0,9 y una caída de pesos de 0,0005. La tasa de aprendizaje es divisible por 10 después de la saturación de precisión y disminuye 3 veces durante el curso del entrenamiento. Esquema de actualización del coeficiente de ponderación w parece:

dónde I- número de iteración, v Es la variable de impulso, y épsilon- tasa de aprendizaje. Durante toda la etapa de entrenamiento, la tasa de aprendizaje se eligió igual para todas las capas y se ajustó manualmente. Una heurística posterior fue dividir la tasa de aprendizaje por 10 cuando el número de errores de validación dejó de disminuir.

Ejemplos de uso e implementación

Los resultados muestran que una red neuronal convolucional grande y profunda es capaz de lograr resultados récord en conjuntos de datos muy complejos utilizando solo el aprendizaje supervisado. Un año después de la publicación de AlexNet, todos los concursantes de ImageNet comenzaron a utilizar redes neuronales convolucionales para resolver el problema de clasificación. AlexNet fue la primera implementación de redes neuronales convolucionales y marcó el comienzo de una nueva era de investigación. Ahora es más fácil implementar AlexNet utilizando bibliotecas de aprendizaje profundo: PyTorch, TensorFlow, Keras.

Resultado

La red alcanza las siguientes tasas de error de nivel 1 y 5: 37,5% y 17,0%, respectivamente. El mejor desempeño logrado en la competencia ILSVRC-2010 fue 47.1% y 28.2% usando un enfoque que promedia las predicciones de seis modelos de codificación dispersos entrenados en diferentes vectores de características. Desde entonces, se han logrado los resultados: 45,7% y 25,7% utilizando un enfoque que promedia las predicciones de dos clasificadores entrenados en los vectores de Fisher. Los resultados de ILSVRC-2010 se muestran en la Tabla 1.


Izquierda: ocho imágenes de prueba ILSVRC-2010 y cinco etiquetas que el modelo cree más probable. La etiqueta correcta está escrita debajo de cada imagen y la probabilidad se muestra con una barra roja si está entre las cinco primeras. Derecha: cinco imágenes de prueba ILSVRC-2010 en la primera columna. Las columnas restantes muestran seis imágenes de entrenamiento.