Download Clase_2_perceptron_back_hopfield

Document related concepts

Perceptrón wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Perceptrón multicapa wikipedia , lookup

Adaline wikipedia , lookup

RNA de base radial wikipedia , lookup

Transcript
Redes Neuronales
Perceptron, Backpropagation, Adaline,
Hopfield.
Algoritmos y ejemplos. Parte 2
M.C. Ernesto Cortés Pérez.
Apuntes de la materia
Similitudes entre una neurona biológica y una artificial
Las
pesos
Wi X
son
representan
la intensidad
deseñales
la sinápsis
quesobrepasar
provienen
que
Los
esentradas
la función
que la las
neurona
debe
iumbral
para
de
conecta
otras
activarse;
dos
neuronas
neuronas;
este
y que
proceso
tanto
son capturadas
X
ocurre
Wi por
son las
valores en
i comobiológicamente
dendritas
reales.
el
cuerpo de la célula.
2
Neurona Artificial
Cada
señal
de
entrada
pasa
a todas
través
de una
ganancia
o peso,
La nodo
El
entrada
sumatorio
neta
a cada
acumula
unidad
puede
las
señales
escribirse
de entradas
de
la
Las
señales
de
entrada
a una
neurona
artificial
X1,función
Xa2la
,..,
llamado
peso
sináptico
fortaleza
de la conexión
multiplicadas
siguiente
manera:
por
los opesos
o ponderadas
y lascuya
pasa
n
 discretos,
es
análoga
a la dede
la
función
sináptica
de
neurona
biológica.
X
continuas
en lugar
dela
salida
través
una
función
umbral
opulsos
función
de
n son avariables
neta

x
w

X
W
Los
pesos
pueden seren
positivos
(excitatorios),
o negativos
ibiológica.
i
como
se presentan
unaj neurona
transferencia.
(inhibitorios).

i 1
3
Neurona Artificial
Cada neurona calcula
El valor
su entrada
de salida (único) se
n
Cada entrada
multiplicada
por
neta es
como:
obtiene
como
neta j   xi wi
y

f
(neta
)
el peso de arco correspondiente.
4
i 1
Funciones de Transferencia

Hardlim (limitador fuerte)
Esta función crea neuronas que clasifican las
entradas en dos categorías diferentes.
5
Funciones de Transferencia

Hardlims (limitador fuerte simétrico)
Esta función crea neuronas que clasifican las
entradas en dos categorías diferentes.
6
Funciones de Transferencia

Purelin (Lineal)
A diferencia de las anteriores, esta
función no es acotada.
7
Funciones de Transferencia

Logsig (Sigmoide)
Es acotada y derivable
8
Funciones de Transferencia
2
a
1
(1  exp( 2 * n))
9
Arquitecturas formadas por una
neurona

Comenzaremos trabajando con arquitecturas
simples formadas por un único elemento de
procesamiento.

La neurona trabaja
discriminante lineal.
como
una
función
10
Perceptrón
1 si neta  
y
0 si neta  
11
Ejemplo

Verifique si la siguiente neurona se
comporta como la función lógica AND
12
AND
Graficar la función discriminante
(recta)
13
Entrenamiento del perceptrón

Se busca una estrategia iterativa que
permita adaptar los valores de las
conexiones a medida que se presentan
los datos de entrada.

Ver que el estímulo de entrada se
corresponde con el producto interior de los
vectors X y W.
14
Ajuste del vector de pesos con taza de
aprendizaje (Learning rate)

Recordemos que la salida del perceptrón es
hardlim
1 si W . X  
y
0 si W . X  

En general, si llamamos



t al valor esperado
y al valor obtenido
Utilizando la siguiente expresión para cálcular W
wnuevo = w +  (t - y) x
15
While epoch produces an error
Present network with next inputs from
epoch
Err = t – y
If Err <> 0 then
Wj = Wj + LR * Err * Ij
End If
End While
16
Entrenamiento del Perceptrón

Seleccionar el valor de  y 

Inicializar los pesos de las conexiones con
valores random (vector W)

Mientras no se clasifiquen todos los
patrones correctamente
 Ingresar
 Si

un patrón a la red.
fue clasificado incorrectamente
Wnuevo = W +  (t - y) x
17
Ejemplo 1

Entrenar un perceptrón para que se
comporte como la función lógica AND.
Utilice
 = 0.3
 = 1.5
W1 = 0
W2 = 0.25
18
AND
El proceso
repitenew
hasta
comprobar que
Si YY =se
W1 + 0.3 (T-Y) X1
Si
T, W W1
no se =actualiza
todos los patrones son clasificados
Wnewcorrectamente
=W
+new
 (T-Y)
