Algoritmos y aplicaciones de modelado matemático [algoritmo de red neuronal BP]

Las redes neuronales se pueden utilizar para evaluar problemas de predicción y clasificación. Las redes neuronales convolucionales son adecuadas para muestras grandes. El aprendizaje profundo incluye muchos tipos de redes, como redes neuronales convolucionales, redes adversarias, etc. El aprendizaje profundo puede funcionar tanto con muestras grandes como pequeñas.

Red neuronal artificialANN

En el campo del aprendizaje automático y las ciencias cognitivas, la red neuronal artificial (ANN), la red neuronal (NN) o la red neuronal es un tipo de red neuronal que imita la red neuronal biológica (sistema nervioso central animal, especialmente el sistema nervioso central de los animales). .Un modelo matemático o computacional de la estructura y función del cerebro que se utiliza para estimar o aproximar la función.
¿Qué puede hacer la ANA?
Insertar descripción de la imagen aquí
Principales contenidos de investigación de la red neuronal
• Modelo de neurona
• Función de activación
• Estructura de la red
• Estado de trabajo
• Método de aprendizaje

Una red neuronal típica tiene las siguientes tres partes:
1. Arquitectura (Arquitectura) La estructura especifica las variables en la red y sus relaciones topológicas. Por ejemplo, las variables en una red neuronal pueden ser los pesos de las conexiones neuronales y los valores de activación de las neuronas (actividades de las neuronas). 2. Regla
de actividad . La mayoría de los modelos de redes neuronales tienen una dinámica de escala de tiempo corta. Reglas que definen cómo Las neuronas cambian sus valores de excitación en función de la actividad de otras neuronas. Generalmente, la función de activación depende de los pesos en la red (es decir, los parámetros de la red). 3. Regla de aprendizaje La regla de aprendizaje especifica cómo se ajustan los pesos en la red con el tiempo. Generalmente esto se considera una regla dinámica a largo plazo. En general, la regla de aprendizaje depende del valor de activación de la neurona. También puede depender del valor objetivo proporcionado por el supervisor y del valor del peso actual. La siguiente figura es una red neuronal de tres capas: la capa de entrada tiene d nodos, la capa oculta tiene q nodos y la capa de salida tiene l nodos. A excepción de la capa de entrada, los nodos de cada capa contienen una transformación no lineal.


Insertar descripción de la imagen aquíInsertar descripción de la imagen aquí

neuronas artificiales

Supongamos que la información de otras unidades de procesamiento (neuronas) i es xi, y el peso con esta unidad de procesamiento es ωi, i=0, 1,...,n-1, y el umbral dentro de la unidad de procesamiento es θ.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

función de activación

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

modelo de red

Según los diferentes métodos de interconexión de neuronas en la red, los modelos de red se dividen en: Las
redes neuronales feedforward
solo tienen señales de retroalimentación durante el proceso de entrenamiento, mientras que durante el proceso de clasificación, los datos solo se pueden transmitir hacia adelante hasta llegar a la capa de salida, y allí No hay dirección entre capas. La señal de retroalimentación después de la
red neuronal de retroalimentación
es una red neuronal con conexiones de retroalimentación desde la salida a la entrada. Su estructura es mucho más compleja que la red de alimentación directa. La red autoorganizada se
autoorganiza
y cambia de forma adaptativa automáticamente. encontrar las leyes inherentes y los atributos esenciales en la muestra Parámetros y estructura de la red. El estado de trabajo
Insertar descripción de la imagen aquí
de la red neuronal se divide en dos estados: aprendizaje y trabajo. El aprendizaje utiliza el algoritmo de aprendizaje para ajustar los pesos de conexión entre las neuronas para que la salida de la red sea más consistente con la realidad. Los pesos de conexión entre las neuronas en funcionamiento permanecen sin cambios y pueden ser Se utiliza como clasificador o predicción de datos. Método de aprendizaje El aprendizaje se divide en aprendizaje con un tutor y aprendizaje sin tutor. El aprendizaje con un tutor envía un conjunto de conjuntos de entrenamiento a la red y ajusta los pesos de conexión de acuerdo con la diferencia entre la salida real de la red y la salida esperada. . Por ejemplo: el algoritmo BP, aprendizaje sin tutor, extrae las características estadísticas contenidas en el conjunto de muestras y las almacena en la red en forma de pesos de conexión entre neuronas. Por ejemplo: tasa de aprendizaje de Hebb











