Publicado el 10 de Octubre del 2019
1.631 visualizaciones desde el 10 de Octubre del 2019
808,4 KB
56 paginas
Creado hace 5a (02/11/2018)
Tema 4: Introducción a las redes neuronales
D. Balbontín Noval
F. J. Martín Mateos
J. L. Ruiz Reina
Dpto. Ciencias de la Computación e Inteligencia Artificial
Universidad de Sevilla
Neuronas artificiales: inspiración biológica
• El aprendizaje en los sistemas biológicos está basado en redes
muy complejas de neuronas interconectadas
• La neurona es una célula que recibe señales
electromagnéticas, provenientes del exterior (10 %), o de otras
neuronas (90 %), a través de las sinapsis de las dendritas
• Si la acumulación de estímulos recibidos supera un cierto
umbral, la neurona se dispara. Esto es, emite a través del axón
una señal que será recibida por otras neuronas, a través de las
conexiones sinápticas de las dendritas
Neuronas artificiales: inspiración biológica
• El aprendizaje en los sistemas biológicos está basado en redes
muy complejas de neuronas interconectadas
• La neurona es una célula que recibe señales
electromagnéticas, provenientes del exterior (10 %), o de otras
neuronas (90 %), a través de las sinapsis de las dendritas
• Si la acumulación de estímulos recibidos supera un cierto
umbral, la neurona se dispara. Esto es, emite a través del axón
una señal que será recibida por otras neuronas, a través de las
conexiones sinápticas de las dendritas
Neuronas artificiales: inspiración biológica
• El área de la conexión sináptica puede potenciar o debilitar la
señal recibida. Las conexiones sinápticas son dinámicas. Con
el desarrollo y el aprendizaje algunas conexiones se potencian,
otras se debilitan
• Cerebro humano: red de neuronas interconectadas
• Aproximadamente 1011 neuronas con 104 conexiones cada una
• Las neuronas son lentas, comparadas con los ordenadores:
10−3 sgs. para activarse/desactivarse
• Sin embargo, los humanos hacen algunas tareas mucho mejor
que los ordenadores (p.ej., en 10−1 segundos uno puede
reconocer visualmente a su madre)
• La clave: paralelismo masivo
Redes Neuronales Artificiales (RNA)
• Modelo matemático basado en una estructura de grafo
dirigido cuyos nodos son neuronas artificiales. Por ejemplo:
Redes Neuronales Artificiales (RNA)
• Modelo matemático basado en una estructura de grafo
dirigido cuyos nodos son neuronas artificiales. Por ejemplo:
Redes Neuronales Artificiales (RNA)
• Modelo matemático basado en una estructura de grafo
dirigido cuyos nodos son neuronas artificiales. Por ejemplo:
Funcionamiento general de una red neuronal
• Cada nodo o unidad (neurona artificial), se conecta a otras
unidades a través de arcos dirigidos (modelando la conexión
axón → dendritas)
• Cada arco j → i sirve para propagar la salida de la unidad j
(notada aj ) que servirá como una de las entradas para la
unidad i. Las entradas y salidas son números
• Cada arco j → i tiene asociado un peso numérico wji que
determina la fuerza y el signo de la conexión (simulando la
sinapsis)
Funcionamiento general de una red neuronal
• Cada unidad calcula su salida en función de las entradas que
recibe
• La salida de cada unidad sirve, a su vez, como una de las
entradas de otras neuronas
• El cálculo que se realiza en cada unidad será muy simple, como
veremos
• La red recibe una serie de entradas externas (unidades de
entrada) y devuelve al exterior la salida de algunas de sus
neuronas, llamadas unidades de salida
Cálculo realizado por cada unidad
• La salida de cada unidad se calcula: ai = g (Pn
j=0 wji aj )
• Donde:
• g es una función de activación
• El sumatorio Pn
j=0 wji aj (notado ini ) se hace sobre todas las
unidades j que envían su salida a la unidad i
• Excepto para j = 0, que se considera una entrada ficticia
a0 = −1 y un peso w0i denominado umbral
Umbral y funciones de activación
• Intuitivamente, el umbral w0i de cada unidad se interpreta
como una cantidad que debe superar la suma de las señales de
entrada que recibe la unidad, para que se active
• La función de activación g tiene el papel de evitar que la red
sea simplemente una función lineal (sumas y multiplicaciones
por escalares). Así se enriquece la expresividad y la red es
capaz de aprender funciones más complejas.
• Funciones de activación más usadas:
si
si
−1
• Función bipolar: sgn(x) = 1
• Función umbral: umbral(x) = 1 si
0 si
• Función ReLU: ReLU(x) = max{0, x}
• Función sigmoide: σ(x) = 1
1+e−x
x > 0
x ≤ 0
x > 0
x ≤ 0
• La función sigmoide es derivable y σ′(x) = σ(x)(1 − σ(x))
Funciones de activación
Función umbral
umbral(x) = 1 si x > 0
0 si x ≤ 0
Función sigmoide
σ(x) = 1
1+e−x
Tangente hiperbólica
tanh(x) = 2
1+e−2x − 1 = 2σ(2x) − 1
ReLU
ReLU(x) = max{0, x}
Redes neuronales hacia adelante
• Cuando el grafo que representa a la red es acíclico, la red se
denomina hacia adelante (las que trataremos en este tema)
Redes neuronales hacia adelante
• Las unidades en una red hacia adelante suelen estructurarse
en capas, tal que cada capa recibe sus entradas de unidades
de la capa inmediatamente anterior
• Capa de entrada, capas ocultas y capa de salida
• Hablamos entonces de redes multicapa
• Otras arquitecturas: redes recurrentes, en la que las unidades
de salida retroalimentan a las de entrada
Redes neuronales como clasificadores
• Una red neuronal hacia adelante con n unidades en la capa de
entrada y m unidades en la capa de salida no es más que una
función de R n en R m
• Por tanto, puede usarse como un clasificador de conjuntos en
R n:
• Para clasificación booleana, tomar m = 1 y:
• Si se tienen funciones de activación umbral o bipolar,
considerar un valor de salida (el 1, por ejemplo) como “SI” y
el otro como “NO”
• Si se usa el sigmoide, considerar un valor de salida por encima
de 0.5 como “SI” y un valor por debajo como “NO”
• En general, para clasificaciones con m posibles valores, cada
unidad de salida corresponde con un valor de clasificación; se
interpreta que la unidad con mayor salida es la que indica el
valor de clasificación
Redes Neuronales y Aprendizaje
• Cuando hablamos de aprendizaje o entrenamiento de redes
neuronales estamos hablando de encontrar los pesos de las
conexiones entre unidades, de manera que la red se comporte
de una determinada manera, descrita por un conjunto de
entrenamiento
• Específicamente, para redes neuronales hacia adelante, es
habitual plantear la siguiente tarea de aprendizaje supervisado
• Dado un conjunto de entrenamiento
D = {( ~xd , ~yd ) : ~xd ∈ R n, ~yd ∈ R m, d = 1, . . . , k}
• Y una red neuronal de la que sólo conocemos su estructura
(capas y número de unidades en cada capa)
• Encontrar un conjunto de pesos wij tal que la función de R n en
R m que la red representa se ajuste lo mejor posible a los
ejemplos del conjunto de entrenamiento
• Tendremos que concretar lo que significa “lo mejor posible”
Aplicaciones prácticas de redes neuronales
• Para problemas que se pueden expresar numéricamente
(discretos o continuos)
• Se suelen utilizar en dominios en los que el volumen de datos
es muy alto, y puede presentar ruido: cámaras, micrófonos,
imágenes digitalizadas, etc
• En los que interesa la solución, pero no el por qué de la misma
• Problemas en los que es asumible que se necesite previamente
un tiempo largo de entrenamiento de la red
• Y en los que se requieren tiempos cortos para evaluar una
nueva instancia
ALVINN
Coche autónomo de 1989
ALVINN
Coche autónomo de 1989
• Una capa de entrada con 1217 neuronas: 30 × 32 (píxeles de
la video cámara); 8 × 32 (laser range finder); 1 (road intensity
feedback).
• 29 neuronas en la capa oculta.
• 46 neuronas en la capa de salida: 45 para codificar la
curvatura del movimiento y 1 road intensity feedback.
x
ALVINN: un ejemplo de aplicación
• RNA entrenada para conducir un vehículo, a 70 Kms/h, en
función de la percepción visual que recibe de unos sensores
• Entrada a la red (simplificación) : La imagen de la carretera
digitalizada como un array de 30 × 32 pixels. Es decir, 960
datos de entrada
• Salida de la red (simplificación): Indicación sobre hacia dónde
torcer el volante, codificada en la forma de un vector de 30
componentes (desde girar totalmente a la izquierda, pasando
por seguir recto, hasta girar totalmente a la derecha)
• Estructura: una red hacia adelante, con una capa de entrada
con 960 unidades, una capa oculta de 4 unidades y una capa
de salida con 30 unidades
ALVINN: un ejemplo de aplicación
• Entrenamiento: mediante un conductor humano, que conduce
el vehículo una y otra y otra vez
• Los sensores de visión registran la imagen que el conductor ve
(secuencias de 960 datos cada una)
• Otros sensores registran simultáneamente las acciones
(movimientos del volante) que éste realiza
• Una vez codificada ambas informaciones adecuadamente,
disponemos de distintos pares (secuencias) de la forma (~x, ~y ),
donde ~x = (x1, x2, . . . , x960) e ~y = (y1, y2, . . . , y30),
constituyen ejemplos de entrada/salida para la red
• Objetivo: encontrar los valores de los pesos wji asociados a
cada arco j → i de la red de tal forma que para cada dato de
entrada ~x, que propaguemos a lo largo de la red el valor
obtenido en la salida coincida con el valor ~y correspondiente
(o se parezca lo más posible)
Ejemplos de aplicaciones prácticas
• Clasificación
• Reconocimiento de patrones
• Optimización
• Predicción: climatológica, de audiencias, etc
• Procesamiento del lenguaje natural
• Interpretación de datos sensoriales del mundo real
• Reconocimiento de voz
• Visión artificial, reconocimiento de imágenes
• Satisfacción de restricciones
• Control, de robots, vehículos, etc
• Compresión de datos
• Diagnosis
Perceptrones
• Empezamos estudiando el caso más simple de red neuronal:
sólo una capa de entrada y una de salida
• Puesto que cada salida es independiente, podemos centrarnos
en una única unidad en la capa de salida
• Este tipo de red se deno
Comentarios de: Tema 4: Introducción a las redes neuronales (2)