W2
= W2X + 0.3 (T-Y) X2
X1
X2
T
W1
W2
Y
W1new
W2new
------------------------------------------------------------0
0
0
0.00
0.25
0
0.00
0.25
1
0
0
0.00
0.25
0
0.00
0.25
0
1
0
0.00
0.25
0
0.00
0.25
1
1
1
0.00
0.25
0
0.30
0.55
------------------------------------------------------------0
0
0
0.30
0.55
0
0.30
0.55
1
0
0
0.30
0.55
0
0.30
0.55
0
1
0
0.30
0.55
0
0.30
0.55
1
1
1
0.30
0.55
0
0.60
0.85
------------------------------------------------------------0
0
0
0.60
0.85
0
0.60
0.85
1
0
0
0.60
0.85
0
0.60
0.85
0
1
0
0.60
0.85
0
0.60
0.85
1
1
1
0.60
0.85
0
0.90
1.15
------------------------------------------------------------0
0
0
0.90
1.15
0
0.90
1.15
1
0
0
0.90
1.15
0
0.90
1.15
0
1
0
0.90
1.15
0
0.90
1.15
1
1
1
0.90
1.15
1
0.90
1.15
19
Perceptrón

Hardlim
1 si neta  0
y
0 si neta  0
20
Ejercicio

Entrenar un perceptrón para que se
comporte como la función lógica AND.
Utilice
 = 0.3
W0 = 0
W1 = 0
W2 = 0.25
21
Ejercicio
X0
X1
X2
T
W0
W1
W2
Salida
NewW0
NewW1
NewW2
-----------------------------------------------------------------------------------1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
------------------------------------------------------------------------------------
22
Solución
X0
X1
X2
T
W0
W1
W2
Salida
NewW0
NewW1
NewW2
-----------------------------------------------------------------------------------1
0
0
0
0.00
0.00
0.25
1
-0.30
0.00
0.25
1
1
0
0
-0.30
0.00
0.25
0
-0.30
0.00
0.25
1
0
1
0
-0.30
0.00
0.25
0
-0.30
0.00
0.25
1
1
1
1
-0.30
0.00
0.25
0
0.00
0.30
0.55
-----------------------------------------------------------------------------------1
0
0
0
0.00
0.30
0.55
1
-0.30
0.30
0.55
1
1
0
0
-0.30
0.30
0.55
1
-0.60
0.00
0.55
1
0
1
0
-0.60
0.00
0.55
0
-0.60
0.00
0.55
1
1
1
1
-0.60
0.00
0.55
0
-0.30
0.30
0.85
-----------------------------------------------------------------------------------1
0
0
0
-0.30
0.30
0.85
0
-0.30
0.30
0.85
1
1
0
0
-0.30
0.30
0.85
1
-0.60
0.00
0.85
1
0
1
0
-0.60
0.00
0.85
1
-0.90
0.00
0.55
1
1
1
1
-0.90
0.00
0.55
0
-0.60
0.30
0.85
-----------------------------------------------------------------------------------1
0
0
0
-0.60
0.30
0.85
0
-0.60
0.30
0.85
1
1
0
0
-0.60
0.30
0.85
0
-0.60
0.30
0.85
1
0
1
0
-0.60
0.30
0.85
1
-0.90
0.30
0.55
1
1
1
1
-0.90
0.30
0.55
0
-0.60
0.60
0.85
-----------------------------------------------------------------------------------1
0
0
0
-0.60
0.60
0.85
0
-0.60
0.60
0.85
1
1
0
0
-0.60
0.60
0.85
1
-0.90
0.30
0.85
1
0
1
0
-0.90
0.30
0.85
0
-0.90
0.30
0.85
1
1
1
1
-0.90
0.30
0.85
1
-0.90
0.30
0.85
-----------------------------------------------------------------------------------1
0
0
0
-0.90
0.30
0.85
0
-0.90
0.30
0.85
1
1
0
0
-0.90
0.30
0.85
0
-0.90
0.30
0.85
1
0
1
0
-0.90
0.30
0.85
0
-0.90
0.30
0.85
1
1
1
1
-0.90
0.30
0.85
1
-0.90
0.30
0.85
23
Red Neurona Artificial,
Representación con ganancia (bias)
la nueva entrada b es una ganancia que
refuerza la salida del sumador n, la cual
es la salida neta de la red.
24
Regla de aprendizaje del Perceptron
con ganancia
There are three conditions that can occur for a single neuron once an input
vector p is presented and the network’s response a is calculated:

CASE 1. If an input vector is presented and the output of the neuron is
correct (a = t, and e = t – a = 0), then the weight vector w is not altered.

CASE 2. If the neuron output is 0 and should have been 1 (a = 0 and t = 1,
and e = t – a = 1) the input vector p is added to the weight vector w.

CASE 3. If the neuron output is 1 and should have been 0 (a = 1 and t = 0,
and e = t – a = –1) the input vector p is subtracted from the weight vector w.
25
The perceptron learning rule can be
written in terms of the error:
 e=t–a


And the change will be made to the
weight vector Δw
26

CASE 1. If e = 0, then make a change Δw equal to 0.

CASE 2. If e = 1, then make a change Δw equal to pT.

CASE 3. If e = –1, then make a change Δw equal to –pT.

All three cases can then be written with a single expression:
27

We can get the expression for changes in a neuron’s
bias, which always has an input of 1:

For the case of a layer of neurons we have:
28

The Perceptron Learning Rule can be summarized as
follows:
29
Soluciones obtenidas con la ganancia “b”, a
las funciones “and” y “or”
30
El algoritmo de entrenamiento del
Perceptrón con bias (ganancia)
1.
Se inicializa la matriz de pesos y el valor de la
ganancia, por lo general se asignan valores
aleatorios a cada uno de los pesos wi y al valor b
2.
Se presenta el primer patrón a la red, junto con la
salida esperada en forma de pares entrada/salida
3.
Se calcula la salida de la red por medio de:
puede ser la función hardlim o hardlims
31

Bias: por lo general se le asigna un valor
inicial de 1 y se ajusta durante la etapa de
aprendizaje de la red.
32
4.- Cuando la red no retorna la salida
correcta, es necesario alterar el valor de
los pesos y el bias, tratando de aumentar
las posibilidades de que la clasificación
sea correcta.
33
Ejemplo




2
0
-2
0
1 -> 1
-1 -> 1
1 -> -1
2 -> -1
En este caso las salidas toman valores bipolares
de 1 o –1
34

Los valores iniciales asignados aleatoriamente a
los parámetros de la red son:
35
Iteración 0

Interceptos con los ejes:
36
Iteración 1
37
Iteración 1

De la iteración 1 p1 esta mal clasificado, la actualización
de pesos permite que este patrón sea clasificado
correctamente.
38
Iteración 1

La iteración 1 lleva a la característica de decisión
39
Iteración 2

Se presenta p2 a la red, y es clasificado
correctamente, como se observo gráficamente.
40
Iteración 2

Este patrón ha sido clasificado correctamente y por lo tanto no hay
actualización del conjunto de entrenamiento:
41
Iteración 3

Se presenta p3 a la red y es clasificado correctamente,
como se observó gráficamente
42
Iteración 3

Como se esperaba, no hubo error en la clasificación de este patrón,
y esto lleva a que no haya actualización de los pesos de la red
43
Iteración 4

Se presenta a la red p4
44
Iteración 4

La red ha clasificado incorrectamente este patrón y por lo tanto
deben modificarse pesos y ganancias
45
Iteración 4

En esta iteración la red se comportara de acuerdo a la
característica de decisión
46

La red ha clasificado correctamente los patrones
de entrenamiento, después de entrenada la red
con los pesos y ganancias finales, cualquier otro
valor de entrada será clasificado según la
característica de decisión mostrada.

Ejercicio: verificar a que clase pertenecen los
siguientes patrones:
[-2 3] [ 3 3] [ 1 1] [-1 -1] [3 2] [ 5 -2]

47
Ejercicio 1
48
The output a does not equal the target value t1, so we
use the perceptron rule to find the incremental changes
to the weights and biases based on the error.
49

You can calculate the new weights and bias using the Perceptron
update rules shown previously.
50
51
52
Ejercicio 2

Sobre una cinta transportadora circulan naranjas y melones. Se busca
obtener un clasificador de frutas que facilite su almacenamiento. Para
cada fruta se conoce su diámetro en centímetros, su intensidad de color
naranja, medida entre 0 y 255, y su peso en gramos.

Ejemplos:
Naranjas = { (10,200,150), (8,150,100), (7,170,200), (15,250,180)}
Melón = {(20,30,500), (26,30,780), (24,32,900), (19,31,500)}

Entrenar un perceptrón que permita resolver el problema. Utilice como W
inicial (0,0,0), y b =0.

Nota: etiqueta naranjas =1, Melón =0.

Una vez entrenado el perceptron verificar la clase a la que pertenecen los
siguientes patrones desconocidos:

(14,210,150)

(180,199,23)
53
Ejercicio 3
Una
agencia de modelos publicó los resultados de la última
selección de postulantes. En ella se habían presentado seis
mujeres. Cada una de ellas ha sido caracterizada sólo por su peso
y altura.
El resultado fue el siguiente:
Aceptadas = {(52,1.79), (53,1.81), (55,1.75)}
Rechazadas ={(65,1.70), (68,1.65),(58,1.71)}
A) Represente el criterio de selección a través de una RN formada
por un único perceptrón.
B) Cuál sería la respuesta del perceptrón si se presentaran estas
postulantes:
{(56,1.73), (70,1.60), (45,1.80)}
Resuelva el problema anterior en un programa en matlab
54
Ejercicio 4

Se cree que los niños aprenden mediante un proceso
llamado razonamiento por analogías, en el que intentan
asociar objetos parecidos a otros que ya conocen, y los
intentan agrupar por categorías. Supón que un niño ha
visto alguna vez un león en el zoológico y que sabe que
es peligroso, y lo ha representado internamente por el
patrón (1 1 0 1 0) Un día va por la calle y se encuentra a
un gato, que representaremos por el patrón (1 1 1 0 1),
despues se encuentra con animal parecido a los dos
anteriores y lo asocia con el siguiente patrón (1 1 1 0 0)
¿Debe salir corriendo el niño porque cree al verlo que se
parece demasiado a un león? Modela ésta situación
mediante un perceptrón.
55
56
57
58
59
60
Perceptrón con Matlab
(etapa de aprendizaje)

