Está en la página 1de 101

http://archive.ics.uci.

edu/ml/
BASE DE DATOS DE INFORMACION VARIA

INTRODUCCION A LAS REDES


NEURONALES

Actualmente las computadoras son capaces de realizar


millones de clculos desde los mas sencillos hasta los
mas complejos en segundos, sin embargo son incapaces
de percibir caractersticas del medio, e incluso
ineficientes de percibir imgenes y sonidos, es por ello
que algunos investigadores se han dado a la tarea buscar
sistemas de computo que logren ser capaces de trabajar
con cierta similitud al desempeo del cerebro humano.

Algunas aproximaciones de cientficos, dieron inicio a un


proceso de investigacin que ha sido denominado
INTELIGENCIA ARTIFICIAL, que dentro de esta rea se
cuenta con las redes neuronales artificiales, esto por que
este rgano posee caractersticas muy deseables para
un sistema de computo.

Funcionamiento de una neurona


biolgica

Funcionamiento de una neurona


biolgica
Como podemos las neuronas biolgicas , se componen
de Sinapsis, Dendritas, Axones y cuerpos celulares.
Una neurona no hace nada en si, todo el funcionamiento
lo hacen todos los componentes, es decir que son
basadas en la influencia de todas sus entradas hasta
que alcance un nivel de umbral, y siempre que se
alcanza la neurona produce una salida de potencia
completa, que consiste en un pulso estrecho que se
desplaza del cuerpo de clula, bsicamente por el axn,
hasta la ramas, realizando esto, la neurona se dispara o

Los axones
influyen en las dendritas
sobre unos
espacios estrechos llamados sinapsis. La estimulacin en
una sinapsis hace que las neuronas se disparen y en
otras se desalientan el disparo. El aprendizaje se lleva a
cabo en las cercanas de la sinapsis

Funcionamiento de una neurona


artificial

Historia Redes Neuronales


Fue en 1943 cuando Warren McCulloch y
Walter Pitts propusieron el clsico modelo de
neurona en el que se basan las redes
neuronales actuales. Seis aos despus, en
1949, en su libro The Organization of
Behavior, Donald Hebb presentaba su
conocida regla de aprendizaje.

La Neurona McCulloch-PittS
En este modelo tan sencillo
puede verse que la activacin
de la neurona depende del valor
que tomen los pesos y las
entradas, de forma que la
variacin de stos origina
distintas salidas para la misma
entrada a la neurona.

En la prctica, los pesos de las neuronas se


modifican
sometiendo
a
la
red
a
un
entrenamiento, permitiendo que la red realice una
funcin determinada. Esta es la caracterstica que
diferencia a una red neuronal de una mquina
algortmica clsica: una red neuronal no se
programa, se educa.

La red es capaz de retener y asociar el


conocimiento a travs de la adaptacin de los
pesos de las neuronas siguiendo una regla de
aprendizaje.

Estas reglas son ecuaciones expresadas en


funcin de las entradas y salidas de las neuronas
y describen la forma de variacin de los pesos. En
definitiva, son el instrumento empleado por las
neuronas para adaptarse a la informacin que se
le presenta.

En 1957, Frank Rosenblatt present


el Perceptron, una red neuronal
con aprendizaje supervisado cuya
regla de aprendizaje era una
modificacin de la propuesta por
Hebb.

El Perceptron trabaja con patrones de entrada binarios, y


su funcionamiento, por tratarse de una red supervisada,
se realiza en dos fases: una primera en la que se
presentan las entradas y la salidas deseadas; en esta
fase la red aprende la salida que debe dar para cada
entrada.

La principal aportacin del Perceptron es que la


adaptacin de los pesos se realiza teniendo en
cuenta el error entre la salida que da la red y la
salida que se desea.

En la fase siguiente, de operacin, la red es


capaz de responder adecuadamente cuando se
le vuelven a presentar los patrones de entrada. Se
crearon
grandes
expectativas
sobre
sus
aplicaciones, que posteriormente se tornaron en
gran decepcin cuando en 1969 Minsky y Papert
demostraron las grandes limitaciones de esta red.

En los aos 60 se propusieron otros


dos modelos, tambin supervisados,
basados en el Perceptron de Rosenblatt
denominados Adaline y Madaline.

En estos, la adaptacin de los pesos se realiza


