escuela de ciencias de la computaciÓncronus.uwindsor.ca/units/isplab/isplab.nsf... ·...

136
U UN NI I V V E E R RS SI I D DA A D D T T É É C CN NI I C CA A P P A A R RT TI I C CU UL L A A R R D DE E L L O OJ J A A ESCUELA DE CIENCIAS DE LA COMPUTACIÓN Análisis de la implementación del algoritmo de Backpropagation aplicado al procesamiento de imágenes satelitales sobre un entorno distribuidoTesis previa a la obtención del título de Ingeniero en Sistemas Informáticos y Computación. AUTOR: Roberto Carlos Cueva Samaniego DIRECTOR: Ing. Greyson Alberca COODIRECTORA: Ing. Susana Arias Loja Ecuador 2009

Upload: vanphuc

Post on 01-Oct-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

UUNNIIVVEERRSSIIDDAADD TTÉÉCCNNIICCAA PPAARRTTIICCUULLAARR DDEE LLOOJJAA

ESCUELA DE CIENCIAS DE LA COMPUTACIÓN

“Análisis de la implementación del algoritmo de

Backpropagation aplicado al procesamiento de

imágenes satelitales sobre un entorno distribuido”

Tesis previa a la obtención del título de

Ingeniero en Sistemas Informáticos y

Computación.

AUTOR: Roberto Carlos Cueva Samaniego

DIRECTOR: Ing. Greyson Alberca

COODIRECTORA: Ing. Susana Arias

Loja – Ecuador

2009

Page 2: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

i

CERTIFICACIÓN

Ing. Greyson Alberca

Ing. Susana Arias

CERTIFICA:

Que el Sr. Roberto Carlos Cueva Samaniego, autor de la tesis “Análisis de la

implementación del algoritmo de Backpropagation aplicado al procesamiento de imágenes

satelitales sobre un entorno distribuido“, ha cumplido con los requisitos estipulados en el

Reglamento General de la Universidad Técnica Particular de Loja, la misma que ha sido

coordinada y revisada durante todo el proceso de desarrollo desde su inicio hasta la

culminación, por lo cual autorizo su presentación.

Ing. Greyson Alberca Ing. Susana Arias

DIRECTOR DE TESIS COODIRECTORA DE TESIS

Loja, Septiembre del 2008

Page 3: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

ii

CESIÓN DE DERECHOS

Yo, Roberto Carlos Cueva Samaniego, declaro ser autor del presente trabajo y eximo

expresamente a la Universidad Técnica Particular de Loja y a sus representantes legales

de posibles reclamos o acciones legales.

Adicionalmente declaro conocer y aceptar la disposición del Art. 67 del Estatuto Orgánico

de la Universidad Técnica Particular de Loja que por su parte pertinente textualmente

dice: “Forman parte del patrimonio de la Universidad la propiedad intelectual de

investigaciones, trabajos científicos o técnicos y tesis de grado que se realicen a través

con el apoyo financiero, académico o institucional (operativo) de la Universidad”.

…………………………………………………….

Roberto Carlos Cueva Samaniego

TESISTA

Page 4: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

iii

AUTORIA

Las ideas, opiniones, conclusiones, recomendaciones y más

contenidos expuestos en el presente informe de tesis son de

absoluta responsabilidad del autor.

Roberto Carlos Cueva Samaniego

Page 5: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

iv

DEDICATORIA

La culminación del presente proyecto se la dedico especialmente a mi madre Gladis y a

mis hermanos Sandra, Manuel, Raúl y Rubén, por su apoyo durante toda mi formación

personal y profesional.

A mi padre Raúl que descansa en el cielo, quien me enseño el verdadero espíritu de

superación y valentía.

A todos mis familiares que estuvieron pendientes y me brindaron su apoyo y fuerza.

A mis compañeros y amigos con quienes he compartido muchos conocimientos y

experiencias.

Finalmente a mis maestros por brindarme sus conocimientos durante toda mi carrera,

sinceramente gracias a todos ustedes.

Roberto

Page 6: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

v

AGRADECIMIENTO

A la Universidad Técnica Particular de Loja, por brindarme todos los conocimientos para

poder formarme profesionalmente y espiritualmente; así mismo mi agradecimiento a la

Escuela de Ciencias de la Computación por su aporte académico y administrativo a lo

largo de mi formación universitaria.

Un especial agradecimiento al Ing. Héctor Gómez, Ing. Susana Arias y al Ing. Greyson

Alberca por ser mi guía y coordinador durante todo el desarrollo de la presente tesis, sin

su apoyo y paciencia hubiera sido difícil la culminación de la misma.

Además un sincero agradecimiento a mi amigo y compañero Diego Sarmiento por su

ayuda durante el desarrollo de la tesis.

¡GRACIAS!

Page 7: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

vi

INDICE DE CONTENIDOS

CERTIFICACIÓN ........................................................................................................... I

CESIÓN DE DERECHOS ....................................................................................................... II

AUTORIA ...................................................................................................................... III

DEDICATORIA ............................................................................................................ IV

AGRADECIMIENTO .................................................................................................... V

INDICE DE CONTENIDOS ................................................................................................... VI

ÍNDICE DE FIGURAS ........................................................................................................... X

ÍNDICE DE TABLAS ............................................................................................................ XI

PERFIL DEL ANTEPROYECTO DE TESIS ................................................................................ 1

RESUMEN .......................................................................................................................... 5

INTRODUCCIÓN ................................................................................................................. 7

TRABAJOS RELACIONADOS ............................................................................................. 10

CAPÍTULO I ...................................................................................................................... 11

MARCO REFERENCIAL ...................................................................................................... 11

1.1 INTRODUCCIÓN ......................................................................................................................... 12

1.2 TELEDETECCIÓN......................................................................................................................... 12

1.2.1 Definición .............................................................................................................................. 12

1.2.2 Elementos de un proceso de teledetección ............................................................................ 13

1.3 IMAGEN SATELITAL ................................................................................................................... 14

1.3.1 Introducción .......................................................................................................................... 14

1.3.2 Imagen Landsat .................................................................................................................... 15

1.3.3 Banda Espectral .................................................................................................................... 15

1.4 REDES NEURONALES ARTIFICIALES ............................................................................................ 17

1.4.1 Introducción .......................................................................................................................... 17

1.4.2 Estructura de un sistema neuronal artificial .......................................................................... 18

1.4.3 Modelo general de neurona artificial .................................................................................... 19

1.4.4 Arquitectura de una red neuronal ......................................................................................... 20

Page 8: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

vii

1.4.4.1 Número de capas ........................................................................................................................ 20 1.4.4.2 Tipo de conexiones ..................................................................................................................... 21 1.4.4.3 Grado de conexión ...................................................................................................................... 21

1.4.5 Mecanismo de aprendizaje ................................................................................................... 23 1.4.5.1 Tipos de aprendizaje ................................................................................................................... 25

1.4.5.1.1 Supervisado ........................................................................................................................... 25 1.4.6 Tipo de asociación entre la información de entrada y salida ................................................. 26

1.4.6.1 Heteroasociación ........................................................................................................................ 26 1.4.6.2 Auto asociación .......................................................................................................................... 27

1.4.7 Ventajas ................................................................................................................................ 27

1.4.8 Aplicaciones .......................................................................................................................... 28

1.5 BACKPROPAGATION........................................................................................................................ 29

1.5.1 Mecanismo de Aprendizaje ................................................................................................... 30

1.5.2 Paralelización del proceso de aprendizaje ............................................................................. 30

1.5.3 Paralelización del conjunto de datos a clasificar ................................................................... 31

1.5.4 Implementaciones en software ............................................................................................. 31

1.6 CLUSTER ...................................................................................................................................... 32

1.6.1 Definición .............................................................................................................................. 32

1.6.2 Clasificación .......................................................................................................................... 32

1.6.3 Taxonomías .......................................................................................................................... 33

1.6.4 Interfaz de paso de mensajes (MPI) ...................................................................................... 35 1.6.4.1 Pure Mpi.NET .............................................................................................................................. 35

1.6.4.1.1 Windows Communication Foundation.................................................................................... 36

CAPÍTULO II ..................................................................................................................... 37

DEFINICIÓN DEL PROBLEMA Y MODELADO DE LA SOLUCIÓN ..................................... 37

2.1. INTRODUCCIÓN.............................................................................................................................. 38

2.2. PLANTEAMIENTO DEL PROBLEMA ....................................................................................................... 38

2.3. JUSTIFICACIÓN ............................................................................................................................... 39

2.4. METODOLOGÍA.............................................................................................................................. 40

2.4.1 Método experimental ........................................................................................................... 40

2.4.2 Método estadístico ............................................................................................................... 41

2.5. DESCRIPCIÓN DE LA SOLUCIÓN .......................................................................................................... 41

2.6. ARQUITECTURA DE LA SOLUCIÓN........................................................................................................ 43

2.7. REQUERIMIENTOS DE LA SOLUCIÓN .................................................................................................... 46

2.8. DIAGRAMA DE CLASES..................................................................................................................... 46

2.9. CASOS DE USO ............................................................................................................................... 48

2.9.1 Módulo de entrenamiento y testeo ....................................................................................... 48

2.9.2 Módulo de clasificación en forma secuencial ........................................................................ 52

2.9.3 Módulo de clasificación en forma paralela ............................................................................ 53

2.10. DIAGRAMAS DE SECUENCIA .............................................................................................................. 57

CAPÍTULO III .................................................................................................................... 60

Page 9: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

viii

DESARROLLO DE LA SOLUCIÓN ....................................................................................... 60

3.1 INTRODUCCIÓN.............................................................................................................................. 61

3.2 DESCRIPCIÓN DE LOS REQUERIMIENTOS ............................................................................................... 61

3.3 ALGORITMO DE DISTRIBUCIÓN DE DATOS ............................................................................................. 67

3.4 ARQUITECTURA DE LA RED NEURONAL ARTIFICIAL .................................................................................. 68

3.5 DESCRIPCIÓN DE HARDWARE Y SOFTWARE ........................................................................................... 70

3.6 DESCRIPCIÓN DE RED ...................................................................................................................... 71

3.7 IMPLEMENTACIÓN .......................................................................................................................... 72

CAPÍTULO IV .................................................................................................................... 78

VALIDACIÓN Y PRUEBAS ................................................................................................. 78

4.1 INTRODUCCIÓN.............................................................................................................................. 79

4.2 PLAN DE VALIDACIÓN Y PRUEBAS....................................................................................................... 79

4.3 VALIDACIÓN DE LA RED NEURONAL ..................................................................................................... 80

4.4 CRITERIOS DE EVALUACIÓN ............................................................................................................... 84

4.4.1 Tiempo de ejecución.............................................................................................................. 85

4.4.2 Número de procesadores (P). ................................................................................................ 85

4.4.3 Tiempo paralelo. ................................................................................................................... 85

4.4.4 Tiempo de comunicaciones. .................................................................................................. 86

4.4.5 Aceleración ........................................................................................................................... 86

4.4.6 Eficiencia ............................................................................................................................... 86

4.4.7 Coste ..................................................................................................................................... 87

4.5 ANÁLISIS Y DISCUSIÓN DE RESULTADOS................................................................................................ 87

4.5.1 Clasificación en forma secuencial .......................................................................................... 87

4.5.2 Clasificación en forma paralela ............................................................................................. 88

4.5.3 Comparación entre la versión secuencial y paralela .............................................................. 89

4.6 EVALUACIÓN DEL RENDIMIENTO ........................................................................................................ 91

4.6.1 Aceleración ........................................................................................................................... 91

4.6.2 Eficiencia ............................................................................................................................... 92

4.6.3 Coste ..................................................................................................................................... 95

CAPITLULO V ................................................................................................................... 98

CONCLUSIONES Y RECOMENDACIONES .......................................................................... 98

CAPITULO VI .................................................................................................................. 101

DISCUSIÓN Y TRABAJOS FUTUROS ................................................................................ 101

BIBLIOGRAFÍA ................................................................................................................ 104

ANEXOS ......................................................................................................................... 107

Page 10: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

ix

ANEXO I ......................................................................................................................... 108

ANEXO II ........................................................................................................................ 120

ANEXO III ....................................................................................................................... 124

Page 11: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

x

ÍNDICE DE FIGURAS

Fig. 1 Elementos de la teledetección ............................................................................................ 13

Fig. 2 Rango de longitudes de onda en los que funciona cada sensor del satélite Landsat TM ....... 16

Fig. 3 Esquema de adquisición y generación de una imagen ......................................................... 16

Fig. 4 Estructura de una neurona artificial .................................................................................... 19

Fig. 5 Clasificación de las redes neuronales artificiales.................................................................. 22

Fig. 6 Estructura de una red neuronal de tres niveles ................................................................... 23

Fig. 7 Tipos de aprendizaje y posibles aplicaciones ....................................................................... 25

Fig. 8 Diagrama esquemático del sistema de entrenamiento ........................................................ 26

Fig. 9 Taxonomía de Flynn ............................................................................................................ 34

Fig. 10 Arquitectura de la Solución ............................................................................................... 42

Fig. 11 Modelo de la solución ....................................................................................................... 44

Fig. 12 Arquitectura de la Red Neuronal ....................................................................................... 45

Fig. 13 Diagrama de Clases - Aforge.net ....................................................................................... 47

Fig. 14 Diagrama general de clases ............................................................................................... 48

Fig. 15 Diagrama de caso de uso - Modulo de entrenamiento y testeo ......................................... 51

Fig. 16 Diagrama de caso de uso - Módulo clasificación secuencial ............................................... 53

Fig. 17 Diagrama de caso de uso - Módulo clasificación paralela .................................................. 56

Fig. 18 Diagrama de Secuencia - Clasificación en forma Secuencial ............................................... 57

Fig. 19 Diagrama de Secuencia - Clasificación Paralela .................................................................. 58

Fig. 20 Función de activación sigmoidal ........................................................................................ 65

Fig. 21 Función de activación sigmoidal bipolar ............................................................................ 66

Fig. 22 Clasificación secuencial ..................................................................................................... 88

Fig. 23 Clasificación Paralela ......................................................................................................... 89

Fig. 24 Comparación de tiempos de ejecución entre la clasificación Secuencial y Paralelo ............ 90

Fig. 25 Comparación de la aceleración variando el número de nodos ........................................... 92

Fig. 26 Comparación de la Eficiencia variando la cantidad de nodos ............................................. 94

Fig. 27 Comparación del Coste variando la cantidad de nodos ...................................................... 96

Page 12: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

xi

ÍNDICE DE TABLAS

Tabla 1 Clases de entrenamiento de la red neuronal. ................................................................... 62

Tabla 2 Arquitectura de la red neuronal ....................................................................................... 69

Tabla 3 Entrenamiento de la red neuronal con diferentes arquitecturas....................................... 70

Tabla 4 Características de los computadores ................................................................................ 70

Tabla 5 Configuración de los nombres de las computadoras......................................................... 71

Tabla 6 Casos de prueba .............................................................................................................. 80

Tabla 7 Resultados obtenidos con la herramienta WEKA .............................................................. 81

Tabla 8 Resultados obtenidos con CIS .......................................................................................... 82

Tabla 9 Resultados obtenidos con la función Sigmoidal ................................................................ 83

Tabla 10 Resultados obtenidos con la función Bipolar Sigmoidal .................................................. 84

Tabla 11 Datos de Aceleración ..................................................................................................... 92

Tabla 12 Datos de Eficiencia ......................................................................................................... 93

Tabla 13 Datos de optimización de algoritmos paralelos .............................................................. 95

Tabla 14 Datos de coste ............................................................................................................... 96

Page 13: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

1

PERFIL DEL ANTEPROYECTO DE TESIS

1. TEMA

ANÁLISIS DE LA IMPLEMENTACIÓN DEL ALGORITMO DE BACKPROPAGATION

APLICADO AL PROCESAMIENTO DE IMÁGENES SATELITALES SOBRE UN ENTORNO

DISTRIBUIDO.

2. OBJETIVOS

2.1 OBJETIVO GENERAL

Optimizar los tiempos de respuesta del procesamiento de las imágenes

satelitales basadas en el algoritmo de Backpropagation sobre entornos

distribuidos.

2.2 OBJETIVOS ESPECÍFICOS

Investigar, analizar, e implementar herramientas de software que permita

trabajar sobre entornos distribuidos, tales como Cluster y Grid.

Desarrollar una aplicación utilizando una interfaz de paso de mensajes

(MPI) que permita realizar el análisis de imágenes satelitales a través de la

red neuronal Backpropagation.

Desarrollar una interfaz de usuario que permita representar los resultados

obtenidos del entorno distribuido.

Definir e implantar el entorno distribuido sobre el cual funcionará la

aplicación para el departamento SIG.

Page 14: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

2

3. DESCRIPCIÓN DE LA PROPUESTA

