re des neuron ales

49
 1 Redes Neuronales y Programación Declarativa  Francisco Jesús Fernández Burgos  José Manuel Cortés López 

Upload: yuridia69

Post on 17-Jul-2015

56 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 1/491

Redes Neuronales y ProgramaciónDeclarativa

 Francisco Jesús Fernández Burgos

 José Manuel Cortés López 

Page 2: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 2/492

ÍNDICE 1. Introducción

• 1.1. Haskell y la Computación Numérica• 1.2. Computación Celular

• 1.3. Redes Neuronales• 1.3.1 Redes Neuronales Celulares• 1.4. Objetivos

2. Construcción de una librería de Redes Neuronales en Haskell

• 2.1. Estructura de Datos• 2.2. Análisis lineal sin Índices• 2.3. Iteración y Recursión.

Page 3: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 3/493

ÍNDICE 3. Definición de Capas

• 3.1 Definición de una Capa

• 3.2 Definición de múltiples Capas

4. Ventajas de Usar Haskell

5. El perceptrón Simple 

• 5.1 Introducción.

• 5.2 Ejemplo de entrenamiento

• 5.2.1 Entrenamiento 1ªiteración• 5.2.2 Entrenamiento 2ªiteración

• 5.3 Otro Ejemplo de entrenamiento sobre la máquina.

6. Estudio Comparativo: Haskell vs. Matlab

Page 4: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 4/494

ÍNDICE 7. NeuroScheme

• 7.1 Introducción• 7.2 Seis Razones para elegir la programación funcional• 7.3 Arquitectura de la Herramienta• 7.4 Interfaz con el Sistema

• 7.5 Interfaz Gráfica de Usuario• 7.6 Implementación de RNAS• 7.7 Resultados Obtenidos

8. Conclusiones• 8.1 Conclusiones Haskell• 8.2 Conclusiones NeuroScheme

• 8.3 Trabajo Futuro

9. Referencias

Page 5: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 5/495

1. Introducción

En la actualidad, la gran mayoría del software de simulación y entrenamientode redes neuronales es desarrollado mediante lenguajes imperativos comoC++, Java...

Usaremos Haskell , como alternativa para la implementación de algoritmos de

simulación y entrenamiento de redes neuronales aprovechando laspotencialidades que este ofrece.

Se mostrará que es posible evitar el uso de tablas e índices para laimplementación de redes neuronales feedforward multicapa, generando uncódigo claro, simple y corto en comparación con los lenguajes imperativos.

Se verá como Haskell puede ser adecuado para la experimentación connuevos algoritmos de entrenamiento de redes neuronales gracias a su similitudsintáctica con la matemática y las fortalezas del lenguaje.

Page 6: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 6/49

6

1.1 Haskell y La computaciónNumérica La programación funcional ofrece la oportunidad de crear un código mucho 

más comprensible y fácil de manejar gracias:• La similitud sintáctica con la matemática.• Los altos niveles de abstracción permiten crear un código más estructurado y reusable. 

No se pide obtener una alta eficiencia en tiempo por parte de Haskell, pues sumisma naturaleza como lenguaje de alto nivel lo impide.

La relativa juventud de este tipo de programación ofrece un gran campo deinvestigación en el cual se puede pensar en buscar nuevas alternativas :• Para la construcción de compiladores más eficientes.• Como también en la formación de alianzas con lenguajes de bajo nivel para la optimización de

algunasoperaciones

Lo importante a destacar estriba en las posibilidades que tiene Haskell para lacreación y experimentación de nuevos algoritmos en el campo de lacomputación numérica.

Page 7: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 7/49

7

1.2 Computación celular 

Este nuevo paradigma computacional suministra nuevasformas de hacer la computación más eficiente (entérminos de velocidad, coste, disipación, almacenamientoy calidad de la solución) para tratar grandes problemasen dominios de aplicación específicos.

La computación celular se basa en tres principios:• Simplicidad

• Paralelismo inmenso• Localidad

Page 8: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 8/49

8

1.3 Redes Neuronales

Una red de neuronas artificiales está caracterizada por su:

• Arquitectura : Estructura o patrón de conexiones entre las unidades de proceso

• Dinámica de la Computación  que nos expresa el valor que toman las

unidades de proceso y que se basa en unas funciones de activación (o detransferencia) que especifican como se transforman las señales de entrada dela unidad de proceso en la señal de salida.

