Entrenamiento de una red neuronal. Algoritmo de retropropagación. Cómo funciona una red neuronal: algoritmos, funciones de entrenamiento, activación y pérdida

La propiedad más importante de las redes neuronales es su capacidad para aprender de datos ambientales y mejorar su desempeño como resultado del aprendizaje. Los aumentos de productividad ocurren con el tiempo de acuerdo con ciertas reglas. La red neuronal se entrena mediante un proceso interactivo de ajuste de umbrales y pesos sinápticos. Idealmente, una red neuronal adquiere conocimiento sobre su entorno en cada iteración del proceso de aprendizaje.

Existen bastantes tipos de actividades asociadas con el concepto de aprendizaje, por lo que es difícil dar a este proceso una definición inequívoca. Además, el proceso de aprendizaje depende del punto de vista que se tenga sobre el mismo. Esto es lo que hace casi imposible que surja una definición precisa de este concepto. Por ejemplo, el proceso de aprendizaje desde el punto de vista de un psicólogo es fundamentalmente diferente del aprendizaje desde el punto de vista de un maestro de escuela. Desde la perspectiva de una red neuronal, probablemente se pueda utilizar la siguiente definición:

El entrenamiento es un proceso en el que los parámetros libres de una red neuronal se ajustan simulando el entorno en el que está integrada la red. El tipo de entrenamiento viene determinado por la forma en que se ajustan estos parámetros.

Esta definición del proceso de aprendizaje de una red neuronal supone la siguiente secuencia de eventos:

  1. La red neuronal recibe estímulos del entorno externo.
  2. Como resultado del primer punto, se cambian los parámetros libres de la red neuronal.
  3. Después de cambiar la estructura interna, la red neuronal responde a las excitaciones de otra manera.

La lista anterior de reglas claras para resolver el problema de entrenar una red neuronal se denomina algoritmo de aprendizaje. Es fácil adivinar que no existe un algoritmo de aprendizaje universal adecuado para todas las arquitecturas de redes neuronales. Sólo existe un conjunto de herramientas representadas por una variedad de algoritmos de aprendizaje, cada uno de los cuales tiene sus propias ventajas. Los algoritmos de aprendizaje se diferencian entre sí en la forma en que ajustan los pesos sinápticos de las neuronas. Otra característica distintiva es la forma en que la red neuronal entrenada se comunica con el mundo exterior. En este contexto, hablamos de un paradigma de aprendizaje asociado al modelo del entorno en el que opera una determinada red neuronal.

Hay dos enfoques conceptuales para entrenar redes neuronales: aprendizaje supervisado y aprendizaje no supervisado.

El entrenamiento supervisado de una red neuronal supone que para cada vector de entrada del conjunto de entrenamiento existe un valor requerido del vector de salida, llamado objetivo. Estos vectores forman un par de entrenamiento. Los pesos de la red se cambian hasta que se obtiene un nivel aceptable de desviación del vector de salida del objetivo para cada vector de entrada.

El aprendizaje no supervisado de una red neuronal es un modelo de aprendizaje mucho más plausible en términos de las raíces biológicas de las redes neuronales artificiales. El conjunto de entrenamiento consta únicamente de vectores de entrada. El algoritmo de entrenamiento de la red neuronal ajusta los pesos de la red para que se obtengan vectores de salida consistentes, es decir de modo que la presentación de vectores de entrada suficientemente cercanos produzca salidas idénticas.

TECNOLOGÍAS MODERNAS DE LA INFORMACIÓN/2. Informática y Programación

Zolotukhina Irina Andreevna, estudiante de maestría

Universidad Estatal de Kostanay que lleva el nombre de A. Baitursynov, Kazajstán.

Métodos y algoritmos para el entrenamiento de redes neuronales.

Anotación:Este artículo analiza las redes neuronales, por qué son tan relevantes, considera los tipos de algoritmos de redes neuronales y las áreas de aplicación de las redes.

Palabras clave:neurona, perceptrón, método Rosenblatt, método Hebb, error de generalización, error de aprendizaje, algoritmo de aprendizaje.

Redes neuronales(o redes neuronales artificiales) es una de las áreas de investigación más interesantes en el campo de la inteligencia artificial, basada en el modelado y reproducción del sistema nervioso humano. Los científicos están especialmente interesados ​​en procesos como: la capacidad del sistema nervioso para aprender, corregir errores y tomar decisiones, lo que debería permitirnos simular el funcionamiento del cerebro humano.

Las redes neuronales artificiales aprenden analizando influencias positivas y negativas. Están formados por neuronas, que reciben su nombre por analogía con su prototipo biológico.

El modelo de neurona artificial fue propuesto por primera vez por los científicos estadounidenses Warren McCulloch y su alumno Walter Pitts en 1943.

Dependiendo de las funciones que realizan las neuronas de la red se pueden distinguir tres tipos:

· neuronas de entrada a las que se suministra un vector que codifica un efecto de entrada o una imagen del entorno externo; no suelen realizar procedimientos computacionales;

· neuronas intermedias que forman la base de las redes neuronales, cuyas transformaciones se realizan según las expresiones (1) y (1.1);

· neuronas de salida, cuyos valores de salida representan las salidas de la red neuronal; las transformaciones en ellos también se llevan a cabo según las expresiones (1) y (1.1).

Figura 1. Estructura de una red neuronal formal

(1)

y = f(s)(1.1)

Dónde

· yo, – peso de la sinapsis, i = 1...norte;

· b– valor de compensación;

