Red de conocimiento informático - Conocimiento informático - Cómo las redes neuronales artificiales logran el reconocimiento de imágenes

Cómo las redes neuronales artificiales logran el reconocimiento de imágenes

El sistema de Redes Neuronales Artificiales (RNA) sólo ha existido durante más de medio siglo desde su nacimiento a finales de la década de 1940. Sin embargo, debido a sus características de almacenamiento distribuido de información, procesamiento paralelo y capacidades de autoaprendizaje, se ha vuelto cada vez más. más popular. Se utiliza más ampliamente en campos como el procesamiento de información, el reconocimiento de patrones, el control inteligente y el modelado de sistemas. Entre ellos, la red de avance multicapa (red BP para abreviar) basada en el algoritmo de retropropagación de errores puede aproximar cualquier función continua con precisión arbitraria, por lo que se usa ampliamente en modelado no lineal, aproximación de funciones, clasificación de patrones y otros campos.

El reconocimiento de objetivos es un tema tradicional en el campo del reconocimiento de patrones. Esto se debe a que el reconocimiento de objetivos no es un problema aislado, sino un problema básico que encuentran la mayoría de los temas en el campo del reconocimiento de patrones y en diferentes temas. Sin embargo, debido a diferentes condiciones específicas y diferentes métodos de resolución de problemas, la investigación sobre el reconocimiento de objetivos todavía tiene importancia teórica y práctica. Lo que se discute aquí es el problema de usar un cabezal de imágenes (luz infrarroja o visible, etc.) para capturar el objeto objetivo a identificar e ingresar la secuencia de señal de la imagen en la computadora, y usar una red neuronal para identificar la imagen.

I.Red Neural BP

La red BP es una red multicapa que utiliza el algoritmo de aprendizaje de Widrow-Hoff y una función de transferencia diferenciable no lineal. Una red BP típica utiliza el algoritmo de descenso de gradiente, que está especificado por el algoritmo de Widrow-Hoff. La retropropagación es un método para calcular gradientes en redes multicapa no lineales. En la figura se muestra la estructura de una red BP típica.

Lo representamos como un diagrama vectorial como se muestra a continuación.

Donde: para el k-ésimo par de patrones, la entrada ponderada de la unidad de capa de salida j es

La salida real de la unidad es

, y la unidad de capa oculta i La entrada ponderada de es

La salida real de la unidad es

La función f es una función decreciente diferenciable

Se describe el algoritmo de la siguiente manera:

( 1) Inicialice la red y aprenda los parámetros. Parámetros de red y aprendizaje, como establecer la matriz de peso inicial de la red, factores de aprendizaje, etc.

(2) Proporcionar un modo de capacitación para entrenar la red hasta que cumpla con los requisitos de aprendizaje.

(3) Proceso de propagación hacia adelante: para una entrada del modo de entrenamiento determinada, calcule el modo de salida de la red y compárelo con el modo esperado. Si hay un error, ejecute (4); (2).

(4) Proceso de retropropagación: a. Calcular el error de unidades en la misma capa; b. Corregir pesos y umbrales; c. Selección de capas ocultas

1. Selección del número de capas ocultas de la red BP

Para una red BP de tres capas que contiene una capa oculta, se puede realizar cualquier mapeo no lineal desde la entrada hasta la salida. logrado. Aumentar el número de capas ocultas de la red puede reducir los errores y mejorar la precisión, pero también complicará la red y aumentará el tiempo de entrenamiento de la red. Aumentar la cantidad de nodos de capa ocultos también puede mejorar la precisión del error. En general, se debe dar prioridad a aumentar el número de nodos en la capa oculta.

En tercer lugar, la selección del número de neuronas de capa oculta

Cuando se utiliza una red neuronal para implementar el mapeo de red, el número de neuronas de capa oculta afecta directamente la capacidad de aprendizaje y la generalización de la capacidad de la red neuronal. Cuando la cantidad de neuronas de la capa oculta es pequeña, la red aprende cada vez por menos tiempo, pero es posible que no pueda recordar todo el contenido de aprendizaje debido a un aprendizaje insuficiente; cuando la cantidad de neuronas de la capa oculta es grande, la capacidad de aprendizaje es menor; Se mejora y la red aprende cada vez. El tiempo de aprendizaje es más largo y la capacidad de almacenamiento de la red aumenta, lo que conduce a una disminución en la capacidad de la red para generalizar entradas desconocidas porque no existe una guía teórica en la selección del número. de neuronas de capa oculta.