teniendo en cuenta el error, calculado como la
diferencia entre la salida deseada y la dada por la
red, al igual que en el Perceptron.

Sin embargo, la regla de aprendizaje empleada es


distinta. Se define una funcin error para cada
neurona que da cuenta del error cometido para
cada valor posible de los pesos cuando se
presenta una entrada a la neurona. As, la regla
de aprendizaje hace que la variacin de los pesos
se produzca en la direccin y sentido contrario del
vector gradiente del error. A esta regla de
aprendizaje se la denomina Delta.

La era moderna de las redes neuronales


artificiales surge con la tcnica de
aprendizaje de propagacin hacia atrs
o Back Propagation.
La contribucin de Minsky y Papert fue
la de demostrar que una red del tipo
Perceptron no es capaz de aprender
todas las posibles combinaciones entre
entradas y salidas.

La solucin del problema consiste en aadir capas


intermedias de neuronas, introduciendo de esta
forma el problema de cmo ensear a estas capas
intermedias. Aqu es donde tiene importancia el
algoritmo de propagacin hacia atrs.

En ste se compara la salida real con la salida deseada.


La diferencia entre ambas constituye un error que se
propaga hacia atrs desde la capa de salida hasta la de
entrada permitiendo as la adaptacin de los pesos de
las neuronas intermedias mediante una regla de
aprendizaje Delta. Sin embargo, tambin tiene sus
limitaciones.

Posteriormente se han desarrollado otros modelos


que permiten un aprendizaje no supervisado
como el mapa auto-organizativo de Kohonen, los
basados en la Teora de Resonancia Adaptativa
(ART) de Grossberg y Carpenter, o los modelos de
control motor de Bullock, Gaudiano y Grossberg,
entre otros.

Redes neuronales bsicas


Clulas McCulloch&Pitts
Perceptron simple
Adeline
Perceptron multicapa

La Neurona McCulloch-Pitts

Celulas McCulloch&Pitts
Las clulas operan en lapsos discretos
Una red neuronal de McCulloch&Pitts tiene la
capacidad de computo universal. Es decir,
cualquier estructura que puede ser programada
en una computadora, puede ser modelada con
este tipo de redes

Clulas de mcCulloch-Pitts
Ejemplo del not:

0(-1)=0
1(-1)=-1

0>-1
-1>-1

entonces
entonces

1
0

Ejemplo del AND

0(1)+0(1)=0
0(1)+1(1)=1
1(1)+0(1)=1
1(1)+1(1)=2

..
..
..
..

0>1
1>1
1>1
2>1

..entonces
..entonces
..entonces
..entonces

0
0
0
1

Ejemplo del OR

0(1)+0(1)=0
0(1)+1(1)=1
1(1)+0(1)=1
1(1)+1(1)=2

..
..
..
..

0>0
1>0
1>0
2>0

..entonces 0
..entonces1
..entonces 1
..entonces 1

En el caso del XOR, no se puede solucionar con este tipo, ya que con una celula
no se puede, por no ser un caso linealmente separado

El perceptron
Su autor principal es Rosenblat quien generaliz las
clulas de McCulloch-Pitts, y concibi como un sistema
capa de realizar tareas de clasificacin
de forma
automtica.
Su idea era disponer de un sistema que a partir de un
conjunto de ejemplos (patrones) de clases diferentes,
fuera capaz
de determinar las ecuaciones de las
superficies que hacan de frontera de dichas clases

Este tipo de redes se caracterizan por su facilidad


de implementacin. Su aprendizaje se basa en la
retropropagacin: se parte de unos pesos
iniciales en las conexiones interneuronales.
Para un conjunto de entradas se obtiene una
cierta salida. Basndose en que se conoce la
salida que deberamos haber obtenido (patrn
catalogado

aprendizaje
supervisado),
calculamos el error.

A partir de este error se modifican los pesos siguiendo el


sentido inverso al de evolucin de la Red (se parte de la
salida hasta llegar a la entrada). De la misma manera se
opera con el resto de entradas de entrenamiento. Se
puede observar que el error ir disminuyendo a medida
que se aplique el algoritmo.

Sin embargo un entrenamiento reiterado con las mismas


entradas acaba provocando un sobre-entrenamiento a la
Red Neuronal, memorizando caractersticas de un
conjunto, impidiendo as que aprenda a generalizar.