· s– resultado de la suma;

· incógnita, – componente del vector de entrada (señal de entrada),

· xyo = 1...norte;

· en– señal de salida de neurona;

· norte– número de entradas de neuronas;

· F– transformación no lineal (función de activación).

A la señal de entrada (s) El convertidor no lineal responde con una señal de salida. f(s), que representa la salida de la neurona.

Ventajas del enfoque de redes neuronales al resolver problemas de tecnología de la información en comparación con otros (por ejemplo, la arquitectura von Neumann):

· paralelismo del procesamiento de información;

· principio de enseñanza uniforme y eficaz;

· confiabilidad de operación;

· Capacidad para resolver problemas informales.

Aplicaciones y problemas resueltos por redes neuronales artificiales

Las redes neuronales artificiales han encontrado su aplicación en diversos campos de la tecnología. Un mayor aumento del rendimiento de los ordenadores está cada vez más asociado al desarrollo de estas redes, en particular de los neuroordenadores, que se basan en una red neuronal artificial.

Gama de problemas resueltos por redes neuronales:

· reconocimiento de patrones;

· reconocimiento y síntesis de voz;

· reconocimiento de imágenes aeroespaciales;

· procesamiento de señales en presencia de mucho ruido;

· previsión;

· optimización;

· previsión de cotizaciones de valores y tipos de cambio;

· prevención del fraude con tarjetas de crédito;

· juego en la bolsa de valores;

· filtrado de spam;

· valoración de bienes inmuebles;

· evaluar la situación financiera de las empresas y el riesgo de impago de los préstamos;

· procesamiento de señales de radar;

· sistemas de seguridad y videovigilancia;

· control del tráfico en autopistas y ferrocarriles;

· diagnóstico en medicina;

· gestión de objetos complejos;

· extraer conocimiento de grandes volúmenes de datos en negocios, finanzas e investigación científica;

· control en tiempo real y eso no es todo.

Educación

La capacitación se refiere a mejorar el rendimiento del sistema mediante el análisis de los datos de entrada. Además, la formación se realiza de acuerdo con determinadas reglas.

Hay dos enfoques principales del aprendizaje: “con profesor” y “sin profesor” (autoaprendizaje). En entrenando con un maestro la red neuronal tiene las respuestas correctas (salidas de red) para cada ejemplo de entrada. Juntos se les llama pareja de entrenamiento. Las ponderaciones se ajustan para que la red produzca respuestas lo más cercanas posible a las respuestas correctas conocidas, minimizando el error. Los vectores del conjunto de entrenamiento se presentan secuencialmente, se calculan los errores y se ajustan los pesos para cada vector hasta que el error en todo el conjunto de entrenamiento alcance un nivel aceptable. Aprendizaje no supervisado no requiere conocimiento de las respuestas correctas a cada ejemplo de la muestra de entrenamiento. Esto revela la estructura de datos interna o las dependencias entre patrones en el sistema de datos, lo que permite categorizar los patrones.

Formación tutelada

Muchas neuronas de entrada se suministran a la entrada de la red neuronal artificial.incógnita- vector de entrada para la red neuronal entrenada.

Definamos la función de error. mi. Generalmente este es el error cuadrático medio,

,

Dónde

· PAG- número de ejemplos procesados ​​por la red neuronal;

· y yo-salida;

· yo- salida deseada (ideal) de la red neuronal.

El procedimiento para entrenar una red neuronal se reduce al procedimiento para corregir los pesos de las conexiones. El propósito del procedimiento de corrección de peso es minimizar la función de error. mi.

Esquema general de formación con un profesor:

1 Antes de comenzar a entrenar, los coeficientes de peso se establecen de alguna forma, por ejemplo, de forma aleatoria.

2 En la primera etapa, los ejemplos de capacitación se envían a la entrada en un orden determinado. En cada iteración, el error se calcula para el ejemplo de entrenamiento. EL(error de aprendizaje) y los pesos se corrigen mediante un determinado algoritmo. El propósito del procedimiento de corrección de peso es minimizar el error. EL.

3 En la segunda etapa de formación se comprueba el correcto funcionamiento. Los casos de prueba se envían a la entrada en un orden determinado. En cada iteración, se calcula el error del caso de prueba. P.EJ(El error de generalización es un error que el modelo entrenado muestra en ejemplos que no participaron en el proceso de entrenamiento). Si el resultado no es satisfactorio, se modifican muchos ejemplos de entrenamiento y se repite el ciclo de entrenamiento.

Si después de varias iteraciones del algoritmo de aprendizaje el error de aprendizaje EL cae casi a cero, mientras que el error de generalización P.EJ disminuye al principio y luego comienza a aumentar, entonces esto es un signo del efecto de reentrenamiento. En este caso, se debe interrumpir el entrenamiento.

Figura 2. Efecto de sobreajuste

A partir de este algoritmo, el entrenamiento de redes neuronales se basa en el método Rosenblatt.

método de rosenblatt

Este método fue propuesto por F. Rosenblatt en los años 60. XX siglo Para una red neuronal llamada perceptrón. El perceptrón tiene una función de activación de umbral; su diagrama se muestra en la Fig. 1.

Figura 3. Perceptrón de una sola capa

El procedimiento de entrenamiento de Rosenblatt para un perceptrón de una sola capa se puede representar de la siguiente manera:

,

Dónde

· xyo- i-ésima entrada de la red neuronal;

· DJ- deseado (ideal) j-ésima salida de la red neuronal;

