escuela de ciencias de la computaciÓncronus.uwindsor.ca/units/isplab/isplab.nsf... ·...
TRANSCRIPT
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
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
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
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
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
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!
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
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
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
Universidad Técnica Particular de Loja
ix
ANEXO I ......................................................................................................................... 108
ANEXO II ........................................................................................................................ 120
ANEXO III ....................................................................................................................... 124
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
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
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.
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/
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
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.
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/
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/
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/
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/
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.
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
Universidad Técnica Particular de Loja
11
CAPÍTULO I
MARCO REFERENCIAL
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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
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.
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
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)
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.
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
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.
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
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
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/
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
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
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
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
Universidad Técnica Particular de Loja
37
CAPÍTULO II
DEFINICIÓN DEL PROBLEMA
Y
MODELADO DE LA SOLUCIÓN
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/
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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.
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
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
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.
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
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
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
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
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
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,
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.
Universidad Técnica Particular de Loja
60
CAPÍTULO III
DESARROLLO DE LA SOLUCIÓN
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
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”
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/
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.
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.
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
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/
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)
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:
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
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
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.
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++;
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);
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
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
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.
Universidad Técnica Particular de Loja
78
CAPÍTULO IV
VALIDACIÓN Y PRUEBAS
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
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/
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
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
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
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).
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
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%
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
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
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
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
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
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
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
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
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
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
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.
Universidad Técnica Particular de Loja
98
CAPITLULO V
CONCLUSIONES Y RECOMENDACIONES
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
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.
Universidad Técnica Particular de Loja
101
CAPITULO VI
DISCUSIÓN Y TRABAJOS FUTUROS
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.
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.
Universidad Técnica Particular de Loja
104
BIBLIOGRAFÍA
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.
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/.
Universidad Técnica Particular de Loja
107
ANEXOS
Universidad Técnica Particular de Loja
108
ANEXO I
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.
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.
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.
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.
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.
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:
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).
Universidad Técnica Particular de Loja
116
Universidad Técnica Particular de Loja
117
Universidad Técnica Particular de Loja
118
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
Universidad Técnica Particular de Loja
120
ANEXO II
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" />
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 />
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>
Universidad Técnica Particular de Loja
124
ANEXO III