Red neuronal BP (propagación hacia atrás)

El proceso de aprendizaje de la red neuronal BP consta de dos procesos: propagación hacia adelante de señales y propagación hacia atrás de errores . Durante la propagación hacia adelante, la muestra de entrada se pasa desde la capa de entrada. Después de ser procesada capa por capa por la capa oculta, se transmite a la capa de salida. Si la salida real de la capa de salida no coincide con la salida esperada , Pasará a la etapa de propagación hacia atrás del error. La retropropagación del error consiste en propagar hacia atrás el error de salida de alguna forma a la capa de entrada capa por capa a través de la capa oculta y asignar el error a todas las unidades en cada capa, obteniendo así la señal de error de cada unidad de capa, y esta señal de error. se utiliza como corrección La base para el peso de cada unidad.
El modelo de red neuronal BP (Back Propagation) es uno de los modelos de redes neuronales artificiales más utilizados actualmente. La red BP puede aprender y almacenar una gran cantidad de relaciones de mapeo de patrones de entrada-salida sin revelar de antemano las ecuaciones matemáticas que describen esta relación de mapeo. Su regla de aprendizaje es utilizar el método de descenso de gradiente y ajustar continuamente los pesos y umbrales de la red mediante retropropagación para minimizar la suma de errores cuadrados de la red. La estructura topológica del modelo de red neuronal BP incluye capa de entrada, capa oculta y capa de salida.
La capa de entrada tiene múltiples nodos de entrada; la capa de salida tiene uno o más nodos de salida; el número de nodos de la capa oculta en el medio se establece de acuerdo con las necesidades reales y los nodos entre las capas superior e inferior están completamente conectados, es decir, cada El nodo de la capa inferior está completamente conectado a cada nodo de la capa superior y no hay conexión entre los nodos de la misma capa.

algoritmo de presión arterial

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Preprocesamiento de datos

1. Preprocesamiento de datos
Antes de entrenar una red neuronal, generalmente es necesario preprocesar los datos. Un método de preprocesamiento importante es la normalización . La siguiente es una breve introducción a los principios y métodos del procesamiento de normalización
(1) ¿Qué es la normalización?
La normalización de datos consiste en asignar datos al intervalo [0,1] o [-1,1] o a un intervalo más pequeño, como ( 0,1, 0,9).
(2) ¿Por qué es necesaria la normalización?
<1> Las unidades de datos de entrada son diferentes y el rango de algunos datos puede ser particularmente grande, lo que resulta en una convergencia lenta de la red neuronal y un tiempo de entrenamiento prolongado .
<2>Las entradas con un rango de datos grande pueden desempeñar un papel más importante en la clasificación de patrones, mientras que las entradas con un rango de datos pequeño pueden desempeñar un papel menor. <3>Dado que el rango de valores de la función de activación
de la capa de salida de la red neuronal es limitado , los datos objetivo del entrenamiento de la red deben asignarse al rango de valores de la función de activación. Por ejemplo, si la capa de salida de una red neuronal utiliza una función de activación en forma de S, dado que el rango de valores de la función en forma de S está limitado a (0,1), es decir, la salida de la red neuronal puede solo debe limitarse a (0,1), por lo que la salida de los datos de entrenamiento debe normalizarse al intervalo [0,1]. <4> La función de activación en forma de S es muy plana fuera del intervalo (0,1) y la discriminación es demasiado pequeña . Por ejemplo, cuando el parámetro a = 1 de la función en forma de S f (x), la diferencia entre f (100) y f (5) es solo 0,0067.


Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Códigos de comando relacionados