· a - coeficiente (velocidad de aprendizaje) 0< a≤1

Los coeficientes de ponderación se cambian sólo si el valor de salida real no coincide con el valor de salida ideal. A continuación se muestra una descripción del algoritmo de entrenamiento del perceptrón.

1. Igualamos todos los pesos a cero.

2. Realizamos un ciclo de presentación de ejemplos. Para cada ejemplo, se realiza el siguiente procedimiento.

2.1. Si la red dio la respuesta correcta, continúe con el paso 2.4.

2.2. Si se esperaba una unidad en la salida del perceptrón, pero se recibió un cero, entonces los pesos de las conexiones a través de las cuales pasó la señal unitaria se reducen en uno.

2.3. Si se esperaba un cero en la salida del perceptrón, pero se recibió una unidad, entonces los pesos de las conexiones a través de las cuales pasó una única señal se incrementan en uno.

2.4. Pasemos al siguiente ejemplo. Si se llega al final del conjunto de entrenamiento, vaya al paso 3; de lo contrario, volvemos al paso 2.1.

3. Si durante la ejecución del segundo paso del algoritmo, se realizaron los pasos 2.2 o 2.3 al menos una vez y no se produjo ningún bucle, vaya al paso 2. De lo contrario, el entrenamiento se completa.

Este algoritmo no tiene un mecanismo de seguimiento del bucle de aprendizaje. Este mecanismo se puede implementar de diferentes maneras. Lo más económico en cuanto a uso de memoria adicional es el siguiente.

4. k=1; metro=0. Recordamos los pesos de las conexiones.

5. Después de un ciclo de presentaciones de imágenes, comparamos los pesos de las conexiones con las recordadas. Si los pesos actuales coinciden con los recordados, se produce un bucle. De lo contrario, vaya al paso 3.

6. metro=metro+1. Si metro<k, luego continúe con el segundo paso.

7. k=2k; metro=0. Recuerda los pesos de las conexiones y continúa con el paso 2.

Dado que la duración del ciclo es finita, entonces para un ciclo suficientemente grande k Se detectará el bucle.

Aprender sin maestro.

La principal característica que hace atractivo el aprendizaje sin profesor es su “independencia”. El proceso de aprendizaje, como en el caso del aprendizaje supervisado, consiste en ajustar los pesos de las sinapsis. Algunos algoritmos, sin embargo, cambian la estructura de la red, es decir, el número de neuronas y sus relaciones, pero tales transformaciones se denominarían más correctamente con un término más amplio: autoorganización, y no se considerarán dentro del alcance de este artículo. artículo. Evidentemente, el ajuste de las sinapsis sólo puede realizarse sobre la base de la información disponible en la neurona, es decir, su estado y los coeficientes de peso ya existentes. Sobre la base de esta consideración y, lo que es más importante, por analogía con los conocidos principios de autoorganización de las células nerviosas, se construyeron los algoritmos de aprendizaje de Hebb.

Básicamente, Hebb propuso que la conexión sináptica entre dos neuronas se fortalece si ambas neuronas están excitadas. Esto puede considerarse como el fortalecimiento de una sinapsis según la correlación de los niveles de neuronas excitadoras conectadas por una sinapsis determinada. Por esta razón, el algoritmo de aprendizaje de Hebb a veces se denomina algoritmo de correlación.

La idea del algoritmo se expresa mediante la siguiente igualdad:

,

Dónde

· yi(n-1)– valor de salida de la neurona i capa (n-1),

· yj(n)– valor de salida de la neurona j capa norte;

· wij(t)y w yo(t-1) es el coeficiente de ponderación de la sinapsis que conecta estas neuronas en las iteraciones t Y t-1 respectivamente;

· a– coeficiente de tasa de aprendizaje.

También existe un método diferencial de aprendizaje hebbiano, representado por la fórmula

,(2)

Aquí y yo (n-1) (t) Y y yo (n-1) (t-1)– valor de salida de la neurona i de la capa n-1, respectivamente, en las iteraciones t y t-1;

y j (n) (t)Y y j (n) (t-1)– lo mismo para la neurona j capa norte.

Como puede verse en la fórmula (2), las sinapsis que conectan aquellas neuronas cuyas salidas han cambiado más dinámicamente hacia un aumento aprenden con mayor fuerza.

El algoritmo de aprendizaje completo que utiliza las fórmulas anteriores se verá así:

1. En la etapa de inicialización, a todos los coeficientes de ponderación se les asignan pequeños valores aleatorios.

2. Se suministra una imagen de entrada a las entradas de la red y las señales de excitación se distribuyen en todas las capas de acuerdo con los principios de las redes de alimentación directa clásicas, es decir, para cada neurona, se calcula una suma ponderada de sus entradas, a la que se suma la activación ( Luego se aplica la función de transferencia) de la neurona, lo que da como resultado que se obtenga su valor de salida. yi(n), i=0...mi yo-1, donde mi yo– número de neuronas en una capa i; norte=0...norte-1, un norte– número de capas en la red.

3. Según los valores de salida obtenidos de las neuronas, los coeficientes de peso se cambian según la fórmula (1) o (2).

4. Repita desde el paso 2 hasta que los valores de salida de la red se estabilicen con la precisión especificada. El uso de este nuevo método para determinar la finalización del entrenamiento, que es diferente al utilizado para la red de retropropagación, se debe a que los valores de sinapsis que se pueden ajustar son esencialmente ilimitados.

En el segundo paso del ciclo, todas las imágenes del conjunto de entrada se presentan alternativamente.

