117
Dr. Hugo A. Banda Gamboa CORDICYT Octubre, 2015 © Dr. Hugo A. Banda Gamboa - 2015 1

Computación neuronal

Embed Size (px)

Citation preview

Page 1: Computación neuronal

Dr. Hugo A. Banda Gamboa

CORDICYTOctubre, 2015

© Dr. Hugo A. Banda Gamboa - 2015 1

Page 2: Computación neuronal

CONTENIDO

I. Fundamentos de la Computación Neuronal

II. Modelo Neuronal

III. Aprendizaje Neuronal

IV. Arquitecturas Neuronales

V. Perceptrones

VI. Redes Lineales

VII. Redes de Retropropagación

VIII. Redes de Base Radial

IX. Redes Auto-organizativas y LVQ

X. Conclusión

© Dr. Hugo A. Banda Gamboa - 2015 2

Page 3: Computación neuronal

© Dr. Hugo A. Banda Gamboa - 2015 3

Page 4: Computación neuronal

Neurociencia y Ciencias Cognitivas La neurociencia es una disciplina científica que estudia

la estructura, función, desarrollo, genética, bioquímica, fisiología, farmacología, patología del sistema nervioso y la psicología. La neurociencia está en la frontera de la investigación del cerebro y la mente.

La ciencia cognitiva es el estudio interdisciplinario de la mente y la inteligencia. La hipótesis central de la ciencia cognitiva es que el pensamiento puede ser comprendido mejor en términos de estructuras representativas en la mente y procedimientos que operan sobre esas estructuras. Se asume que la mente usa representaciones análogas a la estructuras de datos de los computadores; y, procedimientos similares a algoritmos computacionales.

© Dr. Hugo A. Banda Gamboa - 2015 4

Page 5: Computación neuronal

La Neurona Biológica Nuestro sistema nervioso y, en especial,

nuestro cerebro, está compuesto por un conjunto de células nerviosas, también llamadas neuronas.

Una neurona es una célula altamente especializada en el proceso de la información, cuya estructura básica puede observarse en la Figura.

La morfología de una neurona comprende tres elementos principales: el soma, o núcleo; las dendritas, o terminaciones de la neurona que actúan como contactos funcionales de entrada con otras neuronas; y el axón o eje, una rama más larga que será la encargada de conducir el impulso nervioso y que finaliza también en diversas ramificaciones.

© Dr. Hugo A. Banda Gamboa - 2015 5

Page 6: Computación neuronal

Comunicación entre Neuronas … Se realiza a través de las llamadas sinapsis, que

son los puntos de conexión entre las fibras terminales del axón de una neurona y una dendrita de otra.

Las sinapsis también reciben el nombre de saltos sinápticos, ya que en la mayoría de los casos, fibras terminales y dendritas no están en contacto, sino separadas por una pequeña distancia.

Por ello, al contrario de lo que mucha gente piensa, el impulso nervioso no es de naturaleza eléctrica, sino electroquímica.

© Dr. Hugo A. Banda Gamboa - 2015 6

Page 7: Computación neuronal

Comunicación entre Neuronas

© Dr. Hugo A. Banda Gamboa - 2015 7

Page 8: Computación neuronal

Propagación de las Señales El impulso nervioso producido por una neurona se propaga por el

axón y al llegar al extremo, las fibras terminales pre-sinápticas liberan unos compuestos químicos llamados neurotransmisores.

Los neurotransmisores alteran el estado eléctrico de la membrana post-sináptica. En función del neurotransmisor liberado, el mecanismo puede resultar excitador o inhibidor para la neurona "receptora".

En el soma de una neurona se integran todos los estímulos recibidos a través de todas las dendritas. Si como resultado se supera un potencial de activación, la neurona se "dispara" generando un impulso que se transmitirá a través del axón.

Este impulso no es constante y la capacidad de reaccionar de la neurona varía con el tiempo hasta volver al estado de reposo. La comunicación tiene lugar a través de trenes de pulsos, por lo que los mensajes se encuentran modulados en frecuencia.

© Dr. Hugo A. Banda Gamboa - 2015 8

Page 9: Computación neuronal

Respuesta de una Neurona Biológica

Tanto el salto electroquímico como la aparición de períodos refractarios, limitan mucho la velocidad de la neurona biológica y el rango de frecuencia de los mensajes, que oscila entre unos pocos y algunos cientos de hertzios (ciclos/segundo).

Por ello, el tiempo de respuesta se ve limitado al orden de milisegundos, mucho más lenta que un circuito electrónico.

© Dr. Hugo A. Banda Gamboa - 2015 9

Page 10: Computación neuronal

Modelo Neuronal

© Dr. Hugo A. Banda Gamboa - 2015 10

Page 11: Computación neuronal

INTRODUCCIÓNLas neuronas biológicas, que sirven de modelo para la computación neuronal, son entre 5 a 6 órdenes de magnitud más lentas que los chips de silicio. Los eventos en la neuronas biológicas ocurren en el orden de los milisegundos (10-3), mientras que en los chips de silicio ocurren en el rango de los nanosegundos (10-9).

Sin embargo el masivo paralelismo del procesamiento neuronal biológico y su eficiencia energética, superan enormemente a los chips actuales.

© Dr. Hugo A. Banda Gamboa - 2015 11

Page 12: Computación neuronal

Diferencias entre Sistemas Neuronales

Nº de NeuronasNº Conexiones por Neurona

Cerebro Humano 1011 104

Cerebro de una Libélula

104 103

Red Neuronal Artificial

103 102

© Dr. Hugo A. Banda Gamboa - 2015

Page 13: Computación neuronal

Tipos de Redes Neuronales

TIPO DE RED NEURONAL

CARACTERÍSTICA

Red Neuronal Biológica

Orgánica

Red Neuronal Artificial

ComputarizadaAlgorítmica

Red Neuronal Artificial en Chip

Electrónica

© Dr. Hugo A. Banda Gamboa - 2015

Page 14: Computación neuronal

Red Neuronal Biológica

© Dr. Hugo A. Banda Gamboa - 2015 14

Page 15: Computación neuronal

Modelo Computacional de Neurona (McCulloch-Pitts) En 1943 McCulloch y Pitts publicaron un trabajo en el que

se hablaba, por primera vez, de las neuronas artificiales y de cómo éstas podrían realizar cálculos lógicos.

El modelo de neurona artificial propuesto consiste de una unidad con función de activación tipo escalón (binaria) similar a la que se observa en la Figura:

© Dr. Hugo A. Banda Gamboa - 2015 15

bp

bp

aR

i

ii

R

i

ii

1

1

:Si1

:Si0