p =[2
1
t =[1

plotpv(p, t)

0
-1
1
-2
1
0
0;
2]
0]
61
Perceptrón con Matlab
(etapa de aprendizaje)

p={[2;1], [0;-1], [-2;1] ,[0;2]};

t={1 1 -1 -1};

net=newp([-2 2;-2 2],1,'hardlims','learnp');

net.adaptParam.passes = 1;

net.iw{1,1}= [-0.7 0.2];

net.b{1} = [0.5];
62
Iteración 1

[net,a,e]=adapt(net,p{1},t{1});
a
e
 pesos=net.iw{1,1}
 bias=net.b{1}

63
Resultados iteración 1



a=
-1
e=

2

pesos =



3.3000
2.2000
bias =
2.5000
64
Iteración 2

net.iw{1,1}= pesos;

net.b{1} = bias;

[net,a,e]=adapt(net,p{2},t{2});
65
Resultados iteración 2



a=
1
e=

0

pesos =



3.3000
2.2000
bias =
2.5000
66
Iteración 3

net.iw{1,1}= pesos;

net.b{1} = bias;

[net,a,e]=adapt(net,p{3},t{3});
67
Resultados iteración 3



a=
-1
e=

0

pesos =



3.3000
2.2000
bias =
2.5000
68
Iteración 4

net.iw{1,1}= pesos;

net.b{1} = bias;

[net,a,e]=adapt(net,p{4},t{4});
69
Resultados iteración 4



a=
1
e=

-2

pesos =



3.3000 -1.8000
bias =
0.5000
70
Aprendizaje completo
Perceptrón con Matlab (1 época)
p={[2;1] [0;-1] [-2;1] [0;2]};
t={1 1 -1 -1};
net=newp([-2 2;-2 2],1,'hardlims','learnp');
net.adaptParam.passes = 1;
net.iw{1,1}= [-0.7 0.2];
net.b{1} = [0.5];
[net,a,e]=adapt(net,p,t);
71
1era época



a=
[-1]
[1]
[2]

pesos =


[1]
e=


[-1]
[0]
[0]
[-2]
3.3000 -1.8000
bias =
0.5000
72
Resultado en 2 épocas

net.adaptParam.passes = 2;

t=




[1]
[1]
[-1]
[-1]
[1]
[-1]
[-1]
[0]
[0]
a=
[1]
e=

[0]

pesos =



[0]
3.3000 -1.8000
bias =
0.5000
73
Patrones ya clasificados

plotpc(pesos, bias)
74
Etapa de reconocimiento

p1={[-1;-1]};
a1=sim(net,p1)

a1 =

-1

75
Perceptrón Multicapa

Un Perceptrón multicapa es una red con
alimentación hacia delante, compuesta de
varias capas de neuronas entre la entrada
y la salida de la misma, esta red permite
establecer regiones de decisión mucho
más complejas.
76
Esquema
77
Un esquema simplificado del
modelo del Perceptrón Multicapa




Donde
W: Matriz o vector de pesos asignada a cada una de las
entradas de la red de dimensiones SxR, con S igual al número
de neuronas, y R la dimensión del vector de entrada
p: Vector de entradas a la red de dimensiones Rx1
b: Vector de ganancias de la red de dimensiones Sx1
78
Las capacidades del Perceptrón multicapa con dos y tres
capas y con una única neurona en la capa de salida
79
Redes multicapa

Ver que el perceptrón no puede
resolver el problema del XOR porque
no es linealmente separable.
-1 -1 -> 0
-1 1 -> 1
1 -1 -> 1
1 1 -> 0
80
XOR usando mas de un
perceptrón
w11=1 w12=1;
w21=1 w22=1; w31=1 w32=-1.5
b1=-0.5 b2=-1.5 b3=-0.5
81
Función de
activación en la capa
oculta
-0.9866
a = tansig(n) =
2/(1+exp(-2*n))-1
0.0107
purelin en la capa de
salida
-0.9982
Capa oculta
f(((-1  1) + (-1  1))+(-0.5)) = f(-2 + (-0.5)) = f(-2.5)= -0.9866
f(((-1  1) + (-1  1))+(-1.5)) = f(-2 + (-1.5)) = f(-3.5)= -0.9982
Capa de salida
f(((-0.9866  1) + (-0.9982  -1.5))+(-0.5)) = f(0.5107+ (-0.5)) = f(0.0107)= 0.0107
82
Adaline

Al mismo tiempo que Frank Rosenblatt
trabajaba en el modelo del Perceptrón
Bernard Widrow y su estudiante Marcian
Hoff introdujeron el modelo de la red
Adaline.
83
Adaline

La red Adaline es similar al Perceptrón,
excepto en su función de transferencia,
la cual es una función de tipo lineal en
lugar de un limitador fuerte como en el
caso del Perceptrón.
84
Adaline

