Red de conocimientos sobre prescripción popular - Conocimiento dental - Cómo lograr el reconocimiento de imágenes a través de una red neuronal artificial

Cómo lograr el reconocimiento de imágenes a través de una red neuronal artificial

Sólo ha pasado más de medio siglo desde que nació el sistema de redes neuronales artificiales (RNA) a finales de la década de 1940. Sin embargo, debido a sus ventajas de almacenamiento distribuido, procesamiento paralelo y autoaprendizaje, se ha utilizado ampliamente en el procesamiento de información. , reconocimiento de patrones, control inteligente y modelado y otros campos. En particular, la red de retroalimentación multicapa (red BP para abreviar) basada en el algoritmo de retropropagación de errores puede aproximarse a 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, porque 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, debido Las condiciones específicas son diferentes y las soluciones también son diferentes, por lo que la investigación sobre el reconocimiento de objetivos todavía tiene importancia teórica y práctica. Este artículo analiza la secuencia de señales de imagen formada después de que el cabezal de imágenes captura el objeto objetivo a identificar (luz infrarroja o visible, etc.). ) y se envía a la computadora, que utiliza una red neuronal para reconocer la imagen.

1. Red neuronal BP

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

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

En la fórmula: para el k-ésimo par de modos, la entrada ponderada de la unidad de capa de salida J es

La salida real del dispositivo es

Unidad de capa oculta I La entrada ponderada es

La salida real del dispositivo es

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

El algoritmo se describe a continuación:

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

(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 de patrón de entrenamiento determinada, calcule el patrón de salida de la red y compárelo con el patrón esperado. Si hay un error, ejecute (4); a (2) ).

(4) Proceso de propagación hacia atrás: a. Calcular el error de la misma unidad de capa; b. Corregir el peso y el umbral (2)

Segundo, selección de la red BP; del número de capas ocultas

Para una red BP de tres capas con capas ocultas, se puede lograr cualquier mapeo no lineal desde la entrada hasta la salida. Aumentar el número de capas ocultas puede reducir los errores y mejorar la precisión, pero también complica la red y aumenta el tiempo de entrenamiento de la red. La mejora de la precisión del error también se puede lograr aumentando el número de nodos ocultos. En términos generales, se debe priorizar 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 capacidad de inducción de La red neuronal. Cuando el número de neuronas de capa oculta es pequeño, el tiempo de aprendizaje de la red es más corto, pero es posible que la red no pueda recordar todo el contenido de aprendizaje debido a un aprendizaje insuficiente. Cuando el número de neuronas de capa oculta es grande, la capacidad de aprendizaje mejora y la capacidad de almacenamiento de la red aumenta con cada tiempo de aprendizaje, lo que resulta en 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 la capa oculta, generalmente determinado por la experiencia.

4. Sistema de reconocimiento de imágenes de red neuronal

El método de red neuronal artificial realiza el reconocimiento de patrones, que puede abordar algunos problemas como información ambiental compleja, conocimientos previos poco claros, reglas de razonamiento poco claras, etc. ., permitiendo muestras Hay defectos y distorsiones importantes. La desventaja del método de red neuronal es que su modelo se enriquece y mejora constantemente y actualmente no hay suficientes clases de patrones que puedan reconocerse. El método de red neuronal permite que las muestras tengan grandes defectos y distorsiones, y 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 de los datos originales y suavizar, binarizar y normalizar la amplitud.

La parte de extracción de características en el sistema de reconocimiento de imágenes de red neuronal no necesariamente existe, por lo que se puede dividir 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 de red neuronal, y puede completarse Uso de la experiencia humana. Características de patrones y capacidades de clasificación de redes neuronales para identificar imágenes de destino. La extracción de características debe reflejar las características de toda la imagen. Pero su capacidad antiinterferente no es tan buena como la de segunda clase. ②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. Esto aumenta enormemente 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 enorme. Además, la estructura de la red neuronal debe eliminar por completo los efectos de la distorsión de patrones. Sin embargo, la red tiene un buen rendimiento antiinterferencias y una alta tasa de reconocimiento.

Cuando utilice la red BP para la clasificación, primero debe seleccionar varios tipos de muestras para el entrenamiento, y el número de muestras de cada tipo debe ser aproximadamente igual. Por un lado, el motivo es evitar que la red entrenada sea demasiado sensible a categorías con más muestras e insensible a categorías con menos muestras. Por otro lado, puede mejorar en gran medida la velocidad de entrenamiento y evitar que la red caiga en mínimos locales.

