You are on page 1of 33

Definir las arquitecturas de redes neuronales

Definir nuevas arquitecturas de redes neuronales y algoritmos para


aplicaciones avanzadas

Crear objeto de Redes Neuronales


Este tema es parte del flujo de trabajo de diseo se describe en el flujo de
trabajo para Diseo de Redes Neuronales.
La forma ms fcil de crear una red neuronal es utilizar una de las funciones
de creacin de la red. Para investigar cmo se hace esto, se puede crear
una red simple de alimentacin hacia delante, de dos capas, utilizando el
comando: feedforwardnet
Esta pantalla es una visin general del objeto de red, que se utiliza para
almacenar toda la informacin que define una red neural. Hay una gran
cantidad de detalles aqu, pero hay algunas secciones clave que pueden
ayudar a ver cmo se organiza el objeto de red.
La seccin de dimensiones almacena la estructura general de la red. Aqu se
puede ver que hay una entrada a la red (aunque la entrada de uno puede
ser un vector que contiene muchos elementos), una salida de la red, y dos
capas.
La seccin de conexiones almacena las conexiones entre componentes de la
red. Por ejemplo, existe un sesgo conectado a cada capa, la entrada est
conectada a la capa 1, y la salida viene de capa 2. Tambin puede ver que
la capa 1 est conectado a la capa 2. (Las filas de net.layer Conectar
representar la capa de destino, y las columnas representan la capa de
origen. a uno en esta matriz indica una conexin, y un cero indica que no
hay conexin. Para este ejemplo, hay un solo elemento en una 2,1 de la
matriz.)
Los subobjetos clave del objeto de red son los insumos, las capas, las
salidas, los prejuicios, inputWeights y layerWeights. Ver el subobjeto capas
para la primera capa con el comando.
El nmero de neuronas en una capa est dado por su propiedad de tamao.
En este caso, la capa tiene 10 neuronas, que es el tamao por defecto del
comando feedforwardnet. La funcin de entrada neto es suma neta (suma)
y la funcin de transferencia es la tansig. Si usted quiere cambiar la funcin
de transferencia de logsig, por ejemplo, puede ejecutar el comando:
net.layers{1}.transferFcn = 'logsig';

La funcin del peso es dotprod, que representa la multiplicacin de matrices


estndar (producto escalar). Tenga en cuenta que el tamao de este peso
de capa es 0-por-10. La razn por la que tenemos cero filas se debe a que la
red an no se ha configurado para un conjunto de datos en particular. El
nmero de neuronas de salida es igual al nmero de filas de su vector de
destino. Durante el proceso de configuracin, se le proporcionar la red con
ejemplos de entradas y objetivos, y luego el nmero de neuronas de salida
puede ser asignado.

Esto le da una idea de cmo se organiza el objeto de red. Para muchas


aplicaciones, usted no tendr que estar preocupado por hacer cambios
directamente en el objeto de red, ya que es atendido por las funciones de
creacin de la red. Por lo general, slo cuando se desea sustituir los valores
predeterminados del sistema que es necesario para acceder al objeto de red
directamente. Otros temas que se mostrar cmo se hace esto para redes
particulares y mtodos de entrenamiento.

Configurar red neuronal de Entradas y Salidas


Este tema es parte del flujo de trabajo de diseo se describe en el flujo de
trabajo para Diseo de Redes Neuronales.
Despus de crear una red neuronal, se debe configurar. El paso de
configuracin consiste en examinar los datos de entrada y objetivo, el
establecimiento de tamaos de entrada y salida de la red para que coincida
con los datos y seleccionar la configuracin para el procesamiento de las
entradas y salidas que permitan un mejor rendimiento de la red. El paso de
la configuracin se realiza normalmente de forma automtica, cuando la
funcin de formacin se llama. Sin embargo, se puede hacer de forma
manual, mediante el uso de la funcin de configuracin. Por ejemplo, para
configurar la red que ha creado previamente para aproximarse a una
funcin seno, emita los siguientes comandos:
p = -2:.1:2;
t = sin(pi*p/2);
net1 = configure(net,p,t);

Usted ha proporcionado la red con un sistema de ejemplo de las entradas y


salidas de la red (objetivos deseados). Con esta informacin, la funcin de
configuracin puede establecer los tamaos de entrada y salida de red para
que coincida con los datos.
Despus de la configuracin, si nos fijamos de nuevo en el peso entre las
capas 1 y 2, se puede ver que la dimensin del peso es de 1 por 20. Esto es
debido a que el objetivo de 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)

Adems de establecer las dimensiones apropiadas para los pesos, el paso


de configuracin tambin define la configuracin para el procesamiento de

las entradas y salidas. El procesamiento de la entrada puede estar situado


en el subobjeto entradas:
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 la entrada se aplica a la red, que ser procesada por dos


