Sei sulla pagina 1di 8

Trabajo Practico

66. 63 Redes Neuronales

F.I.U.B.A.

Te
orico
1. Una red de Kohonen de una sola entrada, con las neuronas una al lado de la otra (en
una sola fila) es entrenada con patrones x que tienen una distribuci
on P (x). Demostrar
que los pesos w de las neuronas tendr
an una distribuci
on P (w) proporcional a P (x) .
Cu
anto vale ?
Las neuronas est
an dispuestas en forma lineal, supongamos que tenemos N neuronas,
entonces tendremos, para cada una de ellas, un peso sinaptico asociado:
w1

w2

w3

...

wN

Llamemos r a la posici
on de la neurona en el arreglo, es decir r = 1, 2, 3, . . . , N . Entonces
podemos expresar los pesos wi como una funcion de la posicion r, digamos w(r), que es
una funci
on contnua de variable discreta.
La idea es mostrar como es esta funcion en relacion con P (x). Supongamos que existe un patr
on x
que tiene mayor probabilidad de ocurrencia, entonces los pesos w ser
an
atrados por este valor, es decir, habra muchos valores de w(r) parecidos a x
.
Dicho de otra manera, habr
a un rango de r tal que w(r) x
. La Figura 1 muestra un
ejemplo de la situaci
on.

Figura 1. Ejemplo de distribucion de w(r).


En este rango podemos verificar que w
o bien posee valores peque
nos. Lo anterior es
r 0
r
igual a decir que w es un valor grande. En el caso de infinitas neuronas tendremos una
distribuci
on contnua y w(r) sera ahora una funcion contnua de variable contnua, por lo
r
dr
que w
se transforma en dw
.
Mostraremos ahora la relaci
on entre

dr
y P (x).
dw

La regla de aprendizaje es:


w(r) = (i, i )(x w(r))
Rocabado, Daniel H. 73529

66. 63 Redes Neuronales

Trabajo Practico
3

F.I.U.B.A.

Promediando entre todos los patrones tenemos que:


X
(i, i )(x w(r))
hw(r)i =

En el equilibrio, no hay cambios en los pesos sinapticos, es decir, hw(r)i = 0, o bien:


X
0=
(i, i )(x w(r))

Como esta ecuaci


on es difcil de resolver pasamos a una aproximacion contnua y la ecuacion anterior se transforma en:
Z
0 = (r r (x))[x w(r)]P (x) dx
(1)
R
La suma sobre los patrones x se convierte en P (x) dx permitiendo una distribucion arbitraria de x. La funci
on de vecindad (i, i ) se transforma en una funcion de la diferencia
de posici
on en el arreglo lineal y el parametro resulta eliminado.
Asumimos que la funci
on es una funcion par y que ademas es clara y ntidamente
empinada. Hacemos un cambio de variable:
= r (x) r
As (r r (x)) se vuelve (), pero como es una funcion par queda (). El patr
on x
se vuelve w(r )
o w(r + ) y entonces podemos escribir:
x w(r) w0

(2)

P (x) se vuelve P (w(r )) = P (w(r + )) y desarrollando podemos expresarlo como:


P (x) P (w) + P 0 (w)w0

(3)

d se hace igual a dw(r + ) que podemos expresarlo como w0 (r + )d, este a su vez,
podemos expandirlo y obtenemos:
d (w0 + w00 )d

(4)

Reemplazamos (2),(3),(4) en (1) y obtenemos:


Z
0 ()(w0 )(P (w) + P 0 (w)w0 )(w0 + w00 ) d
Operamos y expresamos en potencias de (eliminando potencias superiores a 2 )
Z

0
() w02 P (w) + 2 w0 [w00 P (w) + w02 P 0 (w)] d
Z
Z
02
0 00
02 0
0 w P (w) () d + w [w P (w) + w P (w)] ()2 d
El primer sumando del lado derecho es nulo ya que () es una funcion par y la integral
se supone entre + y . Entonces tenemos:
Z
0 00
02 0
0 w [w P (w) + w P (w)] ()2 d
Rocabado, Daniel H. 73529


Trabajo Practico
3

66. 63 Redes Neuronales

F.I.U.B.A.

Asumiendo que w0 (r) 6= 0, debemos tener que:


0 [w00 P (w) + w02 P 0 (w)]
Por simplicidad asumimos igualdad para obtener:
w00
P 0 (w)w0
=

w0
P (w)
Lo que conduce a:
d (ln |w0 | + k1 )
dr
ln |w0 |

dw

dr

dr

dw

d (ln P (w) + k2 )
dr
= ln P (w) + k
1
=
P (w)
=

= P (w)

(5)

Pero el espacio w se corresponde con el espacio x, por lo que P (w) = P (x), entonces
podemos escribir:

dr
= P (x)
dw
dr
nos da una idea de la distribucion de los pesos w en el arreglo lineal queda
dw
demostrado que tal distribuci
on es proporcional a P (x).

Y como

El valor de puede hallarse de (5) haciendo:

dr = P (w) dw
Z
dr = P (w) dw

La integral de la derecha se integra a todos los pesos w (equivalente a todos los patrones
x) y da 1, por ser el integrando una funcion densidad de probabilidad; la integral de
la izquierda da simplemente la longitud del intervalo donde se encuentran las neuronas
distribuidas. As tenemos:
=R
Para el caso discreto = N , donde N es la cantidad de neuronas.

Pr
actico
A. Hacer una red de Kohonen de 2 entradas que aprenda una distribuci
on uniforme en el
crculo unitario. Mostrar el mapa de topologa.
Armamos una red neuronal cuadrada de N = L L neuronas y la entrenamos con M
muestras aleatorias del vector X R2 cuya funcion densidad de probabilidad viene dada
por:
Rocabado, Daniel H. 73529

66. 63 Redes Neuronales

Trabajo Practico
3


f (x, y) =

F.I.U.B.A.

x2 + y 2 1
x2 + y 2 > 1

Para simplificar la generaci


on de muestras hacemos un cambio de variables, pasamos a
coordenadas polares:
x = cos()
y = sen()
El crculo unitario en el plano (x, y) se mapea en un rectangulo en el plano (, ), de
manera que las nuevas variables son independientes y tienen una funcion de densidad
conjunta igual a:

[0 1] [0 2]
f (, ) =
0 Fuera
Las funciones marginales vienen dadas por:

2 [0 1]
f () =
0
/ [0 1]

f () =

1
2

[0 2]

/ [0 2]

Para generar la variable usamos una variable aleatoria u uniforme en [0, 1], luego basta
con hacer = 2u. Para generar la variable usamos otra variable aleatoria v uniforme

en [0, 1] y hacemos = v.
Una vez obtenidos y con el cambio de variables antes mencionado obtenemos el
patr
on X = (x, y).
La regla de actualizaci
on usada es:
W i = (i, i )(X Wi )

El par
ametro comienza en 1 y va decayendo su valor a medida que el proceso avanza.
Usamos un decaimiento exponencial dado por:
(t) = e (t1)
Donde t es el tiempo discreto que tiene una relacion estrecha con dado que en el instante t se presenta el patr
on X . De aqu que t vaya de 1 a M. El parametro es tal que
M
4
=e
= 10 .
Nos queda presentar el (i, i ) empleado. Esta funcion tiene la forma:
|ri ri |2
2 2
(i, i ) = e

Rocabado, Daniel H. 73529

66. 63 Redes Neuronales

Trabajo Practico
3

F.I.U.B.A.

Donde ri es el vector posici


on, en el arreglo de neuronas, de la neurona i y ri es el vector
posici
on de la neurona ganadora. Tomamos como origen de coordenadas del arreglo el
vertice inferior izquierdo del mismo y ademas la distancia entre neuronas vecinas es 1.
El valor de tambien decrece con el tiempo siguiendo una ley similar a la de . Entonces:
(t) = 0 e(t1)
Tomamos 0 = N y es tal que = 0 eM = 103 .
Mostramos el mapa de conservacion de la topologa para L = 15, N = 225 y M =
50625.

Figura 2. Mapa Topologico.


Lista de archivos:
tp3p1.m
vector.m
Mostrarmapa.m
Tiempo de ejecuci
on: aproximadamente 3 horas.

1. Resolver (aproximadamente) el Travelling Salesman Problempara 500 ciudades con