• Algoritmo de Entrenamiento o Aprendizaje : Procedimiento para determinarlos pesos de las conexiones

Una característica muy importante de estas redes es su naturaleza adaptativa , donde el "aprendizaje con ejemplos" sustituye a la"programación" en la resolución de problemas.

Page 9: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 9/49

9

1.3.1 Redes NeuronalesCelulares

Las redes neuronales celulares están constituidaspor un conjunto de unidades de proceso, llamadasneuronas , cuyos valores posibles pueden ser discretoso continuos y el valor que presenta cada unidadneuronal viene dado por una función que depende deuna combinación lineal de los estados de las unidadesvecinas. (potencial sináptico)

Es por esta definición funcional que vamos a utilizar unlenguaje funcional para describirlas.

Page 10: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 10/49

10

1.4 Objetivos

Mostrar que es posible aprovechar la potencia expresiva de Haskell para la definición eficiente de las redes neuronales.

Mostrar que es posible crear una aplicación, a partir de la semántica

de un lenguaje funcional, para trabajar con redes neuronales yestudiarlas.

Page 11: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 11/49

11

2. Construcción de una libreríade Redes Neuronales en Haskell 

Para construir un algoritmo en programación funcional,este debe ser visto como una función explicita, al cualse le ingresa unos valores de entrada para retornar una

salida, de manera similar una red neuronal se comportacomo una función. La figura nos presenta de maneraesquemática la relación.

Page 12: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 12/49

12

2.1 Estructura de datos Al momento de representar una matriz haciendo uso de las programación

funcional es necesario construir una estructura de datos que haga uso de listasen vez de tablas e índices por los siguientes motivos:

• Las listas son la estructura lineal más importante de Haskell, además cuenta con un grannúmero de funciones y operaciones para utilizarlas.

• A parte de la poca expresividad, la representación de una matriz indexada en Haskell espoco eficiente, ya que los valores al ser atrapados en el constructor de datos Array, son dedifícil acceso y esto tiene un costo computacional.

La siguiente figura muestra como se representa una matriz por medio de listasde listas, donde cada una de ellas representa una fila de la matriz.

Page 13: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 13/49

13

2.2 Álgebra Lineal sin Índices

El siguiente paso consiste en desarrollar una librería de operaciones básicas de álgebra lineal para construir los algoritmos de entrenamiento.Para ver el proceso de construcción observe en la siguiente figura, lafunción zipmatriz se usa para definir funciones que respectivamentesumen, resten y multipliquen elemento a elemento dos matrices, esta

abstracción hace uso del concepto de función de alto nivel.

Nota: Código de Cesar Augusto Acosta Minoli (estas funciones podrían sustituirse por funciones predefinidas en haskell)

Page 14: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 14/49

14

2.3 Iteración y Recursión 

El entrenamiento de una red neuronal es un proceso iterativo en elcual la red actualiza sus pesos y umbrales hasta que se cumpla uncriterio de parada.

El modelo imperativo de programación implementa la iteración y la

actualización por medio de ciclos y asignaciones. Sin embargo laiteración y la actualización de variables se puede superar por mediode declaraciones recursivas. 

La figura muestra la función fIter la cual realiza un proceso Iterativomediante la recursión.

fIter se define haciendo uso de símisma y hace uso de valores enterospara determinar el número de ciclos de la

iteración ( init. y final). En la llamadarecursiva init aumenta en una unidad yel proceso termina una vez init sea iguala final, de lo contrario sigue modificandoel valor g a través de alguna función h.

Page 15: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 15/49

15

2.3 Iteración y Recursión Los elementos mencionados anteriormente son de suma importancia para

la construcción de los algoritmos de entrenamiento. A continuación semostrará algunos de los elementos implementados.

La implementación llevada a cabo se realizó pensando en los algoritmos

de entrenamiento de redes feedforward multicapa, la arquitectura de unacapa de este tipo de red luce como en la siguiente figura:

Page 16: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 16/49

16

2.3 Iteración y Recursión

Por lo tanto es necesario declarar los siguientes tipos:

Los tipos Input y Target no son más que una redeclaración de unamatriz de tipo Float.

Por su parte el tipo NeuralNetwork se define como una pareja

ordenada donde el primer componente corresponde a la matriz depesos y la segunda componente corresponde a la matriz deumbrales de la capa, es decir (W,b).

Page 17: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 17/49

17

3. Definición de una capa