funciones: removeconstantrows y mapminmax. Estos son discutidos
plenamente en mltiples capas de redes neuronales y Formacin
Retropropagacin as que no abordaremos los detalles aqu. Estas funciones
de procesamiento pueden tener algunos parmetros de procesamiento, que
estn contenidos en los net1.inputs subobjetos {1} .processParam. Estos
tienen valores por omisin que puede anular. Las funciones de
procesamiento tambin puede haber una configuracin que dependen de
los datos de la muestra. Estas estn contenidas en net1.inputs {1} .Proceso
Configuracin y se establecen durante el proceso de configuracin. Por
ejemplo, la funcin de procesamiento mapminmax normaliza los datos de
manera que todas las entradas estn en el rango [-1, 1]. Sus valores de
configuracin incluyen los valores mnimo y mximo de los datos de la
muestra, lo que se necesita para llevar a cabo la normalizacin correcta.
Esto ser discutido con mucha ms profundidad en mltiples capas de redes
neuronales y Formacin retropropagacin.
Como regla general, se utiliza el trmino "parmetro", como en los
parmetros del proceso, parmetros de formacin, etc., para denotar
constantes que tienen valores predeterminados que se asignan por el
software cuando se crea la red (y que se puede anular). Utilizamos el
trmino "ajuste de configuracin", como en el establecimiento de
configuracin del proceso, para denotar las constantes que son asignados
por el software de anlisis de datos de la muestra. Estos ajustes no tienen
valores por defecto, y no deben ser anulados en general.

La comprensin de las estructuras de datos de redes neuronales de


la caja de herramientas
En este tema se explica cmo el formato de las estructuras de datos de
entrada afecta a la simulacin de redes. Se inicia con redes estticas, y
luego contina con redes dinmicas. La siguiente seccin describe cmo el
formato de las estructuras de datos afecta a la formacin de redes.
Hay dos tipos bsicos de vectores de entrada: los que se producen
simultneamente (al mismo tiempo, o en ninguna secuencia de tiempo
particular), y los que se producen secuencialmente en el tiempo. Para los
vectores concurrentes, el orden no es importante, y si haba un nmero de
redes que funcionan en paralelo, se podra presentar un vector de entrada a

cada una de las redes. Para los vectores secuenciales, el orden en que
aparecen los vectores es importante.

Simulacin con entradas simultneas en una red esttica


La situacin ms simple para la simulacin de una red se produce cuando la
red a simular es esttica (no tiene comentarios o retrasos). En este caso,
usted no necesita preocuparse acerca de si o no los vectores de entrada se
producen en una secuencia de tiempo determinado, por lo que puede tratar
a las entradas como concurrente. Adems, el problema se hace an ms
simple por el supuesto de que la red tiene un solo vector de entrada. A usar
la red como un ejemplo.

Para configurar esta red de alimentacin directa lineal, utilice los siguientes
comandos:
net = linearlayer;
net.inputs{1}.size = 2;
net.layers{1}.dimensions = 1;

Por simplicidad, asignar la matriz de peso y sesgo para ser W = [1 2] y b =


[0].
Los comandos para estas asignaciones son
net.IW{1,1} = [1 2];
net.b{1} = 0;

Supongamos que el conjunto de datos de simulacin de red consta de Q = 4


vectores concurrentes:

vectores concurrentes se presentan a la red como una sola matriz:


P = [1 2 2 3; 2 1 3 1];

Ahora puede simular la red:


A = net(P)
A=
5
4
8

Una matriz nica de vectores concurrentes se presenta a la red, y la red


produce una sola matriz de vectores concurrentes como salida. El resultado
sera el mismo si haba cuatro redes que funcionan en paralelo y cada red

recibieron uno de los vectores de entrada y produjeron una de las salidas. El


orden de los vectores de entrada no es importante, ya que no interactan
entre s.

Simulacin con entradas secuenciales en una red dinmica


Cuando una red contiene retrasos, la entrada a la red sera normalmente
una secuencia de vectores de entrada que se producen en un orden
determinado tiempo. Para ilustrar este caso, la siguiente figura muestra una
red simple que contiene una demora.

Los siguientes comandos crean esta red:


net = linearlayer([0 1]);
net.inputs{1}.size = 1;
net.layers{1}.dimensions = 1;
net.biasConnect = 0;

Asignar la matriz de pesos para ser W = [1 2].


El comando es:
net.IW{1,1} = [1 2];

Supongamos que la secuencia de entrada es:

entradas secuenciales se presentan a la red como elementos de un conjunto


de clulas:
P = {1 2 3 4};
You can now simulate the network:

Se introduce un conjunto de clulas que contiene una secuencia de


entradas, y la red produce un conjunto de clulas que contiene una
secuencia de salidas. El orden de las entradas es importante cuando se
presentan como una secuencia. En este caso, la salida de corriente se

obtiene multiplicando la corriente de entrada por 1 y la entrada anterior por


2 y sumando el resultado. Si se va a cambiar el orden de las entradas, las
cifras obtenidas en la salida cambiara.

Simulacin con entradas simultneas en una red dinmica


Si se va a aplicar los mismos parmetros en funcin de un conjunto de
entradas simultneas en lugar de una secuencia de entradas, se obtendra
una respuesta completamente diferente. (Sin embargo, no est claro por
qu querra hacer esto con una red dinmica.) Sera como si cada entrada
se aplica simultneamente a una red paralela separada. Para el ejemplo
anterior, Simulacin con entradas secuenciales en una red dinmica, si
utiliza un conjunto concurrente de entradas que tiene