El procesamiento de imágenes satelitales en el departamento del SIG1 ha sido un

problema frecuente debido a que los tiempos de respuesta son muy lentos y esto

conlleva gastos innecesarios tanto de recursos materiales como humanos.

Actualmente el departamento SIG utiliza como herramientas de análisis de

imágenes satelitales el software ARGIS2 y WEKA3 los cuales procesan las imágenes

en forma secuencial. Por ésta razón se propone desarrollar una solución basada en

entornos distribuidos la cual permitirá mejorar los tiempos de respuesta y

optimizar los recursos que demanda el análisis de imágenes satelitales basadas en

redes neuronales.

4. ALCANCES Y RESULTADOS

El proyecto de tesis se enmarca en cumplir con los objetivos propuestos:

Obtener una aplicación que permita realizar el análisis de imágenes satelitales

sobre entornos distribuidos a través de la red neuronal Backpropagation.

Validación y aprobación de los resultados obtenidos de la aplicación

desarrollada por parte del departamento SIG.

1 Sistemas de Información Geográfica 2 http://ww.esri.com/sofwtware/arcgis/ 3 Waikato Environment for Knowledge Analysis – Entorno para Análisis del Conocimiento de la Universidad

de Waikato http://www.cs.waikato.ac.nz/ml/weka/

Page 15: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

3

5. FASES DE DESARROLLO

FASE I: Investigación Preliminar

Investigar las características principales de entornos distribuidos.

Determinar el espacio físico sobre la cual se va a instalar la infraestructura

hardware en la UTPL.

FASE 2: Selección, configuración e instalación de Herramientas

Definir el entorno distribuido sobre el cual se va a desarrollar la aplicación.

Seleccionar el software con el cual se va a trabajar sobre los entornos

distribuidos.

Instalación, configuración y pruebas de las herramientas de software para

trabajar en entornos distribuidos.

FASE 3: Desarrollo de la Solución

Desarrollar una aplicación que permita distribuir la carga de trabajo, optimizar

tiempos de respuesta y representar los resultados obtenidos del entorno

distribuido hacia el usuario final.

Realizar pruebas de la aplicación.

FASE 4: Validación de la Solución

El usuario final (SIG) realizará la validación respectiva de la aplicación.

FASE 5: Documentación

El proyecto se documentará considerando los elementos de cada una de las

fases y tomando en cuenta el aporte investigativo que se obtenga en el proceso

Page 16: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

4

de investigación y acorde a las necesidades de información que la escuela de

ciencias de la computación lo exija para los proyectos de tesis.

PRODUCTO FINAL

El producto final contemplará los siguientes elementos:

Estándares y configuraciones para las herramientas utilizadas en el desarrollo de

la aplicación.

Manual de la aplicación desarrollada.

Informe de los resultados obtenidos.

CD´s de la aplicación.

Page 17: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

5

RESUMEN

Este trabajo se inicia con la introducción de conceptos fundamentales para la comprensión del

mismo, en el Capítulo I se describen los tres componentes principales los cuales son:

1. Imágenes Satelitales

2. Redes Neuronales

3. Cluster

El procesamiento de imágenes satelitales dentro del de los Sistemas de Información Geográfica se

ha convertido en un área de estudio y desarrollo de gran importancia. Las imágenes satelitales

son fuente de mucha información pero procesar su contenido puede tomar demasiado tiempo ya

que actualmente esa tarea se la realiza sobre un computador. De ahí que nace la necesidad de

investigar nuevas y mejores formas de llevar a cabo el procesamiento y acortar los tiempos de

respuesta.

El proceso que se desea realizar sobre la imagen satelital es la clasificación de su contenido, es

decir obtener que porcentaje de determinado elemento de la tierra se encuentra en la imagen,

entre los elementos podemos mencionar agua, suelo, vegetación, o cualquier otro que se

encontrase en la imagen, obtener esta información de la imagen es vital ayuda para realizar

estudios de planificación urbana, estudios de deforestación, etc. esto agilizará el trabajo de los

científicos especializados en esta área.

Actualmente la incorporación de redes neuronales en tareas de clasificación ha demostrado ser

más efectivas que los métodos tradicionales, su efectividad se debe a que simulan el

comportamiento del cerebro humano, es por eso que en el proyecto se implementó la red

neuronal Backpropagation como clasificador. La librería que se utilizó fue Aforge.NET4.

El modelo de la solución se describe en el Capítulo II, aquí presentamos los módulos que tendrá la

solución así como los requerimientos necesarios para su implementación, también describimos la

arquitectura de la red neuronal y como interactuará con la herramienta software desarrollada.

4 http://code.google.com/p/aforge/

Page 18: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

6

Para cumplir el objetivo de mejorar los tiempos de respuesta, se implementó un Cluster5 en las

instalaciones de la UTPL6, y para la comunicación entre los distintos nodos se utilizó PureMpi.NET7,

el desarrollo de la herramienta se describe en el Capítulo III, ésta herramienta básicamente divide

contenido de la imagen para el número de nodos en el Cluster, cada nodo realiza la clasificación

parcial de sus datos y el resultado lo envía al nodo maestro, finalmente los resultados los presenta

al usuario.

Las pruebas realizadas y la validación de la herramienta se describen en el Capítulo IV, siendo éste

el capítulo más importante ya que aquí es donde se demuestra el rendimiento del Cluster,

finalmente las conclusiones y recomendaciones del proyecto se presentan en el Capítulo V, sin

dejar a un lado posibles trabajos futuros descritos en el Capítulo VI.

5 http://clusterfie.epn.edu.ec/clusters/Definiciones/definiciones.html 6 Universidad Técnica Particular de Loja: http://www.utpl.edu.ec

7 http://www.purempi.net/

Page 19: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

7

INTRODUCCIÓN

En la actualidad la Teledetección es una técnica muy utilizada para obtener información

de la superficie de la tierra sin entrar en contacto con ella, por lo general los datos son

recogidos a través de plataformas aerotransportadas o satélites artificiales, estos captan

la radiancia emitida por los objetos en la superficie produciendo una firma espectral la

cual hace distinguible a ese objeto de los demás.

La teledetección nos ha proporcionado la información necesaria para realizar el estudio en

diferentes áreas como por ejemplo en los sistemas de información geográfica, cartografía

digital y catastro, medio ambiente, gestión de recursos naturales, desarrollo local y

urbanismo, agricultura, obras públicas, servicios, telecomunicaciones, transporte, etc.

convirtiéndose en la principal herramienta para el desarrollo de la humanidad.

Para realizar el estudio de toda esta información ha sido necesaria la utilización de

herramientas de software que nos permite llevar ésta tarea más eficientemente estando

en la vanguardia software como ArcGis8 y ERDAS9.

Durante mucho tiempo la Teledetección ha tenido ciertas limitaciones en cuanto a la

capacidad computacional de los equipos actuales ya que cada vez aumentan los datos a

ser analizados consumiendo más tiempo y recursos económicos, es por eso que cada vez

se desarrollan nuevas técnicas y herramientas para sobrellevar estos inconvenientes

siendo la solución incorporar tecnologías de computación distribuida entre ellas:

- Globus Toolkit10

- Sun Grid Engine11

- G-Lite12

8 http://www.esri.com/software/arcgis/

9 http://www.erdas.com/ 10 http://www.globus.org/ 11

http://www.sun.com/software/gridware/ 12

http://glite.web.cern.ch/glite/

Page 20: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

8

- Condor13

- DeinoMPI14

- Mpich215

- Matlab16

- Microsoft Visual Studio .NET17

Entre los lenguajes principales para construir aplicaciones paralelas se tiene MatlabMPI18,

OpenMPI19, PVM20, MPI21, MPI.net22 y Pure MPI.net23. Se hará una breve descripción de

cada uno de ellos.

De las herramientas antes mencionadas se utilizará Microsoft Visual Studio .NET y

PureMPI.net para desarrollar una aplicación que nos permita realizar el análisis de los

datos en forma paralela específicamente en la clasificación de imágenes satelitales. El uso

de .NET como IDE y de PureMPI.net como interfaz de paso de mensajes se debe a su

completa y total combinación además de la experiencia y conocimiento de estos

componentes permitiéndonos su máxima explotación.

Como ya se mencionó el procesamiento de los datos se ha llevado a cabo sobre un

computador, con las tecnologías antes mencionadas se pretende llevar acabo el mismo

proceso sobre un conjunto de computadores permitiéndonos así ahorro de tiempo y

recursos, éste es el estudio que se realizará durante el presente trabajo.

Para realizar el análisis de los datos se puede hacer uso de diferentes métodos como por

ejemplo métodos estadísticos, el análisis de los datos mediante redes neuronales, la

13 http://www.cs.wisc.edu/condor/ 14 http://mpi.deino.net/ 15

http://www.mcs.anl.gov/research/projects/mpich2/ 16 http://www.mathworks.com/ 17 http://msdn2.microsoft.com/es-es/vstudio/default.aspx 18 http://www.ll.mit.edu/mission/isr/matlabmpi/matlabmpi.html 19

http://www.open-mpi.org/ 20 http://www.csm.ornl.gov/pvm/pvm_home.html 21 http://www.mpi-forum.org/ 22

http://www.osl.iu.edu/research/mpi.net/ 23

http://www.purempi.net/

Page 21: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

9

incorporación de algoritmos genéticos, etc. la investigación se enfocará en el análisis

mediante redes neuronales por ser el tema de estudio y su implementación sobre un

entorno distribuido.

En el campo de las redes neuronales se enfocará principalmente en el algoritmo

Backpropagation, de acuerdo con (1) es posible realizar una implementación de dicho

algoritmo sobre un entorno distribuido, éste proceso consiste en realizar la fase de

entrenamiento en distintos computadores, una vez entrenada la red también es posible

paralelizar la fase de testeo, es decir dividir el conjunto de testeo y enviar cada

subconjunto a un nodo en la red.

Page 22: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

10

TRABAJOS RELACIONADOS

La importancia de obtener la información contenida en un grupo de imágenes satelitales

ha llevado a la investigación e implementación nuevas técnicas de procesamiento paralelo

como por ejemplo el uso de clusters.

Actualmente el CAPI24, de la Universidad de Extremadura se centra en resolver problemas

de clasificación de patrones utilizando técnicas de Redes Neuronales y Algoritmos

Genéticos sobre un cluster Beowulf.

La NASA25 utiliza su supercomputador Discover para simular el calentamiento global así

como el modelamiento del clima y su interacción con el sol. Este supercomputador se

encuentra conformado por servidores IDataPlex26 especialmente diseñado para

compañías que utilizan tecnologías relacionadas con la Web 2.0.

En cuanto a la paralelización del aprendizaje del algoritmo Backpropagation podemos

destacar la investigación realizada en (2), en la cual realizan la implementación del

entrenamiento de forma paralela utilizando MPI y la plataforma .NET.

24

Grupo de Clasificación de Patrones y Análisis de Imágenes http://www.unex.es/unex/grupos/grupos/capi 25 National Aeronautics and Space Administration http://www.nasa.gov/home/index.html 26

http://www.idg.es/computerworld/impnot.asp?id=67178

Page 23: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

11

CAPÍTULO I

MARCO REFERENCIAL

Page 24: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

12

1.1 INTRODUCCIÓN

El presente capítulo se encuentra destinado a realizar una introducción a los

conceptos necesarios para la compresión del presente proyecto. Primero se hará una

introducción a la Teledetección, su definición y elementos que la componen, también

se describirá que es una imagen satelital y como se encuentra conformada.

Posteriormente realizaremos un estudio de redes neuronales artificiales

principalmente describiremos la red backpropagation y su importancia en el campo de

la teledetección. Finalmente se realizará una introducción a la computación distribuida

Cluster y como su implementación pretende aminorar el tiempo de procesamiento de

imágenes satelitales.

1.2 TELEDETECCIÓN

1.2.1 Definición

De acuerdo con (3), define la teledetección como la ciencia y arte de obtener

información de la superficie de la tierra, esto lo hace a través de dispositivos

electrónicos como cámaras aéreas, satélites entre otros. Cada objeto sobre la

superficie emite o refleja energía, estos dispositivos captan esa energía para luego

ser procesada y analizada, La teledetección utiliza esa información para aplicarla

en casos de estudio como crecimiento de zonas urbanas, deforestación etc.

Su importancia en el proyecto radica en que es necesario conocer la información

contenida en la imagen satelital analizada, para luego ser utilizada en los distintos

estudios de la misma.

Page 25: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

13

1.2.2 Elementos de un proceso de teledetección

A continuación se presenta la Fig. 1, donde se aprecia los elementos del proceso de

de teledetección. Podemos encontrar un detalle más exhaustivo en (4), pero se

hace referencia a los siguientes elementos:

Fig. 1 Elementos de la teledetección Fuente: http://www.igac.gov.co:8080/igac_web/UserFiles/File/ciaf/TutorialSIG_2005_26_02/paginas

/ctr_prcomponentes.htm

1. Fuente de energía, que supone el origen de la radiación electromagnética

que detecta el sensor.

2. Cubierta terrestre, formada por los distintos objetos que se encuentran en

la superficie terrestre como vegetación, agua, suelos o construcciones

humanas.

Page 26: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

14

3. Sistema Sensor, el cual tiene como objetivo captar la energía procedente

de las cubiertas terrestres.

4. Sistema de recepción-comercialización, en donde se recibe la información

transmitida por la plataforma.

5. Interprete, que convierte los datos en información temática de interés.

6. Usuario final, encargado de analizar el resultado de la interpretación.

1.3 IMAGEN SATELITAL

1.3.1 Introducción

Las imágenes satelitales son fuente de valiosa información necesaria para el

estudio de numerosas aplicaciones, esta información varía desde los recursos que

en ella se encuentra y el impacto que ejercen los seres humanos sobre ella.

De acuerdo a (5), las imágenes se encuentran estructuradas por un número de filas

y columnas en donde cada celda o pixel representa un área geográfica, cada píxel

contiene un valor numérico, que representa en promedio la cantidad de energía

solar que esa superficie refleja, el valor numérico dependerá del objeto que se esté

reflejando, luego estos valores pasan a ser distintos colores en la imagen ya

formada.

La imagen satelital constituye la fuente de datos necesaria para la realización del

proyecto. Al ser la imagen una matriz de datos nos permite realizar su estudio para

concebir el procesamiento paralelo de la misma.

Page 27: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

15

1.3.2 Imagen Landsat27

Una imagen LANDSAT generada por el satélite Landsat 7 ETM+28 está compuesta

por 8 bandas espectrales que pueden ser combinadas de distintas formas para

obtener variadas composiciones de color u opciones de procesamiento. Este

satélite incorpora una banda espectral (Banda Pancromática) con resolución de 15

metros.

No cabe duda que la utilización de satelitales en la Teledetección ha revolucionado

e incrementado enormemente su campo de aplicación, la generación de satélites

LandSat han sido uno de los pioneros en la Teledetección empezando por el

LandSat 1 lanzado en 1972 hasta el LandSat7 en 1999.

1.3.3 Banda Espectral

“Los satélites cuentan con más de un sensor; cada uno de ellos captura la energía

que se refleja en un rango distinto del espectro electromagnético. En la figura que

se muestra a continuación se pueden distinguir los rangos en los que trabaja cada

uno de los sensores de un satélite Landsat TM; cada uno de esos rangos se

denomina banda espectral. Por ejemplo, para este satélite en particular, la banda 4

corresponde al rango de longitudes de onda en el cual el sensor 4 es capaz de

captar la energía reflejada de la superficie terrestre, es decir alrededor de los 0.8

micrómetros” (5).

27

http://es.wikipedia.org/wiki/LandSat 28

Enhanced Thematic Mapper Plus

Page 28: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

16

Fig. 2 Rango de longitudes de onda en los que funciona cada sensor del satélite Landsat TM

Fuente: http://www.scanterra.com.ar/conozca_mas.html

En consecuencia, cada uno de los sensores captará distintos valores de energía

para el mismo píxel en cuestión, generando una imagen distinta del mismo lugar

geográfico.

Fig. 3 Esquema de adquisición y generación de una imagen Fuente: http://www.scanterra.com.ar/conozca_mas.html

Una imagen satelital se encuentra conformado por un conjunto de bandas, cada

una tiene diferente capacidades de captación de energía, a continuación se

enumera cada una de las bandas:

Banda 1: (0,45 a 0,52 micrones - azul). Adecuada para distinguir suelo y

vegetación.

Page 29: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

17

Banda 2: (0,52 a 0,60 micrones - verde). Evalúa el vigor de la vegetación,

diferencia tipos de rocas.

Banda 3: (0,63 a 0,69 micrones - rojo). Importante para distinguir tipos de

vegetación.

Banda 4: (0,76 a 0,90 micrones - infrarrojo cercano). Indicada para