4. Número de neuronas

4. Sistema de reconocimiento de imágenes de redes neuronales

El método de redes neuronales artificiales realiza el reconocimiento de patrones y puede manejar información ambiental compleja. El conocimiento previo no está claro, las reglas de inferencia no son claras y se permite que las muestras tengan grandes defectos y distorsiones. La desventaja del método de red neuronal es que su modelo se enriquece y mejora constantemente y su modelo no es suficiente para identificar clases de patrones. . Permite que las muestras tengan defectos y distorsiones más grandes, tiene una velocidad de ejecución rápida, buen rendimiento adaptativo y alta resolución.

El sistema de reconocimiento de imágenes de red neuronal es un tipo de sistema de reconocimiento de patrones de red neuronal con el mismo principio. Un sistema general de reconocimiento de imágenes de redes neuronales consta de preprocesamiento, extracción de características y clasificadores de redes neuronales.

El preprocesamiento consiste en eliminar información inútil, suavizado, binarización y normalización de amplitud de los datos originales. La parte de extracción de características en el sistema de reconocimiento de imágenes de redes neuronales no necesariamente existe, por lo que se divide en dos categorías: ① Parte de extracción de características: este tipo de sistema es en realidad una combinación de métodos tradicionales y métodos y tecnologías de redes neuronales. hacer pleno uso de las características del patrón obtenido a través de la experiencia y la capacidad de clasificación de la red neuronal para identificar la imagen de destino. La extracción de características debe poder reflejar las características de toda la imagen. Pero su capacidad antiinterferente no es tan buena como la del segundo tipo. Sin parte de extracción de características: se omite la extracción de características y la imagen completa se utiliza directamente como entrada de la red neuronal. Este método aumenta en gran medida la complejidad de la estructura de la red neuronal del sistema y el aumento en la dimensión del patrón de entrada da como resultado un tamaño de red grande. Además, la estructura de la red neuronal debe eliminar por sí sola por completo los efectos de la deformación del patrón. Sin embargo, la red tiene un buen rendimiento antiinterferencias y una alta tasa de reconocimiento.

Cuando utilice una red BP para la clasificación, primero debe seleccionar muestras de cada categoría para el entrenamiento, y el número de muestras en cada categoría debe ser aproximadamente igual. La razón de esto es evitar que la red sea demasiado sensible a categorías con más muestras e insensible a categorías con menos muestras después del entrenamiento. Por otro lado, esto puede aumentar considerablemente la velocidad de entrenamiento y evitar que la red se atasque en los mínimos locales.

Dado que la red BP no tiene capacidades de reconocimiento invariante, para que la red permanezca invariante a la traducción, rotación y expansión de patrones, se deben seleccionar muestras de tantas situaciones como sea posible. Por ejemplo, se deben seleccionar muestras representativas como diferentes posturas, diferentes direcciones, diferentes ángulos y diferentes fondos para garantizar que la red tenga una alta tasa de reconocimiento.

Para construir un clasificador de red neuronal, primero debe elegir una estructura de red adecuada: la entrada del clasificador de red neuronal es el vector de características de la imagen; el nodo de salida del clasificador de red neuronal debe ser el número; de categorías. Se debe elegir la cantidad de capas ocultas y la cantidad de neuronas en cada capa debe ser apropiada. Hay muchas estructuras de red que utilizan una capa oculta. Luego, debe elegir un algoritmo de aprendizaje adecuado para poder lograr buenos resultados de reconocimiento. En la etapa de aprendizaje, se debe utilizar una gran cantidad de muestras para el entrenamiento y el aprendizaje. Los pesos de conexión de cada capa de la red neuronal se corrigen a través de una gran cantidad de muestras para que puedan tener resultados de reconocimiento correctos para las muestras. Al igual que las personas que memorizan números, las neuronas en la red son como las células del cerebro humano. El cambio de peso es como el cambio en la interacción de las células del cerebro humano. El ajuste del peso de la red en la muestra es equivalente a la imagen de una persona. recordar cada número. El peso de la red es lo que recuerda la red. La etapa de aprendizaje en línea es equivalente al proceso de aprendizaje desde nunca reconocer un número hasta reconocer un número repetidamente. La red neuronal memoriza la imagen en función de todo el vector de características en su conjunto, siempre que coincida con la mayoría de las características de la muestra aprendida, se puede reconocer como la misma categoría. Por lo tanto, el clasificador de la red neuronal aún puede. Identificar correctamente la muestra cuando hay mucho ruido. En la etapa de reconocimiento de imágenes, siempre que el vector de puntos de la imagen se utilice como entrada del clasificador de la red neuronal, después del cálculo de la red, la salida del clasificador es el resultado del reconocimiento.

