SISTEMAS INTELIGENTES - aic.uniovi.esaic.uniovi.es/ssii/SSII-T10-RedesNeuronales.pdf · para que...
Transcript of SISTEMAS INTELIGENTES - aic.uniovi.esaic.uniovi.es/ssii/SSII-T10-RedesNeuronales.pdf · para que...
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
SISTEMAS INTELIGENTES
T10: Redes Neuronales
www.aic.uniovi.es/ssii
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Índice • Redes Neuronales Artificiales
° Fundamentos biológicos
• Perceptrón ° Funciones de activación
• Redes de neuronas
• Entrenamiento: ° Perceptrón ° Descenso de gradiente: regla delta ° Backpropagation
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Redes de Neuronas Artificiales (ANNs) • Están inspiradas en los sistemas neuronales biológicos • Neurona: célula cerebral encargada de recoger, procesar y
transmitir señales eléctricas • No alcanzan su nivel de complejidad (ni de prestaciones L)
° Número de neuronas en el cerebro humano: ~1010
° Tiempo de activación/inhibición: ~10-3 ° Conexiones (sinapsis) por neurona: ~104–105
° Reconocimiento de escenas: 0.1 segundos ° Procesamiento no lineal ° Masivo grado de paralelismo ° Representaciones distribuidas ° Adaptativo
• Tratan de capturar este modelo de funcionamiento, pero: ° Normalmente, menos de 1000 neuronas ° No capturan todo el comportamiento neuronal
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Neuronas humanas • Soma: contiene el núcleo
celular • Dendritas: entradas • Axon/Sinapsis: conexión entre
neuronas • La información fluye
unidireccionalmente • El soma a través de axon/
sinapsis puede mandar un mensaje de excitación/inhibición (neurotransmisión)
• Éste será captado por las dendritas de otra neurona
• A lo largo del tiempo (aprendizaje), la conexión entre dos neuronas se hará más fuerte o más débil
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Definición y propiedades “sistema compuesto por múltiples unidades de
proceso que operan en paralelo y cuya funcionalidad depende de la estructura de la
red, de la fuerza de las conexiones, y del procesamiento realizado en cada
nodo” [DARPA, 98] • Propiedades:
° Formadas por conjuntos de neuronas individuales activadas por umbral
° Muchas conexiones con pesos entre las neuronas ° Procesamiento distribuido y paralelo ° El aprendizaje consistente en ajustar los pesos de las
conexiones entre las neuronas
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Tipos de problemas adecuados • Entradas formadas por vectores de valores
discretos o reales
• Pueden ser problemas de clasificación o regresión
• Puede producir vectores de valores
• Los usuarios finales no quieren obtener explicaciones: no producen conocimiento inteligible (caja negra)
• Los datos de entrenamiento pueden contener errores
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
ALVINN
Pesos entre capa oculta y la salida (1 neurona)
Pesos entre la entrada y la capa oculta
(1 neurona)
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Perceptrón
{ } | 1+ℜ∈= nwwH
x1
x2
xn
Σ
w1
w2
wn
x0 = 1
w0 ∑=
n
iii xw
0
⎩⎨⎧
−
>⋅=⋅=
caso otroen 10 si1
)sgn()(xw
xwxh
Representa UNA neurona
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Funciones de Activación
xy =
)sgn(xy =
⎪⎩
⎪⎨
⎧
>
≤≤−
−<−
=
1
1
lxlxlx
lxy
Lineal A tramos
Signo Sigmoide
Gaussiana
xey
−+=11
BxAey −=
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Definición de Red de Neuronas • Conjunto de neuronas artificiales conectadas
entre sí mediante una serie de arcos llamados conexiones
• Estas conexiones tienen números reales asociados, llamados pesos de la conexión
• Las neuronas generalmente se distribuyen en capas de distintos niveles, con conexiones que unen las neuronas de las distintas capas (pueden ser también de la misma capa)
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Ejemplo de Red de Neuronas
1.1
2.7
3.0
-1.3
2.7
4.2
-0.8
7.1
2.1
-1.2
1.1
0.2
0.3
CAPAS OCULTAS CAPA DE ENTRADA
EN
TR
AD
A
SAL
IDA
CAPA DE SALIDA CLASE
LOS VALORES SE PROPAGAN POR LA RED
A
B
C
Se escoge la clase que produce un valor mayor
Valor calculado usando Los valores de entrada
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Aprendizaje en una red de neuronas • Aprendizaje: la red modifica los pesos de las conexiones
para que las salidas de la red se vayan adaptando de manera paulatina al funcionamiento que se considera correcto
• La modificación de los pesos depende del paradigma de aprendizaje que estemos usando:
° Aprendizaje supervisado: para cada ejemplo presentado a la red existe una respuesta deseada. La respuesta de la red se compara con su salida esperada, y en base a esa comparación se ajustan los pesos de la red
° Aprendizaje no supervisado: no se especifica a la red cuál es la respuesta correcta. La red descubre las relaciones presentes en los ejemplos
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
La red más simple • Una neurona artificial • Aprendizaje de conceptos: ejemplos puntos en el
espacio Un, con su clase asociada • Separador lineal: dado un conjunto de ejemplos
determina el hiperplano capaz de discriminar los ejemplos en dos clases
• Es interesante estudiarlo porque nos permite diseñar redes con más neuronas
nnxwxwxwwxh ++++= ...)( 22110
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Separador Lineal
• Problema: el conjunto puede no ser linealmente separable (Ejemplo XOR)
• Solución: emplear redes multicapa
+
+
+
+ -
-
-
- +
+ -
- w
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Aprendizaje Perceptrón Algoritmo Aprendizaje Perceptron(w,X): w es Inicialización aleatoria del vector de pesos <w0, . . . ,wn> Mientras (no se cumpla la condición de parada) hacer Para cada ejemplo de entrada <(x1,...,xn), f(x1,...,xn)> Se calcula la salida de la red: h(x1,...,xn)= x1w1+ … + xnwn + w0
Si ( h(x1,...,xn) != f(x1,...,xn) ) entonces Se actualizan los pesos <w0, . . . ,wn> Fin si Fin Para Fin Mientras Retornar w Fin Algoritmo
• Para actualizar los pesos se siguen conceptos expuestos por Hebbian (si dos neuronas están activas, su conexión se refuerza)
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Perceptrón: regla de entrenamiento wi = wi + Δwi
Δwi = η [f(x) – h(x)] xi donde:
° f(x) es el valor de la función objetivo en el ejemplo x ° h(x) es la salida del preceptrón ° η es una pequeña constante que controla el ritmo de
aprendizaje (decrece con el tiempo)
• Función de activación: con umbral • Los pesos se actualizan para cada ejemplo • El algoritmo converge si:
° los ejemplos de entrada son linealmente separables ° η is suficientemente pequeña
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Descenso de gradiente (I) • Converge sólo asintóticamente al mínimo aún cuando el problema no es
linealmente separable • Es la base del algoritmo Backpropagation • Descenso de gradiente: consideremos una neurona lineal sin umbral
(salida continua)
h(x)=w0 + w1 x1 + … + wn xn
• Entrenamiento: minimizar el error cuadrático
E[w0,…,wn] = ½ Σx∈X (f(x) –h(x))2
• ¿Cómo minimizarlo? ° Nos movemos en la dirección que más reduce el error ° Dirección negativa del vector gradiente
• Diferencias: ° Perceptrón función de activación con umbral, Gradiente no ° Perceptrón actualización por ejemplo, Gradiente todos los datos ° Perceptrón: minimiza w ° Gradiente: minimiza error
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
[ ]
[ ]
( ) ( )( )
( ) ( )( )∑
∑
∈
∈
⎥⎦
⎤⎢⎣
⎡−
∂
∂=
∂
∂
⎥⎦
⎤⎢⎣
⎡−
∂
∂=
∂
∂
∂
∂−=Δ
⎥⎦
⎤⎢⎣
⎡
∂
∂
∂
∂
∂
∂≡∇
∇−=Δ
Dx
2
ii
Xx
2
ii
ii
n10
xhxfw2
1wE
xhxf21
wwE
wEw
wE,,
wE,
wEwE
wEw
η
η
…
( ) ( )( ) ( ) ( )( ) ( ) ( )( ) ( )( )
( ) ( )( )( )[ ]∑
∑∑
∈
∈∈
−−=∂
∂
⎥⎦
⎤⎢⎣
⎡⋅−
∂
∂−=⎥
⎦
⎤⎢⎣
⎡−
∂
∂−=
∂
∂
Xxi
i
Xx iXx ii
xxhxfwE
xwxfw
xhxfxhxfw
xhxf221
wE
Descenso de gradiente (II) (w1,w2)
(w1+Δw1,w2 +Δw2)
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Descenso de gradiente (III) Algoritmo Aprendizaje Gradiente(w,X): w es Inicialización aleatoria del vector de pesos <w0, . . . ,wn> Mientras (no se cumpla la condición de parada) hacer Δwi ← 0 para todo i Para cada ejemplo de entrada <(x1,...,xn), f(x1,...,xn)> Se calcula la salida de la red: h(x1,...,xn)= x1w1+ … + xnwn + w0
Para cada peso wi hacer Δwi ← Δwi + η ( f(x1,...,xn) - h(x1,...,xn) ) xi
Fin Para Fin Para wi ← wi + Δ wi Fin Mientras Retornar w Fin Algoritmo
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Descenso de gradiente (IV) • Es un paradigma muy importante de aprendizaje
• Su estrategia de búsqueda en espacios de hipótesis infinitos puede ser aplicada cuando:
° el espacio de hipótesis contiene hipótesis que pueden parametrizarse de una forma continua (e.g. pesos de una función lineal)
° podemos derivar el error respecto a los parámetros de la hipótesis
• Dificultades: ° converger al mínimo puede ser lento ° si hay mínimos locales no se garantiza alcanzar el
mínimo global
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Algunas consideraciones • Importancia de la constate η que controla el
ritmo de aprendizaje ° Dado que sólo existe un mínimo global, el algoritmo
converge aunque no sea LS, siempre que η sea suficientemente pequeña
° Si es demasiado grande, el algoritmo puede saltarse el mínimo
° Se suele ir reduciendo su valor para evitarlos
• Problemas: ° Si η es pequeña el algoritmo es más lento ° Si hay varios mínimos locales, el algoritmo puede
quedarse atrapado en ellos y no alcanzar el mínimo global
• ¿Cuándo se debe parar el aprendizaje?
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Descenso de gradiente incremental • Es una aproximación estocástica • Incremental: actualiza el peso tras cada ejemplo
Δwi = η ( f(x1,...,xn) - h(x1,...,xn) ) xi
• Puede aproximar el método del gradiente si la constate η es suficientemente pequeña
• Es mucho más rápido • Aunque existan varios mínimos locales, el
método incremental puede evitarlos ya que usa los grandientes de cada ejemplo (varios)
• La fórmula anterior se denomina también Regla Delta/LMS (Widrow-Hoff)
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Redes Multicapa (MLP) • Definición: una red multicapa está formada por
una capa de entrada, una o más capas intermedias, y una capa de salida
• Sólo las capas ocultas y la de salida contienen perceptrones
• Permiten representar funciones no lineales • Dificultad para diseñarlas • Se requiere mucho tiempo de entrenamiento • Usan funciones de activación no lineales:
sigmoide
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Backpropagation Algoritmo BackPropagation es Inicialización aleatoria de todos los pesos de la red (valores pequeños) Mientras (no se cumpla la condición de parada) hacer Para cada ejemplo de entrada <(x1,...,xn), f(x1,...,xn)> Se calcula la salida de cada neurona s de salida hs(x1,...,xn)
Propagar los errores a través de la red Para cada neurona s de la capa de salida se calcula su error hacer δs=hs(1-hs)(fs-hs) Para cada neurona o de la capa oculta hacer
δo=ho(1-ho)Σswso δs Para todos los pesos de la red wji ← wji + Δwji donde Δwji = wji + η δoxji Fin Mientras Retornar pesos Fin Algoritmo
Centro de Inteligencia Artificial
Universidad de Oviedo
Sistemas Inteligentes - T10: Redes Neuronales
Características • Usa el gradiente sobre toda la red de pesos • Fácil de generalizar para otros grafos dirigidos • Encuentra un mínimo local, no necesariamente global • A pesar de ello, es efectivo en la práctica • No hay desarrollos teóricos para garantizar la convergencia • Se han desarrollado heuríticos para mejorar el proceso
° Añadir momentum en el cálculo de los pesos Δwi,j(n)= η δj xi,j + α Δwi,j (n-1)
° Usar el gradiente estocástico o incremental ° Entrenar la misma red con diferentes pesos iniciales, se selecciona
la que produzca un error menor en un conjunto de validación ° Se podría combina la salidad de todas las redes
• Entrenamiento muy lento