U
U
N
N
I
I
V
V
E
E
R
R
S
S
I
I
D
D
A
A
D
D
T
T
É
É
C
C
N
N
I
I
C
C
A
A
P
P
A
A
R
R
T
T
I
I
C
C
U
U
L
L
A
A
R
R
D
D
E
E
L
L
O
O
J
J
A
A
ESCUELA DE CIENCIAS DE LA COMPUTACIÓN“Análisis de la implementación del algoritmo de
Backpropagation aplicado al procesamiento de
imágenes satelitales sobre un entorno 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
i
CERTIFICACIÓN
Ing. Greyson AlbercaIng. 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
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
iii
AUTORIA
Las ideas, opiniones, conclusiones, recomendaciones y más contenidos expuestos en el presente informe de tesis son de absoluta responsabilidad del autor.
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.
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.
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 ... XIPERFIL 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 IMAGENSATELITAL ... 14
1.3.1 Introducción ... 14
1.3.2 Imagen Landsat ... 15
1.3.3 Banda Espectral ... 15
1.4 REDESNEURONALESARTIFICIALES ... 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
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
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
ix
ANEXO I ... 108 ANEXO II ... 120 ANEXO III ... 124
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
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
1
PERFIL DEL ANTEPROYECTO DE TESIS
1. TEMAANÁ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.
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
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
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.
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.
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/
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/
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/
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.
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
11
CAPÍTULO I
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.
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.
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.
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
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.
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.
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:
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.
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.
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.
22 Fig. 5 Clasificación de las redes neuronales artificiales
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
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.
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
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 Ai, deberá
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.
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
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.
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
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
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/
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
34
o MIMD36
, varios flujos de instrucciones y varios flujos de datos.
Taxonomía de Flynn
Processor OrganizationsSingle 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.
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á
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
37
CAPÍTULO II
DEFINICIÓN DEL PROBLEMA
Y
MODELADO DE LA SOLUCIÓN
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/
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.
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.
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.
42 Módulo de Clasificación Secuencial Módulo de Clasificación Paralela
Sistema
Módulo de Entrenamiento y Testeo
Subsistema
Clasificación SecuencialSubsistema
Clasificación ParalelaFig. 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.
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.
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 Usuario
Interfaz 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
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.
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
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.
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
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.