Cabe señalar que el tipo de respuesta a cada clase de imágenes de entrada no se conoce de antemano y será una combinación arbitraria de estados de neuronas en la capa de salida, debido a la distribución aleatoria de pesos en la etapa de inicialización. Al mismo tiempo, la red es capaz de generalizar imágenes similares, clasificándolas en la misma clase. Probar la red entrenada le permite determinar la topología de las clases en la capa de salida. Para llevar las respuestas de la red entrenada a una representación conveniente, puede complementar la red con una capa que, por ejemplo, de acuerdo con el algoritmo de entrenamiento de un perceptrón de una sola capa, debe verse obligada a mapear las reacciones de salida de la red. en las imágenes requeridas.

Cabe señalar que el aprendizaje no supervisado es mucho más sensible a la elección de parámetros óptimos que el aprendizaje supervisado. En primer lugar, su calidad depende en gran medida de los valores iniciales de las sinapsis. En segundo lugar, el aprendizaje es fundamental para la elección del radio de aprendizaje y la velocidad de su cambio. Y finalmente, por supuesto, la naturaleza del cambio en el propio coeficiente de aprendizaje es muy importante. En este sentido, lo más probable es que el usuario deba realizar un trabajo preliminar para seleccionar los parámetros óptimos de entrenamiento de la red.

A pesar de algunas dificultades de implementación, los algoritmos de aprendizaje no supervisados ​​han encontrado una aplicación amplia y exitosa. De hecho, las redes neuronales artificiales más complejas que se conocen hoy en día (cognitrón y neocognitrón) también funcionan según el algoritmo de aprendizaje no supervisado. Se enfrentaron muy bien a la tarea de reconocer imágenes sujetas a desplazamientos de posición, ruido y distorsiones de forma. Sin embargo, el neocognitrón no pudo realizar la tarea cuando la imagen se giró en un cierto ángulo.

En conclusión, podemos decir que los científicos están investigando actualmente las redes neuronales artificiales y la estabilidad de determinadas configuraciones, pero no todos los problemas pueden resolverse mediante redes neuronales. A pesar de que una neurona artificial es un modelo de neurona biológica, está lejos de ser perfecta y requiere un trabajo importante y nuevos descubrimientos en el campo de la inteligencia artificial. Las redes neuronales no pueden aprender como los humanos.Sin embargo, basándose en el material anterior, es posible crear sistemas reales para el reconocimiento de patrones, la compresión de información, el control automatizado, las evaluaciones de expertos y mucho más.

Literatura:

1. V.V. Kruglov, V.V. Borisov “Redes neuronales artificiales”, 2002.

2. Rumelhart D. E., Hinton G. E., Williams R. D. Aprendizaje de la representación interna mediante propagación de errores en procesamiento distribuido paralelo. – Cambridge: MA: MIT Press, 1986. – 91 p.

Algoritmos para entrenar redes neuronales.

En la etapa de entrenamiento, los coeficientes sinápticos se calculan a medida que la red neuronal resuelve problemas específicos. El entrenamiento supervisado de una red neuronal puede considerarse una solución a un problema de optimización. Su objetivo es minimizar las funciones de error (residuales) en un conjunto dado de ejemplos eligiendo los valores de los pesos W.

Hay dos tipos de aprendizaje: con profesor y sin profesor. El aprendizaje supervisado implica presentar a la red una secuencia de pares de entrenamiento (X i, Di), donde Xi es un ejemplo de entrenamiento y Di es un estándar que debe obtenerse en la salida de la red. Para cada X i , y i se calcula y se compara con D i . La diferencia se utiliza para ajustar la matriz sináptica. El aprendizaje no supervisado supone la presencia únicamente de ejemplos de entrenamiento X i . La matriz sináptica se ajusta para que vectores de entrada similares correspondan a los mismos vectores resultantes.

El proceso de aprendizaje puede considerarse como un proceso discreto descrito mediante ecuaciones en diferencias finitas. La mayoría de los métodos de enseñanza utilizan la idea de Hebb de repetir un ejemplo aprendido. El peso sináptico aumenta si se activan dos neuronas, fuente y receptora. El aumento de peso está determinado por el producto de los niveles de excitación de dos neuronas, que se puede escribir de la siguiente manera:

¿Dónde están los valores del peso de la conexión desde la i-ésima neurona hasta la j-ésima en la iteración de aprendizaje anterior y la actual?

– tasa de aprendizaje ();

– salida de la neurona i, que es la entrada para la j-ésima neurona en la 0ª iteración;

– salida de la neurona j en la 0.ª iteración.

El proceso de entrenamiento de una red neuronal se considera la tarea de minimizar una determinada función F(W) min, donde W es la matriz sináptica de la red.

Para resolver este problema, se pueden utilizar varios métodos de programación no lineal: gradiente, búsqueda aleatoria cuasi-Newton, etc.

Lo siguiente es común a los métodos de aprendizaje en red: para algún estado inicial de la matriz sináptica, se determina la dirección de disminución de la función objetivo F(W) y su mínimo se encuentra en esta dirección. Para el punto resultante, se calcula nuevamente la dirección de disminución de la función y se lleva a cabo una optimización unidimensional. En general, el algoritmo se puede representar como

¿Dónde está el tamaño del paso en la etapa 0?

Dirección de búsqueda en la etapa 0.

