33
1 Pedro A. Castillo Valdivieso Depto. Arquitectura y Tecnología de Computadores Universidad de Granada http://atc.ugr.es/pedro/gaicm1 Primer Hackathon Reto de IA de Google en la UGR Redes neuronales. El perceptrón

Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

  • Upload
    dinhdat

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

1

Pedro A. Castillo ValdiviesoDepto. Arquitectura y Tecnología de Computadores

Universidad de Granada

http://atc.ugr.es/pedro/gaicm1

Primer Hackathon Reto de IA de Google en la UGR

Redes neuronales. El perceptrón

Page 2: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

2

Índice

� Redes neuronales artificiales

� El perceptrón

� El perceptrón multicapa

� Ejemplos de implementación

� Aplicación a la clasificación de patrones

Índice

Page 3: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

3

Redes Neuronales Artificiales

� Paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales

� Sistema de interconexión de neuronas en una red que colabora para producir una salida

� Modelos muy adecuados para aproximar funciones o para clasificar patrones

http://es.wikipedia.org/wiki/Red_neuronal_artificia l

Redes Neuronales Artificiales

Page 4: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

4

Redes Neuronales Artificiales

� Consisten en un conjunto de unidades de entrada, conectadas con varias capas de neuronas y una capa de salida.

� La señal de entrada se propaga hacia delante.

Redes Neuronales Artificiales

Page 5: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

5

Redes Neuronales Artificiales

� Características del modelo:

• habilidad para aprender a partir de ejemplos

• auto-organización: crea su propia representación de la información

• tolerancia a fallos: almacenan la información de forma redundante y sigue respondiendo de manera aceptable aún si se daña algún nodo

• flexibilidad: pueden manejar cambios poco importantes en la información de entrada (ruido)

• estructura paralela

Redes Neuronales Artificiales

Page 6: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

6

Índice

� Redes neuronales artificiales

� El perceptrón

� El perceptrón multicapa

� Ejemplos de implementación

� Aplicación a la clasificación de patrones

Índice

Page 7: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

7

El Perceptrón

� El perceptrón es un discriminador que traza su entrada a un único valor de salida:

� Desarrollado por Rosenblatt (1957)http://en.wikipedia.org/wiki/Perceptron

El Perceptrón

Page 8: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

8

El Perceptrón

� Tiene un vector de pesos reales con el que se calcula una suma ponderada y usa un umbral para representar el grado de inhibición de la neurona

� El valor de salida se usa para clasificar el patrón (x) como un caso positivo o un caso negativo, en el caso de un problema de clasificación binario

El Perceptrón

Page 9: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

9

El Perceptrón

� El algoritmo de aprendizaje es de tipo supervisado:1. Inicializar los pesos con valores aleatorios pequeños

2. Presentar un ejemplo (x) de entrada

3. Calcular la salida para dicho ejemplo:

4. Modificar los pesos para minimizar el error:

El Perceptrón

Page 10: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

10

El Perceptrón. Limitaciones

� Sólo puede discriminar patrones que pertenezcan a clases linealmente separables

� Una función no separable no se puede aproximar con un solo plano de separación:

El Perceptrón

Page 11: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

11

Índice

� Redes neuronales artificiales

� El perceptrón

� El perceptrón multicapa

� Ejemplos de implementación

� Aplicación a la clasificación de patrones

Índice

Page 12: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

12

El Perceptrón Multicapa

� El perceptrón multicapa es una red neuronal artificial formada por múltiples capas, esto le permite resolver problemas que no son linealmente separables

� La salida de una neurona está determinada por la suma ponderada con las salidas de las neuronas de la capa anterior y una función de activación.

El Perceptrón Multicapa

Page 13: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

13

Capacidad de Representación

� Clasificación:

El Perceptrón Multicapa

� Aproximación:

• Entrada - Salida: clases linealmente separables

• 1 Capa Oculta: regiones convexas

• 2 Capas Ocultas: regiones de cualquier tipo [Lippmann 87]

• Una sola capa oculta es suficiente para llevar a cabo una aproximación universal [Cybenko 88,89].

Page 14: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

14

Entrenamiento de la red

� El proceso de aprendizaje tiene por objeto ajustar los pesos del MLP de forma que se minimice el error cometido ante un conjunto de patrones de entrada.

� El algoritmo más utilizado en el entrenamiento de estas redes es el de retropropagación:

• Evaluación de la red

• Cálculo de los gradientes

• Actualización de los pesos

El Perceptrón Multicapa

∑ −=mN

