Sie sind auf Seite 1von 28

Redes Neuronales

Las redes neuronales son modelos computacionales que buscan imitar el funcio-
namiento de las neuronas biológicas.

Se usan principalmente para el reconocimiento de patrones complejos.

Para construir una red neuronal, es necesario hacerla pasar por un proceso de
aprendizaje.

Jorge Baier Aranda, PUC 24


Redes Neuronales Artificialies (RNAs)

Una red neuronal es un grafo dirigido construido a partir de elementos computa-


cionales básicos. Una red neuronal codifica funciones numéricas.

La función representada depende de parámetros de la red (especificados como


etiquetas en el grafo), y de la arquitectura de la misma (forma dada a las
interconexiones).

Los elementos computacionales básicos de una red son:


• Suma un nodo suma recibe un conjunto de entradas numéricas. Cada entrada
puede provenir de otros nodos o del medio.
x0

.. Pn
. Σ i=0 xi

xn

Jorge Baier Aranda, PUC 25


• Multiplicación
w
x wx
• Umbral (threshold units)
1 si x > 0
x cd
0 en otro caso

Jorge Baier Aranda, PUC 26


¿Cuándo Utilizar RNAs?

Problemas de aprendizaje altamente multidimensional (valores discretos o reales)

Función a aprender (función objetivo) real o discreta (puede ser vectorial).

Datos con ruido.

Función a aprender con forma desconocida.

El resultado (la función objetivo encontrada) no requiere de ser analizada.

Jorge Baier Aranda, PUC 27


Una Neurona

El modelo de neurona de McCulloch-Pitts (1943) o perceptrón es:


x0 = 1

x1
w1 w0

..
.
Σ cd

xn wn