La red Adaline presenta la misma
limitación del Perceptrón en cuanto al tipo
de problemas que pueden resolver,
ambas redes pueden solo resolver
problemas linealmente separables.
85
Adaline

Sin embargo el algoritmo LMS (Least
Mean Square) es más potente que la regla
de aprendizaje del Perceptrón ya que
minimiza el error medio cuadrático.
86
Perceptron vs Adaline
87
Regla «delta» de aprendizaje de Adaline
88
Regla «delta» de aprendizaje de Adaline
89
Algoritmo LMS (Least Mean squares)
w(k+1)=w(k) + alpha*error(k)*entrada
b(k+1)=b(k) + alpha*error(k)
90
Diferencias perceptron - adaline
• ADALINE calcula el error a partir de la entrada neta, y el
PERCEPTRON usa la salida.
• El error total del ADALINE nunca será nulo, por lo que la
condición de terminación del algoritlno LMS suele ser:
Error(t)- Error(t-1) < ξ
• Aparece el parámetro alpha=tasa de aprendizaje alpha debe
poseer en teoría valores infinitamente pequeños. Se obtienen
buenos resultados con valores en torno a 0.1.
• ADALINE garantiza no sólo una solución válida para problemas
linealmente separables sino la que produce un error mínimo.
91
Backpropagation (antecedentes)

El primer algoritmo de entrenamiento para
redes multicapa fue desarrollado por Paul
Werbos en 1974, Fue solo hasta
mediados de los años 80 cuando el
algoritmo Backpropagation o algoritmo de
propagación inversa fue re-descubierto.
92
Backpropagation

La importancia de esta red consiste en
que, las neuronas de las capas
intermedias se organizan a sí mismas de
tal modo que las distintas neuronas
aprenden
a
reconocer
distintas
características del espacio total de
entrada.
93
Backpropagation

Después del entrenamiento, cuando se les
presente un patrón arbitrario de entrada que
contenga ruido o que esté incompleto, las
neuronas de la capa oculta de la red
responderán con una salida activa si la nueva
entrada contiene un patrón que se asemeje a
aquella característica que las neuronas
individuales hayan aprendido a reconocer
durante su entrenamiento.
94
Backpropagation

Y a la inversa, las unidades de las capas
ocultas tienen una tendencia a inhibir su
salida si el patrón de entrada no contiene
la característica para reconocer, para la
cual han sido entrenadas.
95
Backpropagation

Varias investigaciones han demostrado
que, durante el proceso de entrenamiento,
la red Backpropagation tiende a
desarrollar relaciones internas entre
neuronas con el fin de organizar los datos
de entrenamiento en clases.
96
Arquitectura
97
Regla de Aprendizaje mediante
reducción del error

q: Equivale al número de componentes el vector
de entrada.
m: Número de neuronas de la capa oculta
l: Número de neuronas de la capa de salida
98

Para iniciar el entrenamiento se le presenta a la red un patrón de
entrenamiento, el cual tiene q componentes:
 p1 
 
 p2 
 
P . 
.
 
 . 
 pq 
99

Cuando se le presenta a la red una patrón de entrenamiento, este
se propaga a través de las conexiones existentes produciendo
una entrada neta n en cada una las neuronas de la siguiente
capa.

W: Peso que une la componente i de la entrada con la neurona j
de
la
capa
oculta
p: Componente i del vector p que contiene el patrón de
entrenamiento
de
q
componentes
b: Ganancia de la neurona j de la capa oculta
100
Compute the Sensitivities (Backpropagation)

Sensitivity
m  F̂
si  --------mni
m 1 T
ˆ
ˆ
F  n  Fˆ
m
m
m
m 1 T F


s  m  
 F n W 
m 
m 1
m 1
n

n

n

n


101
Backpropagation (Sensitivities)

The sensitivities are computed by starting at the last layer, and
then propagating backwards through the network to the first layer.
M
s s
M –1
2
1
s s
102
Initialization (Last Layer)
S
M
si
M
2
   tj – a j 
T
a
F̂
 t – a  t – a
= ---------- = -------------------------------------- = -----j--=----1------------------------ = – 2 t i – a i --------i-M
M
M
M
n i
ni
n i
ni
ai
aiM f M niM   M M
 M 
 f ni 
M
M
ni
ni
ni
siM  2ti  ai  f M niM 
sM  2F M n M t  a
103
Summary
Forward Propagation
0
a = p
m+1
a
=f
m+ 1
m+1 m
W
m+ 1
a +b
m = 0 2   M – 1

a = aM
Backpropagation
sM  2F M n M t  a
T
sm  F m nm Wm1  sm1
m  M  1,,2,1
Weight Update
m
m
m
W  k + 1 = W  k  – s a
m–1 T

m
m
m
b k + 1 = b k  – s
104
Example: Function Approximation with
logsig