5. Experimento de simulación

1. Objetos experimentales

Este experimento utiliza MATLAB para completar el entrenamiento de redes neuronales y la simulación de reconocimiento de imágenes. De la base de datos experimental, seleccione diez números del 0 al 9 en el formato BMP de la imagen de destino. El tamaño de la imagen es de 16 × 8 píxeles y se agrega ruido aleatorio del 10%, 20%, 30%, 40% y 50% a cada imagen de destino, lo que da como resultado un total de 60 muestras de imágenes. La muestra se divide en dos partes, una para entrenamiento y otra para prueba. En los experimentos, se utilizaron 40 muestras para entrenamiento y 20 muestras para pruebas. El ruido aleatorio se genera llamando a la función randn(m,n).

2. Estructura de la red

Este experimento utiliza una red BP de tres capas. El número de neuronas en la capa de entrada es igual al número de píxeles de 16 × 8 en la imagen de muestra. . La cantidad de neuronas en la capa de entrada es igual a la cantidad de píxeles en la imagen de muestra, 16 × 8. La capa oculta selecciona 24 neuronas, que es el número ideal de nodos de la capa oculta en el experimento. La cantidad de neuronas en la capa de salida es la cantidad de patrones que se reconocerán. En este ejemplo, hay 10 patrones, por lo que se seleccionan 10 neuronas en la capa de salida y 10 neuronas corresponden a 10 patrones uno a uno.

3. Entrenamiento y simulación de red basado en lenguaje MATLAB

Construcción e inicialización de la red

1

2

3

4

5

6

7

8

% ================

S1 = 24;% Seleccione el número de neuronas de capa oculta S1 para que sea 24

[R, Q] = tamaño(numdata);

[S2,Q] = tamaño(objetivos);

F = numdata;

P=doble(F) ;

net = newff(minmax(P),[S1 S2],{'logsig'

'logsig'},'traingda','clearngdm')

Aquí numdata es la matriz de muestra de entrenamiento de tamaño 128×40, y target es la matriz de salida objetivo correspondiente de tamaño 10×. ...SN], {TF1 TF2...TFN}, BTF, BLF, PF) es una función en la biblioteca MATLAB que se utiliza para construir una red BP directa de N capas. La variable independiente PR representa la entrada de la red. . La variable independiente PR de la función representa la matriz del vector de entrada de la red [Pmin max]; S1 ~ SN es el número de neuronas en cada capa; TF1 ~ TFN se usa para especificar la función de transferencia de cada capa de neuronas; especifique la función de entrenamiento de la red; BLF se usa para especificar la función de aprendizaje de pesos y umbrales; PF se usa para especificar la función de rendimiento de la red, y el valor predeterminado es 'mse'. '.

Establecer parámetros de entrenamiento

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

net.performFcn = 'sse' % suma de Error de variaciones

Función de rendimiento

net. trainParam.mc = 0,95; % constante de impulso

Entrenamiento de red

net=init(net);% de inicialización de red

[net,tr] = train( net,P,T);% entrenamiento de red

Simular la red entrenada

D=sim(net,P);

A = sim(net , B);

B es el conjunto de vectores de muestra de prueba, 128×20 puntos. D es el resultado del reconocimiento de la red de la muestra de entrenamiento y A es el resultado del reconocimiento de la red de la muestra de prueba. Los resultados experimentales muestran que la tasa de reconocimiento de la red tanto para las muestras de entrenamiento como para las de prueba es del 100%. Como se muestra en la figura, se muestra el resultado del reconocimiento de la red después de agregar un 50% de ruido aleatorio a los cinco números 64579.

6. Resumen

Se puede ver en los experimentos anteriores que es factible utilizar redes neuronales para el reconocimiento. El ejemplo dado es solo un experimento de reconocimiento digital simple. Las imágenes en modo de red requieren reducir el tamaño de la red y aumentar las capacidades de reconocimiento. El principio es el mismo.