Por eso, tras cada iteracin hay que evaluar: introducir


nuevos valores distintos a los de entrenamiento y
calcular el error de salida. De esta manera se obtiene
una funcin (error de evaluacin) de la que nos interesa
hallar su mnimo absoluto (puede haber mnimos
locales).

Determinando el nmero de iteraciones con que se


alcanza dicho valor, nos aseguramos, en cierta forma,
obtener un bajo error para cualquier conjunto de datos
de entrada. Despus, se puede aplicar un test con un
conjunto nuevo de entradas que nos dar una medida de
la capacidad de discriminacin de la Red.

Qu es un perceptrn?
Un perceptrn es una estructura neuronal ms una regla
de aprendizaje. Como se explicaba anteriormente, una
neurona se compone de un conjunto de entradas, cada
una con un peso, que se introducen en el cuerpo de la
misma para su procesamiento. Ese procesamiento puede
consistir en:
Combinacin lineal:

y i xi
i

Distancia eucldea:

x
i i

Este resultado se introduce posteriormente


en un bloque caracterizado por una de las
siguientes funciones:

La funcin que representa el comportamiento


ideal de una neurona es la funcin escaln:
dependiendo de la entrada se activa la conexin
entre neuronas (salida = 1) o no (salida = 0).

Esta decisin puede depender de un cierto umbral


(que la salida sea capaz de superarlo),
representado en las expresiones anteriores por q:
introducir este trmino negativo equivale a
considerar que la funcin vale uno a partir de q y
no a partir de cero como se representa en la
tabla.

Aunque ste sea el comportamiento ideal, en la prctica


se suele utilizar la funcin sigmoidea. Esto se debe a que
es una funcin muy parecida al escaln y derivable en el
entorno de cualquier punto del eje x.

Como se ver, esto es necesario en el algoritmo de


retropropagacin ya que est basado en la minimizacin
del error con respecto al valor de los pesos, por lo que
hay que derivar e igualar a cero.

El algoritmo de aprendizaje para un perceptrn aislado


es el siguiente:

Wk1 Wk X y y
t

donde:
W = vector de pesos.
k = iteracin actual.
= factor de aprendizaje.
X = vector de entradas.
yd = salida deseada.
y = salida obtenida en la iteracin k.

Una propiedad muy importante de este algoritmo es la


convergencia en presencia de solucin y la posibilidad
de implementar ciclos lmite en ausencia de la misma.

El factor de aprendizaje determina la rapidez del


algoritmo pero tambin su exactitud. Cuanto mayor sea,
necesitaremos menos iteraciones (antes alcanzaremos
las cercanas del mnimo error de evaluacin) pero el
aprendizaje es inconsistente (es ms probable que nos
quedemos oscilando en las cercanas del mnimo error de
evaluacin que lo alcancemos realmente).

Cuanto menor sea, ms lento es, pero ms fino en el


aprendizaje. Por lo que al realizar varias iteraciones
seguramente lograremos minimizar el error.

Ventajas
Se puede representar matemticamente
Software de aprendizaje
Tolerantes al ruidos
Aprendizaje supervisado y no supervisado

Desventajas
Dependientes del diseo
Dependiente de los datos
Retroalimentacin
frmula de ajuste

Ejemplo

Tabla representativa
X0

X1

X2

X3

Yd

Ejemplo
Red neuronal que sume dos nmeros enteros

X1

X2

Yd

12

W1= 3

Y= X1(W1) + X2(W2)

W2 = 2

Y= 1(3) + 2(2)= 7
Y=2(3) + 3(2)= 12
Y= 0(3) + 1(2) = 2

X1

X2

Yd

10

W1= 2
W2 = 2

Y= X1(W1) + X2(W2)
Y= 1(2) + 2(2)= 6
Y=2(2) + 3(2)= 10
Y= 0(2) + 1(2) = 2

X1

X2

Yd

W1= 2

Y= X1(W1) + X2(W2)

W2 = 1

Y= 1(2) + 2(1)=4
Y=2(2) + 3(1)= 7
Y= 0(2) +1(1) = 1

X1

X2

Yd

W1= 1

Y= X1(W1) + X2(W2)

W2 = 1

Y= 1(1) + 2(1)=3
Y=2(1) + 3(1)= 5
Y= 0(1) + 1(1) = 1