Preprocesamiento de datos

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Entrenamiento y prueba de redes neuronales.

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

ejemplo

Sea la matriz de entrenamiento P una matriz de orden m n. m representa la cantidad de parámetros (atributos) que deben juzgarse y n representa cuántos conjuntos de datos (muestras) hay.
Sea la matriz resultante T de
orden c n. c es el número total de estados del resultado de salida, n debe ser igual que n en P y hay tantos conjuntos de salidas como conjuntos de muestras.
Columna: Evalúe el desempeño de 60 niños a través de 3 materias. Los resultados solo arrojan buenos o malos. En este momento, P es una matriz de 3 por 60 dimensiones y T es una matriz de 1 por 60 dimensiones.
Insertar descripción de la imagen aquí

%以每三个月的销售量经归一化处理后作为输入,可以加快网络的训练速度将每组数据都变为-1至1之间的数
P=[0.5152 0.8173 1.0000;
0.8173 1.0000 0.7308;
1.0000 0.7308 0.1390; 
0.7308 0.1390 0.1087;
0.1390 0.1087 0.3520;
0.1087 0.3520 0.0000;]';
%以第四个月的销售量归一化处理后作为目标向量
T=[0.7308 0.1390 0.1087 0.3520 0.0000 0.3761];
%创建一个BP神经网络,每一个输入向量的取值范围为[0,1],
% 输出层有一个神经元,隐含层的激活函数为tansig,
% 输出层的激活函数为logsig,训练函数为梯度下降函数
net=newff([0 1;0 1;0 1],[5,1],{'tansig','logsig'},'traingd');
net.trainParam.epochs=15000;%训练终止次数
net.trainParam.goal=0.01;%训练终止精度
net=train(net,P,T);%用P和T去训练
Y = sim(net,P)%用P去做仿真
plot(P,T,P,Y,'o')%画出图像

Ejemplo: uso del algoritmo de descenso del gradiente de impulso para entrenar la red BP

% 训练样本定义如下: 
% 输入矢量为     
%  p =[-1 -2 3  1  
%      -1  1 5 -3] 
% 目标矢量为   t = [-1 -1 1 1] 
close all  
clear  
clc 
% ---------------------------------------------------------------
% NEWFF——生成一个新的前向神经网络,函数格式:
% net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes,
% PR -- R x 2 matrix of min and max values for R input elements
%  (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的边界值)
% Si -- 第i层的维数
% TFi -- 第i层的传递函数, default = 'tansig'
% BTF -- 反向传播网络的训练函数, default = 'traingdx'
% BLF -- 反向传播网络的权值/阈值学习函数, default = 'learngdm'
% PF -- 性能函数, default = 'mse'
% ---------------------------------------------------------------
% TRAIN——对 BP 神经网络进行训练,函数格式:
%  train(NET,P,T,Pi,Ai,VV,TV),输入参数:
% net -- 所建立的网络
% P -- 网络的输入
% T -- 网络的目标值, default = zeros
% Pi -- 初始输入延迟, default = zeros
% Ai -- 初始网络层延迟, default = zeros
% VV -- 验证向量的结构, default = []
% TV -- 测试向量的结构, default = []
% 返回值:
% net -- 训练之后的网络
% TR -- 训练记录(训练次数及每次训练的误差)
% Y -- 网络输出
% E -- 网络误差
% Pf -- 最终输入延迟
% Af -- 最终网络层延迟
% ---------------------------------------------------------------
% SIM——对 BP 神经网络进行仿真,函数格式:
% [Y,Pf,Af,E,perf] = sim(net,P,PiAi,T)
% 参数与前同。
% ---------------------------------------------------------------
% 
%  定义训练样本  
% P 为输入矢量 
echo on
P=[-1,  -2,    3,    1;
    -1,    1,    5,  -3]; 