determinar el contenido de biomasa delimita cuerpos en el agua y

clasificador de rocas

Banda 5: (1,55 a 1,75 micrones - infrarrojo medio). Indica el contenido de

agua en suelos y vegetación.

Banda 6: (10,40 a 12,50 micrones - infrarrojo termal). Importante para

imágenes nocturnas y para determinar la humedad del suelo.

Banda 7: (2,08 a 2,35 micrones - infrarrojo medio). Especialmente diseñada

para la discriminación de rocas y para el mapeo hidrotermal.

Para obtener información detallada de cada una de las bandas refiérase a (4).

Estas siete bandas pueden combinarse de a tres o más, produciendo una gama de

imágenes de color compuesto que incrementan notablemente sus aplicaciones,

especialmente en el campo de los recursos naturales.

1.4 REDES NEURONALES ARTIFICIALES

1.4.1 Introducción

En este apartado se describirá brevemente los fundamentos básicos de las redes

neuronales artificiales, especialmente los relacionados con la estructura de la

neurona artificial y de la arquitectura de la red.

Page 30: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

18

Se considerará que las redes neuronales artificiales son sistemas, hardware o

software, de procesamiento, que copian esquemáticamente la estructura neuronal

del cerebro para tratar de reproducir sus capacidades, como por ejemplo la

capacidad de memorizar y de asociar hechos. Las redes neuronales son capaces de

aprender de la experiencia a partir de señales o datos provenientes del exterior.

1.4.2 Estructura de un sistema neuronal artificial

Hacemos referencia al concepto encontrado en (6), en su libro Redes Neuronales,

para entender cuál es la estructura de un sistema neuronal:

“Los elementos básicos de un sistema neuronal biológico son las neuronas,

que se agrupan en conjuntos compuestos por millones de ellas organizadas

en capas, constituyendo un sistema con funcionalidad propia. Un conjunto

de estos subsistemas da lugar a un sistema global (el sistema nervioso, en el

caso biológico). En la realización de un sistema neuronal artificial puede

establecerse una estructura jerárquica similar. El elemento esencial de

partida será la neurona artificial, que se organizará en capas; varias capas

constituirán una red neuronal, finalmente un conjunto de ellas, junto a las

interfaces de entrada y salida, más los módulos convencionales adicionales

necesarios, constituirán el sistema global de proceso”.

Formalmente, y desde el punto de vista del grupo PDP (Parallel Distributed

Processing Research Group, de la Universidad de California en San Diego), de D. E.

Rumelhart y J. L. McClelland (7), un sistema neuronal está compuesto por los

siguientes elementos:

Un conjunto de procesadores elementales o neuronas artificiales.

Page 31: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

19

Una dinámica de conectividad o arquitectura.

Una dinámica de activaciones.

Una regla o dinámica de aprendizaje.

El entorno donde opera.

1.4.3 Modelo general de neurona artificial

Se denomina procesador elemental o neurona a un dispositivo simple de cálculo

que, a partir de un vector de entrada procedente del exterior o de otras neuronas,

proporciona una única respuesta o salida.

Fig. 4 Estructura de una neurona artificial Fuente: http://gjorge.files.wordpress.com/2007/08/nueva-imagen.png

A continuación se describirá la estructura genérica de neurona artificial en el

marco establecido por el grupo PDP (7).

Conjunto de entradas, XJ(t).

Pesos sinápticos de la neurona i, wij que representan la intensidad de

interacción entre cada neurona pre sináptica j y la neurona pos sináptica i.

Page 32: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

20

Regla de propagación, también conocida como función de excitación, que

por lo general consiste en el sumatorio de cada entrada multiplicada por el

peso de su interconexión. Si el peso es positivo, la conexión se denomina

excitatoria; si es negativo, se denomina inhibitoria.

Función de activación, que modifica a la anterior. Puede no existir, siendo

en este caso la salida de la misma función de propagación.

Función de salida o función de transferencia, que se aplica al valor devuelto

por la función de activación.

1.4.4 Arquitectura de una red neuronal

La definición de arquitectura es un punto muy importante en el modelaje de una

red neuronal, porque ella restringe el tipo de problema que puede ser tratado. La

arquitectura de una red neuronal se puede clasificar de diferentes formas (8):

1.4.4.1 Número de capas

Redes neuronales mono capa, se corresponde con la red neuronal más sencilla

ya que se tiene una capa de neuronas que proyectan las entradas a una capa

de neuronas de salida donde se realizan diferentes cálculos. La capa de

entrada, por no realizar ningún cálculo, no se cuenta de ahí el nombre de redes

neuronales con una sola capa, se las utiliza en la auto asociación para generar

informaciones de entrada que presentan distorsiones o se encuentran

incompletas

Redes neuronales multicapa, es una generalización de la anterior existiendo

un conjunto de capas intermedias entre la entrada y la salida denominadas

capas ocultas. Este tipo de red puede estar total o parcialmente conectada.

Page 33: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

21

1.4.4.2 Tipo de conexiones

Redes neuronales no recurrentes, en esta red la propagación de las señales se

produce en un sentido solamente, no existiendo la posibilidad de

realimentaciones. Estas estructuras no tienen memoria.

Redes neuronales recurrentes, esta red viene caracterizada por la existencia

de lazos de realimentación. Estos lazos pueden ser entre neuronas de

diferentes capas, neuronas de la misma capa o, más sencillamente, entre una

misma neurona. Esta estructura recurrente la hace especialmente adecuada

para estudiar la dinámica de sistemas no lineales.

1.4.4.3 Grado de conexión

Redes neuronales totalmente conectadas, en este caso todas las neuronas de

una capa se encuentran conectadas con las de la capa siguiente siendo estas

redes no recurrentes, o con las de la capa anterior denominadas redes

recurrentes.

Redes neuronales parcialmente conectadas, en este caso no se da la conexión

total entre neuronas de diferentes capas.

En la Fig. 5 presentamos la clasificación de las redes neuronales artificiales, su importancia

reside en ubicar la red Backpropagation, la cual está dentro de las redes multicapa con

conexiones hacia adelante.

Page 34: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

22

Fig. 5 Clasificación de las redes neuronales artificiales Fuente: http://www.redes-neuronales.netfirms.com/tutorial-redes-neuronales/Neural-Networks-Java/clasificacion-redes.gif

Page 35: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

23

La arquitectura más usada en la actualidad de una red neuronal consiste en:

Una capa de entrada, que recibe información del exterior.

Una serie de capas ocultas, encargadas de realizar el trabajo de la red.

Una capa de salida, que proporciona el resultado del trabajo de la red al

exterior.

Fig. 6 Estructura de una red neuronal de tres niveles Fuente: http://www.unizar.es/euitiz/areas/aretecel/investigacion/rna/bp.jpg

1.4.5 Mecanismo de aprendizaje

El aprendizaje es el proceso por el cual una red neuronal modifica sus pesos en

respuesta a una información de entrada. Los cambios que se producen durante el

proceso de aprendizaje como es la destrucción, modificación y creación de

Page 36: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

24

conexiones entre las neuronas, la creación de una nueva conexión implica que el

peso de la misma pasa a tener un valor distinto de cero, una conexión se destruye

cuando su peso pasa a ser cero.

El proceso de aprendizaje es usualmente iterativo, actualizándose los pesos de

manera anterior, una y otra vez, hasta que la red neuronal alcanza el rendimiento

deseado (6).

Algunos modelos neuronales incluyen la creación o destrucción de neuronas, en el

cual se modifica la propia arquitectura de la red. En cualquier caso, en un proceso

de aprendizaje la información contenida en los datos de entrada queda

incorporada en la propia estructura de la red neuronal, la cual almacena la

representación de una cierta imagen de su entorno.

Se puede resumir que el proceso de aprendizaje de una red neuronal consiste

principalmente en dos pasos (9):

1. Se introducen los ejemplos en las entradas y se observan las salidas, y se

procederá a modificar los pesos de la red para que se ajusten a las salidas.

2. A continuación se comprueba si se está cumpliendo el criterio de convergencia.

Este criterio de convergencia implicará el final del proceso de entrenamiento y

será configurable por el usuario. En general puede ser (9):

Por número fijo de ciclos, es decir, se introducen los ejemplos un número

determinado de veces y se ajustan los pesos ese mismo número.

Page 37: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

25

Si el error cae por debajo de un umbral determinado por el usuario,

denominado error objetivo.

Cuando la modificación de los pesos sea irrelevante.

1.4.5.1 Tipos de aprendizaje

Fig. 7 Tipos de aprendizaje y posibles aplicaciones Fuente: http://gpds.uv.es/nn/rna.php

Solo nos referiremos al aprendizaje supervisado ya que es de nuestro interés.

1.4.5.1.1 Supervisado

El proceso de aprendizaje se realiza mediante un entrenamiento controlado

por un agente externo denominado supervisor o maestro el cual determina la

respuesta que deberá generar la red a partir de una entrada determinada. El

supervisor comprueba la salida de la red y en el caso en que ésta no coincida

con la deseada, se procederá a modificar los pesos de las conexiones, con el fin

de conseguir que la salida se aproxime a la deseada, utilizando para ello

información detallada del error que comete en cada paso. De este modo, la red

Page 38: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

26

es capaz de estimar relaciones entrada/salida sin necesidad de proponer una

cierta forma funcional de partida.

Fig. 8 Diagrama esquemático del sistema de entrenamiento

Se consideran tres formas de llevar a cabo este tipo de aprendizaje:

Aprendizaje por corrección de error.

Aprendizaje por refuerzo.

Aprendizaje estocástico

1.4.6 Tipo de asociación entre la información de entrada y salida

Las redes neuronales son sistemas que almacenan cierta información aprendida;

esta información se registra de forma distribuida en los pesos asociados a las

conexiones entre neuronas de entrada y salida. Existen dos formas primarias de

realizar esa asociación de entrada-salida:

1.4.6.1 Heteroasociación

“En la heteroasociación la red aprende parejas de datos [(A1,B1),(A2,B2)…(An,Bn)], de

tal forma que cuando se presente cierta información de entrada A i, deberá

responder generando la correspondiente salida Bi.” (10)

Page 39: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

27

1.4.6.2 Auto asociación

“En la auto asociación la red aprende ciertas informaciones A1, A2...An, de tal forma

que cuando se le presente una información de entrada realizará una auto

correlación, respondiendo con uno de los datos almacenados, el más parecido al de

la entrada” (11).

1.4.7 Ventajas

Las redes neuronales tienen muchas ventajas debido a que está basado en la

estructura del sistema nervioso, principalmente el cerebro.

Aprendizaje, las redes neuronales artificiales tienen la habilidad de

aprender mediante una etapa que se llama etapa de aprendizaje.

Auto organización, la red neuronal crea su propia representación de la

información en su interior, descargando al usuario de esto.

Tolerancia a fallos, debido a que una red neuronal almacena la información

de forma redundante, ésta puede seguir respondiendo aceptablemente

aún si se daña parcialmente.

Flexibilidad, la red neuronal puede manejar cambios no importantes en la

información de entrada, como señales con ruido u otros cambios en la

entrada.

Page 40: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

28

Tiempo real, una red neuronal es capaz de procesar la información en

paralela por lo que su utilidad es muy grande en sistemas que requieran

de ésta característica.

1.4.8 Aplicaciones

Las redes neuronales son una tecnología computacional emergente que puede

utilizarse en un gran número y variedad de aplicaciones, de acuerdo a su

aplicabilidad se puede clasificar según el campo de estudio (8):

En medicina,

Diagnóstico de cardiopatías

Detección de tumores cancerígenos

Caracterización de la dinámica en la variabilidad cardiaca

Compresión de señales electro cardiográficas

Predicción de enfermedades degenerativas cardiacas

Aprender más acerca del cerebro y otros sistemas

Obtención de modelos de la retina

Diagnóstico y tratamiento a partir de síntomas

Procesado de la señal,

Ecualización de canales de comunicación

Reconocimiento de patrones en imágenes

Reconocimiento de voz

Sonar y Radar

Eliminación activa del ruido

Reconocimiento de caracteres escritos

Page 41: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

29

Economía,

Concesión de créditos

Detección de posibles fraudes en tarjetas de crédito

Determinación de la posibilidad de quiebra de un banco

Predicción del gasto eléctrico de empresas y centrales

Cambio de moneda

Tendencias a corto y mediano plazo en bolsas de valores

Predicción de stocks

Previsión de la evolución de los precios

Interpretación de firmas

Medio ambiente,

Predicción de irradiación solar

Predicción de niveles tóxicos de ozono en zonas urbanas y rurales

Predicción de variaciones globales de temperatura

1.5 Backpropagation

A continuación se realizará el estudio del algoritmo de aprendizaje Backpropagation,

principalmente se enfocará en el mecanismo de aprendizaje, además se realizará una

introducción de las diferentes formas de paralelización de éste algoritmo.

Las redes neuronales presentan innumerables ventajas y aplicaciones, uno de ellos es

en el campo de la clasificación de imágenes, el cual es de interés para el desarrollo del

presente proyecto.

El algoritmo Backpropagation se encuentra dentro de los algoritmos de aprendizaje

supervisado, de arquitectura multicapa y con conexiones hacia adelante Fig. 5.

Page 42: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

30

1.5.1 Mecanismo de Aprendizaje

A continuación se presentará de forma general el mecanismo utilizado por este

algoritmo obtenido de (6):

1) Establecer aleatoriamente los pesos y umbrales iniciales

2) Para cada patrón del conjunto de aprendizaje

2.1) Llevar a cabo una fase de ejecución para obtener la respuesta de la red

ante el patrón.

2.2) Calcular las señales de error.

2.3) Calcular el incremento parcial de los pesos y umbrales debidos a cada

patrón

3) Calcular el incremento total (para todos los patrones) actual de los pesos.

Hacer lo mismo para los umbrales.

4) Actualizar pesos y umbrales.

5) Calcular el error actual y volver a 2) si todavía no es satisfactorio.

Para más detalle del aprendizaje de este algoritmo refiérase al anexo I.

1.5.2 Paralelización del proceso de aprendizaje

El aprendizaje del algoritmo Backpropagation puede ser muy lento, para acelerar

el proceso de aprendizaje (1), propone cuatro distintas formas:

Training session parallelism

Training set parallelism

Pipelining

Node parallelism

Page 43: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

31

Cada tipo de entrenamiento es útil de acuerdo a la arquitectura que se desee

entrenar.

Las formas de paralelización anteriormente mencionadas son útiles en escenarios

en donde la arquitectura de la red neuronal sea demasiado grande como por

ejemplo contar con un número superior a 10 capas y cada capa contenga un

número superior a 500 neuronas, éste escenario no compete al desarrollo del

presente proyecto debido a que la arquitectura utilizada no lo requiere.

1.5.3 Paralelización del conjunto de datos a clasificar

Una vez entrenada la red neuronal, utilizar ésta red para clasificar un conjunto de

datos muy grande puede ser una tarea muy lenta, es por eso que se puede utilizar

varios computadores para llevar a cabo dicha tarea.

Al paralelizar el conjunto de datos se refiere a dividir dicho conjunto para el

número de computadores que se encuentran en el clúster, así cada computador

realizará la clasificación parcial, luego estos resultados serán enviados al

computador central para ser acumulados y presentados al usuario final.

La paralelización del conjunto de datos será implementada en el desarrollo del

presente proyecto.

1.5.4 Implementaciones en software

Actualmente en el mercado se encuentran disponibles algunos paquetes de

software que implementan redes neuronales, algunas de estas implementaciones

están realizadas en lenguajes de programación como C, C++, Visual Basic, C#, entre

Page 44: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

32

otros. Se ha escogido una implementación en C# debido a su facilidad de

programación y las ventajas que este lenguaje nos proporciona ante los otros.

Además se ha optado por una implementación gratuita, entre ellos son los

paquetes computacionales NeuronDotNet29, Aforge.net30, C# Neural network

library31. El paquete que se ha escogido es Aforge.net, actualmente se encuentra

en la versión 1.7.0, éste paquete es un framework implementado en el lenguaje de

programación C# especialmente diseñado para desarrolladores e investigadores en

los campos de Visión por computadora e inteligencia artificial, así como en el

procesamiento de imágenes, redes neuronales, algoritmos genéticos, aprendizaje

automático, etc.

1.6 Cluster

1.6.1 Definición

De acuerdo a (12), “el término cluster se aplica a los conjuntos o conglomerados

de computadoras construidos mediante la utilización de componentes de

hardware comunes y que se comportan como si fuesen una única computadora.

Hoy en día juegan un papel importante en la solución de problemas de las ciencias,

las ingenierías y del comercio moderno”.

1.6.2 Clasificación

Alta disponibilidad, en (13) se refiere a este tipo de cluster como un

conjunto de computadores que se monitorean entre si y que además