Red neuronal Adeline


ADALINE: ADAptive LInear NEuron.
Fue desarrollado en 1960 por Widrow y Hoff.
La estructura del Adaline es prcticamente idntica al
perceptron simple, pero es un mecanismo fsico capaz de
realizar aprendizaje.

Es un elemento combinador adaptativo lineal, que recibe


todas las entradas, las suma ponderadamente, y produce
una salida.
Se compone de una sola capa de n neuronas, con m
entradas.

Se diferencia con el perceptron simple en la manera de


utilizar la salida en la regla de aprendizaje.
La salida que utiliza es directamente la salida de la red
(real) teniendo en cuenta cunto se ha equivocado.

Se utiliza la diferencia entre el valor real esperado d y la


salida producida por la red y.
Para un patrn de entrada se tendr en cuenta el error
producido.

Regla Delta de aprendizaje


En esta regla de aprendizaje del Adaline, los patrones de
entrenamiento estn constituidos por pares de valores:
vector de entrada y salida deseada.

La regla Delta utiliza la diferencia entre la salida


producida para cada patrn y la deseada.
Se calcula una funcin de error para todo el conjunto de
patrones:

Donde E es el error global y Ep el error cuadrtico por


patrn.

Esta regla busca el conjunto de pesos


que minimiza la funcin de error, esto
se realiza mediante un proceso
iterativo donde se presentan los
patrones y se van modificando los
parmetros de la red mediante la regla
del descenso del gradiente:

ALGORITMO ADELINE
El Adeline (Algoritmo LMS).
1. Asigna valores aleatorios a los pesos.
2. Aplica un vector de entrada y obtiene la salida
correspondiente
Salida = w*x.
Error = salida deseada salida obtenida.
Wi = Wi + alpha * error * entradai .

3. Volver al dos.

Red de hopfield
John Hopfield, gracias al trabajo sobre
neurofisiologa en invertebrados, desarroll un
tipo de red neuronal autoasociativa.
Estas redes son bastante parecidas al modelo
del
Perceptrn,
pero
presentan
una
caracterstica adicional: las neuronas en la capa
media, presentan conexiones de salida hacia
otras neuronas de la capa media.

Adems, cada neurona de la capa de entradas esta


conectada con una neurona de la capa media, y cada
neurona de la capa media emite una sola conexin hacia
la capa de salidas. Y estas conexiones (capa de entradas
- capa media, y capa media - capa de salidas) no
implican clculo de pesos sinpticos ni de valores
umbral.

Entrenamiento de una red hopfield


1. Se calculan los pesos de la red Wij (salida de la jsima neurona a la entrada de la i-sima neurona)
M = nmero de clases por
aprender
Xsi = i-simo elemento
de la s-sima clase

2. Se muestra a la red un patrn de entrada cualquiera