Para simular una capa se definió la función simlayer:

Podemos observar la gran similitud entre la descripción teórica de la redneuronal y su implementación en haskell.

Una capa de la red multicapa que estamos desarrollando se puedeexpresar como:

Page 18: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 18/49

18

3.1.1. Función de transferencia

Un hecho interesante estriba en que la funciónde activación f puede ser definida en unmodulo anterior y luego ser llamada, bien sepuede definir una arquitectura perceptrón ouna Adalaine  respectivamente como :

• simLayer p (w,b) hardlim

• simLayer p (w,b) pureline

Page 19: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 19/49

19

3.2 Definición de múltiplescapas

La función anterior nos permite definir una función para elcaso en el cual tenemos una arquitectura de cualquiercantidad de capas y neuronas en cada capa.

Nota: Código de Cesar Augusto Acosta Minoli

Page 20: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 20/49

20

4. Ventajas de usar Haskell

Un hecho interesante estriba en que la cantidad de código para lacreación de la librería es realmente pequeño en comparación con otroslenguajes de programación. (No supera los 70K), para apreciar esto endetalle observe el código la función trainperceptron. 

Nota: Código de Cesar Augusto Acosta Minoli (Hay funciones que deberían estar mas optimizadas a la programación funcional)

Page 21: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 21/49

21

5. El perceptrón Simple5.1 Introducción.

Se usan en problemas de clasificación y predicción, minimizando los erroresde clasificación incorrectos.

Arquitectura de la Red :

•  N sensores de entrada : x1,x2,…,xN  pertenecientes a R 

• 1 unidad de proceso: y perteneciente a {0,1} ó {-1,1}

Regla de aprendizaje:• Memorizamos p pares de patrones : { x 1,z 1}, { x 2,z 2},…,{ 

x p,z p} 

Page 22: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 22/49

22

5.1 El perceptrón SimpleIntroducción.

Dinámica de la computación:

•  y = f ( u )•  θ : umbral o sesgo 

• h =

• wi : pesos sinápticos asociados a xi• función de transferencia paso → y pertenece a {0,1} 

• f = • función de transferencia signo → y pertenece a {-1,1}

•  

Page 23: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 23/49

23

5.1 El perceptrón SimpleIntroducción.

η(k) : tasa de aprendizaje, que optimiza la convergencia de la red.

Page 24: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 24/49

24

5.2 Ejemplo de entrenamiento

Vamos a tener dos clases de patrones de entrada posibles• los de CLASE A• los de CLASE B

Se desea que nuestro perceptron después de un proceso de

aprendizaje pueda diferenciar patrones de ambas clases.

Patrones de entrada• clase A={ (-0.5, -0.5), (-0.5, 0.5) }• clase B={ ( 0.3, -0.5), (0.0, 1.0) }

Para ello se desea que cuando le llegue un patrón de la clase Adevuelva un 1 y cuando llegue un patrón de la clase B devuelva un 0.• Z(Clase A) = 1• Z(Clase B) = 0

Page 25: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 25/49

25

5.2.1 Entrenamiento 1ªiteración

Inicialmente nuestra matriz de pesos sinápticos va a ser:w1 = -0.3 w2 = 0.5 umbral = 1• Estos valores son dados aleatoriamente, podrían haberse dado otros

cualesquiera.

1º Selecciono un patrón de entrada aleatorio, por ejemplo el patrón dela clase B = (0.0, 1.0).

2º Calculo el potencial sináptico que le ha llegado al perceptron.• El potencial sináptico es el resultado de sumar cada una de las entradas

del perceptron multiplicadas por el peso sináptico correspondiente paracada entrada.• h (x1, x2) = w1*x1 + w2*x2• En este caso h=-0.3*0.0 + 0.5*1.0 = 0.5

Page 26: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 26/49

26

5.2.1 Entrenamiento 1iteración

Como h es menor que el umbral (u = 1 ) entonces el perceptronpondrá a la salida uno 0• El perceptrón estará determinado por la función paso , es decir si

el potencial sináptico es mayor que el umbral entonces pone a lasalida un 1, de lo contrario pondrá un 0.

