Configurar entradas y salidas de redes neuronales superficiales
Este tema forma parte del flujo de trabajo del diseño, que se describe en Flujo de trabajo para el diseño de redes neuronales.
Después de crear una red neuronal, hay que configurarla. El paso de configuración consiste en examinar los datos de entrada y objetivo, establecer los tamaños de entrada y salida de la red para que coincidan con los datos y elegir la configuración para procesar las entradas y salidas que permitirán el mejor rendimiento de la red. El paso de configuración se realiza normalmente de forma automática cuando se llama a una función de entrenamiento. Sin embargo, puede hacerse manualmente usando la función de configuración. Por ejemplo, para configurar la red creada anteriormente para aproximar una función del seno, genere los siguientes comandos:
p = -2:.1:2; t = sin(pi*p/2); net1 = configure(net,p,t);
Ha proporcionado a la red un conjunto de ejemplos de entradas y objetivos (salidas de red deseadas). Con esta información, la función configure
puede establecer los tamaños de las entradas y salidas de la red para que coincidan con los datos.
Después de la configuración, si vuelve a mirar el peso entre la capa 1 y la capa 2, puede ver que la dimensión del peso es 1 por 20. Esto se debe a que el objetivo para esta red es un escalar.
net1.layerWeights{2,1} Neural Network Weight delays: 0 initFcn: (none) initConfig: .inputSize learn: true learnFcn: 'learngdm' learnParam: .lr, .mc size: [1 10] weightFcn: 'dotprod' weightParam: (none) userdata: (your custom info)
Además de establecer las dimensiones adecuadas para los pesos, el paso de configuración define la configuración para el procesamiento de entradas y salidas. El procesamiento de entradas se puede ubicar en el subobjeto inputs
:
net1.inputs{1} Neural Network Input name: 'Input' feedbackOutput: [] processFcns: {'removeconstantrows', mapminmax} processParams: {1x2 cell array of 2 params} processSettings: {1x2 cell array of 2 settings} processedRange: [1x2 double] processedSize: 1 range: [1x2 double] size: 1 userdata: (your custom info)
Antes de aplicar la entrada a la red, se procesará por dos funciones: removeconstantrows
y mapminmax
. Estas funciones se explican en detalle en Redes neuronales superficiales multicapa y entrenamiento de retropropagación, por lo que no las examinaremos aquí. Puede que estas funciones de procesamiento tengan algunos parámetros de procesamiento, que están incluidos en el subobjeto net1.inputs{1}.processParam
. Estos parámetros tienen valores predeterminados que puede modificar. Las funciones de procesamiento también pueden tener ajustes de configuración que sean dependientes de los datos de muestra. Estos ajustes están incluidos en net1.inputs{1}.processSettings
y se establecen durante el proceso de configuración. Por ejemplo, la función de procesamiento mapminmax
normaliza los datos de forma que todas las entradas se encuentren en el intervalo [−1, 1]. Sus ajustes de configuración incluyen los valores mínimo y máximo de los datos de muestra, que necesita para realizar la normalización correcta. Esto se explicará de forma más detallada en Redes neuronales superficiales multicapa y entrenamiento de retropropagación.
Por lo general, usamos el término "parámetro", como en parámetros de procesamiento, parámetros de entrenamiento, etc. para designar constantes que tienen valores predeterminados que asigna el software cuando se crea la red (y que se pueden modificar). Utilizamos el término "ajuste de configuración", como en ajuste de configuración de procesamiento, para designar constantes que asigna el software a partir de un análisis de los datos de muestra. Estos ajustes no tienen valores predeterminados y, por lo general, no deben modificarse.
Para obtener más información, consulte también Understanding Shallow Network Data Structures.