El método de aprendizaje más desarrollado es el algoritmo de retropropagación. No hay restricciones en cuanto al número de capas ni a la topología de la red. El único requisito es que la función de excitación sea diferenciable en todas partes. Normalmente, se utiliza una función sigmoidea (logística). El algoritmo de retropropagación es un método de aprendizaje supervisado (Figura 6.5).

Arroz. 6.5. Esquema para entrenar una red neuronal con un profesor.

El algoritmo de retropropagación es un desarrollo de la regla delta generalizada y es un algoritmo de descenso de gradiente que minimiza el error cuadrático total. El objetivo principal es calcular la sensibilidad del error de la red a cambios en los pesos.

Deje que la red neuronal corresponda al diagrama de la Fig. 6.2. Entonces el algoritmo de aprendizaje se puede describir:

1. Establecer matrices sinápticas W, W *.

2. Para cada par de entrenamiento (X i, Di) realice los siguientes pasos:

enviar el siguiente conjunto de datos de entrenamiento a la entrada de la capa oculta;

Calcule la salida de la capa oculta:

;

Calcule la salida de la capa de salida:

.

entre los valores de salida obtenidos de la red y los valores de referencia;

para neuronas de capa oculta.

Repita los pasos 2 y 3 hasta que los errores sean aceptables.

Ejemplo 6.3. Deje que la red neuronal corresponda al diagrama de la Fig. 6.2. En este caso, n=2, m=2,k=1 (figura 6.6). Conjunto de entrenamiento =(1;2), D=3. Es necesario entrenar la red neuronal para sumar los números 1 y 2. Todas las neuronas son excitadas por la función sigmoidea. Se especifican las matrices sinápticas para la capa oculta en la primera iteración:

y un vector para la capa de salida

Arroz. 6.6. Red neuronal con una capa oculta

Calculemos la suma ponderada.

Capa ponderada de entrada a salida

Al mismo tiempo, el valor deseado de y(1), transformado por la función de excitación

D = F(3) = 0,952.

Por lo tanto, la raíz del error cuadrático medio (MSE):

Los valores de salida reales y deseados no coinciden, por lo que se deben cambiar los pesos sinápticos. Para hacer esto, necesita descubrir cómo estos cambios afectarán la magnitud del error. El análisis, según el algoritmo de retropropagación, se realiza comenzando desde la capa de salida de la red y avanzando hacia la entrada:

1) En primer lugar, descubra cómo los cambios en la salida afectan el error de la red. Para hacer esto, basta con determinar la tasa de cambio del error para un valor de salida dado. La velocidad se determina mediante la derivada. La diferenciación se realiza con respecto al argumento y (1).

La reacción resultante de la tasa de cambio de error para un valor de salida dado es negativa, lo que indica la necesidad de aumentar el valor de salida;

2) determinar cómo cada uno de los errores de red afecta el error de red
entradas de la capa de salida. Para hacer esto, determinamos la tasa de cambio del error de la red cuando cambia la entrada promedio ponderada de la capa de salida V * (1):

El valor de EQ indica que la tasa de cambio de error en
En el proceso de cambio, la entrada promedio ponderada de la neurona de salida es significativamente menor en comparación con la velocidad de respuesta de la red a un cambio en su salida.

parámetros internos para una tarea específica.

El algoritmo de la red neuronal es iterativo y sus pasos se denominan; épocas o ciclos.

era- una iteración en el proceso de aprendizaje, incluida la presentación de todos los ejemplos del conjunto de entrenamiento y, posiblemente, la verificación de la calidad del entrenamiento en el conjunto de control.

El proceso de aprendizaje se lleva a cabo sobre la muestra de formación.

conjunto de entrenamiento Incluye valores de entrada y sus correspondientes valores de salida de un conjunto de datos. Durante el entrenamiento, la red neuronal encuentra ciertas dependencias entre los campos de salida y los campos de entrada.

Por lo tanto, nos enfrentamos a la pregunta de qué campos de entrada (funciones) debemos utilizar. Inicialmente, la selección se realiza de forma heurística, luego se puede cambiar el número de entradas.

Un problema que puede surgir es el número de observaciones en el conjunto de datos. Y aunque existen ciertas reglas que describen la relación entre el número requerido de observaciones y el tamaño de la red, no se ha demostrado su exactitud.

El número de observaciones requeridas depende de la complejidad del problema a resolver. A medida que aumenta el número de características, el número de observaciones aumenta de forma no lineal; este problema se denomina "maldición de la dimensionalidad". Si no hay datos suficientes, se recomienda utilizar un modelo lineal.

El analista debe determinar la cantidad de capas de la red y la cantidad de neuronas en cada capa.

A continuación, debe asignar valores de ponderaciones y sesgos que puedan minimizar el error de solución. Los pesos y polarizaciones se ajustan automáticamente para minimizar la diferencia entre las señales de salida deseadas y recibidas, lo que se denomina error de aprendizaje.

El error de entrenamiento para la red neuronal construida se calcula comparando los valores de salida y objetivo (deseados). La función de error se forma a partir de las diferencias resultantes.

función de error- esta es una función objetivo que requiere minimización en el proceso de entrenamiento supervisado de una red neuronal.

Utilizando la función de error, puede evaluar la calidad de la red neuronal durante el entrenamiento. Por ejemplo, a menudo se utiliza la suma de errores al cuadrado.

La calidad del entrenamiento de una red neuronal determina su capacidad para resolver las tareas que se le asignan.

Reentrenamiento de una red neuronal

Al entrenar redes neuronales, a menudo surge una dificultad grave llamada problema de sobreajuste.