% T 为目标矢量  
T=[-1, -1, 1, 1];  
%  创建一个新的前向神经网络  
net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm') 
% ---------------------------------------------------------------
% 训练函数:traingdm,功能:以动量BP算法修正神经网络的权值和阈值。
% 它的相关特性包括:
% epochs:训练的次数,默认:100
% goal:误差性能目标值,默认:0
% lr:学习率,默认:0.01
% max_fail:确认样本进行仿真时,最大的失败次数,默认:5
% mc:动量因子,默认:0.9
% min_grad:最小梯度值,默认:1e-10
% show:显示的间隔次数,默认:25
% time:训练的最长时间,默认:inf
% ---------------------------------------------------------------
%  当前输入层权值和阈值  
inputWeights=net.IW{1,1}  
inputbias=net.b{1}  
%  当前网络层权值和阈值  
layerWeights=net.LW{2,1}  
layerbias=net.b{2}  
%  设置网络的训练参数  
net.trainParam.show = 50;  
net.trainParam.lr = 0.05;  
net.trainParam.mc = 0.9;  
net.trainParam.epochs = 1000;  
net.trainParam.goal = 1e-3;   
%  调用 TRAINGDM 算法训练 BP 网络  
[net,tr]=train(net,P,T);  
%  对 BP 网络进行仿真  
A = sim(net,P)  
%  计算仿真误差  
E = T - A  
MSE=mse(E)  
echo off
figure;
plot((1:4),T,'-*',(1:4),A,'-o')

Resultados de ejecución
Insertar descripción de la imagen aquí
: la precisión de la predicción sigue siendo relativamente alta.
Insertar descripción de la imagen aquí
Haga clic en el gráfico de entrenamiento para obtener los resultados de cambio de cada dato durante el proceso de entrenamiento.
Insertar descripción de la imagen aquí

Ventajas y desventajas de la red neuronal BP.