Esta neurona elemental es conocida como una unidad de umbral lineal (linear
threshold unit o ltu) y representa una familia de funciones parametrizada por los
pesos w1, w2, . . . , wn, en particular, la función de salida será:
( Pn
1 Si i=0 wi xi > 0
f (x) =
0 en otro caso

Jorge Baier Aranda, PUC 28


En notación vectorial: (
1 Si w · x > 0,
f (x) =
0 en otro caso.

La función de salida se conoce también como función de activación.

Jorge Baier Aranda, PUC 29


Funciones no Lineales
Además de la función umbral que hemos visto recién, se utilizan funciones
continuas, las más utilizadas son:

Gaussiana: Pn 2
1
− 2σ
f (x) = e i=1 (xi −ci )

Activación Gaussiana
1.00

0.90

0.80

0.70

0.60 1.00
0.5
0.50 2

0.40

0.30

0.20

0.10

0.00
-5 -4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Jorge Baier Aranda, PUC 30


Donde σ y c1, . . . , cn son constantes. La respuesta de esta función depende de la
distancia entre x y c.

Sigmoidal: Se utiliza como una alternativa no lineal a la función umbral (cd).

1
f (x) = Pn
1+ e− i=1 wi xi

Activación Sigmoidal
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-5 -4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Esta función también se conoce como función logı́stica. Una razón importante
para preferir esta función a la función umbral , es que 1/(1 + e−x) es continua y
diferenciable.

Jorge Baier Aranda, PUC 31


Tangente Hiperbólica: Similar a la función logı́stica, pero tiene como rango a
[−1, 1]. La expresión es la siguiente.

1 − e−x
−x
.
1+e

Jorge Baier Aranda, PUC 32


Redes Neuronales

Una red neuronal se construye en base a neuronas como la de McCulloch-Pitts.


Si N1, . . . , N3 son neuronas de dos entradas, entonces una red puede ser como:

x1
N1

N4

N6
x2
N2

N5

x3
N3

Toda red neuronal determina una familia de funciones de salida. Una configuración
de pesos determina a una función individual de la familia.

Jorge Baier Aranda, PUC 33


Estructura de una Red Neuronal

Existen muchos tipos de redes neuronales.

Las redes neuronales más utilizadas de tipo feed-forward , que son grafos dirigidos
acı́clicos.

En el resto de nuestra exposición trabajaremos con redes que están ordenadas en


capas. En una red de este tipo, cada neurona está conectada sólo con neuronas
de la siguiente capa.

Jorge Baier Aranda, PUC 34


Aprendizaje en Redes Neuronales

Para lograr que una red neuronal pueda representar una función es necesario
someterla a un proceso de aprendizaje.

Debemos estar conscientes que por el sólo hecho de elegir una cierta estructura
para la red estamos incurriendo en un sesgo inductivo.

Si queremos aprender una función f (x) podemos usar una red neuronal de alguna
arquitectura y pesos que hay que definir.

Jorge Baier Aranda, PUC 35


Limitaciones de los Perceptrones

Los perceptrones sólo pueden aprender conceptos linealmente separables.

Un concepto es linealmente separable si existe un hiperplano capaz de separar


todos los puntos que el concepto clasifica como 1 de los que clasifica como 0.

Por ejemplo, un perceptrón no puede aprender el XOR.

Jorge Baier Aranda, PUC 36


Regla de Aprendizaje del Perceptrón
Veremos el caso particular de la neurona de McCulloch-Pitts:

La red se inicializa con valores aleatorios para los pesos wi. Si se está procesando
un ejemplo de entrenamiento con salida correcta d y la red entrega salida y, el
peso wi de la entrada xi se ajusta de acuerdo a la regla:

wi ← wi + η(d − y)xi.

η es una constante positiva llamada constante de aprendizaje.

La regla de aprendizaje se aplica iterativamente a cada uno de los ejemplos. Cada


vez que se procesa un ejemplo, se ajustan los pesos.

Si todos los ejemplos se clasifican correctamente, se detiene el proceso. En otro


caso, se vuelve al punto anterior.

Jorge Baier Aranda, PUC 37


Error Cuadrático Medio
El problema de aprendizaje en una red neuronal es un problema de búsqueda.
El espacio queda definido por:
• La arquitectura de la red.
• El espacio de valores de los parámetros de la red (pesos).

Dada la arquitectura de la red, buscaremos una hipótesis que maximice el


rendimiento (minimice el error, con respecto a los ejemplos). Ası́, si T es un
conjunto de n ejemplos, con hxi, dii ∈ T para i = 1 . . . n, el rendimiento es:
n
1X
P =− (f (xi) − di)2.
n i=1

donde f (xi) corresponde a la salida de la red para el i−ésimo ejemplo (conside-


rando una unidad con una sola salida).

La medida anterior considera el error mirando todos los ejemplos, por lo cual es
apropiada para métodos de aprendizaje batch.

Jorge Baier Aranda, PUC 38


La regla Delta de entrenamiento
La regla delta de entrenamiento está basada en un análisis matemático de la
función de salida de los perceptrones.
Está basada en el método del gradiente.

Una de sus ventajas es que funciona con cualquier función de activación diferen-
ciable.

Deduciremos uns regla de actualización de pesos para hacer aprender a un


perceptrón sin umbral (ADALINE). Es decir, una unidad lineal con:

o(x) = w · x

Si D = {hx0, d0i, . . . , hxn, dni} es el conjunto de entrenamiento, consideremos


la función de error como:
n
1X
E(w) = (dk − o(xk))2
2
k=1

Jorge Baier Aranda, PUC 39


El Gradiente
 
∂E ∂E ∂E
∇E(w) = , ,..., ,
∂w0 ∂w1 ∂wm
donde m es la dimensión de los ejemplos.

Ahora:
n
∂E ∂ 1X 2
= (dk − o(xk))
∂wi ∂wi 2 k=1
n
1X ∂ 2
= (dk − o(xk))
2 k=1 ∂wi
n
X ∂
= (dk − ok ) (dk − o(xk))
k=1
∂w i

n
X ∂
= (dk − ok ) (dk − w · xk)
k=1
∂w i

n
X
= (dk − ok )(−xk,i),
k=1

Jorge Baier Aranda, PUC 40


donde xk,i es la i-ésima componente de xk.

Como el gradiente da la dirección de mayor crecimiento, los pesos se pueden


actualizar con la regla:
w ← w − η∇E(w).
o bien: n
X
wi ← wi + η (dk − ok )(−xk,i).
k=1

Jorge Baier Aranda, PUC 41


Algoritmo de descenso por el gradiente
Descenso-Gradiente(ejemplos,η).

Cada ejemplo es un par hx, di y η es la tasa de aprendizaje.

Inicializar los pesos wi en un valor pequeño aleatorio.

Repita hasta que converja:


• Inicialice ∆wi en cero.
• Para cada hx, di en ejemplos:
◦ Calcule la salida o de la unidad.
◦ Para cada peso wi:
∆wi ← ∆wi + η(d − o)xi.
• Para cada wi:
wi ← wi + ∆wi.

Jorge Baier Aranda, PUC 42


Unidad de Umbral Sigmoidal

En redes más complejas, se utilizan con frecuencia unidades con funciones de


activiación no lineales. Una de las más populares son las unidades sigmoidales.

x0 = 1

x1
w1 w0

..
. σ (net)
S

xn wn

Donde:
net = w · x
y
1
o = σ(net) =
1 + e−net

Jorge Baier Aranda, PUC 43


Una caracterı́stica útil de la función logı́stica es que:

dσ(x)
= σ(x)(1 − σ(x)).
dx

Jorge Baier Aranda, PUC 44


Gradiente del error en Unidades Sigmoidales

Consideremos la medida de error E definida previamente y calculemos:

n
∂E ∂ 1X 2
= (dk − ok )
∂wi ∂wi 2 k=1
n
1X ∂ 2
= (dk − ok )
2 k=1 ∂wi
n
X ∂
= (dk − ok ) (dk − ok )
k=1
∂w i

n  
X ∂ok
= (dk − ok ) −
k=1
∂wi

Jorge Baier Aranda, PUC 45


Pero,

∂ok ∂σ(netk ) ∂σ(netk ) ∂netk


= =
∂wi ∂wi ∂netk ∂wi
= ok (1 − ok )xk,i

donde xk,i es la i-ésima componente de xk.

Finalmente: n
∂E X
=− (dk − ok )ok (1 − ok )xk,i
∂wi
k=1

Jorge Baier Aranda, PUC 46


Redes Multicapa

Veremos cómo entrenar redes de dos capas y extenderemos el resultado al caso


general.

Una red de dos capas se ve de la siguiente manera:


z0 = 1
x0 = 1
z1
1 1 y1 d1

x1
..
. (1) zj
wji (2)
wkj yk
xi j k yk dk
..
.
xn
zJ
yK
J K yK dK

Donde y1, . . . , yL son las salidas de la red y d1, . . . , dL son los datos usados para
entrenar.

Jorge Baier Aranda, PUC 47


Si consideramos el error cuadrático de todas las salidas,

K
1X
E(x) = (dm − ym)2
2 m=1

obtenemos la regla de actualización para los pesos de la última capa:

(2) ∂E
∆wkj = −η (2)
= η(dk − yk )f 0(netk )zj ,
∂wkj
PJ
donde k = 1, . . . , K y j = 1, . . . , J y netk = l=0 wkl zl y donde f es la función
de activación.
(1)
Para obtener la regla de actualización de pesos de wji es necesario aplicar la
regla de la cadena, obteniéndose lo siguiente:
" K
#
(1) (2)
X
∆wji = ρh (dk − yk )f 0(netk )wkj f 0(netj )xi
k=1

Jorge Baier Aranda, PUC 48


Error Backpropagation
Backpropagation(ejemplos, η , nin , nout , nhidden )

Caso particular de una red con una capa escondida, con conexiones completas hacia adelante y
unidades sigmoidales.

Inicializar todos los pesos en valores aleatorios pequeños.

Repita hasta que haya convergencia:

Para cada ejemplo:


1. Procese el ejemplo a través de la red y calcule la salida.
2. Para cada unidad k de salida:

δk ← yk (1 − yk )(tk − yk )

3. Para cada unidad escondida h


X
δh ← yh(1 − yh) wkhδk
k∈salidas

4. Actualizar los pesos wj,i:


wji ← wji + ηδj xj,i

Jorge Baier Aranda, PUC 49


Comentarios al Algoritmo
El ciclo principal del algoritmo se repite miles de veces. La condición de término
puede cambiarse:

Número fijo de iteraciones.

Terminar cuando el error en los ejemplos caiga bajo un valor prefijado.

Terminar cuando el error en un conjunto de validación obedezca un criterio, etc.

Jorge Baier Aranda, PUC 50


¿Qué podemos representar?

Funciones booleanas: Cualquier función booleana es representable por una red


con una capa escondida. El número de nodos en la capa escondida puede crecer
exponencialmente en el número de entradas.

Funciones continuas: Cualquier función continua acotada puede representarse


con una red con una capa escondida de unidades sigmoidales y una capa de salida
de unidades lineales (sin umbral).

Funciones Arbitrarias: Cualquier función puede aproximarse con una red con
dos capas escondidas de unidades sigmoidales y una capa de salida de unidades
lineales (sin umbral).

Jorge Baier Aranda, PUC 51

Das könnte Ihnen auch gefallen