Reentrenamiento, o sobreajuste: una coincidencia demasiado precisa de una red neuronal con un conjunto específico de ejemplos de entrenamiento, en la que la red pierde su capacidad de generalizar.

El sobreajuste ocurre cuando el entrenamiento lleva demasiado tiempo, no hay suficientes ejemplos de entrenamiento o la estructura de la red neuronal es demasiado complicada.

El sobreajuste se debe al hecho de que la elección del conjunto de entrenamiento es aleatoria. Desde los primeros pasos del aprendizaje, el error disminuye. En pasos posteriores, para reducir el error (función objetivo), los parámetros se ajustan a las características del conjunto de entrenamiento. Sin embargo, en este caso, el "ajuste" no se produce a los patrones generales de la serie, sino a las características de su parte: el subconjunto de entrenamiento. Al mismo tiempo precisión del pronóstico disminuye.

Una de las opciones para combatir el sobreentrenamiento de la red es dividir la muestra de entrenamiento en dos conjuntos (entrenamiento y prueba).

La red neuronal se entrena en el conjunto de entrenamiento. El modelo construido se verifica en el conjunto de prueba. Estos

Métodos, reglas y algoritmos utilizados en el entrenamiento de diversas topologías de red.

. Entrenamiento de redes neuronales.

. Métodos para entrenar redes neuronales..

Resolver un problema en una neurocomputadora es fundamentalmente diferente a resolver el mismo problema en una computadora convencional con arquitectura Von Neumann. La solución al problema en una computadora convencional es procesar los datos de entrada de acuerdo con el programa. El programa lo hace una persona. Para compilar un programa, es necesario idear un algoritmo, es decir. una determinada secuencia de acciones matemáticas y lógicas necesarias para resolver este problema. Los algoritmos, como los programas, son desarrollados por personas y la computadora se utiliza únicamente para realizar una gran cantidad de operaciones elementales: suma, multiplicación, verificación de condiciones lógicas, etc.

La neurocomputadora se utiliza como una “caja negra” que puede entrenarse para resolver problemas de cualquier clase. Al neurocomputador se le “presentan” los datos iniciales de la tarea y la respuesta que corresponde a esos datos y que se obtuvo de alguna manera. La propia neurocomputadora debe construir un algoritmo para resolver este problema dentro de una “caja negra” para producir una respuesta que coincida con la correcta. Parece natural esperar que cuantos más pares diferentes (datos iniciales) (respuesta) se presenten al neuroordenador, más adecuado será el modelo que construirá para el problema que se está resolviendo.

Después de la etapa de entrenamiento de la neurocomputadora, uno debe esperar que si se le presentan datos iniciales que no ha encontrado antes, todavía producirá la solución correcta: esta es la capacidad de la neurocomputadora para generalizar.

Dado que el neuroordenador se basa en una red neuronal artificial, el proceso de aprendizaje consiste en ajustar los parámetros de esta red. En este caso, como regla general, la topología de la red se considera sin cambios y los parámetros ajustables generalmente incluyen los parámetros de las neuronas y los valores de los pesos sinápticos. Hoy en la literatura se acostumbra entender el aprendizaje como el proceso de cambiar el peso de las conexiones entre neuronas.

Consideraremos dos áreas de clasificación de los métodos de entrenamiento de redes. La primera dirección es cómo utilizar al maestro.

Con el profesor:

La red se presenta con ejemplos de datos de entrada y salida. La red transforma los datos de entrada y compara su salida con la deseada. Después de esto, los pesos se ajustan para obtener una mejor consistencia de los resultados.

Formación con refuerzo constante de conocimientos:

En este caso, a la red no se le da el valor de salida deseado, sino que se le da una calificación de si la salida es buena o mala.

Aprendizaje no supervisado:

La propia red desarrolla reglas de aprendizaje extrayendo características de un conjunto de datos de entrada.

La segunda dirección de clasificación de los métodos de enseñanza se basa en el uso de elementos de azar.

Métodos deterministas:

En ellos, paso a paso, se realiza el procedimiento de corrección de los pesos de la red, en base al uso de sus valores actuales, por ejemplo, los valores de las salidas de red deseadas. El algoritmo de aprendizaje que se analiza a continuación, basado en la propagación hacia atrás, es un ejemplo de aprendizaje determinista.

Métodos de aprendizaje estocástico:

Se basan en el uso de cambios aleatorios de peso durante el entrenamiento. El algoritmo de aprendizaje de Boltzmann que se analiza a continuación es un ejemplo de aprendizaje estocástico.

. .

Reglas para entrenar redes neuronales.

Las reglas de aprendizaje definen la ley según la cual la red debe cambiar sus pesos sinápticos durante el proceso de aprendizaje.

Regla de Hebb (D.Hebb):

La mayoría de los métodos de entrenamiento se basan en los principios generales del entrenamiento de redes neuronales desarrollados por Donald Hebb. El principio de Hebb se puede formular de la siguiente manera: “Si dos neuronas están activas al mismo tiempo, aumenta la fuerza de la conexión entre ellas”, que se puede escribir como:

dW ij = gf (Y i) f(Y j) ,

donde: dW ij - la cantidad de cambio en la sinapsis W ij

Y i - nivel de excitación de la i-ésima neurona

Y j - nivel de excitación de la j-ésima neurona

f(.) - función de transformación

g es una constante que determina la tasa de aprendizaje.

La mayoría de las reglas de entrenamiento se basan en esta fórmula.

Regla delta:

Esto se conoce como regla de reducción del error cuadrático y fue propuesto por . La regla delta se utiliza en el aprendizaje supervisado.