En este caso el PERCEPTRON HA ACERTADO (ya que le hemosintroducido un patrón de la clase B y lo ha clasificado correctamentedevolviendo un 0, luego NO SUFRE PROCESO DEENTRENAMIENTO.

Si se hubiese equivocado, entonces se produciría el proceso deaprendizaje, mediante el cual se producirán cambios oportunos en lospesos sinápticos, con objetivo de aceptar en el próximo patrón.

Page 27: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 27/49

27

5.2.2 Entrenamiento 2iteración

Ahora cogemos otro patrón cualquiera de entrada, por ejemplouno de la clase A : (-0.5, 0.5)

el Potencial sináptico será:

• h= (-0.3)*(-0.5) + 0.5 * 0.5 = 0.4

h < umbral luego entonces se devuelve un 0.• (Esto no coincide con la salida deseada, pues para patrones de la

clase A, es un 1.)

Puesto que se ha equivocado nuestro perceptron ha deaprender de sus errores y modificar su matriz de pesossinápticos W, para asi realizar una mejor clasificación depatrones.

Page 28: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 28/49

28

5.2.2 Entrenamiento 2iteración

Según expusimos anteriormente:• n es el patrón de aprendizaje n=0.1• wi(1): peso sináptico de la entrada i, durante la iteración 1.• xi : valor de la entrada i

•zi : Salida deseada para la entrada i

• yi : Salida Obtenida para la entrada i• u(i): umbral durante la iteración i

Wi(2) = wi(1) + η [SalidaDeseada - SalidaObtenida]* xi

ósea nos quedaría que: w1(2) = -0.3 + η(1-0)*(-0.5) = -0.35 w2(2) = 0.5 + η(1-0)*0.5 = 0.55 u(2) = 1 + η(1-0)* (-1) = 0.9

Page 29: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 29/49

29

5.2.2 Entrenamiento 2iteración

Ahora se ha producido un error en la clasificación y por lo tanto elperceptrón aprenderá y modificara los valores de sus pesos sinápticos y su umbral.

De forma que en sucesivas iteraciones introduciendo nuevos valoresde x1 y x2 (y -1 en el umbral) el perceptrón irá aprendiendo hastaconseguir unos óptimos valores de w1, w2 y u , que permitanclasificar correctamente cualquier valor introducido en la entrada.

Page 30: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 30/49

30

5.3 Otro Ejemplo de entrenamientosobre la máquina.

module ParityProblem whereimport Transferimport NeuralNetworkimport Interface

p::Inputp= [[0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0],

[0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0],[0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0]]

t:: Targett= [[0.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0]]

main = entrenarPerceptron p t (inicializar 75 [3,3,1]) 3

Page 31: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 31/49

31

5.3 Otro Ejemplo deentrenamiento sobre la máquinaEl resultado es el siguiente:

"TrainPerceptron, Epoca 0""TrainPerceptron, Epoca 1""TrainPerceptron, Epoca 2“ 

Simulacion :[0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0;0.0 0.0 1.0 1.0 0.0 0.0 1.0 1.0]

Supervision :[0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0;0.0 0.0 1.0 1.0 0.0 0.0 1.0 1.0]

Desea guardar La red? y / n

Page 32: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 32/49

32

6. Estudio comparativo: Haskell vs. Matlab

El estudio comparativo muestra que el desempeño de lalibrería es bastante bueno teniendo como referente a Matlabpara los problemas propuestos.

El uso de un lenguaje funcional también muestra un códigoclaro, corto en comparación con los lenguajes imperativos ysin la necesidad de usar tablas e índices.

Sin embargo se observa que requiere de mucho más tiempo

para realizar las operaciones. Lo anterior permite formular lasiguiente pregunta: ¿Cuál puede ser el papel de Haskellfrente a la computación numérica en la actualidad?

Page 33: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 33/49

33

6. Estudio comparativo: Haskell vs. Matlab

Tiempos en Clasificación

0

0,5

1

1,5

2

2,5

3

3,5

Perceptron Adalina BAM Perceptron

multicapa

BGM

Tipo de Red

      T      i     e     m     p     o

Haskell

Matlab

Todas las pruebas se realizaron en un PC con procesador AMD-ATHLON de 850 Mhz con 256

Mb de memoria, utilizando Windows 98 como sistema operativo.El compilador para la librería en Haskell fue GHC compiler versión 5.04.3 para Windows y lostiempos fueron capturados mediante la función getClockTime, una función pre-definida deHaskell.

Para la comparación se usó Matlab versión 6.1.0.450 release 12.1.

Page 34: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 34/49

34

7. NEUROSCHEME 

Un lenguaje para el modelado de redes neuronales artificiales.

Para el desarrollo de la herramienta se ha seleccionado comolenguaje base al dialecto Scheme .

Scheme define el ámbito de sus definiciones léxicamente, esestructurado en bloques, soportando funciones y continuaciones como

objetos de datos que pueden ser pasados como parámetros afunciones, retornados como el valor de una función, y permanecerindefinidamente en memoria.

7.1 Introducción 

Page 35: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 35/49

35

7.2 Seis razones para elegir laprogramación funcional. 

1. La programación funcional es mucho más simple, ya que lasexpresiones son construidas en forma natural inherentementerecursiva.

2. La programación funcional es mucho más fácil de entender, ya quecada pieza de código ejecuta una tarea específica, facilitando elseguimiento del código.

3. Es posible ejecutar pruebas para validar el programa.

4. Las variables locales se declaran directamente como parámetros de lasfunciones, inicializándose siempre al ser invocada una función, yrepresenta más el nombre para un valor que una localización enmemoria, tal como ocurre en C o Pascal.

Page 36: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 36/49

36

7.2 Seis razones para elegir laprogramación funcional. 

5. Es posible alternar el orden de evaluación de las expresiones en loslenguajes funcionales.

6. Pueden construirse complejas instrucciones con retornos no locales, lo

que facilita complejas estructuras de control.

Page 37: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 37/49

37

7.3 Arquitectura de la Herramienta 

El núcleo de la herramienta es un interprete de Scheme basado en unmontículo de memoria.

La herramienta se divide en cuatro grandes partes:

• Un módulo de interfaz con el usuario, encargado de administrar lasentradas del usuario y los mensajes del sistema, y utilitarios como lahistoria de comandos.

• Un pre-procesador de código fuente

• Un compilador.

• Una máquina virtual que ejecuta las instrucciones de bajo nivel

Page 38: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 38/49

38

7.4 Interfaz con el sistema y usuarios

Page 39: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 39/49

39

7.5 Interfaz gráfica de usuario

Page 40: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 40/49

40

7.6 Implementación de RNAS

Se han implementado tres modelos de propagación hacia delante:

• Feedforward.• Cascada correlación.• Cascada hacia delante.

Los algoritmos de entrenamiento implementados incluyen:

• Regla delta generalizada.• Regla delta con momento.• Gradiente descendente.• Estrategias de evolución.

• Temple simulado.• Así como versiones de algunas de ellas combinadas con mínimos cuadrados.

Page 41: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 41/49

41

7.7 Resultados Obtenidos

La red neuronal se modela como un tipo de dato propio del lenguaje,lo que implica que se encuentra codificada en lenguaje Scheme,haciendo que la velocidad de los algoritmos de entrenamiento sea tanalta como en las aplicaciones de usuario final disponibles hoy en día

(matlab).

La utilización de diálogos como mecanismo primario de comunicacióncon el usuario de la aplicación, permite que este con unas pocashoras de entrenamiento, y aún sin tener un conocimiento previo dellenguaje Scheme, pueda estar entrenando modelos de redes

neuronales artificiales.

Page 42: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 42/49

42

8. Conclusiones

En el transcurso del trabajo, podemos destacar las siguientesconclusiones:

Se demuestra que no es necesario usar índices y tablas para eldiseño e implementación de algoritmos que simulen y entrenen redes

neuronales.

Haskell posee grandes posibilidades para el diseño y evaluaciónexperimental de nuevos algoritmos de forma rápida gracias alparecido que tiene con la especificación del problema a implementar ysu similitud sintáctica con la matemática.

Los ejemplos usados para el entrenamiento mostraron que lasrespuestas son de buena calidad , es confiable y se puede usar comocualquier otro simulador de redes neuronales para resolver problemasde tamaño moderado.

Page 43: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 43/49

43

8.1 Conclusiones HASKELL

La implementación en Haskell permite que el código sea transparentey ver la forma en que la librería está implementada.

Haskell permite expresar algoritmos de forma clara y simple, esto esútil en el momento de desarrollar y de derivar versiones más eficientes

a bajo nivel.

Comparación Haskell vs. Matlab:• Haskell como lenguaje de programación funcional puro, aún no está

preparado para competir por la eficiencia en tiempo, su característica delenguaje de alto nivel le impide tal rapidez, por tal motivo:

• Es necesario la generación de alianzas con lenguajes de bajo nivel que seencarguen de hacer el trabajo pesado y menos significativo (es el caso delproducto de matrices.)

Page 44: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 44/49

44

8.1 Conclusiones HASKELL

• Como ejemplo de estas alianzas, muchos de los algoritmos deMatlab están desarrollados en una eficiente librería de bajo niveldiseñada para el álgebra lineal numérica (conocida comoLAPACK)

• Adicionalmente Matlab hace un uso cuidadoso de C yensamblador en muchas de sus rutinas.Estas alianzas han logrado optimizar significativamente lasoperaciones que se pueden realizar en Matlab (véanse graficascomparativas)

• Un detalle a destacar de la librería mostrada es que no aprovechatoda la potencia expresiva de la programación funcional, haciendocaso omiso al sistema de clases y no aprovechando las funcionespredefinidas del lenguaje

Page 45: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 45/49

45

8.2 Conclusiones NEUROSCHEME

El interprete implementado es altamente versátil, permitiendo construiralgoritmos para la manipulación y entrenamiento de RNAs, de talforma, que es posible automatizar procesos, y construir modeloscomplejos de RNAs.

Los resultados obtenidos hasta ahora, permiten concluir que debecontinuarse con el desarrollo de la herramienta, e incorporarse otrosparadigmas como Redes Neurodifusas, y Sistemas Borrosos, parahabilitar la herramienta para construir sistemas híbridos para soluciónde problemas.

Page 46: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 46/49

46

8.3 Trabajo Futuro

Se hace necesario un estudio sobre las posibilidades de haceruna alianza entre lenguajes de bajo nivel y Haskell para laconstrucción de algoritmos precompilados de bajo nivel quepuedan ser usados por Haskell.

Es necesario desarrollar una interfaz visual en Haskell quemuestre de manera más amigable los resultados deentrenamiento,(así como “plot” en Matlab) donde se puedanapreciar graficas que muestren la evolución.

A nivel teórico es necesario observar las posibilidades queHaskell ofrece para el diseño de nuevos algoritmos de redesneuronales puramente funcionales, explicando la teoría de lasredes desde el lambda cálculo.

Page 47: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 47/49

47

9. Referencias

1. Blas C. Ruiz Jiménez...[et al.], “Programación funcionalcon Haskell” Málaga : Universidad, Secretariado dePublicaciones, D.L. 1995

2. Acosta Minoli, C. A. “Artículo sobre implementación deRedes Neuronales.”(2004) Universidad del Quindío,Colombia.

3. Hudak et al . (2000), “A Gentle Introduction to Haskell ,Tutorial”. http://www.haskell.org/tutorial/ 

4. FREEMAN, J.A. Y SKAPURA D.M,(1993) “RedesNeuronales: Algoritmos, aplicaciones y técnicas deprogramación”. Addison Wesley. 1993

Page 48: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 48/49

48

9. Referencias

5. Martín del Brío B., A. Sanz,(2001) “Redes neuronales ySistemas Borrosos”. Madrid : Ra-Ma, 2ª ed.

6. HUGHES, J. (1990) “Why Functional Programming

Matters”, Institutionen för Datavetenskap, Chalmers TekniskaHögskola, 41296 Göteborg, SWEDEN.

7. Mark P Jones, Alastair Reid, the Yale Haskell Group, and the

OGI School of Science & Engineering at OHSU, (1994-2002)“The Hugs 98 User Manual”, web:

http://cvs.haskell.org/Hugs/pages/hugsman/index.html 

Page 49: Re Des Neuron Ales

5/14/2018 Re Des Neuron Ales - slidepdf.com

http://slidepdf.com/reader/full/re-des-neuron-ales 49/49

9. Referencias

8. José R. Hilera y Victor J Martinez."REDES NEURONALESARTIFICIALES". Madrid : Ra-ma, [1995]

9. VELÁSQUEZ J. D., “NEUROSCHEME: UN LENGUAJE PARA EL

MODELAMIENTO DE REDES NEURONALES ARTIFICIALES”,Grupo de Inteligencia Artificial, Facultad de Minas, Universidad Nacional de Colombia, Junio de 2005.

10. Muñoz J., ”APUNTES DE LA ASIGNATURA MODELOS

COMPUTACIONALES”, www.lcc.uma.es/LCCTemario/Asignatura.jsp?idasignatura=22, 

Escuela Superior de Ingeniería Informática, Universidad de Málaga, Abril 2006.