comparten servicios, como su nombre lo dice son computadores que

29

http://neurondotnet.freehostia.com/ 30 http://code.google.com/p/aforge/ 31 http://franck.fleurey.free.fr/NeuralNetwork/

Page 45: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

33

siempre se encuentran disponibles en todo momento garantizando así su

funcionamiento.

Alto rendimiento, como se menciona en (14) la principal característica es la

capacidad de cálculo que ofrece, siendo esto necesario para resolver

problemas de gran envergadura.

Equilibrio de carga, tal como lo menciona en (15), su principal

característica es repartir las peticiones a los demás nodos, además este tipo

de cluster permite añadir más nodos fácilmente dándole más robustez ya

que ante la caída de un nodo, el cluster seguirá funcionando.

1.6.3 Taxonomías

La taxonomía de Flynn32 es la forma más común de organizar las computadores,

ésta organización no cubre todas las arquitecturas pero proporciona una

importante penetración en varias arquitecturas de computadores. Flynn se basa en

el número de instrucciones y de la secuencia de datos que la computadora utiliza

para procesar la información.

Flynn propone cuatro categorías:

o SISD33, un solo flujo de instrucciones y un solo flujo de datos.

o SIMD34, un solo flujo de instrucciones y varios flujos de datos.

o MISD35, varios flujos de instrucciones y varios flujos de datos.

32

http://arith.stanford.edu/~flynn/ 33

Single Instruction – Single Data Stream 34 Single Instruction – Multiple Data Stream 35 Multiple Instruction – Single Data Stream

Page 46: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

34

o MIMD36, varios flujos de instrucciones y varios flujos de datos.

Taxonomía de FlynnProcessor Organizations

Single Instruction.

Single Data Stream

(SISD)

Single Instruction

Multiple Data

Stream

(SIMD)

Multiple Instruction

Single Data

Stream

(MISD)

Multiple Instruction

Multiple Data

Stream

(MIMD)

Uniprocessor

Vector

Processor

Array

Processor Shared Memory

(tightly coupled)

Distributed

Memory

(loosely coupled)

Symetric

Multiproces

sor

(SMP)

Nonuniform

Memory

Access

(NUMA)

Cluster

MPP

Fig. 9 Taxonomía de Flynn Fuente: http://electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_08-MIMD.pdf

Como podemos observar en la Fig. 9, la taxonomía que se utilizará será la MIMD de

memoria distribuida ya que ésta nos permite la creación de una arquitectura tipo Cluster,

la taxonomía MIMD propone varios flujos de instrucciones y varios flujos de datos, ésta

taxonomía nos permitirá procesar al mismo tiempo diferentes segmentos de la imagen

satelital y así minimizar el tiempo de procesamiento total.

36 Multiple Instruction – Multiple Data Stream

Page 47: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

35

1.6.4 Interfaz de paso de mensajes (MPI)

MPI es un estándar que define la sintaxis y la semántica de las funciones

contenidas en una librería de paso de mensajes, diseñada para ser usada en

programas que exploten la existencia de múltiples procesadores.

Entre las principales características se tiene:

Portabilidad

Heterogeneidad

Rendimiento

Escalabilidad

MPI está pensado para ser utilizado por todo aquel que pretenda desarrollar

programas de paso de mensajes codificados en C, C++ y Fortran y bajo plataformas

Linux, Windows y Mac (16).

1.6.4.1 Pure Mpi.NET

[Es una implementación completamente administrada de la interfaz de paso de

mensajes. La API orientada a objetos es simple y fácil de utilizar para la

programación paralela. Se ha desarrollado sobre la base de la última tecnología

.NET como Windows Communication Foundation (WCF37). Esto le permite

especificar la configuración y vinculación de punto final para su entorno y las

necesidades de rendimiento. Cuando se utiliza el SDK, un programador disfrutará

37 http://netfx3.com/content/WCFHome.aspx

Page 48: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

36

de las características de .NET incluyendo los genéricos, los delegados, resultados

asíncronos, manipulación de excepciones y extensibilidad de puntos.

PureMpi.NET le permite crear la calidad de la producción de alto rendimiento de

sistemas paralelos, con todos los beneficios de .NET] (17).

1.6.4.1.1 Windows Communication Foundation

WCF es la nueva plataforma de mensajería que forma parte de la API de la

plataforma .NET, fue creado con el fin de permitir una programación rápida de

sistemas distribuidos y el desarrollo de aplicaciones basadas en arquitecturas

orientadas a servicios que puede ejecutarse en una máquina local, una LAN, o

sobre la Internet en una forma segura.

Los principios de WCF son:

Unificar tecnologías existentes

Aumentar la productividad

Permitir la integración con otras tecnologías de mensajería

Page 49: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

37

CAPÍTULO II

DEFINICIÓN DEL PROBLEMA

Y

MODELADO DE LA SOLUCIÓN

Page 50: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

38

2.1. Introducción

En este capítulo se realzará el planteamiento de la problemática que se da en el

departamento de Sistemas de Información Geográfica (SIG) de la Universidad Técnica

Particular de Loja, se analiza el diseño de la solución al problema planteado, la

justificación y metodología empleada y finalmente se hará una descripción de dicha

solución explicando de manera gráfica la arquitectura planteada así como la

descripción de módulos que tendrá la aplicación y los requerimientos necesarios para

su desarrollo.

También se explicará las principales funcionalidades de la aplicación usando

diagramas de caso de uso.

2.2. Planteamiento del problema

El procesamiento de imágenes satelitales en el departamento del SIG ha

sido un problema frecuente debido a que los tiempos de respuesta son muy lentos y

esto conlleva gastos innecesarios tanto de recursos materiales como humanos.

Actualmente este proceso se lo realiza con software especializado como ArcGis38 y

ERDAS39, pero el tiempo que demora en procesar un conjunto de imágenes es

extenso, por ésta razón se propone desarrollar una solución basada en entornos

distribuidos la cual permitirá mejorar los tiempos de respuesta y optimizar los

recursos que demanda el análisis de imágenes satelitales basadas en redes

neuronales.

38 http://www.esri.com/software/arcgis/ 39 http://www.erdas.com/

Page 51: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

39

De acuerdo al análisis realizado sobre las distintas formas de paralelización se ha

optado por 1.5.3 Paralelización del conjunto de datos a clasificar, es decir, dividir el

conjunto de datos para el número de computadores que se encuentren trabajando en

el cluster; cómo se explica en la sección 1.5.2 realizar el entrenamiento del algoritmo

Backpropagation sobre un entorno distribuido para nuestro caso de estudio no es

necesario, sin embargo se puede realizar esta implementación en un futuro como

consecuencia de la solución planteada a este problema.

2.3. Justificación

En la actualidad, cada día crece la cantidad de información que debe ser analizada por

los Sistemas de Información Geográfica, es por eso que se están adoptando nuevas

técnicas de análisis de datos como lo es la computación distribuida.

El departamento de Sistemas de Información Geográfica tiene la necesidad de contar

con una aplicación que permita clasificar imágenes sobre un entorno distribuido, la

cual permitirá ahorrar tiempo y aprovechar los recursos con los que cuenta

actualmente la UTPL.

Por otra parte, en cuanto a su alcance, esta investigación abrirá nuevos caminos para

investigadores que presenten situaciones similares a las que aquí se plantea, sirviendo

como marco referencial a éstas.

Por último, profesionalmente pondrá en manifiesto los conocimientos adquiridos

durante la carrera y permitirá sentar las bases para otros estudios que surjan

partiendo de la problemática aquí especificada.

Page 52: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

40

2.4. Metodología

A continuación se presenta los métodos utilizados durante el desarrollo de este

proyecto.

2.4.1 Método experimental

Según (18), en este método el investigador interviene sobre el objeto de estudio

modificándolo directa o indirectamente para crear las condiciones necesarias que

permitan revelar sus características fundamentales y sus relaciones esenciales bien

sean:

Aislando al objeto y las propiedades que estudia de la influencia de otros

factores.

Reproduciendo el objeto de estudio en condiciones controladas.

Modificando las condiciones bajo las cuales tiene lugar el proceso o

fenómeno que se estudia.

Así, los datos son sacados de la manipulación sistemática de las variables que

experimenta.

Éste método se lo aplicará para realizar el entrenamiento de la red neuronal, aquí

se experimentará con diferentes arquitecturas variando el número de neuronas de

la capa oculta y se decidirá cuál es la mejor opción, además nos permitirá realizar

diferentes pruebas controladas en un laboratorio, variando el número de equipos

que intervienen en el Cluster y realizando distintos archivos con diferentes número

de registros que representarán la carga de trabajo del Cluster.

Page 53: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

41

2.4.2 Método estadístico

De acuerdo a (19), como la estadística trabaja con números, el procedimiento que

utiliza es: a partir de unos datos numéricos, obtener resultados mediante

determinadas regla y operaciones, el método estadístico comprende los siguientes

pasos:

1. Recuento, relevamiento o recopilación de datos

2. Tabulación y agrupación de datos. Gráficos

3. Medición de datos

4. Inferencia estadística. Predicción

Cada uno de los pasos anteriormente mencionados serán utilizados durante todo

el desarrollo del presente proyecto y se detallan en el capítulo Validación y

Pruebas.

2.5. Descripción de la solución

De acuerdo a la sección 2.2 Planteamiento del problema, se requiere construir una

aplicación que permita realizar la clasificación de imágenes satelitales sobre un

entorno distribuido.

El programa que se desarrollará estará dividido en los siguientes módulos:

Módulo de entrenamiento y testeo de la red neuronal.

Módulo de clasificación en forma secuencial.

Módulo de clasificación en forma paralela.

Page 54: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

42

Módulo de

Clasificación

Secuencial

Módulo de

Clasificación

Paralela

Sistema

Módulo de Entrenamiento y Testeo

Subsistema

Clasificación Secuencial

Subsistema

Clasificación Paralela

Fig. 10 Arquitectura de la Solución

A continuación se realizará un detalle de cada uno de los módulos:

Módulo de entrenamiento y testeo de la red neuronal.

Este módulo será el encargado de crear y configurar los parámetros de la red

neuronal, como la taza de aprendizaje, el momento, el valor de alfa, el número de

capas ocultas, el número de neuronas por cada capa oculta y finalmente el número

de salidas que tendrá la red neuronal. Este módulo también será el encargado de

realizar el testeo de la red neuronal para comprobar su grado de aprendizaje.

Como se observa en la Fig. 10, el Módulo de Entrenamiento y Testeo es compartido

por ambos subsistemas.

Page 55: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

43

Módulo de clasificación en forma secuencial

Este módulo será el encargado de llevar la fase de clasificación de los datos sobre

un solo computador, la clasificación en forma secuencial será útil en escenarios en

donde el conjunto de datos a clasificar no sea demasiado grande, además nos

permitirá medir los tiempos de clasificación en forma secuencial y poder realizar la

comparación con los tiempos obtenidos de la clasificación en paralelo.

Módulo de clasificación en forma paralela

En este módulo se realizará la tarea de clasificación sobre un conjunto de

ordenadores permitiéndonos así minimizar el tiempo de clasificación de los datos,

a diferencia de la clasificación secuencial, éste módulo será útil cuando el conjunto

de datos a clasificar sea demasiado extenso, además permitirá realizar la

configuración de los nodos que intervendrán en el cluster y enviarla a cada uno de

estos.

2.6. Arquitectura de la solución

La arquitectura que se utilizará para implementar nuestra solución será una

arquitectura cliente-servidor, la razón de escoger está arquitectura es que permite la

centralización del control, escalabilidad, fácil mantenimiento y es un requerimiento

principal del uso de PureMPI.net como interfaz de paso de mensajes.

Page 56: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

44

Maestro

Esclavo 1 Esclavo 2 Esclavo 3 Esclavo n

Red

Neuronal

Red

Neuronal

Red

Neuronal

Red

Neuronal

Archivo .csv

*

* *

*

*

*

*

*

*

*

Archivo 1 Archivo 2 Archivo 3 Archivo n

Switch Conexión de red

Interfaz de UsuarioInterfaz de Usuario

Entrada de datos Entrenamiento de la red neuronal

Compresión y distribución de archivos

Distribución de configuración del cluster

Presentación de datos

Descompresión de archivos

Procesamiento y clasificación de datos

Envío de resultados al nodo maestro

Fig. 11 Modelo de la solución

En la Fig. 11 se puede distinguir una arquitectura maestro-esclavo, en la cual cada uno

de los nodos tiene como recurso la red neuronal previamente entrenada, para lo cual

será necesario primero realizar el entrenamiento en el nodo maestro y después

distribuir la red a cada uno de los nodos, el nodo maestro será el encargado de

distribuir la carga de trabajo hacia los nodos esclavos utilizando las librerías de

PureMPI.net para la comunicación, antes de enviar cada subconjunto de datos el

Page 57: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

45

archivo original es particionado y comprimido para mejorar el tiempo de envío a cada

uno de los nodos. Cada nodo esclavo realizará la clasificación de un subconjunto de

los datos, después enviará los resultados de dicha clasificación al nodo maestro,

finalmente el nodo maestro combinará los resultados y los presentará al usuario.

Fig. 12 Arquitectura de la Red Neuronal

En la Fig. 12 se puede distinguir una arquitectura de 3 capas, la primera es la capa de

entrada y esta contiene 4 neuronas de entrada, 15 neuronas en la capa oculta y 6

neuronas en la capa de salida; las 4 neuronas de entrada se debe a que se procesará 4

pixeles, un pixel por cada una de las 4 bandas, 15 neuronas en la capa oculta necesarias

para que la red neuronal aprenda los distintos patrones a clasificar y 6 neuronas en la capa

de salida debido a que son 6 las clases a distinguir, una neurona de salida para

cada clase.

Page 58: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

46

2.7. Requerimientos de la solución

Para la solución anteriormente planteada es necesario contar con los siguientes

requerimientos:

Conjunto de datos de entrenamiento y testeo

Librería de redes neuronales artificiales

Librería de MPI

Librería de compresión de archivos

Interfaz de desarrollo y lenguaje de programación

Computadores

Conexión de red

2.8. Diagrama de Clases

En la Fig. 13 se presenta el diagrama de clases de la librería Aforge.Neuro.dll, en el se

identifican las clases que intervienen para el aprendizaje supervisado como el

BackPropagationLearning.

Page 59: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

47

Fig. 13 Diagrama de Clases - Aforge.net Fuente: http://www.codeproject.com/KB/recipes/aforge_neuro.aspx

En la Fig. 14 se presenta los módulos y clases que intervienen en nuestra solución,

claramente podemos observar que la clase Secuencial y Paralelo interactúan con el

paquete Aforge.Neuro para realizar el entrenamiento y testeo de la red neuronal, también

se observa que la clase Paralelo interactúa con el paquete PureMPI.net para realizar el

envío de mensajes a los demás nodos del Cluster.

Page 60: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

48

+Iniciar()

+SeleccionarArchivo()

-Archivo

Secuencial

+EnviarArchivos()

+SeleccionarArchivo()

+IngresarNodo()

+EliminarNodo()

+GuardarConfiguracion()

+ConfigurarWinRar()

+CrearArchivos()

+ComprimirArchivos()

-Archivo

Paralelo

Aforge.neuro

PureMPI.net

Fig. 14 Diagrama general de clases

2.9. Casos de uso

2.9.1 Módulo de entrenamiento y testeo

Caso de Uso: Nueva red neuronal

Iniciado por: Usuario

Terminado por: Programa

Post

condiciones:

La red neuronal se encuentra configurada para realizar el

entrenamiento de los datos.

Excepción: La red no se encuentra configurada.

Actor: Usuario

Descripción: Permite la creación de una red neuronal, asignar número de

entradas, número de capas ocultas, y los parámetros de la red

neuronal como taza de aprendizaje, momento, error limite, valor

Page 61: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

49

alpha.

Caso de Uso: Abrir red neuronal

Iniciado por: Usuario

Terminado por: Programa

Post

condiciones:

El sistema cuenta con una red neuronal entrenada y lista para ser

usada.

Excepción: No existe ninguna red.

Actor: Usuario

Descripción: Permite escoger una red neuronal que ha sido entrenada

previamente.

Caso de Uso: Guardar red neuronal

Iniciado por: Usuario

Terminado por: Programa

Post

condiciones:

Ninguna

Excepción: No existe ninguna red.

Actor: Usuario

Descripción: Permite guardar la red neuronal en un archivo.

Caso de Uso: Seleccionar archivo de entrenamiento

Iniciado por: Usuario

Terminado por: Programa

Post

condiciones:

El sistema está listo para realizar el entrenamiento de la red

neuronal.

Page 62: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

50

Excepción: Error al leer el archivo.

Actor: Usuario

Descripción: Permite la selección del conjunto de entrenamiento, este archivo

debe cumplir con los requisitos descritos anteriormente.