dW ij = g (D j - Y j) Y i

donde: D j es la salida deseada de la j-ésima neurona.

Por tanto, el cambio en la fuerza de las conexiones se produce de acuerdo con el error de la señal de salida (D j - Y j) y el nivel de actividad del elemento de entrada Y. Una generalización de la regla delta, llamada retropropagación, es Se utiliza en redes neuronales con dos o más capas.

La teoría de la resonancia adaptativa (ART) se desarrolló en. ART es un aprendizaje no supervisado donde la autoorganización ocurre en respuesta a una selección de imágenes de entrada. La red ART es capaz de clasificar imágenes. ART utiliza el concepto de memoria a corto y largo plazo para entrenar redes neuronales. La memoria a largo plazo almacena reacciones a imágenes para las que se ha entrenado la red, en forma de vectores de pesos. La imagen de entrada actual, la imagen esperada y la clasificación de la imagen de entrada se colocan en la memoria a corto plazo. La imagen esperada se selecciona de la memoria a largo plazo cada vez que se ingresa un nuevo patrón a la red neuronal. Si son similares según un determinado criterio, la red lo clasifica como perteneciente a una clase existente. Si son diferentes, se forma una nueva clase en la que el vector de entrada será el primer miembro de la clase.

Este tipo de aprendizaje se llama aprendizaje adversarial. El tipo más simple de aprendizaje adversario está determinado por la regla de que “el ganador se lo lleva todo”, es decir el conjunto con la mejor salida se activa, el resto se suprime.

El elemento con el nivel de activación más alto se llama "ganador". Cuando se selecciona, la red neuronal agrega las características de la imagen de entrada a los miembros de la memoria a largo plazo al recorrer repetidamente los pesos de la memoria a largo plazo de un lado a otro. Grossberg llamó a este proceso resonancia.

La regla de Kohonen:

Theo Kohonen del Instituto de Tecnología de Helsinki utilizó el concepto de aprendizaje adversario para desarrollar una regla de aprendizaje "no supervisado" en una red neuronal tipo mapa de Kohonen (Figura 3.3).

La regla de Kohonen es la siguiente. Primero, se selecciona un ganador utilizando la estrategia de “el ganador se lo lleva todo”. Dado que la salida de la j-ésima neurona está determinada por el producto escalar (U,W j) del vector de entrada U con el vector de pesos de conexiones entre la capa de entrada y la j-ésima neurona, depende del ángulo entre los vectores U,W j. Por lo tanto, se selecciona la neurona cuyo vector de peso W j está más cerca del vector de entrada U (en otras palabras, se selecciona la neurona más activa). A continuación, se construye un nuevo vector W j de modo que esté más cerca del vector de entrada U, es decir :

W ij nuevo = Wij viejo + g (U - W ij viejo) i = 1,2,...,k.

donde: k - número de entradas de red.

g es la constante de aprendizaje.

Aprendizaje de Boltzmann:

El aprendizaje de Boltzmann consiste en reforzar el aprendizaje de acuerdo con la función objetivo de cambiar la salida del NN. Este aprendizaje utiliza una función probabilística para cambiar los pesos. Esta función suele adoptar la forma de una distribución gaussiana, aunque se pueden utilizar otras distribuciones.

El aprendizaje de Boltzmann se realiza en varias etapas.

1. Al coeficiente T se le asigna un valor inicial grande.

2. El vector de entrada pasa a través de la red y la función objetivo se calcula a partir de la salida.

3. El peso se cambia aleatoriamente de acuerdo con la distribución gaussiana: P(x)=exp(-x 2 /T 2), donde x es el cambio de peso.

4. Calcule nuevamente la salida y la función objetivo.

5. Si el valor de la función objetivo ha disminuido (mejorado), entonces se guarda el cambio de peso. Si no es así, y la magnitud del deterioro de la función objetivo es C, entonces la probabilidad de mantener el cambio de peso se calcula de la siguiente manera.

El valor P(С) es la probabilidad de un cambio en С en la función objetivo, determinada mediante la distribución de Boltzmann: P(С)~exp(- С/kT)

donde: k es una constante similar a la constante de Boltzmann, seleccionada dependiendo de las condiciones del problema.

Luego se selecciona un número aleatorio V usando una distribución uniforme de cero a uno. Si Р(С)>V, entonces el cambio de peso se mantiene; de ​​lo contrario, el cambio de peso es cero.

Los pasos 3 a 5 se repiten para cada uno de los pesos de la red, mientras se disminuye gradualmente T hasta que se logra un valor bajo aceptable de la función objetivo. Después de esto, todo el proceso de aprendizaje se repite para otro vector de entrada. La red se entrena en todos los vectores hasta que la función objetivo se vuelve válida para todos ellos. En este caso, para asegurar la convergencia, el cambio en T debe ser proporcional al logaritmo del tiempo t:

T(t) = T(0) / log(1+t)

Esto significa que la tasa de convergencia de la función objetivo es baja, por lo tanto, el tiempo de entrenamiento puede ser muy largo.

.

Algoritmos para el entrenamiento de redes neuronales.

Formación de redes feedforward.

Para entrenar la red, necesita conocer los valores d j (j=1,2 . . .n(K)) de las salidas de las neuronas de la capa de salida (salidas deseadas), que la red debería producir cuando vector emocionante I llega a su entrada.

El error de operación de la red basado en estos datos se define como

donde: y j - salida de red.