ventaja

  1. Capacidad de mapeo no lineal : la red neuronal BP esencialmente implementa una función de mapeo desde la entrada hasta la salida. La teoría matemática demuestra que una red neuronal de tres capas puede aproximarse a cualquier función continua no lineal con precisión arbitraria . Esto la hace particularmente adecuada para resolver problemas con mecanismos internos complejos, es decir, la red neuronal BP tiene fuertes capacidades de mapeo no lineal.
    2) Capacidades de autoaprendizaje y adaptación : Durante el entrenamiento, la red neuronal BP puede extraer automáticamente "reglas razonables" entre la salida y los datos de salida a través del aprendizaje, y memorizar de forma adaptativa el contenido del aprendizaje en los pesos de la red. Es decir, la red neuronal BP tiene un alto grado de capacidades adaptativas y de autoaprendizaje.
  2. Capacidad de generalización : La llamada capacidad de generalización significa que al diseñar un clasificador de patrones, es necesario considerar si la red puede clasificar correctamente los objetos de clasificación requeridos y también si la red puede clasificar patrones invisibles o patrones después del entrenamiento. Patrones de contaminación para una correcta clasificación. Es decir, la red neuronal BP tiene la capacidad de aplicar los resultados del aprendizaje a nuevos conocimientos .
    4) Tolerancia a fallas : la red neuronal BP no tendrá un gran impacto en los resultados del entrenamiento global después de que sus neuronas locales o parciales estén dañadas, lo que significa que el sistema aún puede funcionar normalmente incluso si está dañado localmente. Es decir, la red neuronal de BP tiene cierta tolerancia a fallos.
    Desventajas
    1. Problema de minimización local : Desde un punto de vista matemático, la red neuronal BP tradicional es un método de optimización de búsqueda local, que resuelve un problema no lineal complejo y mejora el peso de la red localmente, y la dirección se ajusta gradualmente, lo que hará que el algoritmo caiga en un extremo local y los pesos converjan al punto mínimo local, lo que provocará una falla en el entrenamiento de la red. Además, la red neuronal BP es muy sensible al peso inicial de la red. Si la red se inicializa con diferentes pesos, a menudo convergerá a diferentes mínimos locales. Esta es también la razón fundamental por la que muchos académicos obtienen resultados diferentes cada vez que entrenan.
    2. La velocidad de convergencia del algoritmo de la red neuronal BP es lenta : dado que el algoritmo de la red neuronal BP es esencialmente un método de descenso de gradiente, la función objetivo que quiere optimizar es muy compleja, por lo que inevitablemente se producirá un "fenómeno de zigzag", que hace que el algoritmo BP sea poco efectivo y, debido a que la función objetivo de optimización es muy compleja, inevitablemente aparecerán algunas áreas planas cuando la salida de la neurona esté cerca de 0 o 1. En estas áreas, el error de peso cambia muy poco, lo que dificulta el proceso de entrenamiento. casi se detiene; BP En el modelo de red neuronal, para que la red ejecute el algoritmo BP, no se puede utilizar el método de búsqueda unidimensional tradicional para encontrar el tamaño del paso de cada iteración, sino las reglas de actualización del paso. El tamaño debe proporcionarse a la red con antelación. Este método también provocará ineficiencia en el algoritmo. Todo lo anterior ha llevado a una lenta velocidad de convergencia del algoritmo de la red neuronal de BP.
    3.Hay diferentes opciones de estructura de red neuronal de BP : todavía no existe una guía teórica unificada y completa para la selección de la estructura de red neuronal de BP y, en general, solo se puede seleccionar mediante la experiencia. Si la estructura de la red se elige demasiado grande, la eficiencia del entrenamiento no será alta y puede ocurrir un sobreajuste, lo que resultará en un bajo rendimiento de la red y una menor tolerancia a fallas. Si la estructura de la red se elige demasiado pequeña, es posible que la red no converja. La estructura de la red afecta directamente la capacidad de aproximación y las propiedades de generalización de la red. Por lo tanto, cómo elegir una estructura de red adecuada en una aplicación es una cuestión importante.
    4. La contradicción entre la instancia de aplicación y la escala de la red : La red neuronal de BP es difícil de resolver la contradicción entre la escala de instancia del problema de la aplicación y la escala de la red, que implica la relación entre la posibilidad y la viabilidad de la capacidad de la red, es decir, el aprendizaje. problema de complejidad.
    5. El conflicto entre la capacidad de predicción y la capacidad de entrenamiento de la red neuronal BP : La capacidad de predicción también se llama capacidad de generalización o capacidad de generalización, mientras que la capacidad de entrenamiento también se llama capacidad de aproximación o capacidad de aprendizaje. En términos generales, cuando la capacidad de entrenamiento es pobre, la capacidad de predicción también lo es y, hasta cierto punto, a medida que mejora la capacidad de entrenamiento, la capacidad de predicción mejorará . Sin embargo, esta tendencia no es fija. Tiene un límite. Cuando se alcanza este límite, a medida que mejora la capacidad de entrenamiento, la capacidad de predicción disminuirá, lo que es el fenómeno llamado "sobreajuste " . La razón de este fenómeno es que la red ha aprendido demasiados detalles de la muestra y el modelo aprendido ya no puede reflejar los patrones contenidos en las muestras, por lo tanto, ¿cómo captar el grado de aprendizaje y resolver el conflicto entre la capacidad de predicción de la red y La capacidad de entrenamiento también es un problema de la red neuronal BP. Contenidos de investigación importantes de la red
    6. Problema de dependencia de la muestra de la red neuronal BP : Las capacidades de aproximación y generalización del modelo de red están estrechamente relacionadas con la tipicidad de las muestras de aprendizaje, y es un Es un problema muy difícil seleccionar instancias de muestra típicas del problema para formar un conjunto de entrenamiento. Hay dos categorías principales de mejoras
    en los algoritmos tradicionales de BP : algoritmos heurísticos: como métodos de impulso adicionales y algoritmos adaptativos.

    Métodos de optimización numérica: como el método del gradiente conjugado, el método de iteración de Newton y el algoritmo de Levenberg-Marquardt.

Supongo que te gusta

Origin blog.csdn.net/Luohuasheng_/article/details/128675915
Recomendado
Clasificación