Caso de Uso: Iniciar entrenamiento

Iniciado por: Usuario

Terminado por: Usuario , Programa

Post

condiciones:

El sistema está listo para realizar el testeo de la red neuronal.

Excepción: La red neuronal no se encuentra adecuadamente configurada para

el conjunto de datos seleccionado.

Actor: Usuario

Descripción: Permite iniciar el entrenamiento de la red neuronal.

Caso de Uso: Detener entrenamiento

Iniciado por: Usuario

Terminado por: Programa

Post

condiciones:

El sistema ha entrenado la red neuronal

Excepción: Ninguna.

Actor: Usuario

Descripción: Permite detener el entrenamiento de la red neuronal.

Caso de Uso: Generar Matriz de confusión

Iniciado por: Usuario

Terminado por: Programa

Page 63: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

51

Post

condiciones:

Ninguna

Excepción: Ninguna.

Actor: Usuario

Descripción: Permite generar la matriz de confusión de los datos de

entrenamiento.

Usuario

Nueva red neuronal

Abrir red neuronal

Guardar red neuronal

Iniciar

entrenamiento

*

*

*

*

*

*

*

*

Seleccionar archivo

de entrenamiento

*

*

Detener

entrenamiento

*

*

Generar Matriz de

confusión

*

*

Fig. 15 Diagrama de caso de uso - Modulo de entrenamiento y testeo

Page 64: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

52

2.9.2 Módulo de clasificación en forma secuencial

Caso de Uso: Seleccionar archivo

Iniciado por: Usuario

Terminado por: Programa

Precondiciones: Ninguna

Post

condiciones:

El sistema puede iniciar la clasificación secuencial

Excepción: El archivo no se encuentra estructurado adecuadamente.

Actor: Usuario

Descripción: Permite seleccionar el archivo de clasificación.

Caso de Uso: Iniciar clasificación

Iniciado por: Usuario

Terminado por: Programa

Precondiciones: El sistema debe contar con una red neuronal entrenada.

Post

condiciones:

El sistema puede realizar una nueva clasificación.

Excepción: El archivo no se encuentra estructurado adecuadamente.

Actor: Usuario

Descripción: Permite realizar la clasificación del conjunto de datos en un solo

computador, y presenta los resultados en pantalla al usuario.

Page 65: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

53

Usuario

Seleccionar archivo

Iniciar

clasificación secuencial

***

*

Fig. 16 Diagrama de caso de uso - Módulo clasificación secuencial

2.9.3 Módulo de clasificación en forma paralela

Caso de Uso: Seleccionar archivo de clasificación

Iniciado por: Usuario

Terminado por: Programa

Precondiciones: Ninguna

Post

condiciones:

El sistema puede crear los archivos para la realizar la clasificación.

Excepción: El archivo de clasificación no se encuentra estructurado

adecuadamente.

Actor: Usuario

Descripción: Permite seleccionar el archivo de clasificación.

Caso de Uso: Configurar nodos

Iniciado por: Usuario

Page 66: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

54

Terminado por: Programa

Precondiciones: Ninguna

Post

condiciones:

El sistema puede distribuir la nueva configuración de los archivos.

Excepción: No se ha ingresado ningún nodo a la configuración.

Actor: Usuario

Descripción: Permite seleccionar el archivo de clasificación.

Caso de Uso: Configurar WinRar

Iniciado por: Usuario

Terminado por: Programa

Precondiciones: Ninguna

Post

condiciones:

El sistema puede distribuir la nueva configuración de los archivos.

Excepción: El archivo seleccionado no es compatible.

Actor: Usuario

Descripción: Permite seleccionar el archivo rar.exe.

Caso de Uso: Distribuir Archivos

Iniciado por: Usuario

Terminado por: Programa

Precondiciones: Configurar WinRar, configurar los nodos y crear los archivos.

Post

condiciones:

El sistema puede iniciar la clasificación secuencial.

Excepción: No se han configurado correctamente los nodos esclavos.

Actor: Usuario

Page 67: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

55

Descripción: Permite distribuir la nueva configuración a los nodos esclavos.

Caso de Uso: Crear Archivos

Iniciado por: Usuario

Terminado por: Programa

Precondiciones: Seleccionar el archivo de clasificación

Post

condiciones:

El sistema pude iniciar la clasificación paralela.

Excepción: EL número de líneas del archivo es incorrecto

Actor: Usuario

Descripción: Permite crear los archivos que serán distribuidos a cada uno de los

nodos.

Caso de Uso: Iniciar clasificación

Iniciado por: Usuario

Terminado por: Programa

Precondiciones: El sistema debe contar con una red neuronal entrenada.

El sistema debe contar con el archivo de configuración previamente

configurado y los nodos clientes deben iniciar la aplicación.

Post

condiciones:

El sistema puede realizar una nueva clasificación.

Excepción: El archivo de configuración no se encuentra estructurado

adecuadamente.

Un nodo no ha iniciado el servicio.

Actor: Usuario

Descripción: Permite realizar la clasificación del conjunto de datos en un

conjunto de computadores, y presenta los resultados en pantalla al

Page 68: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

56

usuario.

Usuario

Iniciar

clasificación

*

*

Seleccionar archivo

de clasificación

*

*

Configurar nodos

*

*

Configurar WinRar

*

*

Distribuir Archivos

*

*

Crear Archivos

*

*

Fig. 17 Diagrama de caso de uso - Módulo clasificación paralela

Page 69: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

57

2.10. Diagramas de Secuencia

BackPropagation SecuencialUsuario

Nuevo()

Iniciar Entrenamiento()

Detener Entrenamiento()

Comprobar Error()

Sumatoria del error

Iniciar Clasificación ()

Resultados de la clasificación

Seleccionar datos ( )

Clasificación en forma Secuencial

Fig. 18 Diagrama de Secuencia - Clasificación en forma Secuencial

Page 70: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

58

BackPropagation ParaleloUsuario

Nuevo

Iniciar

Detener Entrenamiento

Comprobar Error

Sumatoria del error

Iniciar Clasificación ()

Resultados de la clasificación

Seleccionar datos ( )

Clasificación en forma Paralela

Configurar esclavos ( )

Distribuir Archivos ( )

Espera de resultados Parciales

Sumar Resultados Parciales

Fig. 19 Diagrama de Secuencia - Clasificación Paralela

En el presente capítulo presentamos el diseño, descripción y arquitectura de la solución a

implementar, los módulos y elementos que la componen, entre ellos podemos destacar la

utilización de una librería de compresión de archivos para acelerar el tiempo de envío de

los archivos a los nodos del Cluster, también destacamos la arquitectura de la red

neuronal necesaria para el entrenamiento y clasificación del conjunto de datos,

Page 71: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

59

finalmente presentamos los diagramas necesarios para la compresión de la herramienta

software a implementar como son los diagramas de casos de uso, diagramas de clase y

diagramas de secuencia.

Page 72: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

60

CAPÍTULO III

DESARROLLO DE LA SOLUCIÓN

Page 73: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

61

3.1 Introducción

En este capítulo se realizará la implementación de la solución planteada en el capítulo

anterior, se realizará una descripción de los requisitos necesarios para su desarrollo,

como por ejemplo la estructura de los archivos de entrenamiento, el algoritmo de

distribución de datos empleado, también se realizará la implementación de la

arquitectura de la red neuronal empleada así como la descripción del hardware y

software utilizado para el desarrollo de la aplicación, además se incluirá los más

importantes fragmentos de código de la aplicación, el desarrollo del capítulo se basa

en los módulos descritos en la sección 2.5 Descripción de la solución.

3.2 Descripción de los requerimientos

A continuación se realizará la descripción de los requerimientos de la solución:

Conjunto de datos de entrenamiento y testeo

Los archivos sattrn.arff40 y sattst.arff41 necesarios para el entrenamiento y

clasificación respectivamente fueron obtenidos de un laboratorio de Weka42,

los cuales se modificaron para poder utilizarlos en la implementación, dicha

modificación se explica en los siguientes párrafos.

Información de los archivos originales:

o sattrn.arff

4435 casos de entrenamiento

40

http:www.inf.ed.ac.uk/teaching/courses/dme/data/Landsat/sattrn.arff 41 http:www.inf.ed.ac.uk/teaching/courses/dme/data/Landsat/sattst.arff 42 http://www.inf.ed.ac.uk/teaching/courses/dme/html/week2.html

Page 74: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

62

36 atributos y un atributo de clase

Tamaño 514 KBytes

o sattst.arff

2000 casos de entrenamiento

36 atributos y un atributo de clase

Tamaño 231 KBytes

Para mayor información del conjunto de datos refiérase a (20).

En primer lugar del archivo de entrenamiento está conformado por 36 columnas y

contiene información de 4 bandas espectrales, las primeras 4 columnas

representan la información del pixel 1, una columna para cada banda, se han

escogido las columnas 17, 18, 19 y 20 que corresponden a los pixeles 5_1, 5_2, 5_3

y 5_4 respectivamente, además se adjuntó la última columna que corresponde a la

clase que pertenecen siendo estas:

Numero Clase

1 Tierra roja

2 Cultivos de algodón

3 Suelo gris

4 Humedad del suelo gris

5 Humedad del suelo con rastrojo

7 Suelo gris muy húmedo

Tabla 1 Clases de entrenamiento de la red neuronal.

con estos datos se ha creado un nuevo archivo con extensión CSV43, éste nuevo

archivo contiene 4435 casos de entrenamiento y tiene un tamaño de 70 KBytes.

43 CSV - “Comma Separated Values”

Page 75: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

63

Los siguientes datos representan una fila del archivo original:

92, 115, 120, 94, 84, 102, 106, 79, 84, 102, 102, 83, 101, 126, 133, 103, 92,

112, 118, 85, 84, 103, 104, 81, 102, 126, 134, 104, 88, 121, 128, 100, 84, 107,

113, 87, 3

Los datos que se encuentran resaltados son aquellos que han sido tomados en

cuenta para el nuevo archivo .csv antes mencionado.

El archivo de testeo se encuentra estructurado de la misma forma que el archivo

de entrenamiento, sin embargo para aumentar el tamaño de carga de trabajo, se

ha realizado una copia de los datos y adjuntarlos a continuación de los anteriores

verticalmente, es decir si el archivo tiene 2000 registros de tamaño 297 KB, éstas

han sido aumentadas hasta 50000000 registros llegando a un tamaño de archivo

de 5,59 GB con el fin de aumentar la carga de trabajo para el cluster y poder medir

su rendimiento, cabe recalcar que se utiliza el método experimental y es aquí

donde aplicamos su definición modificando el conjunto de datos para realizar las

distintas pruebas.

Librería de redes neuronales artificiales

La librería que se utilizará es Aforge.net44 versión 1.7.0, como se explica en la

sección 1.5.4 Implementaciones en software.

Esta librería contiene los siguientes paquetes:

o AForge.Controls

o AForge.Core

o AForge.Genetic

44 http://code.google.com/p/aforge/

Page 76: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

64

o AForge.Imaging

o AForge.MachineLearning

o AForge.Math

o AForge.Neuro

o AForge.Robotics.Lego

o AForge.Video

o AForge.Video.DirectShow

o AForge.Video.VFW

o AForge.Vision

En el desarrollo del proyecto se utilizará la librería AForge.Neuro.dll, la razón

de utilizar esta librería es su distribución libre además de integración con las

herramientas de desarrollo propuestas.

A continuación se describirá las funciones de activación que se utilizan con el

algoritmo Backpropagation:

Función de activación sigmoidal

Como se puede apreciar en la Fig. 20 el rango de salida está comprendido

entre [0,1], esto significa que cualquier entrada que se le dé a la red

neuronal, la salida será un valor entre 0 y 1, esta es una función continua y

diferenciable, la función sigmoidal se representa como f(x) y su derivada

f’(x), su principal desventaja es que no sirve para expresar polaridades,

dando siempre valores positivos.

Page 77: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

65

Fig. 20 Función de activación sigmoidal

En donde,

exp: Constante de Neper

x: Valor de entrada

alpha: valor sigmoidal de alpha

Función de activación sigmoidal bipolar

En la Fig. 21 se aprecia el rango de salida de la función comprendido entre

[-1,1], esto significa que ante cualquier valor de entrada la salida estará

comprendida en dicho rango, en algunos casos su implementación puede

presentar mejores resultados frente a la función sigmoidal debido a que su

rango de salida es mayor permitiendo así mayor distancia entre los de

entrada de la red neuronal.

Page 78: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

66

Fig. 21 Función de activación sigmoidal bipolar

En donde,

exp: Constante de Neper

x: Valor de entrada

alpha: valor sigmoidal de alpha

Librería de MPI

La implementación de MPI que se utilizará será PureMPI.net45, en este

paquete se encuentra la documentación de la librería, ejemplos y

herramientas necesarias para nuestro desarrollo. El nombre de la librería es

Mpi.dll.

La librería nos permite configurar los computadores que conformarán el

cluster. 45 http://www.purempi.net

Page 79: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

67

Librería de compresión de archivos

Para acelerar el proceso de envío de los archivos a clasificar a cada uno de los

nodos se ha decidido por utilizar un compresor de archivos el cual nos

permitirá acelerar el envío de los archivos.

El compresor de archivos a utilizar es WinRar46.

Interfaz de desarrollo y lenguaje de programación

Como interfaz de desarrollo se utilizará Visual Studio 2008 y como lenguaje de

programación C#.

La razón de su utilización es la perfecta compatibilidad con las librerías

anteriormente mencionadas como PureMPI.net y AForge.net, la cual nos

permite realizar una aplicación robusta, escalable y de fácil utilización para el

usuario final.

3.3 Algoritmo de distribución de datos

El algoritmo utilizado para creación los archivos a distribuir entre los computadores

fue el siguiente:

1. Ingresar el número de filas que conforman el archivo .csv de entrada.

2. Dividir el número de filas entre los computadores del cluster

46 http://www.winrar.es/

Page 80: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

68

Nfp = filas / m

Donde,

Nfp: número de filas parciales

filas: número total de líneas del archivo

m: número de nodos esclavos del clúster

Donde,

Nfp: número de filas parciales

filas: número total de líneas del archivo

m: número de nodos esclavos del clúster

3. Comprimir los archivos y enviarlos a cada computador.

4. Esperar la respuesta de cada uno de los nodos y sumar los resultados

parciales.

3.4 Arquitectura de la red neuronal artificial

La arquitectura de la red neuronal juega un papel muy importante durante la fase de

entrenamiento, ya que de esta dependerá si la red es capaz de clasificar

correctamente cada una de las clases.

“El número de nodos de entrada viene especificado por la dimensión de los

patrones de entrada. A su vez, los nodos de salida están determinados por el

número de categorías o clases. Sin embargo, las neuronas de las capas

ocultas no guardan una relación directa con el problema. Si se escoge

un número limitado de nodos, la red puede que no contenga

suficientes grados de libertad como para formar una clasificación. Por otro lado un

Nfp = (filas / m) + (filas % m)

Page 81: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

69

número elevado de neuronas puede implicar que la red simplemente

memorice los conjuntos de entrenamiento, lo que implica una generalización

muy pobre, así como el incremento del tiempo de computación

requerido” (21).

De acuerdo al párrafo anterior se plantea la siguiente arquitectura:

Capa # neuronas

1 4

2 15

3 6

Tabla 2 Arquitectura de la red neuronal

La primera capa será utilizada para el ingreso de cada uno de los valores de las bandas, ésta

capa posee 4 neuronas debido a que se utiliza cuatro bandas, el número de neuronas en la

capa de salida es de 6 debido a que se requiere distinguir entre 6 clases distintas, una

neurona para cada clase.

De acuerdo a WEKA, el número de neuronas para la capa oculta es la suma de entradas más

el número de salidas dividido para 2, si se utiliza esta forma nos daría un total de 5 neuronas

en la capa oculta, sin embargo con esta configuración la red no aprende lo suficiente, por eso

se elevó el número de neuronas a 15, también dependen de otros valores como por ejemplo

la taza de aprendizaje y el momento.

A continuación se presenta los resultados del entrenamiento con la herramienta

desarrollada:

Page 82: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

70

Arquitectura Resultados

# Neuronas Parámetros Instancias

correctamente

clasificadas

(%)

Weka

Instancias

correctamente

clasificadas (%)

Entrada Oculta Salida Taza de

aprendizaje Momento Alpha

4 5 6 0.1 0.5 2 73.11% 86.05%

4 7 6 0.1 0.5 2 74.54% 87.75%

4 10 6 0.1 0.5 2 77.45% 87.1%

4 15 6 0.1 0.5 2 84.65% 89%

Tabla 3 Entrenamiento de la red neuronal con diferentes arquitecturas

Como se puede apreciar en la Tabla 3, al utilizar una arquitectura con un número de 5