(completo o incompleto
3. La red empieza a iterar hasta que la salida converge
(es estable)

Declarando una red hopfield


La declaracin y entrenamiento de la red se ejecuta con
una sola funcin que se llama newhop, en realidad lo
que hace esta funcin, es calcular los pesos colocando
como condicin inicial a la matriz T.
T=

5 patrones a grabar , con 10 entradas

Nethop= newhop(T);
Y = sim(nethop,{Q TS),{},{Ai}

10x5

Ai= set de entradas a probar


Q= Dimensin de Ai
TS= nmero de iteraciones

Declarando una red hopfield


La declaracin y entrenamiento de la red se ejecuta
con una sola
funcin que se llama newhop, en realidad lo que hace
esta funcin es calcular los pesos colocando como
condicin inicial a la matriz T

Backpropagation
La backpropagation es un tipo de red de aprendizaje
supervisado, que emplea un ciclo de propagacionadaptacin d e dos fases. Una vez que se ha aplicado un
patrn a la entrada como estimulo, este se propaga
desde la primera capa a travs de las capas superiores
de la red, hasta general una salida. La seal de salida se
compara con la salida deseada y se calcula una seal de
error.

Las salidas de error se propagan hacia atrs, partiendo


de la capa de salida, hacia todas las neuronas de la capa
oculta que contribuyen directamente a la salida. Sin
embargo las neuronas de capa oculta solo reciben una
fraccin de la seal total del error, basndose
aproximadamente en la contribucin relativa que haya
aportado cada neurona a la salida original.

Es proceso se repite, capa por capa, hasta que todas la


neuronas de la red hayan recibido una seal de error que
describa su contribucin relativa al error total .
Basndose en la seal de error percibida, se actualizan
los pesos de conexin de cada neurona, para hacer que
la red converja hacia un estado que permita clasificar
correctamente todos los patrones de entrenamiento-

Estructura de la red
La estructura tpica de una red multicapa es la siguiente

Podemos notar que esta red de tres capas equivale a


tener tres redes tipo perceptron en cascada; la salida de
la primera red, es la entrada a la segunda y la salida de
la segunda es la entrada a la tercera. Cada capa puede
tener diferente nuero de neuronas, e incluso distinta
funcin de transferencia.

Regla de aprendizaje
El algoritmo backpropagation para redes multicapa es
una generalizacin del algoritmo LMS, ambos algoritmos
realizan su labor de actualizacin de pesos y ganancias
con base en el erro medio cuadrtico.
La red
backpropagation trabaja bajo aprendizaje
supervisado y por tanto necesita un set de
entrenamiento que le describa casa salida y su valor de
salida esperado de la siguiente forma:

{p1,t1},{p2,t2}{pQ,tQ}
Donde pQ es una entrada a la red y tQ es la
correspondiente salida deseada para el patrn q-iesimo.
El algoritmo debe ajustar los parametros de la red para
minimizar el error cuadratico medio.

Red kohonen

Mapas auto organizativos


El mapa organizativo propuesto por Kohonen en 1995, es
un sistema usado para visualizar e interpretar conjuntos
de datos con un espacio de entrada
de alta
dimensionalidad. Este sistema convierte las relaciones
estadsticas complejas entre los datos de entrada en
relaciones geomtricas simples en otro espacio de baja
dimensin

El mapa autorganizativo estas formado por una malla P


neuronas, habitualmente bidimensional , como se
muestra a continuacin:

Una de las diferencias principales


del mapa
autorganizativo frente a otros sistemas de aprendizaje
competitivos , es que en cada paso del aprendizaje se
actualizan no solo los pesos de la neurona ganadora, sino
tambin los pesos del resto de neuronas de la malla, que
presenta las siguientes caractersticas

En primer lugar , dado el vector de entrada xn =1,.N, el


sistema calcula cual es la neurona ganadora como
aquella que mas se parece a la entrada, es decir , la que
presenta una menor distancia a ese dato:
C= argminD(wj-xn), j= 1..P
j

Redes no supervisadas o
autoorganizativas

Caractersiticas:
1. Ninguna salida deseada
2. No requiere tutor
3. Extrae caractersticas de la entrada para clasificacin

Algoritmo de aprendizaje
1. Inicializar pesos sinpticos
2. Aplicar un patrn de entrada (X)
3. Obtener la neurona vencedora (menor
distancia)
4. Actualizar los pesos correspondientes a
la neurona vencedora

Aplicaciones
Agrupamientos por familiaridad
Extraccin de caractersticas
Obtencin de centros de gaussianas de RBR

X = [8 0; 10 2;10 11;12 9;2 7;6 7];


p = X';
red1 = newc([2 12;0 9],3,0.01,0.00);
w = red1.IW{1,1};
plot(w(:,1),w(:,2),'xr',p(1,:),p(2,:),'o')
axis([min(p(1,:))-1 max(p(1,:))+1 min(p(2,:))-1 max(p(2,:))+1])
xlabel('x1')
ylabel('x2')
title('Red de Kohonen')
legend('pesos','patrones','location','NorthWest')

red1 = init(red1);
red1.trainParam.epochs = 10;
for i=1:25
red1 = train(red1,p);
w = red1.IW{1,1};
plot(w(:,1),w(:,2),'xr',p(1,:),p(2,:),'o')
axis([min(p(1,:))-1 max(p(1,:))+1 min(p(2,:))-1 max(p(2,:))+1])
xlabel('x1')
ylabel('x2')
title('Red de Kohonen')

legend('pesos','patrones','location','NorthWest')
pause(0.1)
end
w
a = sim(red1,p);
ac = vec2ind(a);
[X ac']

MAQUINAS DE VECTORES SOPORTE

También podría gustarte