Para reducir este error, debe cambiar los pesos de la red de acuerdo con la siguiente regla:

W k nuevo = W k viejo -  (E/ W k)

donde:  es una constante que caracteriza la tasa de aprendizaje.

La última fórmula describe el proceso de descenso de gradiente en el espacio de pesos. La expresión para la derivada dE/dW es la siguiente:

E/W k-1 ij = (d j - y j) f j u k-1 i para la capa de salida, es decir k = k

E/W k-1 ij =[ (d j - y j)  f j w k ij ]  f j u k-1 i para capas ocultas,

Si se usa una función sigmoidea como función transformadora no lineal, entonces en lugar de las dos últimas expresiones es conveniente usar las siguientes fórmulas recurrentes para la capa de salida:

 k-1 j = (d j - y j) y j (1- y j) , E/W k-1 ij =  k-1 j u k-1 i

para capas ocultas:

 k-1 j =  [  k j w k ] u j k (1- u j k) , E/W k-1 ij =  k-1 j u k-1 i

Estas relaciones se denominan fórmulas de retropropagación. Si, durante la operación directa, la señal de entrada se propaga a través de la red desde la capa de entrada a la capa de salida, al ajustar los pesos, el error de la red se propaga desde la capa de salida a la capa de entrada.

Entrenamiento de redes Kohonen (construcción de mapas de características).

Para construir un mapa de Kohonen, se requiere una muestra suficientemente representativa de vectores de características de entrenamiento (U). Sea cada vector U del conjunto(U) una dimensión k: U=(U 1 , U 2 , . . . ,U k).

Entonces la primera capa (de distribución) de la red Kohonen debería tener k neuronas; n neuronas de la segunda capa (mapa) están ubicadas desde el plano en alguna configuración regular, por ejemplo, desde una cuadrícula rectangular (Fig. 3.3). A las conexiones personalizadas entre neuronas de la primera y segunda capa Wij se les asignan valores aleatorios.

Aquí, el índice i indica el número de neurona de la primera capa, el índice j es el número de neurona de la segunda capa. Antes de comenzar el entrenamiento, establezca la función de la influencia de las neuronas de la segunda capa entre sí g(r,t), donde r es la distancia entre neuronas, t es un parámetro que caracteriza el tiempo de entrenamiento.

Esta función tradicionalmente tiene la forma de un “sombrero mexicano” (Fig. 3.4.), que se hace “más estrecho” durante el proceso de aprendizaje a medida que aumenta el parámetro t. Sin embargo, a menudo se utilizan funciones más simples, por ejemplo:

donde: D es una constante que caracteriza el radio inicial del pico positivo del “sombrero mexicano”.

Cada ciclo de entrenamiento consiste en presentar alternativamente una red de vectores del conjunto de entrenamiento con posterior ajuste de los pesos Wij. El ajuste se realiza de la siguiente manera:

1. Cuando aparece el siguiente vector de entrenamiento U en la entrada de la red, la red calcula la respuesta de las neuronas de la segunda capa:

2. Se selecciona la neurona ganadora (es decir, la neurona con mayor respuesta). Su número C se define como:

C = argmax Y j , j=1,2, . . ., n.

3. El ajuste de los pesos de las conexiones W se realiza según la siguiente fórmula:

W ij nuevo = W ij antiguo + g(r,t) (U i - W ij antiguo), i=1, . . . ,k; j=1, . . . norte.

Aquí  es una constante que caracteriza el aprendizaje.

Si después del siguiente ciclo de entrenamiento el proceso de cambio de peso se ha ralentizado, aumente el parámetro t.

Entrenamiento de redes Hopfield.

Aquí cabe destacar dos posibilidades relacionadas con el uso posterior de la red: si se utilizará como memoria asociativa o para resolver un problema de optimización.

La red se utiliza como memoria asociativa. Es decir: queremos almacenar m vectores binarios V s, s=1,2, en él. . .n: V s =(V 1s,V 2s,...,V ns).

Esto significa que cuando a la red se le presenta cualquiera de estos vectores, debe alcanzar un estado estable correspondiente a este vector, es decir se debe asignar el mismo vector en la salida de las neuronas. Si a la red se le presenta un vector desconocido U, entonces uno de los vectores almacenados Vi que esté más cerca de U debería aparecer en la salida de la red.

Obviamente, el número de neuronas en dicha red debe ser igual a la longitud de los vectores almacenados n.

La forma más sencilla de formar los pesos de dicha red se logra mediante el siguiente procedimiento:

Sin embargo, la capacidad de dicha red (es decir, el número de vectores almacenados m) es pequeña, m  log n. En el trabajo se utilizó una regla de aprendizaje de tipo hebbiano para formar los pesos, como resultado de lo cual se alcanzó la capacidad de la red m  n.

La red se utiliza para resolver un problema de optimización. Esta posibilidad se debe a la siguiente propiedad notable de las redes Hopfield: durante el funcionamiento de la red, el valor (que en la literatura suele denominarse "energía" de la red Hopfield) no aumenta. Una de las opciones para la “energía” de la red Hopfield:

donde A, B son constantes determinadas por el problema. El objetivo del estudio es formular el problema de optimización inicial en términos de una red neuronal y escribir el funcional E h minimizado. La expresión obtenida para Wij da el valor de los factores de ponderación. Como resultado de la operación, la red se lleva a un estado de equilibrio, que corresponde al mínimo local del funcional E h . Los valores de excitación neuronal corresponden a los valores de los argumentos en los que se alcanza el mínimo.




Arriba