neuronas en la capa oculta se obtiene un porcentaje de aprendizaje del 73.11%, al aumentar

a 15 neuronas en la capa oculta se mejora considerablemente el porcentaje de aprendizaje

hasta un 84.65%. Con estos resultados se opta por la segunda arquitectura ya que esta se

aproxima mejor a los resultados de Weka.

3.5 Descripción de hardware y software

Para realizar la implementación de la solución se utilizó un total de 16 máquinas, cada

una con las siguientes características:

Característica Valor

Sistema Operativo Windows XP Edición Profesional SP2

Memoria RAM 1 GB

Disco Duro 160 GB

Tarjeta de red 10/100/1000 Mbps

Procesador Intel Core 2 duo 2.8 GHz

Tabla 4 Características de los computadores

Page 83: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

71

3.6 Descripción de red

La administración de la red de los equipos donde se implementa el Cluster está

administrada por el grupo de Telecomunicaciones de la Universidad.

La aplicación se configura a través de los nombres de las máquinas, a continuación se

presenta los nombres utilizados:

Nombre de equipo

uprod3salab01

uprod3salab02

uprod3salab03

uprod3salab04

uprod3salab05

uprod3salab06

uprod3salab07

uprod3salab08

uprod3salab09

uprod3salab10

uprod3salab11

uprod3salab12

uprod3salab13

uprod3salab14

uprod3salab15

uprod3salab16

Tabla 5 Configuración de los nombres de las computadoras

Topología: Estrella

Protocolo: DHCP47

Puerta de enlace: 172.16.11.10

El protocolo de asignación de direcciones IP48 es DHCP, por lo cual no es necesario

configurar estáticamente las direcciones IP de cada una de los computadores.

47 DHCP: Dynamic Host Configuration Protocol 48 IP: Internet Protocol

Page 84: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

72

Para la interconexión de las máquinas se ha utilizado un switch Cisco Catalist 356049

de 24 puertos y con una velocidad de 10/100 Mbps y el tipo de cable utilizado ha sido

UTP50 categoría 5e.

3.7 Implementación

A continuación se describirá las partes más importantes de la implementación de la

herramienta de software. La configuración del cluster se guarda en el archivo

App.config de la solución, más información del archivo refiérase al anexo II.

Método que obtiene los valores de los parámetros de la red neuronal y llama al

método SearchSolution() para iniciar el entrenamiento.

private void butIniciar_Click(object sender, EventArgs e){

// get learning rate

try

{

learningRate = Math.Max(0.00001, Math.Min(1,

double.Parse(learningRateBox.Text)));

}

catch

{

learningRate = 0.1;

}

// get momentum

try

{

momentum = Math.Max(0, Math.Min(0.5,

double.Parse(momentumBox.Text)));

}

catch

{

momentum = 0;

}

// get sigmoid's alpha value

49

http://www.cisco.com/en/US/prod/collateral/switches/ps5718/ps5528/product_data_sheet09186a00801f3d7d.html 50 UTP: Cable de par trenzado no apantallado.

Page 85: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

73

try

{

sigmoidAlphaValue = Math.Max(0.01, Math.Min(100,

double.Parse(alphaBox.Text)));

}

catch

{

sigmoidAlphaValue = 2;

}

// get learning error limit

try

{

learningErrorLimit = Math.Max(0,

double.Parse(errorLimitBox.Text));

}

catch

{

learningErrorLimit = 0.1;

}

startTime = DateTime.Now; //Inicio del entrenamiento

workerThread = new Thread(new ThreadStart(SearchSolution));

workerThread.Start();

}

Inicia el entrenamiento de la red neuronal.

void SearchSolution() {

// crea la red Backpropagation

BackPropagationLearning teacher = new

BackPropagationLearning(network);

// establecer la taza de aprendizaje y el momento

teacher.LearningRate = learningRate;

teacher.Momentum = momentum;

// iterations

int iteration = 1;

// loop

while (!needToStop)

{

// ejecutar el procedimiento de aprendizaje

double error = teacher.RunEpoch(input,

output)/archivo.Length;

// mostrar la iteracion y el error

SetText(currentIterationBox, iteration.ToString());

SetText(currentErrorBox, error.ToString());

iteration++;

Page 86: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

74

// comprueba si el error es inferior al errorLimite

if (error <= learningErrorLimit)

{

finishTime = DateTime.Now; //Tiempo de parada

total = finishTime - startTime;

break;

}

}

finishTime = DateTime.Now;

total = finishTime - startTime;

//Tiempo total transcurrido

SetText(labTiempo, "Tiempo transcurrido: " +

total.ToString());

// get the misclassified value

misclassified = 0;

//Comprobacion del nivel de aprendizaje

// para todos los patrones de entrenamiento

for (int i = 0; i < input.Length; i++)

{

double[] realOutput = network.Compute(input[i]);

double[] desiredOutput = output[i];

int maxIndex1 = 0;

int maxIndex2 = 0;

double max1 = realOutput[0];

double max2 = desiredOutput[0];

for (int j = 1, k = realOutput.Length; j < k; j++)

{

if (realOutput[j] > max1)

{

max1 = realOutput[j];

maxIndex1 = j;

}

if (desiredOutput[j] > max2)

{

max2 = desiredOutput[j];

maxIndex2 = j;

}

}

if (maxIndex1 != maxIndex2)

misclassified++;

}

string salida = string.Format("{0} / {1}",

misclassified,archivo.Length.ToString());

SetText(misclassifiedBox, salida);

Page 87: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

75

double Incorrecto = (misclassified * 100) /

Convert.ToDouble(archivo.Length);

double Correcto = 100 - Incorrecto;

CheckForIllegalCrossThreadCalls = false;

rtbResultados.Text = string.Format("Correcto: {0}",Correcto)

+ System.Environment.NewLine;

rtbResultados.Text += string.Format("Incorrecto: {0}",

Incorrecto);

}

Método que comprime los archivos antes de ser enviados a cada nodo.