una red de Kohonen.
Si bien no pudimos resolver el problema para 500 ciudades, si pudimos hacerlo para 50
ciudades, usando 100 neuronas e introduciendo algunos cambios con respecto al ejercicio
anterior.
La red es ahora un arreglo lineal, por lo que debemos cambiar la definicion de (i, i ).
Simplemente tenemos que:
(i i )2

2 2
(i, i ) = e
Rocabado, Daniel H. 73529


Trabajo Practico
3

66. 63 Redes Neuronales

F.I.U.B.A.

Donde i es la posici
on de la neurona i en el arreglo lineal e i es la posicion de la neurona
ganadora. El par
ametro tiene la misma variacion que en el ejercicio anterior.
La cantidad de patrones es ahora finita y para un mismo instante t se presentan las 50
ciudades. La regla de actualizacion es la misma:
W i = (i, i )(X Wi )
El algoritmo se detiene cuando kWi k < 104 . La posicion de las ciudades fue elegida
mediante dos variables aleatorias normales N(0,1).
Mostramos el resultado final:

Figura 3. Travelling Salesman Problem resuelto.


Lista de archivos:
Travelling.m
Tiempo de ejecuci
on: 1:08:59.

4. Encontrar un perceptr
on multicapa que resuelva una XOR de 2 entradas, mediante simulated annealing.
En primer lugar definimos el modelo de red vamos a utilizar. Es sencillamente una red
con una capa intermedia de dos neuronas y una neurona de salida en la siguiente capa. La
Figura 4 muestra un esquema de tal red.

Rocabado, Daniel H. 73529

66. 63 Redes Neuronales

Trabajo Practico
3

F.I.U.B.A.

Figura 4. Red para realizar una XOR.


Cada capa tiene asociada una matriz de pesos sinapticos W1 y W2 , que tienen la forma:


x1 x2 x3
W1 =
x4 x5 x6

W2 = x7 x8 x9
Donde x3 y x6 representan los umbrales de las neuronas de la primera capa y x9 el umbral
de la neurona de salida.
En segundo lugar vamos a definir la funcion que queremos minimizar. Esta funcion es:
j=4

1X
E(X) =
(Oj Vj (X))2
2
j=1

Donde Oj es la salida deseada cuando a la entrada tenemos el patron j .


El vector X representa nuestro vector incognita, podemos representarlo as:


X = x1 x2 x3 x4 x5 x6 x7 x8 x9
Vj (X) es la salida de la red cuando a la entrada tenemos el patron j . Viene definido
seg
un:
Vj (X) = g(W2 V1j )
Donde:

1
1 + e x

g(h1 )
V1j = g(h2 )
1

g(x) =

A su vez tenemos que:


 
h1
= W1 j
h2
Por u
ltimo definimos los patrones y la salida correspondiente:




0
0
1
1

0
1
0
1
1 =
2 =
3 =
4 =
1
1
1
1
Rocabado, Daniel H. 73529


Trabajo Practico
3

66. 63 Redes Neuronales

F.I.U.B.A.



O = O1 O2 O3 O4 = 0 1 1 0
El algoritmo encuentra los pesos sinapticos W1 y W2 , es decir el vector X, que minimizan
la funci
on presentada E(X).
Comenzamos la b
usqueda desde un punto aleatorio X y evaluamos E(X) asignandola a
una variable de control Emin , luego nos desplazamos en la direccion dX, tambien aleatoria,
y calculamos E(X + dX), si este valor es inferior a Emin entonces actualizamos el vector
incognita haciendo X = X + dX y actualizamos tambien el valor de Emin = E(X + dX).
Si el valor hallado E(X + dX) es mayor a Emin entonces actualizamos el vector incognita
al nuevo valor (no deseable) con probabilidad p.
La probabilidad p va decreciendo con el tiempo siguiendo una ley exponencial seg
un:
p = et
Donde se tom
o igual 0.01 y t es el tiempo discreto. De manera que cuando el proceso
ha avanzado lo suficiente s
olo se producen descensos.
El resultado puede verse en la Figura 5, donde se muestra la distribucion del espacio
de entrada y las salidas asociadas a cada region.

Figura 5. Distribucion del espacio de entrada.


Lista de archivos:
tp3p2.m
MostrarXOR2.m
Tiempo de ejecuci
on: 0:00:30.

Rocabado, Daniel H. 73529

Potrebbero piacerti anche