iii pypdp 2))()((

2

1)(ε

∑∑ ==k

mij

mk

mk

mij

mij w

z

z

p

w

p

w δδ

δδε

δδε

δδε )()(

))()(()()()( 11 −+ −+−= tmij

tmij

tmij

tmij

tmij ww

www β

δδεη

Page 15: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

15

Entrenamiento de la red

El Perceptrón Multicapa

� Variantes del algoritmo de retropropagación:

• Regla Delta-Bar-Delta [Jacobs 88]

• RPROP [Riedmiller 93]

• Quick-Propagation [Fahlman 88]

• Silva - Almeida [Silva y Almeida 90]

• SuperSab [Tollenaere 90]

Page 16: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

16

Índice

� Redes neuronales artificiales

� El perceptrón

� El perceptrón multicapa

� Ejemplos de implementación

� Aplicación a la clasificación de patrones

Índice

Page 17: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

17

Ejemplos de implementación

� Podemos encontrar muchas implementaciones libres de redes neuronales

� Implementaciones del MLP en diversos lenguajes: MATLAB, C#, C++, C, Fortran, Perl, Java, PHP y VBA• http://www.philbrierley.com/code.html

� Veamos implementaciones en - C++

- Java

- Matlab- Perl

- Excel

Ejemplos de implementación

Page 18: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

18

Implementando en C/C++

� http://www.codeproject.com/KB/recipes/BP.aspx

� http://code.activestate.com/recipes/577461-hopfield -artificial-neural-network/

� http://www.amazon.com/Practical-Neural-Network-Reci pies-C/dp/0124790402

Ejemplos de implementación

Page 19: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

19

Implementando en Java

� http://neuroph.sourceforge.net/

� http://neuron.eng.wayne.edu/software.html

� http://www.jeffheaton.com/ai

� http://www.nnwj.de

Ejemplos de implementación

Page 20: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

20

Implementando en Matlab

� http://www.mathtools.net/MATLAB/Neural_Networks/ind ex.html

� http://www.mathworks.com/matlabcentral/fileexchange /976-ann

Ejemplos de implementación

Page 21: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

21

Implementando en Perl

� http://search.cpan.org/~ccolbourn/AI-NNFlex-0.24/li b/AI/NNFlex.pm

� http://search.cpan.org/~ccolbourn/AI-NNFlex-0.24/li b/AI/NNFlex.pm

� http://search.cpan.org/dist/AI-NeuralNet-Simple/lib/AI/NeuralNet/Simple.pm

� http://search.cpan.org/~jbryan/AI-NeuralNet-BackPro p-0.77/BackProp.pm

Ejemplos de implementación

Page 22: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

22

Implementando en Excel

� http://www.neuroxl.com/

� http://www.mathtools.net/Excel/Neural_Networks/inde x.html

� http://www.philbrierley.com/main.html?code/vba.html &code/codeleft.html

Ejemplos de implementación

Page 23: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

23

Ejemplo en C++

Librería

qpPerceptron

Ejemplos

Page 24: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

24

Ejemplo en C++

� Cómo programar con la librería qpPerceptron:

#include <qpPerceptron.h>

ifstream streamTrn(fileTrn.c_str());

qpTS<vector<double>, unsigned> trnSet(streamTrn);

qpPerceptron<unsigned> net( NI, NH, NO , initWeightRange );

net.initTrain(epocas, error, tolerancia, aprend, verbose);

net.train(trnSet);

obtenido = net.apply( tstSet.exampleAt(i) );

Ejemplos de implementación

Page 25: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

25

Ejemplo en C++

� Compilar. Ejemplo XOR. Ejecutar programa:

Ejemplos de implementación

Page 26: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

26

Índice

� Redes neuronales artificiales

� El perceptrón

� El perceptrón multicapa

� Ejemplos de implementación

� Aplicación a la clasificación de patrones

Índice

Page 27: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

27

Un problema de clasificación

Clasificación de patrones

Helicasas del ADN� Encimas usadas en el metabolismo del ADN. � Las partículas se observan a través de un microscopio

electrónico, y se clasifican para determinar su estructura

circular con una estructura mancha en el rectangularcentro (vista (vista lateral)superior)

� Cada imagen se preprocesa para obtener una de 10x10 pixels.� Cada patrón tiene 25 entradas y la clase (superior/lateral)

Page 28: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

28

Un problema de clasificación

� Usaremos el ejemplo de programación en C++ para clasificar las Helicasas del ADN

Clasificación de patrones

Page 29: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

29

Evolving Objects

� Librería para desarrollar en C++ algoritmos evolutivos y MLPs (posibilidad de evolucionar las redes):• http://eodev.sourceforge.net/

EO

Page 30: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

30

Otras aplicaciones

� Podemos entrenar una red para que ordene una acción en función de los valores recogidos con sensores:

Clasificación de patrones

Page 31: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

31

Índice

� Redes neuronales artificiales

� El perceptrón

� El perceptrón multicapa

� Ejemplos de implementación

� Aplicación a la clasificación de patrones

Índice

Page 32: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

32

Completar la información� http://en.wikipedia.org/wiki/Artificial_neural_netw ork

� http://en.wikipedia.org/wiki/Perceptron

� http://atc.ugr.es/pedro/tutoriales/gaic1/

� http://atc.ugr.es/pedro/investigacion.html

Page 33: Primer Hackathon Reto de IA de Google en la UGR Redes ...mercurio.ugr.es/pedro/tutoriales/gaicm1/presentacion.pdf · como un caso positivo o un caso negativo, ... - Excel Ejemplos

33

¡muchas gracias!

Pedro A. Castillo [email protected]