public static void CompressFile(string path){

//Lee la configuracion del cluster

Configuration conf =

ConfigurationManager.OpenExeConfiguration("C:\\CIS\\Clasifica

cionParalela.exe");

string pathWinRar =

conf.AppSettings.Settings["WinRar"].Value.ToString();

System.Diagnostics.Process.Start(pathWinRar, "a " + path +

".rar" + " " + path);

}

Método que divide el archivo original en subarchivos y llama al método CompressFile(strin

path).

private void btnCrear_Click(object sender, EventArgs e){

try

{

//Lee la configuración del cluster

Configuration conf =

ConfigurationManager.OpenExeConfiguration("C:\\CIS\\Cla

sificacionParalela.exe");

if (conf.AppSettings.Settings["WinRar"] == null)

{

MessageBox.Show("Por favor configure el path de

WinRar");

return;

}

//Ruta del archivo

StreamReader sr = new StreamReader(tbArchivo.Text);

//Número de filas del archivo

int filas = Convert.ToInt32(tbFilas.Text);

//Número de nodos del cluster

Page 88: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

76

int maquinas = Convert.ToInt32(tbMaquinas.Text);

//Número de filas para cada nodo del cluster

int nfp = (filas / maquinas) + (filas % maquinas);

//Crea y Comprime los nuevos archivos que seran enviados

a cada uno de los nodos del cluster

for (int j = 1; j <= maquinas; j++)

{

Directory.CreateDirectory("\\" + (j + 1).ToString());

FileInfo t = new FileInfo("\\" + (j + 1).ToString() +

"\\" + (j + 1).ToString() + ".csv");

StreamWriter Tex = new StreamWriter(t.FullName,

false);

for (int k = 1; k <= nfp; k++)

{

Tex.WriteLine(sr.ReadLine());

Tex.Flush();

}

nfp = filas / maquinas;

Tex.Close();

Tex = null;

//Comprime el archivo creado

CompressFile(t.FullName);

}

MessageBox.Show("Terminado....");

butCopiar.Enabled = true;//Habilita la copia de los

arcvhivos

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

Método que descomprime los archivos cuando llegan a los nodos esclavos.

public static void UncompressFile(string path,string i){

System.Diagnostics.Process.Start(pathWinRar, "e -o+ "+ path + "

" + "C:\\CIS");

}

Segmento de código que recibe los resultados parciales.

for (int i = 1; i < comm.Size ; i++){

Hashtable rparcial = comm.Receive<Hashtable>(i,

"0");//comm.Receive recibe los resultados de un

esclavo i

Page 89: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

77

foreach (object k in rparcial.Keys)

{

datos2[k] = Convert.ToDouble(datos2[k]) +

Convert.ToDouble(rparcial[k]);

}

}

//Envio de los resultados al nodo servidor contenido en datos3

comm.Send<Hashtable>(0, "0", datos3);

En el desarrollo del presente capítulo podemos destacar las modificaciones realizadas a

los archivos originales para nuestra aplicación, también describimos el algoritmo utilizado

para dividir la carga de trabajo entre los nodos del Cluster, así como la arquitectura

utilizada de la red neuronal, además comprobamos el correcto funcionamiento de la

aplicación (Tabla 3) siendo ésta uno de los puntos más importantes para la aprobación de

la herramienta desarrollada.

Page 90: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

78

CAPÍTULO IV

VALIDACIÓN Y PRUEBAS

Page 91: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

79

4.1 Introducción

El presente capítulo es uno de los más importantes durante el desarrollo del presente

proyecto, ya que permitirá evaluar la herramienta desarrollada.

Este capítulo presentará el plan de pruebas a utilizar, la validación de la red neuronal y

los criterios de evaluación del cluster.

4.2 Plan de validación y pruebas

El plan de pruebas tiene como objetivo, verificar que cada componente del sistema

funcione correctamente ante escenarios representativos del entorno en el que se

ejecutará y validará que el software implementado, corresponda a los requisitos

expresados por el Departamento de Sistemas de Información Geográfica (SIG) de la

UTPL.

El plan de validación persigue los siguientes objetivos:

Validar el módulo de entrenamiento y testeo de la red neuronal.

El plan de pruebas persigue los siguientes objetivos:

Ejecutar la aplicación con los siguientes parámetros:

Número de computadoras

Número de filas del archivo

Tamaño del archivo en disco

4

10000000 20000000 30000000 40000000 50000000

1,45 GB 2,23 GB 3,35 GB 4,47 GB 5,59 GB

Page 92: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

80

8

10000000 2000000 3000000 4000000 5000000

1,45 GB 2,23 GB 3,35 GB 4,47 GB 5,59 GB

12

1000000 2000000 3000000 4000000 5000000

1,45 GB 2,23 GB 3,35 GB 4,47 GB 5,59 GB

16

1000000 2000000 3000000 4000000 5000000

1,45 GB 2,23 GB 3,35 GB 4,47 GB 5,59 GB

Tabla 6 Casos de prueba

4.3 Validación de la red neuronal

Para validar el entrenamiento de la red neuronal se realizó una comparación entre los

resultados obtenidos con la herramienta WEKA51 y con la aplicación, utilizando los

archivos sattrn.arff y sattst.arff para entrenamiento y testeo respectivamente.

Los resultados obtenidos con WEKA fueron los siguientes:

=== Summary ===

Correctly Classified Instances 1770 88.5 %

Incorrectly Classified Instances 230 11.5 %

Kappa statistic 0.8585

Mean absolute error 0.0398

Root mean squared error 0.1798

Relative absolute error 14.7095 %

51 Waikato Environment for Knowledge Analysis - Entorno para Análisis del Conocimiento de la Universidad de Waikato http://www.cs.waikato.ac.nz/ml/weka/

Page 93: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

81

Root relative squared error 48.783 %

Total Number of Instances 2000

=== Detailed Accuracy By Class ===

TP Rate FP Rate Precision Recall F-Measure Class

0.978 0.01 0.968 0.978 0.973 1

0.96 0.006 0.956 0.96 0.958 2

0.899 0.022 0.908 0.899 0.904 3

0.659 0.03 0.72 0.659 0.688 4

0.797 0.019 0.851 0.797 0.824 5

0.891 0.054 0.836 0.891 0.863 7

=== Confusion Matrix ===

a b c d e f <-- classified as

451 0 1 0 8 1 | a = 1

0 215 1 1 7 0 | b = 2

6 0 357 22 2 10 | c = 3

0 2 25 139 3 42 | d = 4

8 7 0 4 189 29 | e = 5

1 1 9 27 13 419 | f = 7

Tabla 7 Resultados obtenidos con la herramienta WEKA

Page 94: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

82

Los resultados obtenidos con la aplicación fueron los siguientes:

Instancias correctamente clasificadas: 1639 84.65%

Instancias incorrectamente clasificadas: 307 15.35%

Matriz de confusión

Tabla 8 Resultados obtenidos con CIS

Los resultados muestran una diferencia del 0,85% de exactitud entre las dos redes

neuronales siendo WEKA más exacto que nuestra aplicación, estos resultados no son

finales pues variando los parámetros de entrenamiento (momento, taza de aprendizaje,

alpha), se puede conseguir un mayor porcentaje de exactitud.

Estas pruebas se realizaron con la finalidad de comprobar el correcto funcionamiento del

paquete de redes neuronales que se utilizó en la aplicación.

También se realizaron pruebas entre las diferentes funciones de activación y los

resultados fueron los siguientes:

Sigmoidal:

Rango: [0,1]

Taza de aprendizaje: 0,1

Momento: 0,4

Page 95: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

83

Alpha: 2

Error Limite: 0,01

Iteración actual: 1000

Sumatoria del error actual: 0,08354423293643892

Número de capas: 3

Número de neuronas en la capa de entrada: 4

Número de neuronas en la capa oculta: 15

Número de neuronas en la capa de salida: 6

Instancias correctamente clasificadas: 1622 81.1%

Instancias incorrectamente clasificadas: 378 18,9%

Matriz de confusión

Tabla 9 Resultados obtenidos con la función Sigmoidal

Bipolar Sigmoidal:

Rango: [-1,1]

Taza de aprendizaje: 0,1

Momento: 0,4

Alpha: 2

Error Limite: 0,01

Page 96: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

84

Iteración actual: 1000

Sumatoria del error actual: 0,33434139

Número de capas: 3

Número de neuronas en la capa de entrada: 4

Número de neuronas en la capa oculta: 15

Número de neuronas en la capa de salida: 6

Instancias correctamente clasificadas: 1685 84.25%

Instancias incorrectamente clasificadas: 315 15.75%

Matriz de confusión

Tabla 10 Resultados obtenidos con la función Bipolar Sigmoidal

Si se observa los resultados para la clase 4 se tiene que con la función sigmoidal se han

clasificado un total de 11 instancias y para la función bipolar sigmoidal un total de 143

instancias lo que significa que la función bipolar sigmoidal tiene un mayor grado de

exactitud al clasificar.

4.4 Criterios de evaluación

Después de realizar las pruebas, los resultados serán evaluados bajo los siguientes

criterios obtenidos de (22).

Page 97: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

85

Los algoritmos secuenciales se evalúan mediante el tiempo de ejecución secuencial

(TS)

Los algoritmos paralelos se evalúan mediante el tiempo de ejecución paralela (TP) en P

procesadores, la ganancia de velocidad (SP) y la eficiencia (EF) y el coste.

4.4.1 Tiempo de ejecución.

Es la medida más importante en la evaluación de algoritmos paralelos, se define

como el tiempo empleado por un algoritmo para resolver un problema, desde el

momento en que comienza hasta que termina.

4.4.2 Número de procesadores (P).

El numero de procesadores afecta directamente en la solución del problema,

cuando varios procesadores están presentes se obtiene mayor rapidez en la

solución del problema.

4.4.3 Tiempo paralelo.

Es el tiempo desde el momento en que el primer procesador comienza su

ejecución hasta que el último procesador termina.

Donde,

Tcal : Tiempo de calculo

Tcom: Tiempo de comunicación

TP = Tcal + Tcom

Page 98: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

86

4.4.4 Tiempo de comunicaciones.

Es el tiempo invertido por la aplicación en funciones de comunicación entre

procesos asignados a diferentes nodos.

Donde,

N: Tamaño del paquete o mensaje

B: Tiempo de envío de los paquetes

T: Tiempo de arranque: Latencia: El tiempo que se requiere para iniciar el

envío de un mensaje entre dos procesadores.

4.4.5 Aceleración

Es la rapidez de un algoritmo paralelo ejecutado en varios procesadores en

comparación a un algoritmo secuencial que resuelve el mismo problema.

4.4.6 Eficiencia

Es el porcentaje de tiempo que los procesadores son usados en el cálculo. El grado

de utilización de la arquitectura paralela:

Intervalos esperados:

0 < Sp <= n 0 < Ef <= 1

Tcom = B + nt

Sp = Ts/Tp

Ef = (Ts/pTp)*100%

Page 99: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

87

Si no se cumple con los intervalos, se está creando una sobrecarga de la

comunicación entre los procesadores y el programa paralelo sería menos óptimo

que el programa secuencial.

Si Ef = 1 -> la aceleración del programa es lineal

Si Ef <1 /n -> la aceleración del programa está disminuyendo

4.4.7 Coste

Es la medida más indicativa del rendimiento de un programa paralelo. Su precisión

radica en que relaciona el número de procesadores empleados con el tiempo de

ejecución obtenido; por lo tanto será útil en que porción aumenta el rendimiento

del sistema al incrementar el número de procesadores.

Coste secuencial = p * Ts -> (p = 1) -> Ts

Coste paralelo = p * Ts

4.5 Análisis y discusión de resultados.

A continuación se presenta y se compara los resultados obtenidos:

4.5.1 Clasificación en forma secuencial

Las primeras pruebas realizadas son en base a la clasificación secuencial, se ha

trabajado con un archivo .csv desde 10000000 hasta 50000000 registros.

Coste = Tmp. Ejec. * Num. Procesadores

Page 100: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

88

Fig. 22 Clasificación secuencial

En la Fig. 22 de puede apreciar que a medida que crece el número de filas a clasificar

aumenta el tiempo necesario para terminar la clasificación. El tiempo necesario para

clasificar el archivo de 50000000 registros ha sido de 23,85 min.

4.5.2 Clasificación en forma paralela

Para las pruebas con la versión paralela se ha calculado el tiempo de ejecución

variando tanto el número de registros del archivo de 10000000 hasta 50000000 y

el número de nodos desde 4, 8, 12 y 16, obteniendo los siguientes resultados:

4,75

9,5

13,93

18,41

23,85

0

5

10

15

20

25

30

10000000 20000000 30000000 40000000 50000000

Tie

mp

o (m

in)

Número de registros

Clasificación Secuencial

Secuencial

Page 101: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

89

Fig. 23 Clasificación Paralela

En la Fig. 23 se puede apreciar la manera que aumenta el tiempo de ejecución a

medida que incrementa en número de registros en el archivo, además se puede

observar que el tiempo más óptimo es aquel con 16 nodos siendo de 2,26 min para

el archivo de 50000000 registros.

4.5.3 Comparación entre la versión secuencial y paralela

Para las comparaciones entre las dos versiones se ha considerado el tiempo de

ejecución paralelo al utilizar 16 nodos y el tiempo de ejecución en forma

secuencial.

Como se puede observar, se ha obtenido un rendimiento entre los tiempos de

ejecución, el mismo que se lo puede expresar de la siguiente forma:

TRendimiento = Ts – Tp

0,98 1,321,84 2,21 2,26

1,05 1,42,25 2,65 3,02

1,332,07

2,9

4,174,72

2,21

4,61

6,66

8,93

11,23

0

2

4

6

8

10

12

10000000 20000000 30000000 40000000 50000000

Tie

mp

o (m

in)

Número de registros

Clasificación Paralela

16 Nodos

12 Nodos

8 Nodos

4 Nodos

Page 102: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

90

TRendimiento = (23,85 – 2,26)min

TRendimiento = 21,59 min

Donde la tasa de rendimiento alcanzada seria de:

Ts 100%

TRendimiento Tasa_rend

Tasa_rend = (TRendimiento * 100%)/Ts

Tasa_rend = (21,59 min * 100%)/ 23,85 min

Tasa_rend = 90.52%

Fig. 24 Comparación de tiempos de ejecución entre la clasificación Secuencial y Paralelo

De acuerdo a los datos calculados se obtuvo un ahorro de 21,59 min, con una tasa de

rendimiento del 90.52%, este ahorro de tiempo es muy significativo ya que si se tuvieran que

analizar un conjunto de imágenes el ahorro de tiempo seria considerable que si se analizara

una por una en forma secuencial.

4,75

9,5

13,93

18,41

23,85

0,98 1,32 1,84 2,21 2,260

5

10

15

20

25

30

10000000 20000000 30000000 40000000 50000000

Tiem

po

(min

)

Comparación Secuencial vs Paralelo

Secuencial

Paralelo

Número de registros

Page 103: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

91

4.6 Evaluación del rendimiento

El rendimiento de la arquitectura paralela implementada se lo ha evaluado en base a

los criterios anteriormente descritos:

4.6.1 Aceleración

La aceleración obtenida es:

4 nodos Sp = 2,12 min

8 nodos Sp = 5,05 min

12 nodos Sp = 7,89 min

16 nodos Sp = 10,55 min

# Registros Tiempo Nodos Aceleracion Ts/Tp

10000000 0,98 16 4,85

20000000 1,32 16 7,2

30000000 1,84 16 7,57

40000000 2,21 16 8,33

50000000 2,26 16 10,55

10000000 1,05 12 4,52

20000000 1,4 12 6,79

30000000 2,25 12 6,19

40000000 2,65 12 6,95

50000000 3,02 12 7,9

10000000 1,33 8 3,57

20000000 2,07 8 4,59

30000000 2,9 8 4,8

40000000 4,17 8 4,41

50000000 4,72 8 5,05

10000000 2,21 4 2,15

20000000 4,61 4 2,06

Page 104: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

92

30000000 6,66 4 2,09

40000000 8,93 4 2,06

50000000 11,23 4 2,12

Tabla 11 Datos de Aceleración

De acuerdo a los datos obtenidos, se ilustra que con un menor número de nodos

se obtiene una aceleración baja, sin embargo al aumentar el número de nodos la

aceleración aumenta significativamente disminuyendo así el tiempo total de

clasificación de los datos.

Fig. 25 Comparación de la aceleración variando el número de nodos

4.6.2 Eficiencia

Ef = Ts/pTp

La eficiencia obtenida es:

4,85

7,2 7,578,33

10,55

4,52

6,796,19

6,95

7,9

3,57

4,59 4,84,41

5,05

2,15 2,06 2,09 2,06 2,12

0

2

4

6

8

10

12

10000000 20000000 30000000 40000000 50000000

Ace

lera

ció

n (m

in)

Aceleración

16 Nodos

12 Nodos

8 Nodos

4 Nodos

Número de Registros

Page 105: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

93

# Registros Tiempo Nodos Eficiencia (Ts/pTp)*100%

10000000 0,98 16 30,29

20000000 1,32 16 44,98

30000000 1,84 16 47,32

40000000 2,21 16 52,06

50000000 2,26 16 65,96

10000000 1,05 12 37,7

20000000 1,4 12 56,55

30000000 2,25 12 51,59

40000000 2,65 12 57,89

50000000 3,02 12 65,81

10000000 1,33 8 44,64

20000000 2,07 8 57,37

30000000 2,9 8 60,04

40000000 4,17 8 55,19

50000000 4,72 8 63,16

10000000 2,21 4 53,73

20000000 4,61 4 51,52

30000000 6,66 4 52,29

40000000 8,93 4 51,54

50000000 11,23 4 53,09

Tabla 12 Datos de Eficiencia

16 nodos Ef = 0,65

Intervalos:

Si 0,65 ≠ 1 la aceleración del programa es no lineal

Si 0,65 > 0,06 la aceleración del programa no está disminuyendo

12 nodos Ef = 0,65

Intervalos:

Si 0,65 ≠ 1 la aceleración del programa es no lineal

Si 0,65 > 0,08 la aceleración del programa no está disminuyendo

Page 106: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

94

8 nodos Ef = 0,63

Intervalos:

Si 0,63 ≠ 1 la aceleración del programa es no lineal

Si 0,63 > 0,12 la aceleración del programa no está disminuyendo

4 nodos Ef = 0,53

Intervalos:

Si 0,53 ≠ 1 la aceleración del programa es no lineal

Si 0,53 > 0,25 la aceleración del programa no está disminuyendo

Fig. 26 Comparación de la Eficiencia variando la cantidad de nodos

De los resultados obtenidos se puede determinar que la eficiencia tiende a aumentar

conforme aumenta el tamaño del problema y el número de nodos, por ejemplo para el

archivo de 10000 registros se obtiene mayor tiempo de utilización con 4 nodos (53,73%)

en comparación con 16 nodos (30,29%).

30,29

44,98 47,3252,06

65,96

37,7

56,5551,59

57,89

65,81

44,64

57,37 60,0455,19

63,16

53,73 51,52 52,29 51,54 53,09

0

10

20

30

40

50

60

70

10000000 20000000 30000000 40000000 50000000

Tiem

po

de

uti

lizac

ion

(%)

Número de registros

Eficiencia

16 Nodos

12 Nodos

8 Nodos

4 Nodos

Page 107: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

95

Por lo tanto haciendo una relación entre los intervalos dados en los criterios de evaluación

para comprobar la optimización que ofrecen los algoritmos paralelos se ha podido

determinar lo siguiente:

Intervalos esperados:

Aceleración (Sp): 0 < Sp ≤ n

Eficiencia (Ef): 0 < Ef ≤ 1

# nodos Aceleración

(Sp)

Eficiencia

(Ef)

Intervalos obtenidos

Aceleración (Sp) Eficiencia (Ef)

4 2,12 0,53 0 < 2,12 ≤ 4 0 < 0,53 ≤ 1

8 5,05 0,63 0 < 5,05 ≤ 8 0 < 0,63 ≤ 1

12 7,89 0,65 0 < 7,89 ≤ 12 0 < 0,65 ≤ 1

16 10,55 0,65 0 < 10,55 ≤ 16 0 < 0,65 ≤ 1

Tabla 13 Datos de optimización de algoritmos paralelos

Como se puede observar en todos los casos existe una eficiencia la cual va aumentando

cuando se incrementa el número de nodos.

4.6.3 Coste

Los datos obtenidos son los siguientes:

# Registros Tiempo Nodos Coste

10000000 0,98 16 15,68

20000000 1,32 16 21,12

30000000 1,84 16 29,44

40000000 2,21 16 35,36

50000000 2,26 16 36,16

Page 108: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

96

10000000 1,05 12 12,6

20000000 1,4 12 16,8

30000000 40000000

2,25 2,65

12 12

27 31,8

50000000 3,02 12 36,24

10000000 1,33 8 10,64

20000000 2,07 8 16,56

30000000 2,9 8 23,2

40000000 4,17 8 33,36

50000000 4,72 8 37,76

10000000 2,21 4 8,84

20000000 4,61 4 18,44

30000000 6,66 4 26,64

40000000 8,93 4 35,72

50000000 11,23 4 44,92 Tabla 14 Datos de coste

De acuerdo a los resultados obtenidos se puede determinar que cuando se procesa

10000000 registros el coste es mayor con 16 nodos que con 4 nodos, esto significa que el

tamaño del archivo es demasiado pequeño para procesarlo con 16 nodos porque produce

8,84

18,44

26,64

35,72

44,92

10,64

16,56

23,2

33,3637,76

12,616,8

27

31,836,24

15,68

21,12

29,44

35,36 36,16

0

5

10

15

20

25

30

35

40

45

50

10000000 20000000 30000000 40000000 50000000

Co

ste

Coste

4 Nodos

8 Nodos

12 Nodos

16 Nodos

Fig. 27 Comparación del Coste variando la cantidad de nodos

Page 109: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

97

un coste mayor, sin embargo con el tamaño del archivo de 50000000 registros el coste de

procesamiento con 4 nodos es mayor que con 16, 12 y 8 nodos.

Page 110: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

98

CAPITLULO V

CONCLUSIONES Y RECOMENDACIONES

Page 111: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

99

Se determinó que el uso de la función de activación sigmoidal bipolar tiene un mayor

grado de clasificación entre clases con un 84,25% frente a un 81.1% de la función

activación sigmoidal debido a que la función sigmoidal bipolar tiene un rango [-1 , 1]

y la función sigmoidal un rango de [0 , 1], el número de iteraciones utilizadas en

ambas funciones fue de 1000.

De acuerdo a la comparación realizada entre la clasificación de imágenes con la

herramienta WEKA y la herramienta desarrollada, WEKA obtuvo un porcentaje de

clasificación del 88,5% frente a 84,65% de nuestra aplicación, con estos resultados se

puede concluir que la aplicación es confiable y por lo tanto se valida el

funcionamiento de la misma.

El tiempo de clasificación secuencial fue de 23.85 min, y el tiempo de clasificación

paralela fue de 2.26 min para el archivo de 50000000 registros, dando un ahorro de

21.59 min utilizando 16 computadores, con estos resultados se ha cumplido con el

objetivo de minimizar los tiempos de clasificación de una imagen satelital.

De acuerdo al punto anterior podemos concluir que la implementación de tecnologías

de computación distribuida como Cluster en conjunto con MPI incrementa

notablemente la capacidad de procesamiento, haciendo ver a un conjunto de

computadores como uno solo.

Con la ejecución paralela se obtuvo una tasa de rendimiento del 90.52% en función al

tiempo secuencial, con este resultado se puede concluir que la incorporación de

técnicas de computación paralela aumenta el grado de rendimiento.

Se determinó que el número de máquinas que intervienen en la clasificación, es

fundamental para obtener mejores resultados en tiempo de ejecución, de acuerdo a

Page 112: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

100

los resultados un número elevado de nodos será perjudicial para el cluster si el

archivo a analizar es demasiado pequeño obteniendo un mayor costo, por lo tanto

dependiendo de las necesidades que se tenga de procesamiento se debe involucrar

más recursos y llegar a un equilibrio entre rendimiento y costo. El número de nodos

utilizados fue de 16, si incrementáramos el número de nodos a 20 para analizar el

mismo conjunto de datos, no obtendremos mayores beneficios, incluso puede tomar

más tiempo de procesamiento ya que el tiempo de comunicación entre los nodos será

mayor.

La utilización de la librería de compresión de archivos fue de gran importancia ya que

redujo el tiempo de envío de los archivos desde el nodo servidor hacia los nodos

clientes, aumentando el rendimiento y disminuyendo el tiempo de clasificación.

Los recursos de hardware juegan un papel muy importante en el rendimiento de la

aplicación, por éste motivo se recomienda que los nodos involucrados tengan las

mismas características, ya que al existir un nodo con menores características todo el

cluster resultará afectado y su rendimiento será inferior.

Se recomienda que las características del nodo maestro sean de mayor capacidad,

como por ejemplo un mejor rendimiento en el procesador y en lo posible con un

número mayor de unidades de procesamiento, esto es debido a que acelerará

considerablemente el tiempo necesario para la compresión de los archivos antes de

enviarlos a los nodos esclavos.

También se recomienda utilizar una arquitectura de interconexión con mayores

velocidades incorporando un switch Giga bit Ethernet e incluso utilizar fibra óptica, sin

duda su implementación dará mejores resultados en cuanto a tiempo de respuesta

del cluster.

Page 113: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

101

CAPITULO VI

DISCUSIÓN Y TRABAJOS FUTUROS

Page 114: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

102

Durante el análisis del planteamiento del problema se planteó la paralelización del

algoritmo Backpropagation ya que también toma demasiado tiempo su fase de

entrenamiento, sin embargo esta implementación se debería realizar para arquitecturas

de redes neuronales en donde el tamaño sea de gran envergadura, como por ejemplo

redes con más de 10 capas ocultas y más de 500 neuronas por cada capa oculta, para

entrenar la red neuronal se utilizó una arquitectura de 3 capas, con 4 neuronas en la capa

de entrada, 15 neuronas en la capa oculta y 6 neuronas en la capa de salida, por lo cual su

implementación no fue necesaria. Por otro lado también se analizó la paralelización de los

datos a clasificar, siendo esta la alternativa seleccionada para su implementación dentro

de un cluster.

Dentro del desarrollo de la presente investigación se planteó el análisis de la

implementación del algoritmo Backpropagation aplicado al procesamiento de imágenes

satelitales sobre un entorno distribuido, para ello fue necesaria la construcción de una

herramienta software que nos permita distribuir la carga de trabajo entre los nodos, entre

las diferentes alternativas se encontraban Matlab, DeinoMPI, Condor, MPICH y Visual

Studio .NET 2008, se ha escogido Visual Studio .NET 2008 y el lenguaje C# para la

construcción de la herramienta, debido a su facilidad de uso y a la gran compatibilidad

que presentó con respecto a la utilización de las otras librerías utilizadas en este proyecto.

Los datos de las imágenes satelitales utilizadas fueron aprobados por el departamento SIG

de la Universidad Técnica Particular de Loja, los cuales fueron necesarios para la validación

y pruebas de la herramienta desarrollada.

La tecnología de interconexión entre los computadores del cluster fue uno de los factores

más importantes dentro de la configuración del cluster ya que de este depende su

rendimiento, para ello se configuró el cluster con un switch Fast Ethernet ya que este se

encuentra instalado y configurado dentro de la infraestructura de la Universidad.

Page 115: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

103

En cuanto a los tiempos de respuesta de la aplicación se pone a consideración el ahorro de

tiempo que lleva procesar una imagen satelital, las pruebas demuestran que con los

archivos utilizados se obtuvo un ahorro 22 min aproximadamente utilizando 16 máquinas

y el archivo 50000000 registros, este tiempo parece no ser considerable por el número de

máquinas utilizadas, sin embargo si ampliáramos el número de archivos a clasificar

encontraríamos un ahorro significante pudiendo ser este de días e incluso de semanas.

Con respecto a los trabajos futuros se pretende agregar una funcionalidad a la aplicación

que permita observar los resultados dentro de la imagen satelital proporcionando así

mejor entendimiento y ubicación de los resultados para el usuario final.

También se pretende crear una herramienta que escriba automáticamente los archivos

.csv a partir de las imágenes satelitales en el formato necesario para nuestra aplicación, ya

que actualmente el archivo .csv ha sido construido manualmente.

Además se puede construir una herramienta que permita realizar el entrenamiento de la

red neuronal en forma paralela y así mejorar los tiempos de entrenamiento, está

herramienta se la puede utilizar cuando la arquitectura de la red neuronal sea demasiado

compleja.

Page 116: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

104

BIBLIOGRAFÍA

Page 117: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

105

1. Torresen Jim – Tomita Shinji. A review of parallel implementations of Backpropagation Neural

Network. [En línea] [Citado el: 15 de Abril de 2008.] http://citeseer.ist.psu.edu/495048.html.

2. U. Lotric, A. Dobnikar. Parallel implementations of feed-forward neural network using MPI and

C# on .NET platform. s.l. : Faculty of Computer and Information Science, University of Ljubljana,

Slovenia.

3. Introducción a la Teledetección. [En línea] [Citado el: 10 de 01 de 2008.]

http://webpages.ull.es/users/marbelo/rs1.pdf.

4. Chuvieco, Emilio. Teledetección Ambiental. España : Editorial: Ariel, 2002.

5. SCANTERRA Consultors. CONOZCA MAS. [En línea]

http://www.scanterra.com.ar/conozca_mas.html.

6. Bonifacio Martín del Brío - Alfredo Sanz. Redes Neuronales y Sistemas Difusos. 2001. Vol. 2da

Edición Ampliada y Revisada.

7. Rumelhart, D. E., and McClelland, J. L. Parallel Distributed Processing: Explorations in the

Microstructure of Cognition Vol. 1. Cambridge, MA : MIT Press, 1986.

8. SORIA, Emilio; BLANCO, Antonio. Redes Neuronales Artificiales. [En línea] [Citado el: 26 de 03

de 2008.] http://www.acta.es/articulos_mf/19023.PDF.

9. APLICACIÓN DE LAS TÉCNICAS DE REDES NEURONALES PARA EL DIAGNÓSTICO ON-LINE DEL

PROCESO DE ELECTROEROSIÓN POR HILO. Aprendizaje. [En línea] [Citado el: 27 de 03 de 2008.]

http://www.disa.bi.ehu.es/spanish/profesores-etsi-

bilbo/~jtpcaaxi/PFC/wwwANN/aprendizaje_de_las_ann.htm.

10. Matich, Damián Jorge. Redes Neuronales: Conceptos Básicos y Aplicaciones. [En línea] [Citado

el: 15 de 02 de 2008.]

http://www.frro.utn.edu.ar/repositorio/catedras/quimica/5_anio/orientadora1/monograias/mati

ch-redesneuronales.pdf.

11. Historia de las Redes Neuronales. [En línea] [Citado el: 15 de 02 de 2008.]

http://www.itnuevolaredo.edu.mx/maestros/sis_com/takeyas/Apuntes/Inteligencia%20Artificial/

Apuntes/tareas_alumnos/RNA/Redes%20Neuronales2.pdf.

12. Wikipedia. Cluster (informática) - Wikipedia, la enciclopedia libre. [En línea] [Citado el: 17 de

03 de 2008.] http://es.wikipedia.org/wiki/Cluster_(inform%C3%A1tica).

13. —. Cluster de alta disponibilidad - Wikipedia, la enciclopedia libre. [En línea] [Citado el: 17 de

03 de 2008.] http://es.wikipedia.org/wiki/Cluster_de_alta_disponibilidad.

Page 118: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

106

14. —. Cluster de Alto Rendimiento. [En línea] [Citado el: 18 de 03 de 2008.]

http://es.wikipedia.org/wiki/Cluster_de_alto_rendimiento.

15. —. Cluster de Balanceo de carga. [En línea] [Citado el: 18 de 03 de 2008.]

http://es.wikipedia.org/wiki/Cluster_de_balanceo_de_carga.

16. Message Passing Interface Forum. [En línea] [Citado el: 05 de 03 de 2008.] http://www.mpi-

forum.org/.

17. Pure Mpi.NET. [En línea] [Citado el: 04 de 04 de 2008.] http://www.purempi.net/.

18. Wikipedia. Método empírico-analítico. [En línea] [Citado el: 10 de 03 de 2008.]

http://es.wikipedia.org/wiki/M%C3%A9todo_experimental#Clasificaciones.

19. EL MÉTODO ESTADÍSTICO. [En línea] [Citado el: 15 de 03 de 2008.]

http://www.telpin.com.ar/interneteducativa/Proyectos/2007/ESTADISTICA/m%C3%A9todo.htm.

20. The University of Edinburgh - School of Informatics. THE LANDSAT DATA. [En línea] [Citado el:

16 de 5 de 2008.] http://www.inf.ed.ac.uk/teaching/courses/dme/html/landsat.html.

21. Kwan, H.K. - Lee, C.K. A Neural Network Approach to Pulse Radar Detection. 1993.

22. REYES, Vicente. Procesamiento paralelo en redes Linux utilizando MPI. [En línea] 2003.

www.redes-linux.com/manuales/cluster/mpi-spanish.pdf.

23. Lincoln Laboratory. Lincoln Laboratory Massachusetts Institute of Technology. [En línea]

[Citado el: 12 de 02 de 2008.] http://www.ll.mit.edu/mission/isr/matlabmpi/matlabmpi.html.

24. The Open MPI Project. Open Source High Performance Computing. [En línea] [Citado el: 17 de

12 de 2007.] http://www.open-mpi.org/.

25. Parallel Virtual Machine. [En línea] http://www.csm.ornl.gov/pvm/.

26. The Trustees of Indiana University . MPI.NET: High-Performance C# Library for Message

Passing. [En línea] [Citado el: 12 de 01 de 2008.] http://www.osl.iu.edu/research/mpi.net/.

27. Larrosa, Juan Manuel. Resumen sobre aspectos fundamentales de la teledetección. [En línea]

[Citado el: 05 de 02 de 2008.] http://jlarrosa.tripod.com/files/teledeteccion.pdf.

28. Alfonso Pitarque, Juan Francisco Roy , Juan Carlos Ruiz. Redes neurales vs modelos

estadísticos: Simulaciones sobre tareas de predicción y clasificación. [En línea] [Citado el: 25 de 03

de 2008.] http://www.uv.es/revispsi/articulos3.98/pitarque.pdf.

29. GEO SAT. Imágenes Satelitales. [En línea] http://geo-sat.com.ar/es/content/view/18/62/.

Page 119: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

107

ANEXOS

Page 120: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

108

ANEXO I

Page 121: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

109

Principles of training multi-layer neural network using Backpropagation

The project describes teaching process of multi-layer neural network employing

backpropagation algorithm. To illustrate this process the three layer neural network with

two inputs and one output,which is shown in the picture below, is used:

Each neuron is composed of two units. First unit adds products of weights coefficients and

input signals. The second unit realise nonlinear function, called neuron activation function.

Signal e is adder output signal, and y = f(e) is output signal of nonlinear element. Signal y is

also output signal of neuron.

Page 122: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

110

To teach the neural network we need training data set. The training data set consists of

input signals (x1 and x2 ) assigned with corresponding target (desired output) z. The

network training is an iterative process. In each iteration weights coefficients of nodes are

modified using new data from training data set. Modification is calculated using algorithm

described below: Each teaching step starts with forcing both input signals from training

set. After this stage we can determine output signals values for each neuron in each

network layer. Pictures below illustrate how signal is propagating through the network,

Symbols w(xm)n represent weights of connections between network input xm and neuron n

in input layer. Symbols yn represents output signal of neuron n.

Page 123: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

111

Propagation of signals through the hidden layer. Symbols wmn represent weights of

connections between output of neuron m and input of neuron n in the next layer.

Page 124: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

112

Propagation of signals through the output layer.

In the next algorithm step the output signal of the network y is compared with the desired

output value (the target), which is found in training data set. The difference is called error

signal d of output layer neuron.

Page 125: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

113

It is impossible to compute error signal for internal neurons directly, because output

values of these neurons are unknown. For many years the effective method for training

multiplayer networks has been unknown. Only in the middle eighties the backpropagation

algorithm has been worked out. The idea is to propagate error signal d (computed in

single teaching step) back to all neurons, which output signals were input for discussed

neuron.

Page 126: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

114

The weights' coefficients wmn used to propagate errors back are equal to this used during

computing output value. Only the direction of data flow is changed (signals are

propagated from output to inputs one after the other). This technique is used for all

network layers. If propagated errors came from few neurons they are added. The

illustration is below:

Page 127: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

115

When the error signal for each neuron is computed, the weights coefficients of each

neuron input node may be modified. In formulas below df(e)/de represents derivative of

neuron activation function (which weights are modified).

Page 128: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

116

Page 129: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

117

Page 130: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

118

Page 131: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

119

Coefficient h affects network teaching speed. There are a few techniques to select this

parameter. The first method is to start teaching process with large value of the parameter.

While weights coefficients are being established the parameter is being decreased

gradually. The second, more complicated, method starts teaching with small parameter

value. During the teaching process the parameter is being increased when the teaching is

advanced and then decreased again in the final stage. Starting teaching process with low

parameter value enables to determine weights coefficients signs.

References

Ryszard Tadeusiewcz "Sieci neuronowe", Kraków 1992

Page 132: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

120

ANEXO II

Page 133: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

121

Archivo App.config con 10 máquinas.

<?xml version="1.0"?>

<configuration>

<configSections>

<section name="Mpi" type="Mpi.ConfigurationSection, Mpi" />

</configSections>

<Mpi>

<Machines>

<Machine name="CHINO" management="MpiMgmtService1" />

</Machines>

<Environments>

<Environment name="UPROD3SALAB01">

<Hosts>

<Host comms="MPI_COMM_WORLD" client="MpiClient1"

service="MpiService1" />

<Host comms="MPI_COMM_WORLD" client="MpiClient2" />

<Host comms="MPI_COMM_WORLD" client="MpiClient3" />

<Host comms="MPI_COMM_WORLD" client="MpiClient4" />

<Host comms="MPI_COMM_WORLD" client="MpiClient5" />

<Host comms="MPI_COMM_WORLD" client="MpiClient6" />

<Host comms="MPI_COMM_WORLD" client="MpiClient7" />

<Host comms="MPI_COMM_WORLD" client="MpiClient8" />

<Host comms="MPI_COMM_WORLD" client="MpiClient9" />

<Host comms="MPI_COMM_WORLD" client="MpiClient10" />

</Hosts>

</Environment>

<Environment name="UPROD3SALAB02">

<Hosts>

<Host comms="MPI_COMM_WORLD" client="MpiClient1" />

<Host comms="MPI_COMM_WORLD" client="MpiClient2"

service="MpiService2" />

<Host comms="MPI_COMM_WORLD" client="MpiClient3" />

<Host comms="MPI_COMM_WORLD" client="MpiClient4" />

<Host comms="MPI_COMM_WORLD" client="MpiClient5" />

<Host comms="MPI_COMM_WORLD" client="MpiClient6" />

<Host comms="MPI_COMM_WORLD" client="MpiClient7" />

<Host comms="MPI_COMM_WORLD" client="MpiClient8" />

<Host comms="MPI_COMM_WORLD" client="MpiClient9" />

<Host comms="MPI_COMM_WORLD" client="MpiClient10" />

</Hosts>

</Environment>

<Environment name="UPROD3SALAB03">

<Hosts>

<Host comms="MPI_COMM_WORLD" client="MpiClient1" />

<Host comms="MPI_COMM_WORLD" client="MpiClient2" />

<Host comms="MPI_COMM_WORLD" client="MpiClient3"

service="MpiService3" />

<Host comms="MPI_COMM_WORLD" client="MpiClient4" />

<Host comms="MPI_COMM_WORLD" client="MpiClient5" />

<Host comms="MPI_COMM_WORLD" client="MpiClient6" />

<Host comms="MPI_COMM_WORLD" client="MpiClient7" />

<Host comms="MPI_COMM_WORLD" client="MpiClient8" />

Page 134: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

122

<Host comms="MPI_COMM_WORLD" client="MpiClient9" />

<Host comms="MPI_COMM_WORLD" client="MpiClient10" />

</Hosts>

</Environment>

</Environments>

</Mpi>

<system.serviceModel>

<bindings>

<netTcpBinding>

<binding name="MpiBinding" openTimeout="01:30:00"

maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647"

receiveTimeout="01:30:00" maxConnections="50" sendTimeout="01:30:00"

closeTimeout="01:30:00">

<security mode="None">

</security>

</binding>

<binding name="MpiMgmtBinding" transferMode="Streamed"

closeTimeout="00:00:10" openTimeout="00:10:00" sendTimeout="00:02:00" />

</netTcpBinding>

</bindings>

<behaviors>

<serviceBehaviors>

<behavior name="MpiServiceBehavior">

<dataContractSerializer maxItemsInObjectGraph="2147483647" />

<serviceDebug httpHelpPageEnabled="false"

httpsHelpPageEnabled="false" includeExceptionDetailInFaults="true" />

</behavior>

</serviceBehaviors>

<endpointBehaviors>

<behavior name="MpiClientBehavior">

<dataContractSerializer maxItemsInObjectGraph="65536000" />

</behavior>

</endpointBehaviors>

</behaviors>

<client>

<clear />

<endpoint address="net.tcp://UPROD3SALAB01:8081/MpiService"

behaviorConfiguration="MpiClientBehavior" binding="netTcpBinding"

bindingConfiguration="MpiBinding" contract="Mpi.IMpiService"

name="MpiClient1" />

<endpoint address="net.tcp://UPROD3SALAB02:8082/MpiService"

behaviorConfiguration="MpiClientBehavior" binding="netTcpBinding"

bindingConfiguration="MpiBinding" contract="Mpi.IMpiService"

name="MpiClient2" />

<endpoint address="net.tcp://UPROD3SALAB03:8083/MpiService"

behaviorConfiguration="MpiClientBehavior" binding="netTcpBinding"

bindingConfiguration="MpiBinding" contract="Mpi.IMpiService"

name="MpiClient3" />

</client>

<services>

<clear />

Page 135: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

123

<service behaviorConfiguration="MpiServiceBehavior"

name="MpiService1">

<endpoint address="net.tcp://UPROD3SALAB01:8081/MpiService"

binding="netTcpBinding" bindingConfiguration="MpiBinding"

name="MpiServiceEndpoint" contract="Mpi.IMpiService" />

</service>

<service behaviorConfiguration="MpiServiceBehavior"

name="MpiService2">

<endpoint address="net.tcp://UPROD3SALAB02:8082/MpiService"

binding="netTcpBinding" bindingConfiguration="MpiBinding"

name="MpiServiceEndpoint" contract="Mpi.IMpiService" />

</service>

<service behaviorConfiguration="MpiServiceBehavior"

name="MpiService3">

<endpoint address="net.tcp://UPROD3SALAB03:8083/MpiService"

binding="netTcpBinding" bindingConfiguration="MpiBinding"

name="MpiServiceEndpoint" contract="Mpi.IMpiService" />

</service>

<service behaviorConfiguration="MpiServiceBehavior"

name="MpiService4">

</service>

</services>

</system.serviceModel>

<system.runtime.serialization>

<dataContractSerializer>

<declaredTypes>

<add type="Mpi.Message, Mpi">

<knownType type="System.Collections.ArrayList" />

<knownType type="System.String[]" />

<knownType type="System.Collections.Hashtable" />

<knownType type="System.Text.StringBuilder" />

</add>

</declaredTypes>

</dataContractSerializer>

</system.runtime.serialization>

<appSettings>

<add key="WinRar" value="C:\Archivos de Programa\WinRar\Rar.exe" />

</appSettings>

</configuration>

Page 136: ESCUELA DE CIENCIAS DE LA COMPUTACIÓNcronus.uwindsor.ca/units/isplab/ISPLab.nsf... · UNNIIVVEERRSSI IDDAADD TTTÉÉCCNNICCA A PPAARRTIICCUULLAARR DDEE LLOOJJA ESCUELA DE CIENCIAS

Universidad Técnica Particular de Loja

124

ANEXO III