adapt
Adaptar una red neuronal a los datos mientras se simula
Sintaxis
[net,Y,E,Pf,Af,tr] = adapt(net,P,T,Pi,Ai)
Para obtener ayuda
Escriba help network/adapt
.
Descripción
Esta función calcula las salidas y los errores de la red después de cada presentación de una entrada.
[net,Y,E,Pf,Af,tr] = adapt(net,P,T,Pi,Ai)
toma:
net | Network |
P | Entradas de la red |
T | Objetivos de la red (valor predeterminado = ceros) |
Pi | Condiciones de retardo de entrada iniciales (valor predeterminado = ceros) |
Ai | Condiciones de retardo de capa iniciales (valor predeterminado = ceros) |
y devuelve lo siguiente después de aplicar la función de adaptación net.adaptFcn
con los parámetros de adaptación net.adaptParam
:
net | Red actualizada |
Y | Salidas de la red |
E | Errores de red |
Pf | Condiciones de retardo de entrada finales |
Af | Condiciones de retardo de capa finales |
tr | Registro de entrenamiento ( |
Tenga en cuenta que T
es opcional y que solo se necesita para las redes que requieren objetivos. Pi
y Pf
son también opcionales y solo hay que usarlos para redes que tienen retardos de entrada o de capa.
Los argumentos de señal de adapt
pueden tener dos formatos: matriz o arreglo de celdas.
El formato de arreglo de celdas es el más fácil de describir. Es más conveniente para redes con múltiples entradas y salidas, lo que permite presentar secuencias de entradas como las siguientes,
P | Arreglo de celdas de | Cada elemento |
T | Arreglo de celdas de | Cada elemento |
Pi | Arreglo de celdas de | Cada elemento |
Ai | Arreglo de celdas de | Cada elemento |
Y | Arreglo de celdas de | Cada elemento |
E | Arreglo de celdas de | Cada elemento |
Pf | Arreglo de celdas de | Cada elemento |
Af | Arreglo de celdas de | Cada elemento |
donde
Ni | = | net.numInputs |
Nl | = | net.numLayers |
No | = | net.numOutputs |
ID | = | net.numInputDelays |
LD | = | net.numLayerDelays |
TS | = | Número de unidades de tiempo |
Q | = | Tamaño del lote |
Ri | = | net.inputs{i}.size |
Si | = | net.layers{i}.size |
Ui | = | net.outputs{i}.size |
Las columnas de Pi
, Pf
, Ai
y Af
se ordenan desde el estado de retardo más antiguo hasta el más reciente:
Pi{i,k} | = | Entrada |
Pf{i,k} | = | Entrada |
Ai{i,k} | = | Salida de capa |
Af{i,k} | = | Salida de capa |
El formato de matriz se puede usar si solo hay que simular una unidad de tiempo (TS = 1
). Resulta conveniente para redes con una única entrada y una única salida, pero se puede usar con redes que tengan más.
Cada argumento de matriz se encuentra almacenando los elementos del argumento de arreglo de celdas correspondiente en una sola matriz:
P | matriz de ( |
T | matriz de ( |
Pi | matriz de ( |
Ai | matriz de ( |
Y | matriz de ( |
E | matriz de ( |
Pf | matriz de ( |
Af | matriz de ( |
Ejemplos
Aquí se utilizan dos secuencias de 12 pasos (de los que se sabe que T1
depende de P1
) para definir el funcionamiento de un filtro.
p1 = {-1 0 1 0 1 1 -1 0 -1 1 0 1}; t1 = {-1 -1 1 1 1 2 0 -1 -1 0 1 1};
Aquí linearlayer
se utiliza para crear una capa con un rango de entrada de [-1 1]
, una neurona, retardos de entrada de 0 y 1 y una tasa de aprendizaje de 0,1. Luego se simula la capa lineal.
net = linearlayer
([0 1],0.1);
Aquí la red se adapta para una pasada por la secuencia.
Se muestra el error cuadrático medio de la red. (Como esta es la primera llamada a adapt
, se utiliza el valor predeterminado Pi
).
[net,y,e,pf] = adapt(net,p1,t1); mse(e)
Observe que los errores son bastante grandes. Aquí la red se adapta a otros 12 pasos de tiempo (utilizando los Pf
anteriores como nuevas condiciones de retardo iniciales).
p2 = {1 -1 -1 1 1 -1 0 0 0 1 -1 -1}; t2 = {2 0 -2 0 2 0 -1 0 0 1 0 -1}; [net,y,e,pf] = adapt(net,p2,t2,pf); mse(e)
Aquí la red se adapta para 100 pasadas por toda la secuencia.
p3 = [p1 p2]; t3 = [t1 t2]; for i = 1:100 [net,y,e] = adapt(net,p3,t3); end mse(e)
El error después de 100 pasadas por la secuencia es muy pequeño. La red se ha adaptado a la relación entre las señales de entrada y objetivo.
Algoritmos
adapt
llama a la función que indica net.adaptFcn
utilizando los valores de parámetros de adaptación que indica net.adaptParam
.
Dada una secuencia de entrada con TS
pasos, la red se actualiza de la siguiente manera: Los pasos de la secuencia de entradas se presentan a la red de uno en uno. Los valores de peso y sesgo de la red se actualizan después de cada paso, antes de que se presente el siguiente paso de la secuencia. De este modo la red se actualiza TS
veces.
Historial de versiones
Introducido antes de R2006a