Dado que la red BP no tiene la capacidad de identificar invariancia, es necesario seleccionar muestras de varias situaciones posibles tanto como sea posible para que la red sea invariante a la traslación, rotación y expansión del patrón. Por ejemplo, es necesario seleccionar muestras representativas con diferentes posturas, diferentes orientaciones, diferentes ángulos y diferentes fondos para garantizar una alta tasa de reconocimiento de la red.

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. Para elegir el número de capas ocultas, el número de neuronas en cada capa debe ser apropiado. Actualmente, existen muchas estructuras de red que emplean una capa oculta. Luego, debe elegir un algoritmo de aprendizaje adecuado para poder lograr buenos resultados de reconocimiento. En la etapa de aprendizaje, se utiliza una gran cantidad de muestras para el entrenamiento y el aprendizaje, y los pesos de conexión de cada capa de la red neuronal se corrigen mediante una gran cantidad de muestras para que las muestras puedan identificarse correctamente. Es como memorizar números. Las neuronas de la red son como células cerebrales humanas, y los cambios de peso son como cambios en la interacción de las células cerebrales humanas. Las redes neuronales son como memorizar números en el aprendizaje de muestra. El ajuste de los pesos de la red al aprender muestras equivale a recordar la imagen de cada número, y los pesos de la red son la red. La red neuronal memoriza la imagen en función de todo el vector de características. Siempre que la mayoría de las características coincidan con las muestras aprendidas, se pueden identificar como la misma categoría, por lo que el clasificador de la red neuronal aún puede identificar correctamente las muestras incluso cuando hay mucho ruido. En la etapa de reconocimiento de imágenes, siempre que el vector reticular de la imagen se utilice como entrada del clasificador de red neuronal, la salida del clasificador es el resultado del reconocimiento calculado por la red.

Experimento de simulación de verbo (abreviatura de verbo)

1. Objeto experimental

En este experimento, el entrenamiento de la red neuronal y la simulación de reconocimiento de imágenes se realizan mediante MATLAB para completar. Seleccione la imagen de destino en formato BMP con diez números del 0 al 9 de la base de datos experimental. El tamaño de la imagen es de 16×8 píxeles y se agrega ruido aleatorio con tamaños de 10%, 20%, 30%, 40% y 50% a cada imagen de destino. * * * Se generan 60 muestras de imágenes. Divida la muestra en dos partes, una para entrenamiento y otra para prueba. En el experimento, 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 la imagen de muestra, 16 ×. 8. La capa oculta tiene 24 neuronas, que es el número ideal de nodos de 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. Las 10 neuronas corresponden a los 10 patrones uno a uno.

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

Establecer e inicializar la red

1

2

Tres

Cuatro

Cinco

Seis

Siete

Ocho

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

s 1 = 24;%El número de neuronas de capa oculta S1 se selecciona para que sea 24.

[R, Q] = tamaño(númdatos);

[S2, Q] = tamaño(objetivo)

F = númdatos

p = doble(F);

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

logsig'}, 'traingda ', ' learngdm ')

Aquí, numdata es una matriz de muestra de entrenamiento de tamaño 128 × 40, y objetivos es la matriz de salida de destino correspondiente de tamaño 10 × 40.

Newff (PR, [S1S2... Sn], {TF1TF2...TFN}, BTF, BLF, PF) crea N capas para la biblioteca de funciones de MATLAB.

La función de la red BP directa. La variable independiente PR de la función representa la matriz [Pmin max] del rango de valores del vector de entrada de la red 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; BTF se usa para especificar la función de entrenamiento de la red; BLF se usa para especificar los pesos y umbrales; la red y el valor predeterminado es 'MSE'.

Establecer parámetros de entrenamiento

1

2

Tres

Cuatro

Cinco

Seis

Siete

Ocho

Nueve

10

11 p>

12

13

14

15

net.performFcn = ' sse error suma de cuadrados %

Función de rendimiento

net . train param . show = 20;% visualización del proceso

frecuencia

net .train epochs = 5000; %max entrenamiento

Pasos de práctica

net .train param . MC = 0,95; % de impulso constante

Entrenamiento de red

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

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

Simula la red entrenada.

D=sim(net, P);

A = sim(net, B

b es la suma del conjunto de vectores de la muestra de prueba 128); Cuadrícula ×20. d es el resultado del reconocimiento de la red en la muestra de entrenamiento y A es el resultado del reconocimiento de la muestra de prueba por parte de la red. Los resultados experimentales muestran que la tasa de reconocimiento de las muestras de entrenamiento y de prueba es del 100%. Como se muestra en la figura, la red reconoce los cinco números 64579 después de agregar un 50% de ruido aleatorio.

Resumen del verbo intransitivo

De los experimentos anteriores, se puede ver que es factible utilizar el reconocimiento de redes neuronales. El ejemplo dado es sólo un simple experimento de reconocimiento de dígitos. Si desea reconocer imágenes de destino complejas en modo de red, debe reducir el tamaño de la red y aumentar la capacidad de reconocimiento. El principio es el mismo.