g p = 1 + sin --- p
4
t
-
p
e
+
1-2-1
Network
a
105
Network
p
1-2-1
Network
a
106
Initial Conditions
1
W  0  = – 0.27
1
b  0  = – 0.48
– 0.41
2
W  0  = 0.09 – 0.17
– 0.13
2
b 0  = 0.48
∞=0.1
3
Network Response
Sine Wave
2
1
0
-1
-2
-1
0
1
2
107
Forward Propagation
0
a = p = 1
 –0.27

 – 0.75 
–
0.48
a = f W a + b  = l ogsig 
 = logsi g

1 +
 –0.41
– 0.13 
 – 0.54 
1
1
1 0
1
1
-------------------0.75
1
1
+
e
a =
= 0.321
1
0.368
-------------0.54
------1+ e
2
2
2 1
2
a = f W a + b  = purelin ( 0.09 – 0.17 0.321 + 0.48 ) = 0.446
0.368

  2 
 
e = t – a =  1 + sin  ---p  – a =  1 + sin --- 1   – 0.446 = 1.261
4 
4 


108
Transfer Function Derivatives
–n
1 
1  1 
d
e


=
--------=
-----------=
1
–
------------- ----------------- = 1 – a 1  a 1 


f n

2
d n 1 + e –n 
1 + e – n  1 + e –n 
 1 + e– n 
