• No se han encontrado resultados

Análisis de la implementación del algoritmo de Backpropagation aplicado al procesamiento de imágenes satelitales sobre un entorno distribuido

N/A
N/A
Protected

Academic year: 2021

Share "Análisis de la implementación del algoritmo de Backpropagation aplicado al procesamiento de imágenes satelitales sobre un entorno distribuido"

Copied!
136
0
0

Texto completo

(1)

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

(2)

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

(3)

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

(4)

iii

AUTORIA

Las ideas, opiniones, conclusiones, recomendaciones y más contenidos expuestos en el presente informe de tesis son de absoluta responsabilidad del autor.

(5)

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.

(6)

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.

(7)

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 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

(8)

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

(9)

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

(10)

ix

ANEXO I ... 108 ANEXO II ... 120 ANEXO III ... 124

(11)

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

(12)

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

(13)

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.

(14)

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

(15)

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

(16)

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.

(17)

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.

(18)

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/

(19)

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/

(20)

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/

(21)

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.

(22)

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

(23)

11

CAPÍTULO I

(24)

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.

(25)

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.

(26)

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.

(27)

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

(28)

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.

(29)

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.

(30)

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:

(31)

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.

(32)

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.

(33)

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.

(34)

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

(35)

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

(36)

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.

(37)

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

(38)

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á

(39)

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.

(40)

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

(41)

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.

(42)

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

(43)

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

(44)

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/

(45)

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

(46)

34

o MIMD36

, varios flujos de instrucciones y varios flujos de datos.

Taxonomía de Flynn

Processor 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.

(47)

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á

(48)

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

(49)

37

CAPÍTULO II

DEFINICIÓN DEL PROBLEMA

Y

MODELADO DE LA SOLUCIÓN

(50)

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/

(51)

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.

(52)

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.

(53)

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.

(54)

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.

(55)

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.

(56)

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

(57)

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.

(58)

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

(59)

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.

(60)

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

(61)

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.

Referencias

Documento similar

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

En junio de 1980, el Departamento de Literatura Española de la Universi- dad de Sevilla, tras consultar con diversos estudiosos del poeta, decidió propo- ner al Claustro de la

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

Dada la endogeneidad de la respuesta de la política monetaria a la evolución prevista para la economía, esta evolución de las cotizaciones bancarias ante sorpresas monetarias puede

[r]