0% encontró este documento útil (0 votos)
77 vistas42 páginas

Arquitecturas y Configuración de Redes Neuronales

El primer documento define cómo crear objetos de redes neuronales en MATLAB y explica las secciones clave del objeto de red como dimensiones, conexiones, capas e inputs. El segundo documento explica cómo configurar las entradas y salidas de una red neuronal para que coincidan con los datos de entrenamiento proporcionados.

Cargado por

Andres Cito
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
77 vistas42 páginas

Arquitecturas y Configuración de Redes Neuronales

El primer documento define cómo crear objetos de redes neuronales en MATLAB y explica las secciones clave del objeto de red como dimensiones, conexiones, capas e inputs. El segundo documento explica cómo configurar las entradas y salidas de una red neuronal para que coincidan con los datos de entrenamiento proporcionados.

Cargado por

Andres Cito
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

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 [Link] 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:
[Link]{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.
[Link]{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:
[Link]{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 [Link] 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 [Link] {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;
[Link]{1}.size = 2;
[Link]{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

[Link]{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 5

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]);
[Link]{1}.size = 1;
[Link]{1}.dimensions = 1;
[Link] = 0;

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


El comando es:
[Link]{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 Levenberg-
Marquardt 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.
[Link] = 2;
[Link] = 3;

[Link] es el nmero de fuentes de entrada, no el nmero de


elementos en un vector de entrada ([Link] {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 [Link] (i) a 1. Especificar
que la primera y tercera capas son tener conexiones de polarizacin, como
indica el grfico, escribiendo el siguiente cdigo:
[Link](1) = 1;
[Link](3) = 1;

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

Entrada y la capa Peso Conexiones. La matriz de conexin de entrada es 3-


por-2, que representa la presencia de conexiones de dos fuentes (las dos
entradas) a tres destinos (las tres capas). Por lo tanto, [Link] (i, j)
representa la presencia de una conexin de entrada de peso va a la capa i-
sima 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
[Link](1,1) = 1;
[Link](2,1) = 1;
[Link](2,2) = 1;

o esta sola lnea de cdigo:


[Link] = [1 0; 1 1; 0 0];
Del mismo modo, [Link] Connect (i.q) representa la presencia de una conexin de capa-
peso 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:

[Link] = [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
[Link] = [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 ([Link]) a 2, la
propiedad insumos se convierte en una serie de clulas de dos estructuras
de entrada. Cada estructura de entrada i-simo ([Link] {I}) contiene
propiedades adicionales asociados con la entrada i-simo.
Para ver cmo se disponen las estructuras de entrada, el tipo
[Link]
ans =
[1x1 nnetInput]
[1x1 nnetInput]

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


[Link]{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:
[Link]{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:
[Link]{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:
[Link]{2}.size = 5;

Capas. Cuando se establece el nmero de capas ([Link]) 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.
[Link]{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.
[Link]{1}.size = 4;
[Link]{1}.transferFcn = 'tansig';
[Link]{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:
[Link]{2}.size = 3;
[Link]{2}.transferFcn = 'logsig';
[Link]{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:
[Link]{3}.initFcn = 'initnw';

Salidas. Utilice esta lnea de cdigo para ver cmo la propiedad de salida
se dispone:
[Link]
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 [Link] est ajustado en [0 1 1].
Ver estructura de salida de la segunda capa con la siguiente expresin:
[Link]{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 ([Link] {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:
[Link]
[Link]
[Link]

Estos son los resultados de escribir [Link]:


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

Cada uno contiene una estructura en la que las conexiones


correspondientes ([Link], [Link] Connect y [Link] Connect)
contienen un 1.
Mira sus estructuras con estas lneas de cdigo:
[Link]{1}
[Link]{3}
[Link]{1,1}
[Link]{2,1}
[Link]{2,2}
[Link]{3,1}
[Link]{3,2}
[Link]{3,3}

Por ejemplo, escribir [Link] {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:
[Link]{2,1}.delays = [0 1];
[Link]{2,2}.delays = 1;
[Link]{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.
[Link] = '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.
[Link] = 'mse';
[Link] = 'trainlm';

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


dividen al azar).
[Link] = '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).
[Link] = {'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
([Link], [Link], [Link]) contienen 1s y las
propiedades de subobjetos ([Link], [Link], [Link])
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.
[Link]{1,1}, [Link]{2,1}, [Link]{2,2}
[Link]{3,1}, [Link]{3,2}, [Link]{3,3}
net.b{1}, net.b{3}

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

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


la capa j-simo ([Link] {j} .size) multiplicado por el nmero de sus
valores de retardo (longitud ([Link] {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:
[Link]{1,1}, [Link]{2,1}, [Link]{2,2}
[Link]{3,1}, [Link]{3,2}, [Link]{3,3}
net.b{1}, net.b{3}

Por ejemplo,
[Link]{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
[Link] a trainlm).
[Link]

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 max_fail: 6
Mu 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 = [Link]{1,1}
W=
0 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:
[Link]{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

Aqu pq es una entrada a la red, y TQ es la salida de destino


correspondiente. A medida que se aplica cada entrada a la red, la salida de
la red se compara con el blanco. El error se calcula como la diferencia entre
la salida blanco y la salida de la red. El objetivo es reducir al mnimo la
media de la suma de estos errores.

El algoritmo LMS ajusta los pesos y sesgos del ADALINE con el fin de
minimizar este error cuadrado medio.

Afortunadamente, la media del ndice de la caracterstica de error cuadrado


para la red ADALINE es una funcin cuadrtica. Por lo tanto, el ndice de
rendimiento o bien tienen un mnimo global, un mnimo dbil, o no mnimo,
en funcin de las caractersticas de los vectores de entrada. En concreto, las
caractersticas de los vectores de entrada a determinar si existe o no una
solucin nica.

Algoritmo LMS (aprender)


Redes adaptativas utilizarn el algoritmo LMS o Widrow-Hoff algoritmo de
aprendizaje basado en un procedimiento de mxima pendiente aproximada.
Una vez ms, las redes lineales de adaptacin son entrenados en ejemplos
de comportamiento correcto.
El algoritmo LMS, que se muestra aqu, se discute en detalle en lineales
Redes Neuronales.

W(k + 1) = W(k) + 2e(k)pT(k)

b(k + 1) = b(k) + 2e(k)

Filtrado Adaptativo (adaptacin)


La red ADALINE, al igual que el perceptrn, slo puede resolver los
problemas linealmente separables. Es, sin embargo, una de las redes
neurales ms ampliamente utilizados se encuentran en las aplicaciones
prcticas. filtrado adaptativo es una de sus principales reas de aplicacin.
Aprovechado lnea de retardo
Es necesario un nuevo componente, la lnea de retardo, para hacer un uso
completo de la red ADALINE. Dicha lnea de retardo se muestra en la
siguiente figura. La seal de entrada entra desde la izquierda y pasa a
travs de N-1 retrasos. La salida de la lnea de retardo con tomas (TDL) es
un vector N-dimensional, compuesta de la seal de entrada en el momento
actual, la seal de entrada anterior, etc.

Filtro adaptativo
Se puede combinar una lnea de retardo con una red ADALINE para crear el
filtro adaptativo se muestra en la siguiente figura.
La salida del filtro est dada por

En el procesamiento de seal digital, esta red se conoce como una


respuesta de impulso finito (FIR) del filtro [WiSt85]. Echar un vistazo a el
cdigo utilizado para generar y simular una red de este tipo de adaptacin.
Ejemplo de filtro adaptativo
En primer lugar, definir una nueva red lineal utilizando linearlayer.

Supongamos que la capa lineal tiene una nica neurona con una sola
entrada y una toma de retardo de 0, 1, 2 y retrasos.
net = linearlayer([0 1 2]);
net = configure(net,0,0);

Puede especificar tantos retrasos como desee, y puede omitir algunos


valores si lo desea. Todos deben estar en orden ascendente.
Usted puede dar a los diferentes pesos y los valores de sesgo con
[Link]{1,1} = [7 8 9];
net.b{1} = [0];

Por ltimo, definir los valores iniciales de las salidas de los retrasos como
pi = {1 2};

Estos estn ordenados de izquierda a derecha para corresponder a los


retrasos tomados de arriba a abajo en la figura. Con esto concluye la
configuracin de la red.
Para configurar la entrada, se supone que los escalares de entrada llegan en
una secuencia: primero el valor 3, entonces el valor 4, prxima al valor 5, y
finalmente el valor 6. Usted puede indicar esta secuencia mediante la
definicin de los valores como elementos de una arreglo de celdas entre
llaves.
p = {3 4 5 6};

Ahora, usted tiene una red y una secuencia de entradas. Simular la red para
ver qu su salida es como una funcin del tiempo.
[a,pf] = sim(net,p,pi)

Esta simulacin se obtiene una secuencia de salida


a
[46] [70] [94] [118]

y los valores finales para las salidas de retardo


pf
[5] [6]

El ejemplo es lo suficientemente simple que se puede comprobar sin una


calculadora para asegurarse de que comprende las entradas, los valores
iniciales de los retrasos, etc.
La red se acaba de definir se puede entrenar con la funcin de adaptacin
para producir una secuencia de salida particular. Supongamos, por ejemplo,
desea que la red para producir la secuencia de valores de 10, 20, 30, 40.
t = {10 20 30 40};

Usted puede entrenar a la red definida para hacer esto, a partir de las
condiciones iniciales de retardo utilizados anteriormente.
Deje que el adaptador de red para 10 pas por alto los datos.
for i = 1:10
[net,y,E,pf,af] = adapt(net,p,t,pi);
end

Este cdigo devuelve los pesos finales, los prejuicios y secuencia de salida
que se muestran aqu.
wts = [Link]{1,1}
wts =
0.5059 3.1053 5.7046
bias = net.b{1}
bias =
-1.5993
y
y=
[11.8558] [20.7735] [29.6679] [39.0036]

Es de suponer que, si se ejecut adicional pasa a la secuencia de salida


habra sido an ms cerca de los valores deseados de 10, 20, 30 y 40.
Por lo tanto, las redes de adaptacin se pueden especificar, simular, y
finalmente entrenados con adaptarse. Sin embargo, el valor excepcional de
las redes de adaptacin radica en su utilizacin para realizar una funcin
particular, como la prediccin o cancelacin de ruido.
Ejemplo de prediccin
Supongamos que se desea utilizar un filtro adaptativo para predecir el
siguiente valor de un proceso aleatorio estacionario, p (t). Puede utilizar la
red que se muestra en la siguiente figura que hacer esta prediccin.

La seal que se predijo, p (t), entra desde la izquierda, en una lnea de


retardo con tomas. Los dos valores anteriores de p (t) estn disponibles
como salidas de la lnea de retardo. Los usos de la red se adaptan al cambio
de los pesos en cada paso de tiempo con el fin de minimizar el error e (t) en
el extremo derecho. Si este error es 0, la una salida de red (t) es
exactamente igual a p (t), y la red ha hecho su prediccin correctamente.

Dada la funcin de autocorrelacin del proceso aleatorio estacionario p (t),


se puede calcular la superficie de error, la tasa de aprendizaje mximo y los
valores ptimos de los pesos. Comnmente, por supuesto, usted no tiene
informacin detallada sobre el proceso al azar, por lo que estos clculos no
se puede realizar. Esta falta no le importa a la red. Despus de que se
inicializa y operativo, la red se adapta en cada paso de tiempo para
minimizar el error y en un tiempo relativamente corto es capaz de predecir
la entrada p (t).

El captulo 10 de la [HDB96] presenta este problema, pasa por el anlisis, y


muestra la trayectoria de peso durante el entrenamiento. La red busca los
pesos ptimos en su cuenta sin ningn tipo de dificultad.

Tambin puede probar el ejemplo nnd10nc para ver un ejemplo del


programa de cancelacin de ruido adaptativo en accin. Este ejemplo le
permite escoger una tasa de aprendizaje y el impulso (ver mltiples capas
de redes neuronales y Formacin Retropropagacin), y muestra la
trayectoria de aprendizaje, y las seales originales y cancelacin en funcin
del tiempo.
Ejemplo de cancelacin de ruido
Considere un piloto en un avin. Cuando el piloto habla en un micrfono, el
ruido del motor en la cabina del piloto se combina con la seal de voz. Este
ruido adicional hace que la seal resultante escuchado por los pasajeros de
baja calidad. El objetivo es obtener una seal que contiene la voz del piloto,
pero no el ruido del motor. Puede cancelar el ruido con un filtro adaptativo si
obtiene una muestra del ruido del motor y lo aplica como entrada al filtro
adaptativo.

Como muestra la figura precedentes, que forma adaptativa entrenar la red


neuronal lineal para predecir la seal piloto / motor combinado m de una
seal del motor n. La seal del motor n no dice nada de la red de adaptacin
sobre la seal de la voz del piloto contenida en m. Sin embargo, la seal del
motor n s da la informacin de red se puede utilizar para predecir la
contribucin del motor a la seal piloto / motor m.
La red hace todo lo posible para dar salida de forma adaptativa m. En este
caso, la red slo puede predecir el ruido de interferencia del motor en la
seal piloto / motor m. El error de red e es igual am, la seal piloto / motor,
menos la seal de ruido del motor contaminando predicho. Por lo tanto,
correo de voz contiene nicamente el de piloto. La red de adaptacin lineal
aprende de forma adaptativa para cancelar el ruido del motor.
Tal ruido adaptativo cancelacin general hace un trabajo mejor que un filtro
clsico, ya que resta de la seal en lugar de filtrar hacia fuera el ruido de la
seal m.
Trate demolin8 para un ejemplo de cancelacin de ruido adaptativo.

Varios filtros adaptativos neurona


Es posible que desee utilizar ms de una neurona en un sistema adaptativo,
por lo que necesita alguna notacin adicional. Se puede utilizar una lnea de
retardo con S neuronas lineales, como se muestra en la siguiente figura.

Como alternativa, puede representar esta misma red en forma abreviada.

Si desea mostrar ms de los detalles de la lnea de retardo con tomas-y no


hay demasiados retrasos, se puede utilizar la siguiente notacin:
Aqu, una lnea de retardo con tomas enva a la matriz de ponderacin:

La seal de corriente
La seal anterior
La seal retardada antes de eso
Usted podra tener una lista ms larga, y algunos valores de retardo podra
omitirse si se desea. El nico requisito es que los retrasos deben aparece en
orden creciente a medida que van de arriba a abajo.

Perceptrn Redes Neuronales


Rosenblatt [Rose61] creado muchas variaciones de la perceptrn. Uno de los
ms sencillos era una red de una sola capa cuyos pesos y sesgos podran
formarse para producir un vector de destino correcto cuando se presenta
con el vector de entrada correspondiente. La tcnica de entrenamiento
utilizado se llama la regla de aprendizaje del perceptrn. El perceptrn
generado gran inters debido a su capacidad de generalizar a partir de sus
vectores de entrenamiento y aprender de las conexiones inicialmente
distribuidos al azar. Perceptrones son especialmente adecuadas para los
problemas simples de la clasificacin de patrones. Son redes rpidas y
fiables para los problemas que pueden resolver. Adems, la comprensin de
las operaciones de la perceptron proporciona una buena base para la
comprensin de las redes ms complejas.
La discusin de los perceptrones en esta seccin es necesariamente breve.
Para una discusin ms detallada, vase el captulo 4, "Perceptrn
aprendizaje de reglas," de [HDB1996], que analiza el uso de mltiples capas
de perceptrones para resolver los problemas ms difciles all de la
capacidad de una sola capa.

Neurona Modelo
Una neurona perceptrn, que utiliza la funcin de transferencia hardlim
lmite estricto, se muestra a continuacin.

Cada entrada externa se pondera con un W1J peso adecuado, y la suma de


las entradas ponderadas se enva a la funcin de transferencia de fuerza
lmite, que tambin tiene una entrada de 1 transmitida a travs del sesgo.
La funcin de transferencia lmite estricto, que devuelve un 0 o un 1, se
muestra a continuacin.

La neurona perceptron produce un 1 si la entrada de la red en la funcin de


transferencia es igual a o mayor que 0; de lo contrario se produce un 0.
La funcin de transferencia lmite estricto da un perceptrn la capacidad de
clasificar los vectores de entrada al dividir el espacio de entrada en dos
regiones. En concreto, las salidas sern 0 si la entrada n neta es menor que
0 o 1 si la entrada neta n es 0 o mayor. La siguiente figura muestra el
espacio de entrada de una neurona lmite duro de dos entradas con los
pesos w1,1 = -1, w1,2 = 1 y un sesgo b = 1.

Dos regiones de clasificacin se forman por la lnea de frontera de decisin


en L
Wp + b = 0. Esta lnea es perpendicular a la matriz de ponderacin W y
desplazado de acuerdo con el sesgo b. vectores de entrada por encima ya la
izquierda de la lnea L se traducir en una entrada neta mayor que 0 y, por
lo tanto, hacer que el lmite estricto de neurona a la salida A 1. vectores de
entrada por debajo ya la derecha de la lnea L causar la neurona a salida 0.
puede elegir los valores de peso y sesgo para orientar y mover la lnea
divisoria con el fin de clasificar el espacio de entrada si lo deseas.
Neuronas lmite estricto sin un sesgo siempre tendrn una lnea de
clasificacin de pasar por el origen. Adicin de un sesgo permite la neurona
para resolver problemas en los que los dos conjuntos de vectores de
entrada no se encuentran en lados diferentes del origen. El sesgo permite
que la frontera de decisin que se desplaza lejos del origen, como se
muestra en la figura de arriba.
Es posible que desee ejecutar el programa de ejemplo nnd4db. Con l se
puede mover una frontera de decisin alrededor, escoja nuevas entradas
para clasificar, y ver cmo la aplicacin repetida de la regla de aprendizaje
se obtiene una red que clasifique los vectores de entrada correctamente.
Arquitectura perceptrn
La red de perceptrn se compone de una nica capa de neuronas S
perceptrn conectados a las entradas R a travs de un conjunto de pesos
wi, j, como se muestra a continuacin en dos formas. Como antes, los
ndices de red i y j indican que wi, j es la fuerza de la conexin de la entrada
de orden j de la neurona i-sima.

La regla de aprendizaje del perceptrn se describe en breve es capaz de


formar una nica capa. Por lo tanto se consideran aqu slo las redes de una
sola capa. Esta restriccin se impone limitaciones en el clculo de un
perceptrn puede realizar. Los tipos de problemas que los perceptrones son
capaces de resolver se discuten en Limitaciones y precauciones.

Crear un Perceptrn
Se puede crear un perceptrn con lo siguiente:
net = perceptron;
net = configure(net,P,T);

donde argumentos de entrada son los siguientes:

P es una matriz R-por-Q de vectores de entrada Q de r elementos


cada uno.
T es una matriz S-por-Q de Q vectores diana de elementos S cada
uno.
Comnmente, la funcin hardlim se utiliza en perceptrones, por lo que es el
valor predeterminado.
Los siguientes comandos crean una red perceptrn con una sola entrada
vector de un elemento con los valores 0 y 2, y una neurona con salidas que
pueden ser 0 o 1:
P = [0 2];
T = [0 1];
net = perceptron;
net = configure(net,P,T);

Se puede ver lo que la red ha sido creado por la ejecucin del siguiente
comando:
inputweights = [Link]{1,1}

que los rendimientos


inputweights =
delays: 0
initFcn: 'initzero'
learn: true
learnFcn: 'learnp'
learnParam: (none)
size: [1 1]
weightFcn: 'dotprod'
weightParam: (none)
userdata: (your custom info)

La funcin de aprendizaje por defecto es learnp, que se discute en la regla


de aprendizaje del perceptrn (learnp). La entrada de red para la funcin de
transferencia es hardlim dotprod, que genera el producto de la matriz de
vector de entrada y el peso y aade el sesgo para calcular la entrada de
red.
El initzero funcin de inicializacin por defecto se utiliza para establecer los
valores iniciales de los pesos a cero.
Similar,
biases = [Link]{1}

dicta
biases =
initFcn: 'initzero'
learn: 1
learnFcn: 'learnp'
learnParam: []
size: 1
userdata: [1x1 struct]

Se puede ver que la inicializacin por defecto para el sesgo es tambin 0.

Perceptrn regla de aprendizaje (learnp)


Perceptrones son entrenados en ejemplos de comportamiento deseado. El
comportamiento deseado se puede resumir en un conjunto de entrada, los
pares de salida

p1t1,p2t1,,pQtQ
donde p es una entrada a la red y t es la salida correcta correspondiente
(objetivo). El objetivo es reducir el error e, que es la diferencia t - a entre la
respuesta de una neurona y el vector objetivo t. La regla de aprendizaje del
perceptrn learnp calcula los cambios deseados a los pesos y sesgos del
perceptrn, dado un vector de entrada py el error asociado correo. El vector
objetivo t debe contar con valores de 0 1, porque perceptrones (con
funciones de transferencia hardlim) slo tiene salida de estos valores.
Cada vez que se ejecuta learnp, el perceptrn tiene una mejor oportunidad
de producir las salidas correctas. La regla de perceptrn se ha demostrado
que converger en una solucin en un nmero finito de iteraciones si existe
una solucin.
Si no se utiliza un sesgo, learnp trabaja para encontrar una solucin
mediante la alteracin de slo el vector de pesos w a punto hacia vectores
de entrada para ser clasificado como 1 y lejos de vectores para ser
clasificado como 0. Esto resulta en una frontera de decisin que es
perpendicular a w y que clasifica adecuadamente los vectores de entrada.
Hay tres condiciones que pueden ocurrir por una sola neurona vez que se
presenta un vector de entrada p y se calcula una respuesta de la red:
CASO 1. Si se presenta un vector de entrada y la salida de la neurona es
correcta (a = t y e = t - a = 0), entonces el peso vector w no se altera.
Caso 2. Si la salida de neurona es 0 y debera haber sido 1 (a = 0 y t = 1, y
e = t - a = 1), se aade el vector de entrada p al peso vector w. Esto hace
que el punto de la masa vector ms cerca del vector de entrada,
aumentando la posibilidad de que el vector de entrada se clasifica como un
1 en el futuro.
Caso 3. Si la salida de neurona es 1 y debera haber sido 0 (a = 1 y t = 0, y
e = t - a = -1), el vector de entrada p se resta del peso vector w. Esto hace
que el punto de la masa vector ms lejos del vector de entrada,
aumentando la posibilidad de que el vector de entrada se clasifica como un
0 en el futuro.
La regla de aprendizaje del perceptrn puede escribirse de forma ms
sucinta en trminos del error e = t - a, y el cambio que deben introducirse
en el vector de pesos Delta W:
CASO 1. Si e = 0, a continuacin, hacer un cambio Delta W igual a 0.
CASO 2. Si e = 1, a continuacin, hacer un cambio Delta W igual a PT.
CASO 3. Si e = -1, entonces hacer un cambio Delta W igual a -pt.
En los tres casos se puede escribir con una sola expresin:

T T
w=(t)p =ep
Usted puede obtener la expresin de los cambios en el sesgo de una
neurona por sealar que el sesgo es simplemente un peso que siempre
tiene una entrada de 1:

b=(t)(1)=e
Para el caso de una capa de neuronas tiene
T T
W=(ta)(p) =e(p)
Y

b=(ta)=e
La regla de aprendizaje del perceptrn se puede resumir como sigue:

Wnew old T
=W +ep
y
new old
b =b +e
donde e = t a.

Ahora trata de un ejemplo sencillo. Comience con una sola neurona que
tiene un vector de entrada con slo dos elementos.
net = perceptron;
net = configure(net,[0;0],0);

Para simplificar las cosas, establecer el sesgo igual a 0 y los pesos a 1 y


-0.8:
net.b{1} = [0];
w = [1 -0.8];
[Link]{1,1} = w;

El objetivo de la entrada par esta dada por:


p = [1; 2];
t = [1];

Se puede calcular la salida y error con


a = net(p)
a=
0
e = t-a
e=
1

y utilizar la funcin de learnp para encontrar el cambio en los pesos.


dw = learnp(w,p,[],[],[],[],e,[],[],[],[],[])
dw =
1 2

Los nuevos pesos, a continuacin, se obtienen como


w = w + dw
w=
2.0000 1.2000

El proceso de encontrar nuevos pesos y sesgos () se puede repetir hasta


que no haya errores. Recordemos que la regla de aprendizaje del perceptrn
se garantiza a converger en un nmero finito de pasos para todos los
problemas que pueden ser resueltos por un perceptrn. Estos incluyen todos
los problemas de clasificacin que son linealmente separables. Los objetos
para ser clasificado en tales casos pueden estar separados por una sola
lnea.
Es posible que desee probar el ejemplo nnd4pr. Se le permite escoger a los
nuevos vectores de entrada y de aplicar la regla de aprendizaje para
clasificarlos.
Entrenamiento
Si SIM y learnp se utilizan varias veces para presentar las entradas a un
perceptrn, y para cambiar los pesos y sesgos perceptrn de acuerdo con el
error, el perceptrn finalmente encontrar los valores de peso y sesgo que
resuelven el problema, dado que el perceptrn puede resolverlo. Cada
recorrido a travs de todos los de entrada y objetivo vectores de
entrenamiento se llama un pase.
El tren lleva a cabo la funcin de un bucle de clculo. En cada paso a los
trenes funcin procede a travs de la secuencia especificada de los
insumos, el clculo de la salida, el error y ajuste de la red para cada vector
de entrada en la secuencia como se presentan las entradas.
Tenga en cuenta que el tren no garantiza que la red resultante hace su
trabajo. Debe comprobar los nuevos valores de W y B mediante el clculo de
la salida de la red para cada vector de entrada para ver si se alcanzan todos
los objetivos. Si una red no funciona correctamente se puede entrenar an
ms llamando al tren de nuevo con los nuevos pesos y sesgos para pasa
ms formacin, o se puede analizar el problema para ver si es un problema
adecuado para el perceptrn. Los problemas que no pueden ser resueltos
por la red perceptrn se discuten en Limitaciones y precauciones.
Para ilustrar el procedimiento de entrenamiento, trabajar a travs de un
simple problema. Considere un perceptrn de una sola neurona con una sola
entrada vector que tiene dos elementos:
Esta red, y el problema que va a tener en cuenta, son bastante simples que
usted puede seguir a travs de lo que se hace con los clculos de la mano si
lo desea. El problema se discute a continuacin se desprende que
encontrarse en [HDB1996].
Suponga que tiene el siguiente problema de clasificacin y quieres
solucionarlo con un vector de entrada nica, la red perceptrn de dos
elementos.

Utilice los pesos iniciales y los prejuicios. Denotar las variables en cada paso
de este clculo mediante el uso de un nmero entre parntesis despus de
la variable. Por lo tanto, por encima de los valores iniciales son W (0) y b (0).

Para empezar, el clculo de la salida de un perceptrn por primera p1 vector


de entrada, utilizando los pesos iniciales y los prejuicios.

La salida de una no es igual al valor objetivo t1, a fin de utilizar la regla


perceptrn para encontrar los cambios incrementales en los pesos y sesgos
basados en el error.

Puede calcular los nuevos pesos y sesgos utilizando la regla de actualizacin


perceptrn.

Ahora presentar el siguiente vector de entrada, p2. La salida se calcula a


continuacin.
En esta ocasin, el objetivo es 1, por lo que el error es cero. Por lo tanto no
hay cambios en el peso o sesgo, por lo que W (2) = W (1) = [-2 -2] y b (2) =
B (1) = -1.
Puede continuar de esta manera, la presentacin de p3 siguiente, el clculo
de una salida y el error, y hacer cambios en los pesos y sesgos, etc.
Despus de hacer una pasada por todas las cuatro entradas, se obtiene los
valores W (4) = [ -3 -1] y b (4) = 0. para determinar si se obtiene una
solucin satisfactoria, la banda una vez a travs de todos los vectores de
entrada para ver si todos ellos producen los valores objetivo deseados. Esto
no es cierto para la cuarta entrada, pero el algoritmo converge en la sexta
presentacin de una entrada. Los valores finales son
W(6) = [2 3] and b(6) = 1.

Esto concluye el clculo manual. Ahora, cmo se puede hacer esto


utilizando la funcin tren?
El siguiente cdigo define un perceptrn.
net = perceptron;

Considere la aplicacin de una sola entrada


p = [2; 2];

que tiene el objetivo


t = [0];

Establecer las pocas a 1, de manera que tren pasa por los vectores de
entrada (slo una) aqu slo una vez.
[Link] = 1;
net = train(net,p,t);

Los nuevos pesos y sesgos son


w = [Link]{1,1}, b = net.b{1}
w=
-2 -2
b=
-1

Por lo tanto, los pesos iniciales y los prejuicios son 0, y despus del
entrenamiento en slo el primer vector, tienen los valores de [-2 -2] y -1, del
mismo modo que la mano calculados.
Ahora aplique el segundo p2 vector de entrada. La salida es 1, ya que ser
hasta que los pesos y sesgos se cambian, pero ahora el objetivo 1, el error
ser 0, y el cambio ser cero. Se podra proceder de esta manera, a partir
del resultado anterior y la aplicacin de un nuevo tiempo de vector de
entrada despus de un tiempo. Pero se puede hacer este trabajo de forma
automtica con el tren.
Aplicar tren para una poca, de una sola pasada por la secuencia de los
cuatro vectores de entrada. Comenzar con la definicin de la red.
net = perceptron;
[Link] = 1;

Los vectores de entrada y metas son


p = [[2;2] [1;-2] [-2;2] [-1;1]]
t = [0 1 0 1]

Ahora entrenar a la red con


net = train(net,p,t);

Los nuevos pesos y sesgos son


w = [Link]{1,1}, b = net.b{1}
w=
-3 -1
b=
0

Este es el mismo resultado que recibi previamente con la mano.


Finalmente, simular la red entrenada para cada una de las entradas.
a = net(p)
a=
0 0 1 1

Las salidas no todava los objetivos de igualdad, por lo que necesita para
entrenar a la red durante ms de una pasada. Prueba otros pocas. Este
plazo da una caracterstica de error absoluto medio de 0 despus de dos
pocas:
[Link] = 1000;
net = train(net,p,t);

De este modo, la red fue entrenada por el momento las entradas se


presentaron en la tercera poca. (Como saben del clculo lado, la red
converge en la presentacin de la sexta vector de entrada. Esto ocurre en
medio de la segunda poca, pero se necesita la tercera poca para detectar
la convergencia de redes.) Los pesos finales y los prejuicios son
w = [Link]{1,1}, b = net.b{1}
w=
-2 -3
b=
1

La salida simulada y los errores de los diversos insumos son


a = net(p)
a=
0 1 0 1
error = a-t
error =
0 0 0 0

Usted confirma que el procedimiento de formacin tiene xito. La red


converge y produce las salidas de destino correcto para los cuatro vectores
de entrada.
La funcin de entrenamiento por defecto para las redes creadas con
perceptrn es trainc. (Usted puede encontrar esta ejecutando [Link].)
Esta funcin de capacitacin se aplica la regla de aprendizaje del perceptrn
en su forma pura, en la que los vectores de entrada individuales se aplican
de forma individual, en secuencia, y correcciones a los pesos y sesgos se
realizan despus de cada presentacin de un vector de entrada. Por lo
tanto, la formacin perceptron con el tren converger en un nmero finito
de pasos a menos que el problema presentado no se puede resolver con un
simple perceptron.
El tren de funcin se puede utilizar de diversas maneras por otras redes.
Tipo de tren ayuda para leer ms acerca de esta funcin bsica.
Es posible que desee probar varios programas de ejemplo. Por ejemplo,
demop1 ilustra la clasificacin y la formacin de un perceptrn simple.
Limitaciones y precauciones
Redes Perceptrn deben ser entrenados con adaptacin, que presenta los
vectores de entrada a la red de a uno por vez y hace correcciones a la red
sobre la base de los resultados de cada presentacin. El uso de adaptar de
esta manera garantiza que cualquier problema linealmente separable se
resuelve en un nmero finito de presentaciones de formacin.

Como se seala en las pginas anteriores, perceptrones tambin pueden ser


entrenados con el tren de la funcin. Comnmente cuando se usa tren para
perceptrones, presenta las entradas a la red por lotes, y hace correcciones a
la red basado en la suma de todas las correcciones individuales.
Desafortunadamente, no hay ninguna prueba de que un algoritmo de este
tipo de formacin converge para perceptrones. Por ese motivo, no se
recomienda el uso de trenes de perceptrones.
Redes perceptrn tienen varias limitaciones. En primer lugar, los valores de
salida de un perceptrn pueden tomar en slo uno de dos valores (0 1)
debido a la funcin de transferencia lmite estricto. En segundo lugar, los
perceptrones slo pueden clasificar conjuntos linealmente separables de
vectores. Si una lnea recta o un plano se pueden extraer para separar los
vectores de entrada en sus categoras correctas, los vectores de entrada
son linealmente separables. Si los vectores no son separables linealmente,
el aprendizaje nunca se llega a un punto en el que todos los vectores se
clasifican correctamente. Sin embargo, se ha demostrado que si los vectores
son linealmente separables, perceptrones entrenados adaptativamente
siempre encontrar una solucin en un tiempo finito. Es posible que desee
probar demop6. Se muestra la dificultad de tratar de clasificar los vectores
de entrada que no son separables linealmente.
Es justo, sin embargo, para sealar que las redes con ms de un perceptrn
se pueden utilizar para resolver los problemas ms difciles. Por ejemplo,
suponga que tiene un conjunto de cuatro vectores que le gustara para
clasificar en distintos grupos, y que las dos lneas pueden dibujarse para
separarlos. Una red de dos neurona se puede encontrar de tal manera que
sus dos lmites de decisin clasifican las entradas en cuatro categoras.

También podría gustarte