que puede ser creado por el cdigo siguiente:


P = [1 2 3 4];

Cuando se simula con entradas simultneas, se obtiene

El resultado es el mismo que si se hubiera aplicado simultneamente cada


una de las entradas a una red separada y calculado una salida. Tenga en
cuenta que debido a que no asigna ningn condiciones iniciales a los
retrasos en la red, que se supone que son 0. Para este caso, la salida es
simplemente 1 vez la entrada, ya que el peso que se multiplica la corriente
de entrada es 1.
En ciertos casos especiales, es posible que desee simular la respuesta de la
red a varias secuencias distintas al mismo tiempo. En este caso, que se
quiere presentar la red con un conjunto simultneo de secuencias. Por
ejemplo, suponga que desea presentar las siguientes dos secuencias de la
red:

`
La entrada de P debe ser una serie de clulas, donde cada elemento de la
matriz contiene los dos elementos de las dos secuencias que se producen al
mismo tiempo:
P = {[1 4] [2 3] [3 2] [4 1]};

Ahora puede simular la red:


A = net(P);

La salida de la red resultante sera


A = {[1 4] [4 11] [7 8] [10 5]}

Como se puede ver, la primera columna de cada matriz constituye la


secuencia de salida producido por la primera secuencia de entrada, que era
la utilizada en un ejemplo anterior. La segunda columna de cada matriz
constituye la secuencia de salida producido por la segunda secuencia de
entrada. No hay interaccin entre las dos secuencias concurrentes. Es como
si se aplican a cada uno de redes separadas que se ejecutan en paralelo.
El siguiente diagrama muestra el formato general de la red de entrada P
cuando hay secuencias simultneas Q de sus pasos de tiempo. Cubre todos
los casos en que hay un nico vector de entrada. Cada elemento de la
matriz de clulas es una matriz de vectores concurrentes que corresponden
al mismo punto en el tiempo para cada secuencia. Si hay varios vectores de
entrada, habr mltiples filas de matrices de la matriz celular.

En este tema, se aplica entradas secuenciales y concurrentes a las redes


dinmicas. En Simulacin con entradas simultneas en una red esttica, que
aplic entradas simultneas a redes estticas. Tambin es posible aplicar las
entradas secuenciales a las redes estticas. No cambia la respuesta
simulada de la red, pero puede afectar la forma en que se entrena la red.
Esto quedar claro en los conceptos de formacin de redes neuronales.
Vase tambin Configuracin de red neuronal de Entradas y Salidas.

Crear y entrenar a las arquitecturas de redes neuronales


personalizada
Software de caja de herramientas de red neuronal proporciona un tipo de
objeto de red flexible que permite a muchos tipos de redes que se creen y
luego utilizar con funciones tales como init, sim, y el train.
Escriba lo siguiente para ver todas las funciones de creacin de red en la
caja de herramientas.
help nnnetwork

Esta flexibilidad es posible gracias a las redes tienen una representacin


orientada a objetos. La representacin le permite definir varias arquitecturas
y asignar varios algoritmos para esas arquitecturas.
Para crear redes personalizadas, comenzar con una red vaca (obtenido con
la funcin de red) y establezca sus propiedades como desee.
net = network

El objeto de red se compone de muchas propiedades que se pueden


establecer para especificar la estructura y el comportamiento de la red.
Las siguientes secciones muestran cmo crear una red personalizada
mediante el uso de estas propiedades.

Red personalizada
Antes de poder construir una red que necesita saber lo que parece. Para los
propsitos drsticos (y para dar a la caja de herramientas de un
entrenamiento) Esta seccin le gua a travs de la creacin de la red salvaje
y complicada se muestra a continuacin.

Cada uno de los dos elementos de la primera entrada de red es aceptar


valores que oscilan entre 0 y 10. Cada uno de los cinco elementos de la
segunda entrada de red rangos de -2 a 2.
Antes de poder completar el diseo de esta red, los algoritmos que emplea
para la inicializacin y la formacin deben ser especificados.
Pesos y sesgos de cada capa se inicializan con el mtodo de capa de
inicializacin Nguyen-Widrow (initnw). La red es entrenada con LevenbergMarquardt backpropagation (trainlm), de modo que, ejemplo vectores de
entrada dado, las salidas de la tercera capa de aprender para que coincida
con los vectores de destino asociados con un mnimo error cuadrtico medio
(MSE).
Definicin de la red
El primer paso es la creacin de una nueva red. Escriba el siguiente cdigo
para crear una red y ver sus muchas propiedades:
net = network

Propiedades Arquitectura
El primer grupo de propiedades que se muestra est etiquetado
propiedades de arquitectura. Estas propiedades le permiten seleccionar el
nmero de entradas y capas y sus conexiones.
Nmero de entradas y capas. Las dos primeras propiedades que se
muestran en el grupo dimensiones son numInputs y numLayers. Estas
propiedades le permiten seleccionar el nmero de entradas y capas que
desea que la red tiene.
net =
dimensions:
numInputs: 0
numLayers: 0

Tenga en cuenta que la red no tiene entradas o capas en este momento.

Cambiar eso mediante el establecimiento de estas propiedades con el


nmero de entradas y el nmero de capas en el diagrama de red
personalizado.
net.numInputs = 2;
net.numLayers = 3;
net.numInputs es el nmero de fuentes de entrada, no el nmero de
elementos en un vector de entrada (net.inputs {i} .size).

Conexiones sesgo. Tipo de red y pulse Intro para ver sus propiedades de
nuevo. La red tiene ahora dos entradas y tres capas.
net =
Neural Network:
dimensions:
numInputs: 2
numLayers: 3

Examinar los prximos cuatro propiedades en el grupo de conexiones:


biasConnect: [0; 0; 0]
inputConnect: [0 0; 0 0; 0 0]
layerConnect: [0 0 0; 0 0 0; 0 0 0]
outputConnect: [0 0 0]

Estas matrices de 1s y 0s representan la presencia y ausencia de sesgo, el


peso de entrada, peso de la capa, y las conexiones de salida. Actualmente
se encuentran todos los ceros, lo que indica que la red no tiene ningn tipo
de conexiones.
La matriz de conexin sesgo es un vector 3-por-1. Para crear una conexin
sesgo a la capa i-sima puede establecer net.biasConnect (i) a 1. Especificar
que la primera y tercera capas son tener conexiones de polarizacin, como
indica el grfico, escribiendo el siguiente cdigo:
net.biasConnect(1) = 1;
net.biasConnect(3) = 1;

Tambin podra definir esas conexiones con una sola lnea de cdigo.
net.biasConnect = [1; 0; 1];

Entrada y la capa Peso Conexiones. La matriz de conexin de entrada es 3por-2, que representa la presencia de conexiones de dos fuentes (las dos
entradas) a tres destinos (las tres capas). Por lo tanto, net.inputConnect (i, j)
representa la presencia de una conexin de entrada de peso va a la capa isima de la entrada de orden j.
Para conectar la primera entrada a la primera y segunda capas, y la
segunda entrada a la segunda capa (como se indica por el diagrama de red
del cliente), el tipo de
net.inputConnect(1,1) = 1;

net.inputConnect(2,1) = 1;
net.inputConnect(2,2) = 1;

o esta sola lnea de cdigo:


net.inputConnect = [1 0; 1 1; 0 0];
Del mismo modo, net.layer Connect (i.q) representa la presencia de una conexin de capapeso de ir a la capa i-sima de la capa j-simo. Conectar las capas 1, 2 y 3 a la capa 3 de la
siguiente manera:
net.layerConnect = [0 0 0; 0 0 0; 1 1 1];

Conexiones de salida. Las conexiones de salida son una matriz de 1-por-3,


lo que indica que se conectan a un destino (el mundo exterior) de tres
fuentes (las tres capas).
Para conectar las capas 2 y 3 a la salida de la red, el tipo de
net.outputConnect = [0 1 1];

Nmero de salidas
Tipo de red y pulse Intro para ver las propiedades actualizadas. Los ltimos
tres propiedades de la arquitectura son los valores de slo lectura, lo que
significa que sus valores estn determinados por las decisiones tomadas por
otras propiedades. La primera propiedad de slo lectura en el grupo
dimensin es el nmero de salidas:
numOutputs: 2

Mediante la definicin de conexin de salida de las capas 2 y 3, se


especifica que la red tiene dos salidas.
Propiedades de subobjetos
El siguiente grupo de propiedades en la pantalla de salida es subobjetos:
subobjects:
inputs: {2x1 cell array of 2 inputs}
layers: {3x1 cell array of 3 layers}
outputs: {1x3 cell array of 2 outputs}
biases: {3x1 cell array of 2 biases}
inputWeights: {3x2 cell array of 3 weights}
layerWeights: {3x3 cell array of 3 weights}

Entradas
Cuando se establece el nmero de entradas (net.numInputs) a 2, la
propiedad insumos se convierte en una serie de clulas de dos estructuras
de entrada. Cada estructura de entrada i-simo (net.inputs {I}) contiene
propiedades adicionales asociados con la entrada i-simo.
Para ver cmo se disponen las estructuras de entrada, el tipo
net.inputs

ans =
[1x1 nnetInput]
[1x1 nnetInput]

Para ver las propiedades asociadas con la primera entrada, el tipo de


net.inputs{1}

Las propiedades aparecen como sigue:


ans =
name: 'Input'
feedbackOutput: []
processFcns: {}
processParams: {1x0 cell array of 0 params}
processSettings: {0x0 cell array of 0 settings}
processedRange: []
processedSize: 0
range: []
size: 0
userdata: (your custom info)

Si se establece la propiedad exampleInput, el rango, tamao, propiedades


processedSize, y processedRange se actualizarn automticamente para
que coincida con las propiedades del valor de exampleInput.
Establecer la propiedad exampleInput de la siguiente manera:
net.inputs{1}.exampleInput = [0 10 5; 0 3 10];

Si se examina la estructura de la primera entrada de nuevo, se ve que ahora


cuenta con nuevos valores.
Los processFcns propiedad se puede establecer a una o ms funciones de
procesamiento. Escribir help nnprocess para ver una lista de estas
funciones.
Ajuste el segundo vector de entrada vara ser -2 a 2 de cinco elementos
como sigue:
net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};

Ver las nuevas propiedades de entrada. Ver que processParams,


processSettings, processedRange y processedSize han sido actualizados
para
reflejar
que
las
entradas
sern
procesadas
usando
removeconstantrows y mapminmax antes de ser dado a la red cuando la red
es simulada o entrenado. Los processParams propiedad contiene los
parmetros por defecto para cada funcin de procesamiento. Puede
modificar estos valores, si lo desea. Ver la pgina de referencia para cada
funcin de procesamiento de aprender ms acerca de sus parmetros.

Puede ajustar el tamao de una entrada directa cuando no se utilizan las


funciones de procesamiento:
net.inputs{2}.size = 5;

Capas. Cuando se establece el nmero de capas (net.numLayers) a 3, la


propiedad capas se convierte en una serie de clulas de las estructuras de
tres capas. Escriba la siguiente lnea de cdigo para ver las propiedades
asociadas con la primera capa.
net.layers{1}
ans =
Neural Network Layer
name: 'Layer'
dimensions: 0
distanceFcn: (none)
distanceParam: (none)
distances: []
initFcn: 'initwb'
netInputFcn: 'netsum'
netInputParam: (none)
positions: []
range: []
size: 0
topologyFcn: (none)
transferFcn: 'purelin'
transferParam: (none)
userdata: (your custom info)

Escriba los siguientes tres lneas de cdigo para cambiar el tamao de la


primera capa de 4 neuronas, su funcin de transferencia a tansig, y su
funcin de inicializacin de la funcin Nguyen-Widrow, como se requiere
para el diagrama de red personalizado.
net.layers{1}.size = 4;
net.layers{1}.transferFcn = 'tansig';
net.layers{1}.initFcn = 'initnw';

La segunda capa es tener tres neuronas, la funcin de transferencia logsig,


y ser inicializado con init. Establecer las propiedades de la segunda capa a
los valores deseados de la siguiente manera:
net.layers{2}.size = 3;
net.layers{2}.transferFcn = 'logsig';
net.layers{2}.initFcn = 'initnw';

Propiedades de tamao y funcin de transferencia de la tercera capa no


necesitan ser cambiado, porque los valores por defecto coinciden con los
muestra en el diagrama de red. Es necesario configurar slo su funcin de
inicializacin, de la siguiente manera:
net.layers{3}.initFcn = 'initnw';

Salidas. Utilice esta lnea de cdigo para ver cmo la propiedad de salida
se dispone:
net.outputs
ans =
[]

[1x1 nnetOutput]

[1x1 nnetOutput]

Tenga en cuenta que las salidas contiene dos estructuras de salida, uno para
la capa 2 y una para la capa 3. Esta disposicin se produce
automticamente cuando net.outputConnect est ajustado en [0 1 1].
Ver estructura de salida de la segunda capa con la siguiente expresin:
net.outputs{2}
ans =
Neural Network Output

name: 'Output'
feedbackInput: []
feedbackDelay: 0
feedbackMode: 'none'
processFcns: {}
processParams: {1x0 cell array of 0 params}
processSettings: {0x0 cell array of 0 settings}
processedRange: [3x2 double]
processedSize: 3
range: [3x2 double]
size: 3
userdata: (your custom info)

El tamao se ajusta automticamente a 3 cuando el tamao de la segunda


capa (net.layers {2} .size) se ajusta a ese valor. Mira estructura de salida de
la tercera capa si desea comprobar que tambin tiene el tamao correcto.
Las salidas tienen propiedades de procesamiento que se aplican
automticamente a los valores objetivo antes de que se utilizan por la red
durante el entrenamiento. Los mismos ajustes de procesamiento se aplican
a la inversa en los valores de salida de la capa antes de que se devuelven
como valores de salida de la red durante la simulacin o el entrenamiento
de la red.

Similares a las propiedades de entrada de procesamiento, estableciendo la


propiedad exampleOutput provoca automticamente el tamao, alcance,
processedSize, y processedRange que se debe actualizar. Configuracin
processFcns a una lista de conjunto de clulas de nombres de funciones de
procesamiento provoca processParams, processSettings, processedRange a
ser actualizados. A continuacin, puede alterar los valores processParam, si
as lo desea.
Sesgos, los pesos de entrada, y pesos de capa. Introduzca los
siguientes comandos para ver cmo estn dispuestas las estructuras de
polarizacin y peso:
net.biases
net.inputWeights
net.layerWeights

Estos son los resultados de escribir net.biases:


ans =
[1x1 nnetBias]
[]
[1x1 nnetBias]

Cada uno contiene una estructura en la que las conexiones


correspondientes (net.disConnect, net.input Connect y net.layer Connect)
contienen un 1.
Mira sus estructuras con estas lneas de cdigo:
net.biases{1}
net.biases{3}
net.inputWeights{1,1}
net.inputWeights{2,1}
net.inputWeights{2,2}
net.layerWeights{3,1}
net.layerWeights{3,2}
net.layerWeights{3,3}

Por ejemplo, escribir net.biases {1} da como resultado la siguiente salida:


initFcn: (none)
learn: true
learnFcn: (none)
learnParam: (none)
size: 4
userdata: (your custom info)

Especificar lneas de retardo del grifo 'los pesos de acuerdo con el diagrama
de red mediante el establecimiento de cada propiedad pesos retrasos:

net.inputWeights{2,1}.delays = [0 1];
net.inputWeights{2,2}.delays = 1;
net.layerWeights{3,3}.delays = 1;

Funciones de red
Escriba red y pulse Intro de nuevo para ver el siguiente conjunto de
propiedades.
functions:
adaptFcn: (none)
adaptParam: (none)
derivFcn: 'defaultderiv'
divideFcn: (none)
divideParam: (none)
divideMode: 'sample'
initFcn: 'initlay'
performFcn: 'mse'
performParam: .regularization, .normalization
plotFcns: {}
plotParams: {1x0 cell array of 0 params}
trainFcn: (none)
trainParam: (none)

Cada una de estas propiedades define una funcin para una operacin de
base de la red.
Establecer la funcin de inicializacin para initlay lo que la red se inicializa
de acuerdo con las funciones de la capa de inicializacin ya establecidos
para initnw, la funcin de inicializacin Nguyen-Widrow.
net.initFcn = 'initlay';

Esto cumple con el requisito de inicializacin de la red.


Ajuste la funcin de rendimiento a MSE (error cuadrtico medio) y la funcin
de formacin de trainlm (Levenberg-Marquardt propagacin hacia atrs)
para cumplir con el requisito final de la red personalizada.
net.performFcn = 'mse';
net.trainFcn = 'trainlm';

Ajuste la funcin de divisin para dividir y (datos de entrenamiento se


dividen al azar).
net.divideFcn = 'dividerand';

Durante el entrenamiento supervisado, los datos de entrada y de destino se


dividieron al azar en conjuntos de entrenamiento, prueba y validacin de
datos. La red se entrena en los datos de entrenamiento hasta que su

rendimiento comienza a disminuir en la validacin de datos, lo que indica


que la generalizacin ha alcanzado su pico. Los datos de prueba ofrece una
prueba completamente independiente de la generalizacin de la red.
Ajustar las funciones de la trama de plotperform (formacin trama, la
validacin y el rendimiento de la prueba) y plottrainstate (graficar el estado
del algoritmo de entrenamiento con respecto a pocas).
net.plotFcns = {'plotperform','plottrainstate'};

Peso y sesgo Valores


Antes de inicializar y la formacin de la red, red tipo y pulse Intro, luego
buscar en el grupo de peso y el sesgo de las propiedades de red.
weight and bias values:
IW: {3x2 cell} containing 3 input weight matrices
LW: {3x3 cell} containing 3 layer weight matrices
b: {3x1 cell} containing 2 bias vectors

Estas matrices celulares contienen matrices de peso y vectores de


polarizacin en las mismas posiciones que las propiedades de conexin
(net.inputConnect, net.layerConnect, net.biasConnect) contienen 1s y las
propiedades de subobjetos (net.inputWeights, net.layerWeights, net.biases)
contienen estructuras.
La evaluacin de cada una de las siguientes lneas de cdigo revela que
todos los vectores de polarizacin y matrices de peso se establecen en
ceros.
net.IW{1,1}, net.IW{2,1}, net.IW{2,2}
net.LW{3,1}, net.LW{3,2}, net.LW{3,3}
net.b{1}, net.b{3}

Cada peso de entrada net.IW {i, j}, peso de la capa net.LW {i, j}, y el sesgo
del vector net.b {i} tiene tantas filas como el tamao de la capa i-sima
(net.layers {I} .tamao).
Cada peso de entrada net.IW {i, j} tiene tantas columnas como el tamao
de la entrada de orden j (net.inputs {j} .size) multiplicado por el nmero de
sus valores de retardo (longitud (net.inputWeights {i, j } .delays)).

Asimismo, cada peso de la capa tiene tantas columnas como el tamao de


la capa j-simo (net.layers {j} .size) multiplicado por el nmero de sus
valores de retardo (longitud (net.layerWeights {i, j} .delays)).
Comportamiento de la red
Inicializacin
Inicializar la red con la siguiente lnea de cdigo:
net = init(net);

Compruebe los sesgos y pesos de la red de nuevo para ver cmo han
cambiado:
net.IW{1,1}, net.IW{2,1}, net.IW{2,2}
net.LW{3,1}, net.LW{3,2}, net.LW{3,3}
net.b{1}, net.b{3}

Por ejemplo,
net.IW{1,1}
ans =
-0.3040

0.4703

-0.5423 -0.1395
0.5567

0.0604

0.2667

0.4924

Formacin
Definir la siguiente serie de clulas de dos vectores de entrada (uno con dos
elementos, uno con cinco) por dos pasos de tiempo (por va intranasal, dos
columnas).
X = {[0; 0] [2; 0.5]; [2; -2; 1; 0; 1] [-1; -1; 1; 0; 1]};

Desea que la red para responder a las siguientes secuencias diana para la
segunda capa, que tiene tres neuronas, y la tercera capa con una neurona:
T = {[1; 1; 1] [0; 0; 0]; 1 -1};

Antes del entrenamiento, se puede simular la red para ver si la respuesta de


la red inicial Y est cerca del objetivo T.
Y = sim(net,X)
Y=
[3x1 double]

[3x1 double]

1.7148]

2.2726]

El conjunto de clulas Y es la secuencia de salida de la red, que tambin es


la secuencia de salida de la segunda y tercera capas. Los valores que
obtuvo para la segunda fila pueden diferir de los que se muestran a causa
de diferentes pesos iniciales y los prejuicios. Sin embargo, es casi seguro
que no sea igual a blancos T, que tambin se aplica a los valores que se
muestran.
La siguiente tarea es opcional. En algunas ocasiones es posible que desee
modificar los parmetros de entrenamiento antes del entrenamiento. La
siguiente lnea de cdigo muestra los parmetros de entrenamiento de
Levenberg-Marquardt (por defecto definidos cuando se establece
net.trainFcn a trainlm).
net.trainParam

Las siguientes propiedades se deben mostrar.

ans =
Show Training Window Feedback showWindow: true
Show Command Line Feedback showCommandLine: false
Command Line Frequency

show: 25

Maximum Epochs

epochs: 1000

Maximum Training Time

time: Inf

Performance Goal

goal: 0

Minimum Gradient

min_grad: 1e-07

Maximum Validation Checks


Mu

max_fail: 6

mu: 0.001

Mu Decrease Ratio

mu_dec: 0.1

Mu Increase Ratio

mu_inc: 10

Maximum mu

mu_max: 10000000000

Usted no va a menudo tenga que modificar estos valores. Consulte la


documentacin de la funcin de capacitacin para obtener informacin
acerca de lo que cada uno de estos medios. Han sido inicializado con los
valores predeterminados que funcionan bien para una amplia gama de
problemas, as que no hay necesidad de cambiarlos aqu.
A continuacin, entrenar a la red con la siguiente llamada:
net = train(net,X,T);

Formacin lanza la ventana de formacin de redes neuronales. Para abrir las


parcelas de rendimiento y estatales de formacin, haga clic en los botones
de la trama.
Despus del entrenamiento, se puede simular la red para ver si ha
aprendido a responder correctamente:
Y = sim(net,X)
[3x1 double]

[3x1 double]

1.0000]

-1.0000]

La salida de segunda red (es decir, la segunda fila de la matriz de clulas Y),
que es tambin la tercera capa de salida, coincide con la secuencia diana T.

Histricos y alternativos Redes Neuronales


Los filtros adaptativos de Redes Neuronales
Los adaptativo (neurona lineal) Adaline redes descritas en este tema son
similares a la perceptrn, pero su funcin de transferencia es lineal en lugar
de limitantes duro. Esto permite que sus salidas a tomar cualquier valor,
mientras que la salida del perceptrn se limita a 0 o 1. Tanto el ADALINE y el
perceptrn puede resolver solamente linealmente separables problemas. Sin
embargo, aqu el LMS (Media de mnimos cuadrados) regla de aprendizaje,
que es mucho ms poderosa que la regla de aprendizaje del perceptrn, se

utiliza. El LMS, o Widrow-Hoff, regla de aprendizaje minimiza el error


cuadrtico medio y por lo tanto mueve los lmites de decisin en lo que se
pueda de los patrones de entrenamiento.
En esta seccin, a disear un sistema lineal adaptativo que responde a los
cambios en su entorno, ya que est en funcionamiento. redes lineales que
se ajustan a cada paso de tiempo sobre la base de nuevos vectores de
entrada y objetivo puede encontrar los pesos y sesgos que minimizan el
error de la suma al cuadrado de la red para los ltimos vectores de entrada
y de destino. Las redes de este tipo se utilizan a menudo en cancelacin de
errores, el procesamiento de seales, y sistemas de control.
El trabajo pionero en este campo fue realizado por Widrow y Hoff, que dio el
nombre ADALINE adaptativos elementos lineales. La referencia bsica sobre
este tema es Widrow, B. y S. D. Sterns, proceso de seal adaptativo, Nueva
York, Prentice-Hall, 1985.
La formacin adaptativa de auto-organizacin y las redes de la competencia
tambin se considera en esta seccin.

Funciones adaptativas
En esta seccin se presenta la funcin de adaptacin, que cambia los pesos
y sesgos de una red de forma incremental durante el entrenamiento.

Modelo lineal de la neurona


Una neurona lineal con las contribuciones de investigacin se muestra a
continuacin.

Esta red tiene la misma estructura bsica que el perceptrn. La nica


diferencia es que la neurona lineal utiliza una funcin de transferencia
lineal, llamado purelin.

La funcin de transferencia lineal calcula la salida de la neurona


simplemente colocando el valor que se le pasa.

= purelin(n) = purelin(Wp + b) = Wp + b

Esta neurona puede ser entrenado para aprender una funcin afn de sus
entradas, o para encontrar una aproximacin lineal a una funcin no lineal.
Una red lineal no puede, por supuesto, se hizo para llevar a cabo un clculo
no lineal.

Arquitectura de red lineal adaptativo


La red ADALINE muestra a continuacin tiene una capa de neuronas S
conectados a las entradas R a travs de una matriz de pesos W.

Esta red se denomina a veces Madaline para muchos ADALINEs. Tenga en


cuenta que la figura de la derecha define un S-longitud del vector de salida
a.
La regla Widrow-Hoff slo puede formar redes lineales de una sola capa.
Esto no es una gran desventaja, sin embargo, como las redes lineales de
una sola capa son tan capaces como las redes lineales de mltiples capas.
Para cada red lineal de mltiples capas, hay una red lineal de una sola capa
equivalente.
ADALINE Individual (linearlayer)
Considere una sola ADALINE con dos entradas. La siguiente figura muestra
el diagrama de esta red.

La matriz de ponderacin W en este caso tiene slo una fila. La salida de red es
= purelin(n) = purelin(Wp + b) = Wp + b

o
= w1,1p1 + w1,2p2 + b

Al igual que el perceptrn, la ADALINE tiene una frontera de decisin que


est determinado por los vectores de entrada para las que la entrada neta n
es cero. Para n = 0 la ecuacin Wp + b = 0 especifica un lmite de dicha
decisin, como se muestra a continuacin (adaptado con agradecimiento de
[HDB96]).

Vectores de entrada en la zona gris plomo superior derecha a una


produccin superior a 0. Los vectores de entrada en la zona inferior
izquierda blanco de plomo a una salida inferior a 0. Por lo tanto, la ADALINE
se pueden utilizar para clasificar los objetos en dos categoras.
Sin embargo, ADALINE puede clasificar objetos en esta forma slo cuando
los objetos son linealmente separables. Por lo tanto, ADALINE tiene la misma
limitacin que el perceptrn.
Puede crear una red similar a la que se muestra el uso de este comando:
net = linearlayer;
net = configure(net,[0;0],[0]);

Los tamaos de los dos argumentos para configurar indican que la capa es
tener dos entradas y una salida. tren hace normalmente esta configuracin
para usted, pero esto nos permite inspeccionar los pesos antes del
entrenamiento.
Los pesos y sesgos de red se establecen en cero, de forma predeterminada.
Se puede ver los valores actuales mediante los comandos:
W = net.IW{1,1}
W=
0

Y
b = net.b{1}
b=
0

Tambin se pueden asignar valores arbitrarios a los pesos y sesgos, como el


2 y 3 para los pesos y -4 para el sesgo:

net.IW{1,1} = [2 3];
net.b{1} = -4;
Puede simular el ADALINE para un vector de entrada particular.
p = [5; 6];
a = sim(net,p)
a=
24
En resumen, se puede crear una red ADALINE con LinearLayout, ajustar sus
elementos como desee, y simular con sim.

Menos Error Cuadrtico Medio


Al igual que la regla de aprendizaje del perceptrn, el menor error
cuadrtico medio (LMS) algoritmo es un ejemplo de entrenamiento
supervisado, en el que la regla de aprendizaje est provisto de un conjunto
de ejemplos de comportamiento de la red deseada.

{
}{
} {
}
p1,t1 , p2,t2 , pQ,tQ

Fase de entrenamiento red neuronal


Cuando la formacin de redes de mltiples capas, la prctica general es
dividir primero los datos en tres subconjuntos
Los primeros subconjuntos es el conjunto de entrenamiento, que se utiliza
para calcular el gradiente y la actualizacin de los pesos de la red y los
sesgos. el segundo subconjunto es el conjunto de validacin. Se controla el
error en el conjunto de validacin durante el proceso de formacin. El error
de validacin normalmente disminuye durante la fase inicial de la
formacin, al igual que el error de conjunto de entrenamiento. Sin embargo,
cuando la red comienza a ms de ajustar los datos, el error en el conjunto
de validacin tpicamente comienza a elevarse. Los pesos de la red y los
prejuicios se guardan en el mnimo de error conjunto de validacin. Esta
tcnica se discute en ms detalle en Mejorar Neural Network. Generacin y
evitar el exceso.
No se utiliza el error de prueba durante el entrenamiento, pero se utiliza
para comparar diferentes modelos. Tambin es til para trazar el error de
prueba durante el proceso de formacin. Si el error en el conjunto alcanza
un mnimo en un nmero de iteracin significativamente diferente que el
error de validacin establecida, esto podra indicar un mal reparto de la
serie de datos.
Hay cuatro funciones previstas para dividir los datos en formacin, de
validacin y de prueba. Son dividerand (por defecto). La divisin de los
datos se realiza normalmente de forma automtica cuando se entrena la red

You might also like