1
2
d  = 1
f n  =
n
dn
109
Backpropagation
2
s2 = – 2 F (n 2 ) t – a  = – 2 f 2 n2   1.261  = – 2 1  1.261  = –2.522
1
1
1)
1
2 T 2
s = F (n  W  s =
0
1
s = 1 – 0.321 0.321
0
1
s = 0.218
0
1
 1 – a 1  a 1 
0
0.09
– 2.522
1
1
–
0.17
 1 – a 2  a 2 
0
0.09
– 2.522
 1 – 0.368  0.368 – 0.17
0
– 0.227 = – 0.0495
0.233 0.429
0.0997
110
Weight Update
2
2
2
 = 0.1
1 T
W 1 = W 0  – s  a  = 0.09 –0.17 – 0.1 –2.522 0.321 0.368
2
W  1  = 0.171 – 0.0772
2
2
2
b  1 = b 0  – s = 0.48 – 0.1 –2.522 = 0.732
1
1
1 0 T
W  1  = W  0  – s a  = – 0.27 – 0.1 – 0.0495 1 = – 0.265
– 0.41
0.0997
– 0.420
1
1
1
b  1  = b 0  –  s = – 0.48 – 0.1 – 0.0495 = – 0.475
– 0.13
0.0997
– 0.140
111
Choice of Architecture

i
t  p  = 1 + sin --4--- p 
p = –2 –1.6 –1.2   1.6 2
1-3-1 Network
3
2
3
i=1
2
1
1
0
0
-1
-2
3
2
-1
0
1
2
-1
-2
3
i=4
2
1
1
0
0
-1
-2
-1
0
1
2
-1
-2
i=2
-1
0
1
2
1
2
i=8
-1
0
112
Choice of Network6 Architecture
-- p 
t  p  = 1 + sin ---4 
3
2
3
1-2-1
2
1
1
0
0
-1
-2
3
2
-1
0
1
2
-1
-2
3
1-4-1
2
1
1
0
0
-1
-2
-1
0
1
2
-1
-2
1-3-1
-1
0
1
2
1
2
1-5-1
-1
0
113
Convergence
t  p  = 1 + sin  p 
3
3
5
2
2
1
3
1
2
0
1
4
0
5
3
4
2
0
0
1
-1
-2
-1
0
1
2
-1
-2
-1
0
1
2
114
Generalization
p t
p
{ 1, 1}  {
2, t2 }
   {pQ, tQ}
 
t  p  = 1 + sin  -4-- p 
p = –2 –1.6 –1.2   1.6 2
3
3
1-2-1
1-9-1
2
2
1
1
0
0
-1
-2
-1
0
1
2
-1
-2
-1
0
1
2
115
Ejemplo con tangente sigmoidal

Tansig
exp( x)  exp(  x)
n
exp( x)  exp(  x)
ó
2
n
1
(1  exp( 2 * x))
116
Derivadas de tansig y purelin

TanSig
Purelin
117
Los valores de las derivadas del
error medio cuadrático son:

Los valores de las derivadas del error
medio cuadrático son:

tansig

purelin
118
119
Aproximar la siguiente función
120
Conjunto de entrenamiento
121
122
Valores iniciales función 1
123
Aproximar la siguiente función 2
124


p = -1:0.1:1;
t = [-.9602, -.5770, -.0729, .3771, .6405, .6600,
.4609, 0.1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988,
.3072, .3960, .3449, .1816, -.0312, -.2189, -.3201];
125

ρ=0.01;

w1 = [3.5000; 3.5000; 3.5000; 3.5000; 3.5000];
b1 = [-2.8562; 1.0774; -0.5880; 1.4083; 2.8722];
w2 = [0.2622, -0.2375, -0.4525, 0.2361, -0.1718];
b2 = [0.1326];



126
Función 3
127
Clasificador de vocales

Representación de letras
A=[1 1 1 1;
1 0 0 1;
1 1 1 1;
1 0 0 1];
128
A=[1 1 1 1;
1 0 0 1;
1 1 1 1;
1 0 0 1];
E=[1 1 1 1;
1 0 1 0;
1 0 1 0;
1 1 1 1];
O=[1 1 1 1;
1 0 0 1;
1 0 0 1;
1 1 1 1];
I=[1 1 1 1;
0 1 0 0;
0 1 0 0;
1 1 1 1];
U=[1 0 0 1;
1 0 0 1;
1 0 0 1;
1 1 1 1];
129
Matriz de patrones
A
E
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
I
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
O
U
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0.1 0.2 0.3 0.4 0.5
130
Matriz de etiquetas
 0 .1

0

 0

 0
 0

0
0
0
0 .2
0
0
0
0 .3
0
0
0
0 .4
0
0
0
0 

0 
0 

0 
0.5
131
Patrón letra “A”
1
t
1
1
1
1
0
0.1
0.0
0
1
0.0
1
1
0.0
1
1
1
0.0
0
0
1
132
Aproximación de función con Newff
(matlab)
p=-2:0.8:2;
t=sin(pi*p/4);
%p=[-2 -1.2 -0.4 0.4 1.2 2];
%t=[-1 -0.81 -0.31 0.309 0.809 1];
net =newff(p, t ,[5 1],{'tansig','purelin'},'traingdx','learngdm','mse');
133
net.divideFcn = '';
 net.trainParam.show = 10;
 net.trainParam.epochs = 100;
 net.trainParam.lr = 0.01;
 net.trainparam.goal=0.001;

134
net = train(net,p,t);
 y2 = sim(net,p);
 plot(p,t,'-b',p,y2,'-r');

135
Clasificador de vocales
A=[1 1 1 1 1;
1 0 0 0 1;
1 1 1 1 1;
1 0 0 0 1;
1 0 0 0 1];
figure(1),imagesc(A)
AA=A(:); %Convierte la matriz a vector
136
Crea matriz de patrones

matriz=cat(2,AA,EE,II,OO,UU);
137
meta=[.1 0 0 0 0;
0 .2 0 0 0;
0 0 .3 0 0;
0 0 0 .4 0;
0 0 0 0 .5];
138







net = newff(matriz, meta,[50 5],{'tansig',
'purelin'},'trainscg');
net.divideFcn = '';
net.trainParam.show = 10;
net.trainParam.epochs = 200;
net.trainParam.lr = 0.001;
net.trainparam.min_grad=1e-20;
net.trainparam.goal=0.00001;
139
ENTRENA LA RED CON LAS CARACTERISTICAS
ANTES ESTABLECIDAS

[net,tr] = train(net,matriz,meta);
140
Patrón de prueba

X=[1 1 1 1 1;
1 0 0 0 1;
1 1 1 1 1;
1 0 1 0 1;
1 1 1 0 1];
figure(6),imagesc(X)

XX=X(:);

y=sim(net,XX)
[a, clase_obtenida]=max(y)






141
Clasificador alfabético
142
143
Hopfield

Uno de los principales responsables
desarrollo
que
ha
experimentado
computación neuronal ha sido J. Hopfield.
del
la

Este modelo consiste en una red monocapa con
N neuronas cuyos valores de salida son binarios
: 0/1 ó -1/+1
144

Las funciones de activación son del tipo escalón. Se
trata, por tanto, de una red discreta con entradas y
salidas binarias.
• f(x) = +1 si x > 0i
• f(x) = -1 si x < 0i
• f(x) = x si x = 0i
i
i
145

0i es el umbral de disparo de la neurona i, que
representa el desplazamiento de la función de
transferencia. En este modelo suele adoptar un valor
proporcional a la suma de los pesos de las conexiones
de cada neurona con el resto:
N
Oi  k
w
ij
j 1
donde :
∑ es la sumatoria desde j = 1 hasta N
k es la constante de proporcionalidad
146

Existen conexiones laterales (cada neurona se
encuentra conectada a todas las demás) pero
no autorrecurrentes (no consigo misma). Los
pesos asociados a las conexiones entre pares
de neuronas son simétricos (wij = wji)
147
Funcionamiento

Se trata de una red autoasociativa. Por tanto,
diferentes patrones pueden ser almacenados en
la red, como si de una memoria se tratase,
durante la etapa de aprendizaje.
148
Aprendizaje

El mecanismo de aprendizaje utilizado es
de tipo OFF LINE, por lo que existe una
etapa de aprendizaje y otra de
funcionamiento de la red. Utiliza
aprendizaje no supervisado.
149

Utilizando una notación matricial, para
representar los pesos de la red se puede utilizar
una matriz de dimensión NxN (N es el número
de neuronas de la red y por tanto de
componentes del vector de entrada). Esta matriz
es simétrica (wij = wji) y con la diagonal con
valores nulos (wii = 0) al no haber conexiones
autorecurrentes.
150

Utilizando esta notación, el aprendizaje consistiría en
la creación de la matriz de pesos W a partir de los k
vectores de entrada que se enseñan a la red.
N

W=
(T(Ek). Ek - I)
k 1
N
Donde

k 1
es la sumatoria para k igual a 1 hasta el número de
neuronas, N
T(Ek) es la transpuesta de la matriz Ek
I es la matriz identidad que anula los pesos de las conexiones
autorecurrentes wii
151
Ejemplo: Hopfield

El entrenamiento va a consistir en el aprendizaje de dos
patrones de cuatro pixeles cada una. Los pixeles se
representan mediante el valor -1 si es blanco y 1 si es
negro.
Patrón 1 Patrón 2
152

Los valores de los vectores de entrada que
representan cada patrón son:
E1= [1,1,-1,-1]

y
E2 = [-1,-1,1,1]
Por tanto, los patrones de entrada a la red van a
ser dos vectores (M=2) de 4 elementos (N=4)
conteniendo los valores de los píxeles.
153
Etapa de aprendizaje

El aprendizaje de estos dos patrones consiste en la obtención de
los pesos de la red (matriz W).

Para la entrada E1, la salida W1 es:
W1
1
TE1.E1-I =
1
1000
.
1 1 -1 -1
-
0100
=
0
1
-1
-1
1
0
-1
-1
-1
0010
-1
-1
0
1
-1
0001
-1
-1
1
0
154

Para la entrada E2, la salida W2 es:
W2
TE2.E2-I =
-1
-1 .
1
1
1000
-1 -1 1 1 - 0 1 0 0
0010
0001
=
0
1
1
0
-1 -1
-1 -1
-1 -1
-1 -1
0
1
155
1
0

Sumando W1 y W2 se obtiene la matriz de
pesos definitiva, W:
W=W1+W2 =
0
2
-2
-2
2
0
-2
-2
-2
-2
0
2
-2
-2
2
0
156
Etapa de funcionamiento

Si aplicamos a la red la entrada:
157

E = [1 -1 -1 -1] , el vector de salida seria:
158

Como suponemos una función de
activación de cada neurona de tipo
escalón con desplazamiento sobre el
origen, ß=0, la salida de la red después de
la primera iteración es:

S(t) = [1 1 -1 -1]
159

Repitiendo el proceso, tomando como
entrada la salida anterior, S
S(t)
160

Aplicando igualmente la función de activación la
salida obtenida es:

S(t+1) = [1 1 -1 -1]

Al repetirse la salida, la red se ha estabilizado,
generándose el patrón más parecido al que se
ha presentado como entrada.
161

Cálculo de energía para cada patrón
1 T
E   x Wx
2
162
Distancia de Hamming

En Teoría de la Información se denomina distancia de
Hamming a la efectividad de los códigos de bloque y
depende de la diferencia entre una palabra de código
válida y otra.

Por ejemplo:

La distancia Hamming entre 1011101 y 1001001 es 2.
La distancia Hamming entre 2143896 y 2233796 es 3.
La distancia Hamming entre "toned" y "roses" es 3.


163
Calculo de distancias


Hamming
Euclidea
k
k
i 0
i 0
d H   ai  bi , cuando _ ai  bi
M
D2  (  ( xi  yi ) 2 )
i 1


Distancia Minkowski, p=2
1/ p
M
D p (x, y )  (  ( xi  yi ) p )
Distancia Manhatan o City-Block
i 1
M
D1   | xi  yi |
i 1
164
Ejercicio 1

Patrones de entrada (7 X 6):

y comprobar su funcionamiento para la figura
distorsionada
165
Ejercicio 2

Distorsionar en 20% la letra A

Distorsionar en 40% la letra A

Distorsionar en 60% la letra A

Distorsionar en 80% la letra A
166
Ejercicio 3
167

Gracias!
168

Cada una de las neuronas de la capa oculta
tiene como salida a

f: Función de transferencia de las neuronas de
la capa oculta
169

La salida de la red de cada neurona a se compara con
la salida deseada t para calcular el error en cada
unidad de salida

e0  t0  a
s
0

170

El error medio cuadrático para patrón es:
s
1
2
emc   e0 
2 k 1
171

Calculo del error en la capa de salida:
 0  ti  ai * ai * 1  ai 

Calculo del error en la capa oculta:
 j

 i    wmj 0  * ai * 1  ai 
 m1

172


Actualización
de
los
pesos que conectan la
capa oculta con la capa
de salida:
Para
los
pesos
conectados de la capa
oculta con la entrada:
wij  wij  0ai
wij  wij  i pi
173
Backpropagation (sentividad)
174
Las sensitividades, empezando desde
la última hasta la primera capa.

tansig

purelin
175
Luego de encontrar el valor del gradiente del error se
procede a actualizar los pesos.

Para la actualización de los pesos que conectan la capa oculta
con la capa de salida:
wkj (t  1)  wkj (t )  s2 ai
bk (t  1)  bk (t )  s2

Para la actualización de los pesos que conectan la capa de
entrada con la capa oculta:
w ji (t  1)  w ji (t )  s1 pi
b j (t  1)  b j (t )  s1
176