∑ X

)(1

bpnR

i

ii

-b

1

1

b+

+

1

2

R-1

R

p1

p2

pR-1

pR

Page 16: Computación neuronal

Analogías del Modelo Este modelo de neurona artificial presenta

numerosas analogías con las neuronas biológicas:

Los cables o conexiones son análogos a dendritas y axones,

Los pesos de ponderación de las conexiones equivalen a las sinapsis; y,

El umbral de activación de la neurona representa la actividad del soma.

En función de su signo, los pesos sinápticos pueden actuar tanto como activadores (signo positivo) o como inhibidores (signo negativo).

© Dr. Hugo A. Banda Gamboa - 2015 16

Page 17: Computación neuronal

Operación de la Neurona La unidad realiza una función de proceso, sumando los

productos de los valores de las entradas pi por los pesos sinápticos i :

Si el resultado obtenido es igual o mayor al valor del umbral (-b), la neurona se activa produciendo como respuesta el valor de activación (a=1).

Por el contrario, si el resultado de aplicar la función de proceso a los valores de entrada no superara el valor del umbral (-b), la neurona permanecerá inactiva y su salida será nula (a=0).

© Dr. Hugo A. Banda Gamboa - 2015 17

R

i

ii p1

bpR

i

ii 1

bpR

i

ii 1

Page 18: Computación neuronal

Funciones de Activación Desde la publicación del trabajo de McCulloch y

Pitts ha habido numerosas generalizaciones a su modelo de neurona, pero la más empleada consiste en la sustitución de la función de salida tipo escalón, por una función rampa, Gaussiana y sigmoide:

© Dr. Hugo A. Banda Gamboa - 2015 18

)(1

1)(

bnenf

Rampa

-b

f(n)

n

a

1

Sigmoide

-b n

a

1

1/2

Gaussiana

-b

f(n)

n

a

1

Page 19: Computación neuronal

Función de Transferencia Sigmoide Bipolar

© Dr. Hugo A. Banda Gamboa - 2015 19

-15 -10 -5 0 5 10 15

-1

1f(n)

n

)(

)(

1

1)(

bn

bn

e

enf

)](2

1tanh[)( bnnf

-b

Page 20: Computación neuronal

Notación Vectorial En la práctica, para simplificar la notación y la

programación del modelo, se suele incluir el umbral de activación dentro del sumatorio.

El operador "asterisco" (*) representa el producto escalar de los vectores de las señales de entrada y de los pesos de las conexiones sinápticas.

© Dr. Hugo A. Banda Gamboa - 2015 20

Decisión de Umbralel

Atributos deVector el

Pesos de Matriz la es

Donde

)*()(1

b

bfbpfaR

i

ii

p

W

pW

aumentado atributos deVector

))(

y 1 :Si

0

00

a

a

p

pWf(pfa

bp

R

i

ii

Page 21: Computación neuronal

Modelo Abreviado de una Neurona con Vector a la Entrada

© Dr. Hugo A. Banda Gamboa - 2015 21

W

b

+ f

R

1

a1 x 1n

1 x 1

11 x 1

pR x 1

R=# de elementos en el vector de entrada

NeuronaEntrada

)( bfa Wp

1 x R

Page 22: Computación neuronal

Neuronas Artificiales en Chip

Un equipo de investigadores del Instituto Tecnológico de Massachussets (MIT), en Estados Unidos, ha conseguido crear un chip que imita la adaptación de las neuronas a cualquier información novedosa, a través de la actividad de sus canales iónicos.

Con unos 400 transistores, este circuito integrado o chip, fabricado en silicio es capaz de emular la actividad de las sinapsis neuronales.

El chip creado podría ayudar a los neurocientíficos a conocer a fondo el funcionamiento del cerebro, y dar lugar al desarrollo de partes constitutivas de dispositivos de inteligencia artificial

© Dr. Hugo A. Banda Gamboa - 2015 22

http://goo.gl/qJuoE5

Page 23: Computación neuronal

Neuronas Artificiales basadas en Memristores (Memory Resistors) El efecto de memoria de los memristores, es debido a la

histéresis en su curva característica voltaje-corriente. Gracias a ello pueden simular una neurona artificial.

La red de neuronas artificiales se implementa mediante una matriz de 12×12 memristores cada uno ocupando un área de 0,2×0,2 micrómetros. Cada memristor está fabricado mediante una heteroestructura formada por varias nanocapas (menos de 100 nm cada una) de óxido de aluminio (Al2O3), dióxido de titanio (TiO2–x), platino (Pt), titanio (Ti) y tantalio (Ta) sobre un sustrato de silicio.

© Dr. Hugo A. Banda Gamboa - 2015 23

http://goo.gl/SyfCNT

Page 24: Computación neuronal

Aprendizaje Neuronal

© Dr. Hugo A. Banda Gamboa - 2015 24

Page 25: Computación neuronal

¿Cómo Aprende una Neurona Artificial? El psicólogo Donald Hebb, en sus observaciones

de experimentos neurobiológicos dedujo que si las neuronas de ambos lados de una sinapsis se activan simultáneamente repetidas veces, el valor de la conexión sinaptica se incrementa.

Este principio es lo que se conoce como postulado de aprendizaje de Hebb.

El aprendizaje de una neurona y de una red neuronal se traduce en la adaptación de los pesos de sus conexiones sinápticas, para disminuir el error entre la salida producida ante una entrada y la salida correcta.

© Dr. Hugo A. Banda Gamboa - 2015 25

Page 26: Computación neuronal

El Proceso de Aprendizaje

El proceso de aprendizaje implica la siguiente secuencia de eventos:

La red neuronal es estimulada por muestras de su entorno.

La red neuronal sufre cambios como resultado del estímulo aplicado.

La red neuronal responde al entorno demostrando el entrenamiento recibido, debido a los cambios que han ocurrido en su estructura interna.

© Dr. Hugo A. Banda Gamboa - 2015 26

Page 27: Computación neuronal

Entorno y Conocimiento No existe una teoría bien desarrollada para

optimizar la arquitectura de una red neuronal requerida para interactuar con un cierto entorno de interés y para evaluar la forma en que los cambios en la arquitectura de la red afectan la representación del conocimiento dentro de la misma.

Respuestas satisfactorias a estos problemas se pueden encontrar a través de exhaustivos estudios experimentales, con el diseñador de la red neuronal convertido en parte esencial de la estructura del ciclo de aprendizaje.

© Dr. Hugo A. Banda Gamboa - 2015 27

Page 28: Computación neuronal

Representación del Conocimiento El conocimiento acerca de los objetos de

interés que están en un determinado entorno, está representado simbólicamente en los conjuntos de ejemplos que se seleccionan para:

Entrenar una red neuronal artificial (Training Set).

Comprobar el aprendizaje de una red neuronal artificial (Testing Set).

Verificar la operación de una red neuronal artificial (Working Set).

© Dr. Hugo A. Banda Gamboa - 2015 28

Page 29: Computación neuronal

Objetos de Interés y Patrones

Los objetos de interés pueden ser datos, caracteres impresos, señales audibles, visuales o electrónicas, imágenes, estados de un sistema o cualquier cosa susceptible de ser representada, aprendida, reconocida o clasificada.

Se los representa mediante patrones.

Un patrón es la abstracción de los atributos de un objeto de interés. Sintetiza sus principales rasgos característicos.

© Dr. Hugo A. Banda Gamboa - 2015 29

Page 30: Computación neuronal

Representación de PatronesUn patrón usualmente se lo representa por

un vector n-dimensional que integra un conjunto de mediciones obtenidas de los atributos del objeto de interés o de sus interrelaciones.

La representación del conocimiento mediante patrones y la selección del correspondiente conjunto de vectores constituye una de las principales tareas del proceso de diseño de soluciones con redes neuronales, y es la clave de su operación.

© Dr. Hugo A. Banda Gamboa - 2015 30

Page 31: Computación neuronal

Entrenamiento y Aprendizaje Formal

Cada ejemplo del conjunto de entrenamiento consiste de un par entrada – salida, esto es, un vector de entrada y su correspondiente respuesta deseada.

Un sistema es capaz de aprender un concepto si, dado un conjunto de ejemplos positivos y negativos, puede producir un algoritmo que pueda clasificar correctamente en el futuro, con probabilidad 1/h.

© Dr. Hugo A. Banda Gamboa - 2015 31

Page 32: Computación neuronal

Teoría del Aprendizaje FormalLa complejidad de aprender un concepto

es una función de tres factores: la tolerancia al error (h ), el número de rasgos presentes en los ejemplos (t ) y el tamaño de la regla necesaria para discriminar (f ).

Si el número de ejemplos requeridos para el entrenamiento de un sistema está dado por un polinomio en h, t y f, entonces se dice que el concepto es aprendible.

© Dr. Hugo A. Banda Gamboa - 2015 32

Page 33: Computación neuronal

Tamaño de la MuestraPara los procesos de aprendizaje, se ha

demostrado que para minimizar el error del sistema, el número de ejemplos para cada clase, elegidos aleatoriamente para conformar el conjunto de entrenamiento, debe ser al menos tres veces el número de rasgos utilizados para representar cada caso, esto es tres veces la dimensión del vector del patrón característico.

© Dr. Hugo A. Banda Gamboa - 2015 33

Page 34: Computación neuronal

Preprocesamiento El entrenamiento de una red neuronal puede

realizarse en forma más eficiente si se aplican ciertos pasos de preprocesamiento a los vectores de entrada y salidas esperadas.

Varios pueden ser los métodos a aplicarse:

Análisis del poder discriminante de los atributos.

Escalamiento de entradas y salidas (rango entre -1 y +1)

Normalización de entradas y salidas (media cero y desviación estándar unitaria)

Análisis de componentes principales (reducción dimensional)

© Dr. Hugo A. Banda Gamboa - 2015 34

Page 35: Computación neuronal

Poder Discriminante de Atributos La evaluación de poder discriminante y la

selección de atributos es una etapa importante en el diseño de un sistema de reconocimiento de patrones.

La prueba de William Kruskal y W. Allen Wallis es un método no paramétrico que se utiliza para probar si dos o más grupos de datos provienen de la misma población.

Es idéntico al método ANOVA en el que se asume normalidad de los datos.

© Dr. Hugo A. Banda Gamboa - 2015 35

Page 36: Computación neuronal

Estilos de Entrenamiento Entrenamiento Incremental

Los pesos de las conexiones sinápticas y los valores de los umbrales de decisión, son actualizados cada vez que un vector de entrada es presentado a la red.

Entrenamiento por Lotes

Los pesos de las conexiones sinápticas y los valores de los umbrales de decisión, son actualizados después de que todo el grupo de vectores de entrada han sido presentados a la red (época).

© Dr. Hugo A. Banda Gamboa - 2015 36

Page 37: Computación neuronal

Generalización

Uno de los problemas que ocurren durante el entrenamiento de redes neuronales es el sobre entrenamiento.

El error en el conjunto de entrenamiento alcanza un valor muy pequeño, pero cuando nuevos vectores son presentados a la red el error es grande.

La red ha memorizado los ejemplos de entrenamiento, pero no tiene capacidad de generalización a situaciones nuevas.

© Dr. Hugo A. Banda Gamboa - 2015 37

Page 38: Computación neuronal

Matriz de ConfusiónDescribe los errores en los que incurre

una red neuronal al tratar de clasificar un conjunto de vectores representativos del problema para el que fue entrenada.

Los grupos de clasificación componen tanto las filas como las columnas.

Los valores en su diagonal representan los casos correctamente clasificados y aquellos fuera de la diagonal los errores cometidos.

© Dr. Hugo A. Banda Gamboa - 2015 38

Page 39: Computación neuronal

Matriz de Confusión

Grupos o Clases

1 2 3 4 5

1 c11 e12 e13 e14 e15

2 e21 c22 e23 e24 e25

3 e31 e32 c33 e34 e35

4 e41 e42 e43 c44 e45

5 e51 e52 e53 e54 c55

© Dr. Hugo A. Banda Gamboa - 2015

Gru

po

s o

Cla

se

s

Page 40: Computación neuronal

Tipos de Errores Error Optimista

Se obtiene cuando se calcula el error de una matriz de confusión construida utilizando el conjunto de entrenamiento como conjunto de prueba.

Error Pesimista

Resulta del cálculo del error dado por una matriz de confusión construida utilizando un conjunto de prueba diferente al conjunto de entrenamiento.

© Dr. Hugo A. Banda Gamboa - 2015 40

Page 41: Computación neuronal

Tipos de Errores

© Dr. Hugo A. Banda Gamboa - 2015 41

Error Optimista

Error Pesimista

% ε

N° Muestras

Error Real

N1

Page 42: Computación neuronal

Paradigmas de Aprendizaje

Aprendizaje supervisado

Aprendizaje por refuerzo

Aprendizaje no - supervisado

© Dr. Hugo A. Banda Gamboa - 2015 42

Page 43: Computación neuronal

Paradigma de Aprendizaje Supervisado

© Dr. Hugo A. Banda Gamboa - 2015 43

PROFESOR

RED NEURONAL

ENTORNO

+

-

Señal de Error

Vectores

Descriptivos del

Entorno Respuesta

Actual

Respuesta

Deseada

Conocimiento

Page 44: Computación neuronal

Paradigma de Aprendizaje por Refuerzo

© Dr. Hugo A. Banda Gamboa - 2015 44

CRÍTICO

ELEMENTO DE

APRENDIZAJE

ENTORNO

Acciones

Vector de Estado

Entrada

Sistema de

Aprendizaje

Refuerzo

Heurístico

BASE DE

CONOCIMIENTO

Refuerzo

Primario

ELEMENTO DE

ACTUACIÓN

Page 45: Computación neuronal

Paradigma de Aprendizaje No Supervisado En el aprendizaje no supervisado o auto – organizativo, no

existe un profesor o un crítico para supervisar el proceso de aprendizaje.

© Dr. Hugo A. Banda Gamboa - 2015 45

EntornoCapa de Entrada

Capa Competitiva

Sistema de Aprendizaje

Page 46: Computación neuronal

Paradigma de Aprendizaje No Supervisado No hay ejemplos específicos de la función a

ser aprendida por la red. A cambio se provee una medida, independiente de la tarea, que determina la calidad de la representación que debe ser aprendida por la red, y sus parámetros libres son optimizados con respecto a esa medida.

Una vez que la red se ha sintonizado con las regularidades estadísticas de los datos de entrada, desarrolla la habilidad de formar representaciones internas para los rasgos característicos de la entrada y por lo tanto crea nuevas clases automáticamente.

© Dr. Hugo A. Banda Gamboa - 2015 46

Page 47: Computación neuronal

ARQUITECTURAS NEURONALES

© Dr. Hugo A. Banda Gamboa - 2015 47

Page 48: Computación neuronal

Fundamentos: Definición de Red Neuronal

Sistema procesador paralelo - distribuido, masivamente interconectado, capaz de almacenar y utilizar conocimiento experimental. Está diseñado para modelar la forma en que el cerebro realiza una tarea o función de interés.

El conocimiento es adquirido mediante un proceso de adaptación.

El conocimiento se almacena en las conexiones (sinapsis), entre las neuronas de la red.

© Dr. Hugo A. Banda Gamboa - 2015 48

Page 49: Computación neuronal

Arquitectura de Redes Neuronales Artificiales Dos o más modelos de neuronas, pueden ser

combinados en una capa. A su vez, una determinada arquitectura de red neuronal puede contener una o más capas, dando lugar a: Estructuras Monocapa y Multicapa

© Dr. Hugo A. Banda Gamboa - 2015 49

Page 50: Computación neuronal

Redes Estáticas y Dinámicas Las redes también pueden ser clasificadas como:

Estáticas.- No tienen conexiones recurrentes ni retardos. La salida se calcula directamente de las entradas, siguiendo las conexiones hacia adelante.

Dinámicas.- Son aquellas en las que la salida depende no solamente de la entrada actual, sino también de entradas previas, salidas o estados de la red. Las redes dinámicas pueden ser de dos tipos: Sólo con conexiones hacia adelante

Con conexiones recurrentes

En general las redes dinámicas son más poderosas que las redes estáticas, aunque algo más difíciles de entrenar.

© Dr. Hugo A. Banda Gamboa - 2015 50

Page 51: Computación neuronal

© Dr. Hugo A. Banda Gamboa - 2015 51

APRENDIZAJE

MODELO DE RED

TOPOLOGÍA ON/OFF LINE

PARADIGMA ALGORITMO

ASOCIACIÓN

SEÑAL DE

ENTRADA

SEÑAL DE SALIDA

Continous Hopfield

1 Capa Off No Supervisado

Hebbiano Autoasociativa Analógica Analógica

Discrete Hopfield 1 Capa Off No Supervisado

Hebbiano Autoasociativa Binaria Binaria

Optimal Linear

Associative Memory

1 Capa Off No Supervisado

Hebbiano Autoasociativa Analógica Analógica

Additive Grossberg

1 Capa On No Supervisado

Hebbiano o Competitivo

Autoasociativa Analógica Analógica

Shunting Grossberg

1 Capa On No Supervisado

Hebbiano o Competitivo

Autoasociativa Analógica Analógica

Brain-State-in-a-Box

1 Capa Off Supervisado Corrección de Errores

Autoasociativa Analógica Analógica

Bidirectional Associative

Memory

2 Capas Off No Supervisado

Hebbiano Heteroasociativa Binaria Binaria

Fuzzy Associative Memory

2 Capas Off No Supervisado

Hebbiano Difuso Heteroasociativa Analógica Analógica

Memorias Asociativas

Page 52: Computación neuronal

© Dr. Hugo A. Banda Gamboa - 2015 52

APRENDIZAJE

MODELO DE RED

TOPOLOGÍA ON/OFF LINE

PARADIGMA ALGORITMO

ASOCIACIÓN

SEÑAL DE ENTRADA

SEÑAL DE SALIDA

Adaline 1 Unidad Off Supervisado Corrección de Errores

Heteroasociativa Analógica Binaria

Madaline 2 Capas Off Supervisado MRII Heteroasociativa Analógica Binaria

Perceptrón 2 o más Capas

Off Supervisado Corrección de Errores

Heteroasociativa Analógica Binaria

Retropropagación N Capas Off Supervisado Backpropagation Heteroasociativa Analógica Analógica

Associative Reward Penalty

2 Capas On Supervisado Refuerzo Estocático

Heteroasociativa Analógica Binaria

Boltzmann Machine 3 Capas Off Supervisado Estocástico Heteroasociativa Binaria Binaria

Cauchy Machine 3 Capas Off Supervisado Estocástico Heteroasociativa Analógica Binaria

Redes Neuronales con Conexiones hacia Adelante (Feed-Forward)

Page 53: Computación neuronal

© Dr. Hugo A. Banda Gamboa - 2015 53

Biología

Modelos cognoscitivos y de sistemas

biológicos.

Militares

Clasificación de señales de radar.

Fabricación de armas inteligentes.

Asistencia en análisis y

administración de operaciones.

Empresa

Evaluación prospectiva de

formaciones geológicas y

petrolíferas.

Evaluación de personal.

Data mining.

Reconocimiento de patrones.

Administración de horarios y

reservaciones de vuelo

Medio Ambiente

Análisis de tendencias y patrones.

Pronóstico del tiempo.

Finanzas

Análisis de evolución de precios.

Análisis de riesgos en préstamos.

Reconocimiento de firmas.

Seguridad en documentos.

Medicina

Sistemas para ayuda a

discapacitados.

Sistemas para diagnóstico y

tratamiento médico.

Predicción de efectos secundarios en

medicamentos.

Procesadores de Rayos X.

Análisis de señales biológicas.

Manufactura

Sistemas de control automático,

visión computarizada y robótica.

Control de procesos de producción.

Sistemas para control total de

calidad.

Principales Aplicaciones de las Redes Neuronales

Page 54: Computación neuronal

Diseño de Soluciones con Redes Neuronales Artificiales Comprende los siguientes pasos:

Seleccionar una arquitectura de red neuronal, apropiada para resolver el problema identificado.

Escoger un conjunto de ejemplos para entrenar la red, utilizando un algoritmo apropiado. Esta fase es la que corresponde al entrenamiento o aprendizaje de la red.

Probar la capacidad de la red entrenada para resolver el problema propuesto, utilizando un conjunto de datos de prueba. Esta es la fase de prueba de la red.

Evaluar la operación de la red con un conjunto de datos de verificación, que no hayan sido utilizados en el entrenamiento o las pruebas. A esta fase se la denomina de generalización.

© Dr. Hugo A. Banda Gamboa - 2015 54

Page 55: Computación neuronal

© Dr. Hugo A. Banda Gamboa - 2015 55

Page 56: Computación neuronal

El Perceptrón de Frank Rossenblat En 1958, Frank Rossenblat desarrolló una aplicación

práctica para la neurona de McCulloch y Pitts, aplicando las ideas de aprendizaje de Hebb. construyó una máquina capaz de reconocer objetos de forma visual. Así nació el Perceptrón, la primera red neuronal de la historia.

El diseño del perceptrón consistía en una capa de elementos sensores, cuyas salidas se conectaban a las entradas de una neurona de McCulloch-Pitts a través de detectores de umbral de las señales de los sensores.

El número de detectores de umbral era inferior al de elementos sensores, por lo que un detector podía conectarse a más de un sensor. La distribución de estas conexiones era aleatoria.

© Dr. Hugo A. Banda Gamboa - 2015 56

Page 57: Computación neuronal

El Perceptrón de Frank Rosenblatt

© Dr. Hugo A. Banda Gamboa - 2015 57

Neurona de

McCulloch y Pitts

Page 58: Computación neuronal

Arquitectura del Perceptrón

© Dr. Hugo A. Banda Gamboa - 2015 58

Page 59: Computación neuronal

Regla de Aprendizaje del Perceptrón Simple

1. Inicializar todos los pesos W y umbrales de decisión b a valores aleatorios.

2. Para q = 1 hasta q = Q: Presentar un par entrada (pq) – salida (tq).

Calcular la respuesta de las neuronas aq al patrón pq

Calcular las matrices y realizar los ajustes a los valores del umbral de decisión y a los pesos:

3. Si el error es mayor al aceptable, volver al paso 2.

© Dr. Hugo A. Banda Gamboa - 2015 59

(Error)

Page 60: Computación neuronal

Limitaciones del Perceptrón La Regla de Aprendizaje del perceptrón

anteriormente descrita, es capaz de entrenar sólo perceptrones de una capa. Esta restricción impone limitaciones en las computaciones que un perceptrón puede realizar.

Las redes de perceptrones, sólo pueden ser entrenadas con el estilo incremental.

Los perceptrones solamente pueden clasificar conjuntos de vectores de entrada linealmente separables.

Las salidas del perceptrón pueden tomar únicamente dos valores (0 o 1).

© Dr. Hugo A. Banda Gamboa - 2015 60

Page 61: Computación neuronal

Perceptrón Simple como Clasificador

© Dr. Hugo A. Banda Gamboa - 2015 61

binaria activación deFunción

entradas de Número

)*(

)(

)(

1

,1

22,111,1

f

R

bpWfa

bpfa

bppfa

R

i

ii

p1

p2

p0 = 1

1,1

a

1,2

1,0 = b

2,1

1

2,1

1,1

2

bpp

p2

p1

W*p+b > 0a = 1

W*p+b= 0a = 0

W*p+b< 0a = 0

Page 62: Computación neuronal

Ejemplo en MATLAB

© Dr. Hugo A. Banda Gamboa - 2015 62

Page 63: Computación neuronal

Perceptrones Simples para Funciones Lógicas

Función OR

x1 x2 y

0 0 0

0 1 1

1 0 1

1 1 1

Función AND

x1 x2 y

0 0 0

0 1 0

1 0 0

1 1 1

© Dr. Hugo A. Banda Gamboa - 2015 63

x1

x2

x0 = 1

1,1

y

1,2

1,0 = b1

N

Page 64: Computación neuronal

© Dr. Hugo A. Banda Gamboa - 2015 64

Page 65: Computación neuronal

Redes Lineales Las redes lineales son similares a las del

perceptrón, con la diferencia que la función de trasferencia es lineal. Esto permite que su salida adquiera cualquier valor y no esté limitada, como en el caso del perceptrón, a 0 o 1.

© Dr. Hugo A. Banda Gamboa - 2015 65

Page 66: Computación neuronal

Carro Robótico: Definición del Problema

© Dr. Hugo A. Banda Gamboa - 2015 66

Se tiene un vehículo robótico de tres ruedas. Cada rueda posterior tiene un motor que controla su giro hacia adelante o hacia atrás. Dispone de tres sensores de proximidad, uno al frente y uno a cada costado. Dependiendo del tipo de obstáculo detectado, el vehículo puede girar a la derecha, izquierda, dar marcha adelante o marcha atrás. Diseñar un controlador neuronal para este vehículo.

Page 67: Computación neuronal

Carro Robótico: Diseño Lineal

© Dr. Hugo A. Banda Gamboa - 2015

f (n1)

f (n2)

n1

n2

67

Page 68: Computación neuronal

Carro Robótico: Script MATLAB% SEÑALES DE CONTROL

% (P = Señales de los sensores de proximidad)

P=[0 0 0 0 1 1 1 1;0 0 1 1 0 0 1 1;0 1 0 1 0 1 0 1];

% (T = Salidas de comando para los motores)

T=[1 0 0 0 1 0 0 0;1 0 1 0 0 0 0 0];

% DISEÑO DE UN SISTEMA NEURONAL LINEAL:

CRLD=newlind(P,T);

% COMPROBACIÓN DE LA SOLUCIÓN

a=sim(CRLD,P);

% BINARIZACIÓN DE LAS SALIDAS LINEALES

n=size(a,1);

m=size(a,2);

Y=zeros(n,m);

for i=1:n

for j=1:m

if a(i,j)> 0.5

Y(i,j)=1;

end

end

end

© Dr. Hugo A. Banda Gamboa - 2015 68

Page 69: Computación neuronal

Predicción Simple: Definición del Problema

Se tiene una señal senoidal (T) de 2 Hz, con una duración de 5 segundos y una tasa de 40 muestras por segundo.

En cualquier instante la red recibe en su entrada los últimos 5 valores de la señal (P) y se espera que a la salida la red prediga el siguiente valor.

© Dr. Hugo A. Banda Gamboa - 2015 69

Page 70: Computación neuronal

Predicción Simple: Diseño de la Red

Debido a que la relación entre los valores pasados y futuros de la señal no cambian, la red puede ser diseñada directamente a partir de los ejemplos, utilizando newlind.

De acuerdo con la definición del problema, se tienen los últimos 5 valores de señal y una salida, el siguiente valor de la señal, por lo que la solución requiere de una neurona lineal con 5 entradas y una salida.

© Dr. Hugo A. Banda Gamboa - 2015 70

Page 71: Computación neuronal

Predicción Simple: Prueba de la Red

El siguiente gráfico muestra la superposición de las señales de entrada y de salida de la red.

© Dr. Hugo A. Banda Gamboa - 2015 71

Al graficar la diferencia entre las dos señales, se nota algún error en los primeros instantes, debido a que la red recibió de manera retardada los primeros 5 valores.

Page 72: Computación neuronal

Predicción Simple: Script MATLAB% Predictor Simple

time = 0:0.025:5;

T = sin(time*4*pi);

Q = length(T);

P = zeros(5,Q);

P(1,2:Q) = T(1,1:(Q-1));

P(2,3:Q) = T(1,1:(Q-2));

P(3,4:Q) = T(1,1:(Q-3));

P(4,5:Q) = T(1,1:(Q-4));

P(5,6:Q) = T(1,1:(Q-5));

net = newlind(P,T);

a = sim(net,P);

e=T-a;

hold all;

plot(time,T,time,a);

pause;

plot(time,e);

© Dr. Hugo A. Banda Gamboa - 2015 72

Page 73: Computación neuronal

Filtros Lineales Al combinar una red lineal con una línea de

retardo con tomas (TDL), se crea un filtro lineal de respuesta finita al impulso (FIR).

© Dr. Hugo A. Banda Gamboa - 2015 73

Page 74: Computación neuronal

Predicción Adaptativa: Definición del Problema

Un filtro lineal se puede entrenar de forma incremental para predecir una serie de tiempo. Este estilo de entrenamiento le permite responder a los cambios en la relación entre los valores pasados y futuros de la señal.

Para el ejemplo, se trata de predecir una señal de 2 Hz, con una duración de 6 segundos y una tasa de 20 muestras por segundo. Sin embargo, a partir de los 4 segundos súbitamente la frecuencia se duplica. Diseñar un filtro adaptativo.

© Dr. Hugo A. Banda Gamboa - 2015 74

Page 75: Computación neuronal

Predicción Adaptativa: Diseño de la Red

La red tiene una sola neurona ya que existe un valor de señal de salida T en cada paso. Tiene 5 entradas, una para cada valor retardado de la señal P que es la misma que la señal esperada T.

© Dr. Hugo A. Banda Gamboa - 2015 75

Page 76: Computación neuronal

Predicción Adaptativa: Prueba de la Red

© Dr. Hugo A. Banda Gamboa - 2015 76

Page 77: Computación neuronal

Predicción Adaptativa: Script MATLAB

% Filtro Adaptativo

time1 = 0:0.025:4;

time2 = 4.025:0.025:6;

time = [time1 time2];

T = [sin(time1*4*pi) sin(time2*8*pi)];

T = con2seq(T);

P = T;

lr = 0.1;

delays = [1 2 3 4 5];

net = newlin(P,T,delays,lr);

[net,a,e]=adapt(net,P,T);

hold all;

plot(time,cell2mat(P),time,cell2mat(a));

pause;

plot(time,cell2mat(e));

© Dr. Hugo A. Banda Gamboa - 2015 77

Page 78: Computación neuronal

© Dr. Hugo A. Banda Gamboa - 2015 78

Page 79: Computación neuronal

Red de Retropropagación (Backpropagation)

© Dr. Hugo A. Banda Gamboa - 2015 79

i

j

k

bi

bj

wi,j

wj,k

Page 80: Computación neuronal

Regla Delta

© Dr. Hugo A. Banda Gamboa - 2015 80

p

n

p

m

p

p

m

p

m

nm

nm

p

n

p

m

p

p

m

p

m

nm

p m

p

m

p

m

p m n

p

nnm

p

m

p m

p

m

p

m

xhfyrD

xhfyrD

hfrD

xfrD

yrD

)()(

)()(

])([2

1

])([2

1

)(2

1

:(error) cuadrática media Desviación

,

,

,

2

2

,

2

Page 81: Computación neuronal

Regla Delta Generalizada(Error Back-Propagation)

© Dr. Hugo A. Banda Gamboa - 2015 81

)(

)(

)(2

1

)()(

)()(

,

,

2

,

,

p

i

p

p

i

p

i

i

i

p

j

p

i

p

p

i

p

i

ji

ji

p i

p

i

p

i

k

jjkkjj

j

iijjii

hfsrb

Db

shfsrD

hfrD

hfbxfs

hfbsfs

Page 82: Computación neuronal

Regla Delta Generalizada(Error Back-Propagation)

© Dr. Hugo A. Banda Gamboa - 2015 82

p

p

jj

j

j

j

p

ip

i

p i

p

i

p

i

j

j

p

jji

p

i

i

p

i

p

i

p

j

p

k

p

p

jkj

kj

j

j

p

ip

i

p i

p

i

p

i

kj

kj

b

b

s

s

hhfhfr

b

Db

hfhfsrx

s

s

hhfhfr

D

)()(

)())((

)()(

,,

,,

,

Page 83: Computación neuronal

Red Feedforward (MATLAB)

© Dr. Hugo A. Banda Gamboa - 2015 83

LW2,1

b2

+

1

S x 1

S x 1

SS x 1

Capa de Salida

)( 211,22 baLWa k

S x H

IW1,1

b1

+

R

1

H x 1n1

H x 1

HH x 1

p1

R x 1

Capa OcultaEntrada

)( 111,11 bpIWa f

H x Rn2

a1 a2

R=# de elementos en el vector de entrada

H=# de neuronas en la capa oculta

S=# de neuronas en la capa de salida

Page 84: Computación neuronal

Ejemplo de MATLAB:Clasificación de Cangrejos Se trata de clasificar cangrejos por su género

(masculino, femenino) a partir de características físicas. Se utilizan seis mediciones que corresponden a los siguientes atributos:

Especie (0 = azul; 1 = anaranjado)

Tamaño del lóbulo frontal

Ancho posterior

Longitud del carapacho

Ancho del carapacho

Profundidad del cuerpo

Género (male, female)

© Dr. Hugo A. Banda Gamboa - 2015 84

Page 85: Computación neuronal

Clasificación de Cangrejos: Preparación de los Datos Dada la naturaleza no lineal de los problemas que se

encuentran en el mundo real, las redes neuronales son las mejores herramientas que uno puede utilizar para resolver problemas como este que trata de clasificar cangrejos por su género, utilizando las seis mediciones de características como entradas y el género como salida.

Los datos recopilados corresponden a 200 ejemplares (crabdata.csv). Las mediciones de los atributos, tienen valores numéricos, pero el género está dado en forma textual. Debido a que las redes neuronales en MATLAB no pueden ser entrenadas con datos no numéricos, es necesario aplicar una técnica de conversión simbólica a codificación unaria. Esto es, 'Female' será representado por el vector [1 0] y 'Male' representado por [0 1].

Para la clasificación se utiliza una red neuronal tipo feedforward backpropagation con una configuración 6:20:2

© Dr. Hugo A. Banda Gamboa - 2015 85

Page 86: Computación neuronal

Clasificación de Cangrejos:Script y Resultados

© Dr. Hugo A. Banda Gamboa - 2015 86

Page 87: Computación neuronal

Ejemplo: Predicción de Consumo La predicción de consumo de energía eléctrica refleja

las necesidades futuras de una población; esta previsión debe ser lo más ajustada a la realidad, ya que unos valores inferiores a los reales causarán deficiencias en la prestación del servicio en el futuro y un pronóstico de necesidades superior al real, motiva la inversión prematura en instalaciones que no tendrán un aprovechamiento inmediato.

La proyección del suministro de energía se hace con base en la demanda registrada, aplicando porcentajes de pérdidas que pueden obtenerse de un análisis de los registros históricos (que normalmente se presentan en forma estadística), o por similitud con otros sistemas.

© Dr. Hugo A. Banda Gamboa - 2015 87

Page 88: Computación neuronal

Datos de Demanda Máxima (MVA)

© Dr. Hugo A. Banda Gamboa - 2015 88

 HORA Lunes Martes Miércoles Jueves Viernes Sábado Domingo

1 1,23 1,6049 1,663 1,7299 1,7129 1,713 1,414

2 1,0889 1,4389 1,4689 1,5159 1,4569 1,2821 1,325

3 1,0289 1,3631 1,389 1,432 1,3461 1,182 1,2249

4 0,9879 1,3559 1,3751 1,3931 1,288 1,122 1,2239

5 0,9879 1,3439 1,3611 1,3909 1,2331 1,0961 1,124

6 1,105 1,389 1,414 1,431 1,1911 1,1059 1,0191

7 1,3729 1,5699 1,604 1,614 1,157 1,171 0,9989

8 1,6649 1,775 1,8009 1,817 1,17 1,2751 0,9989

9 1,79 2,018 2,0739 2,0989 1,2139 1,4121 0,979

10 2,1569 2,19 2,2301 2,226 1,337 1,545 1,015

11 2,323 2,3359 2,3649 2,381 1,4799 1,711 1,1271

12 2,3659 2,363 2,399 2,3741 1,574 1,741 1,2271

13 2,3731 2,3359 2,358 2,3021 1,5951 1,7129 1,295

14 2,2311 2,156 2,2 2,1459 1,5771 1,62 1,313

15 2,156 2,0799 2,1231 2,0581 1,5629 1,557 1,2909

16 2,208 2,1651 2,1749 2,0809 1,532 1,5831 1,26

17 2,2949 2,2551 2,2049 2,1651 1,544 1,6251 1,2669

18 2,3741 2,3671 2,3349 2,238 1,638 1,6251 1,3631

19 2,5 2,477 2,464 2,282 1,731 1,895 1,453

20 2,434 2,431 2,378 2,154 1,748 1,904 1,602

21 2,356 2,354 2,414 2,102 1,7921 1,931 1,644

22 2 2,21 2,004 1,995 1,8321 1,936 1,615

23 1,989 1,7085 1,8582 1,904 1,862 1,958 1,503

24 1,808 1,7 1,7071 1,859 1,793 1,748 1,499

Page 89: Computación neuronal

Curvas de Demanda Registrada de Energía

© Dr. Hugo A. Banda Gamboa - 2015 89

Page 90: Computación neuronal

Predicción de Consumo:Script MATLAB%% Predicción de Consumo de Energía Eléctrica

% Dr. Hugo A. Banda

% Versión: Red Neuronal Feedforward

% 11 Dic 2015

%% Carga de información desde archivo DatosConsumo.csv

fileID=fopen('DatosConsumo.csv');

MatDat=textscan(fileID,'%f%f%f', 'delimiter',',');

fclose(fileID);

%% Configuración de matrices de datos de entrada y salida

DiaHora=[MatDat{1} MatDat{2}];

Consumo=[MatDat{3}];

InpDat=DiaHora';

TarDat=Consumo';

%% Diseño de la red Feedforward tipo 2:12:8:1

RedPCE=feedforwardnet([12 8]);

RedPCE=train(RedPCE,InpDat,TarDat);

%% Prueba de la predicción

Pred=RedPCE(InpDat);

Perf=perform(RedPCE,TarDat,Pred);

hold all

plot(TarDat);

plot(Pred);

plot(TarDat-Pred);

%% Fin del script

© Dr. Hugo A. Banda Gamboa - 2015 90

Page 91: Computación neuronal

Red Backpropagation 2:12:8:1 para Predicción de Consumo

© Dr. Hugo A. Banda Gamboa - 2015 91

Page 92: Computación neuronal

© Dr. Hugo A. Banda Gamboa - 2015 92

Page 93: Computación neuronal

Redes de Base Radial Las redes neuronales de base radial

usualmente requieren más neuronas que las redes de retropropagación, pero se entrenan mucho más rápido que éstas.

Mientras mayor cantidad de vectores de entrenamiento estén disponibles, mejor trabajan.

Las redes de base radial se utilizan para aproximar funciones. Se caracterizan por ir incorporando neuronas a la capa oculta, hasta satisfacer el error medio cuadrático especificado o igualar el número de vectores de entrenamiento.

© Dr. Hugo A. Banda Gamboa - 2015 93

Page 94: Computación neuronal

Modelo de Neurona de Base Radial

La neurona de base radial tiene una función de

transferencia de la forma 𝒂 = 𝒆−𝒏𝟐. Recibe como

entrada 𝒏 la distancia vectorial entre el vector de pesos 𝑾 y el vector 𝒑 de entrada, multiplicada por 𝒃.

© Dr. Hugo A. Banda Gamboa - 2015 94

Page 95: Computación neuronal

Arquitectura de una Red de Base Radial

© Dr. Hugo A. Banda Gamboa - 2015 95

Page 96: Computación neuronal

Ejemplo MATLAB: Aproximación de una Función

Dados los puntos X, T que definen una función discreta, diseñar una red neuronal para aproximar esta función, con una suma cuadrática de error menor a 0,02. La red debe tener el menor número posible de neuronas en la capa oculta.

© Dr. Hugo A. Banda Gamboa - 2015 96

Page 97: Computación neuronal

Script MATLAB y Resultados%% Radial Basis Approximation

% This example uses the NEWRB function to create a radial basis network

% that approximates a function defined by a set of data points.

%

% Copyright 1992-2012 The MathWorks, Inc.

% $Revision: 1.14.2.5 $ $Date: 2012/08/21 01:01:18 $

%% Datos de la Función

X = -1:.1:1;

T = [-.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 ...

.1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 ...

.3072 .3960 .3449 .1816 -.0312 -.2189 -.3201];

%% Diseño de la Red de Base Radial

eg = 0.02; % sum-squared error goal

sc = 1; % spread constant

RBB = newrb(X,T,eg,sc);

%% Despliegue de Resultados

plot(X,T,'+');

xlabel('Input Vector X');

X = -1:.01:1;

Y = RBB(X);

hold on;

plot(X,Y);

hold off;

legend({'Target','Output'});

© Dr. Hugo A. Banda Gamboa - 2015 97

Page 98: Computación neuronal

Variantes de las Redes de Base Radial

Las redes de base radial fundamentales, tienen dos variantes:

Redes neuronales probabilísticas, utilizadas para problemas de clasificación.

Redes neuronales de regresión generalizada, utilizadas para aproximación de funciones.

© Dr. Hugo A. Banda Gamboa - 2015 98

Page 99: Computación neuronal

Arquitectura de Red Neuronal Probabilística

© Dr. Hugo A. Banda Gamboa - 2015 99

Page 100: Computación neuronal

Clasificación de Personas por Género: Red Probabilística

Clasificación de personas por género, basada en medidas antropométricas, en cm.: Espalda, Busto, Cintura, y Cadera.

Se dispone un conjunto de 20 medidas correspondientes a mujeres y a hombres entre 21 y 24 años de edad (DatosGenero.csv).

Diseñar una red neuronal probabilística para realizar la clasificación por género.

© Dr. Hugo A. Banda Gamboa - 2015 100

Page 101: Computación neuronal

Clasificación de Personas por Género: Script MATLAB%% Archivo de Datos: DatosGenero.csv

% Autor: Dr. Hugo A. Banda Gamboa

% Fecha: 13 de Octubre de 2013

% Versión: Red Neuronal Probabilística

%% Abrir, leer datos y cerrar archivo CSV

fileID=fopen('DatosGenero.csv');

C = textscan(fileID,'%f%f%f%f%s','delimiter',',');

fclose(fileID);

%% Preparar datos de entrada y salida

MedidasMH = [C{1} C{2} C{3} C{4}];

Mujer = strncmpi(C{5}, 'Mujer', 1);

Hombre = strncmpi(C{5}, 'Hombre', 1);

genero = double([Mujer Hombre]);

%% Preparar datos para alimentacción a red

DataIn = MedidasMH';

Targets = genero';

%% Diseñar la red neuronal probabilística

RNPMH=newpnn(DataIn,Targets);

G=sim(RNPMH,DataIn);

%% Preparar datos para Matriz de Confusión

[y_out,I_out]=max(G);

[y_t,I_t] = max(Targets);

diff = I_t - 2*I_out;

m_m = length(find(diff == -1));

h_m = length(find(diff == 0));

h_h = length(find(diff == -2));

m_h = length(find(diff == -3));

N = size(DataIn, 2);

fprintf('Total Muestras: %d\n', N);

%% Mostrar Matriz de Confusión

MC = [m_m m_h; h_m h_h];

fprintf('\nMatriz de Confusión:\n Mujer

Hombre\n');

fprintf(' Mujer %5.0f %4.0f\n', MC(1,1),MC(1,2));

fprintf(' Hombre %5.0f %4.0f\n', MC(2,1),MC(2,2));

%% Mostrar Matriz de Confusión Porcentual

MC_p = (MC ./ N) .* 100;

fprintf('\nMatriz de Confusión Porcentual:\n

Mujer Hombre\n');

fprintf(' Mujer %7.2f%% %6.2f%%\n',

MC_p(1,1),MC_p(1,2));

fprintf(' Hombre %7.2f%% %6.2f%%\n',

MC_p(2,1),MC_p(2,2));

fprintf('Porcentage Correcto: %6.2f%%\n',

100*(MC(1,1)+MC(2,2))/N);

fprintf('Porcentage Incorrecto: %6.2f%%\n',

100*(MC(1,2)+MC(2,1))/N);

% Fin del Script

© Dr. Hugo A. Banda Gamboa - 2015 101

Page 102: Computación neuronal

Clasificación de Personas por Género: Red Probabilística y Resultados

© Dr. Hugo A. Banda Gamboa - 2015 102

Page 103: Computación neuronal

Arquitectura de Red Neuronal de Regresión Generalizada

© Dr. Hugo A. Banda Gamboa - 2015 103

Page 104: Computación neuronal

Predicción de Consumo de Energía: Script MATLAB%% Predicción de Consumo de Energía Eléctrica

% Dr. Hugo A. Banda

% Versión: Red Neuronal de Regresión Generalizada

% 11 Dic 2015

%% Carga de información desde archivo DatosConsumo.csv

fileID=fopen('DatosConsumo.csv');

MatDat=textscan(fileID,'%f%f%f', 'delimiter',',');

fclose(fileID);

%% Configuración de matrices de datos de entrada y salida

DiaHora=[MatDat{1} MatDat{2}];

Consumo=[MatDat{3}];

InpDat=DiaHora';

TarDat=Consumo';

%% Diseño de la red de regresión generalizada

RedRGen=newgrnn(InpDat,TarDat);

%% Prueba de la predicción

Pred=sim(RedRGen,InpDat);

Perf=perform(RedRGen,TarDat,Pred);

hold all

plot(TarDat);

plot(Pred);

plot(TarDat-Pred);

%% Fin del script

© Dr. Hugo A. Banda Gamboa - 2015 104

Page 105: Computación neuronal

Predicción de Consumo de Energía: Red de Regresión Generalizada y Resultados

© Dr. Hugo A. Banda Gamboa - 2015 105

Page 106: Computación neuronal

REDES AUTO-ORGANIZATIVAS YLEARNING VECTOR QUANTIZATION (LVQ)

© Dr. Hugo A. Banda Gamboa - 2015 106

Page 107: Computación neuronal

Introducción Las redes auto-organizativas se caracterizan por

su capacidad de aprender a detectar regularidades y correlaciones en su entrada y adaptar respuestas futuras a esas entradas. Las neuronas de redes competitivas aprenden a reconocer grupos de vectores de entrada similares. Los mapas auto-organizativos aprenden a reconocer grupos similares de vectores de entrada de tal forma que las neuronas que están físicamente cercanas en la capa, responden a vectores de entrada similares.

Las redes LVQ, aprenden a clasificar vectores de entrada en clases definidas por el usuario.

© Dr. Hugo A. Banda Gamboa - 2015 107

Page 108: Computación neuronal

Aprendizaje Competitivo Las neuronas en una capa competitiva se auto

distribuyen para reconocer vectores de entrada que son presentados con frecuencia. La arquitectura se muestra en el siguiente gráfico:

© Dr. Hugo A. Banda Gamboa - 2015 108

Page 109: Computación neuronal

Ejemplo de Red Competitiva Dados dos grupos de vectores uno cercano al

origen (0, 0) y otro cercano a (1, 1), con rangos de entrada entre 0 y 1, diseñar una red competitiva que agrupe a los vectores dados, según corresponda.

© Dr. Hugo A. Banda Gamboa - 2015 109

Page 110: Computación neuronal

Mapas Auto-Organizativos (SOM) Estas redes aprenden a clasificar vectores de

entrada de acuerdo a cómo están agrupados en el espacio de entrada. Difieren de las redes competitivas porque las neuronas cercanas aprenden a reconocer secciones del vecindario del espacio de entrada. Esto es, los mapas auto-organizativos aprenden tanto la distribución (como las redes competitivas) como la topología de los vectores con los que son entrenados.

© Dr. Hugo A. Banda Gamboa - 2015 110

Page 111: Computación neuronal

Arquitectura del Self-OrganizingMap

© Dr. Hugo A. Banda Gamboa - 2015 111

Page 112: Computación neuronal

Redes LVQ Una red LVQ tiene al inicio una capa competitiva

que aprende a clasificar los vectores de entrada de la misma manera que un Mapa Auto-Organizativo. A continuación, la capa lineal transforma las clases de la capa competitiva en clasificaciones definidas por el usuario. A las clases aprendidas por la capa competitiva se las denomina subclases y a las de la capa lineal clases objetivo.

Tanto la capa competitiva como la capa lineal tienen una neurona por cada subclase o clase objetivo. Siempre el número de subclases debe ser mayor que el número de clases objetivo.

© Dr. Hugo A. Banda Gamboa - 2015 112

Page 113: Computación neuronal

Arquitectura de la Red Learning Vector Quantizer (LVQ)

© Dr. Hugo A. Banda Gamboa - 2015 113

Page 114: Computación neuronal

Ejemplo MATLAB de Red LVQ Se tienen 10 vectores de entrada, que se desea

clasificar en dos clases. La posición de estos dos grupos en el plano, no es linealmente separable. Crear una red LVQ con 4 neuronas en la capa competitiva. Estas subclases serán asignadas a una de las dos clases objetivo, a la salida.

© Dr. Hugo A. Banda Gamboa - 2015 114

Page 115: Computación neuronal

Script MATLAB: Red LVQ %% Red LVQ - Ejemplo MATLAB

% Grupos de vectores de entrada

P = [-3 -2 -2 0 0 0 0 2 2 3;

0 1 -1 2 1 -1 -2 1 -1 0];

%% Grupos a los que pertenecen los vectores de entrada

Tc = [1 1 1 2 2 2 2 1 1 1];

T = ind2vec(Tc);

targets = full(T);

%% Diseño de la Red LVQ

net = newlvq(P,4,[.6 .4]);

%% Entrenamiento de la Red LVQ

net.trainParam.epochs = 150;

net = train(net,P,T);

%% Comprobación de la Red LVQ

Y = sim(net,P);

Yc = vec2ind(Y);

© Dr. Hugo A. Banda Gamboa - 2015 115

Page 116: Computación neuronal

RED LVQ: Arquitectura y Resultados

© Dr. Hugo A. Banda Gamboa - 2015 116

Page 117: Computación neuronal

Conclusión

Lo que tenemos que aprender a hacer, lo

aprendemos haciendo.

Aristóteles - Ética

© Dr. Hugo A. Banda Gamboa - 2015 117