1 f eb. ~- l
TRANSCRIPT
Este libro debe ser devuelto. a más tardar en la última fecha sellada. Su retención más allá de la fecha de vencimienlo. lo hace acreedor a los multas que fija el reglamento .
Fecha de devolución
~ 1 f EB. ~- l .:,_:'
t . ).'
1 5 1 "?.) 1-
Fecha de entrega
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
UNIVERSIDAD VIRTUAL
MAESTRÍA EN CIENCIAS DE LA COMPUTACIÓN
Especialidad en Inteligencia Artificial
de Álonterrey UNl\"F-RSIDAD VIRTlJAI.
ESTIMACIÓN DE PRECIPITACIÓN PLUVIAL A PARTIR DE
INFORMACIÓN DE SENSORES REMOTOS UTILIZANDO
REDES NEURONALES
TESIS QUE PRESENTA:
José Manuel Campoy Salguero
BAJO LA ASESORÍA DE:
Dr. Edgar Emmanuel Vallejo Clemente
JURADO:
Presidente: Dr. Neil Hernández Gress
Secretario: Dr. Jaime Garatuza Payán
Vocal: Dr. Edgar Emmanuel Vallejo Clemente
Diciembre de 2001
TES-15
'~ .A 7 - .J. r 7
o{JC:
2001
Bi8L!OTECA
© José Manuel Campoy Salguero 2001 Todos los derechos reservados
ESTIMACIÓN DE PRECIPITACIÓN PLUVIAL A PARTIR DE INFORMACIÓN DE SENSORES REMOTOS UTILIZANDO REDES NEURONALES
Dr. Ed
Tesis presentada
por
JOSÉ MANUEL CAMPOY SALGUERO
ress, miembro del~ ~ / ,;b¿~~ ~~pz
Directora del Programa de Maestría en Ciencias de la Computación
DEDICATORIA
Dedico este trabajo a mi esposa e hijos por su paciencia y comprensión;
agradezco que me hayan cedido parte del tiempo familiar para la realización de
mis estudios.
AGRADECIMIENTOS
Agradezco al Instituto Tecnológico de Sonora, a su personal y en particular al Señor
Rector Dr. Osear Russo Vogel, por el soporte brindado en mis estudios de maestría.
Deseo agradecer al Dr. Jaime Garatuza Payán, por brindarme apoyo con sus
conocimientos en el área de percepción remota, así como su ayuda en la definición del
problema de investigación y desarrollo de este trabajo.
Un agradecimiento muy especial a mi asesor, Dr. Edgar Emmanuel Vallejo
Clemente, por sus valiosas sugerencias en el transcurso de esta investigación.
Por último deseo agradecer, a mis compañeros y colaboradores, lng. Adolfo
Espinoza Ruiz e lng. Hugo Osberto Romero por sus aportaciones a este trabajo.
RESUMEN
En este trabajo de tesis se presenta la aplicación de las redes neuronales artificiales
a la estimación de la precipitación pluvial en los Valles del Yaqui y Mayo del Estado de
Sonora.
La región noroeste de México es una zona eminentemente agrícola y ganadera.
Estas actividades dependen en gran medida de las precipitaciones que se generan. En
los últimos años el reducido número de precipitaciones ha provocado que la Comisión
Nacional del Agua haya limitado a un ciclo los cultivos durante el año en el Valle del
Yaqui.
En consecuencia, resulta necesario desarrollar sistemas de información que
permitan estimar de manera confiable la cantidad de lluvia que precipita en el noroeste
de México, para poder planear y administrar los recursos hidráulicos.
Con el propósito de abordar el problema, se diseñaron dos modelos de redes
neuronales artificiales basados en el modelo de red de propagación de conteo: la red
de propagación de conteo modificada (RPCM) y la red de propagación de conteo con
interpolación lineal (RPClL).
La RPCM, genera un valor de salida en función de la cercanía del valor de entrada
con el nodo ganador de la capa de Kohonen.
La RPClL, aproxima una entrada a los dos nodos más cercanos de la capa de
Kohonen y en función de la distancia a cada uno de ellos, realiza una interpolación
lineal para generar un valor de salida.
Para la estimación, se utilizó la mayor resolución posible de las imágenes infrarrojas
del satélite GOES e información de estaciones terrenas. La frecuencia de los datos fue
de una hora.
Los dos modelos se validaron experimentalmente utilizando una función sombrero
mexicano y se desempeñaron muy bien.
Una vez que ambos modelos fueron validados con una función conocida, se
procedió a calibrarlos con la información de imágenes de satélite y datos de estaciones
terrenas para frecuencias de una hora. El desempeño de ambas redes con patrones de
validación, estuvo dentro del margen de resultados de trabajos como el realizado en la
6
universidad de Arizona [Hsu et al, 1997a]. La RPCIL se desempeñó un poco mejor que
la RPCM (factores de correlación de 0.39 y 0.23 respectivamente).
La aportación de este trabajo consistió en utilizar la mayor resolución posible, tanto
espacial como temporal. Además, los dos modelos propuestos se calibraron con datos
de estaciones terrenas y con la escasa información disponible.
7
ÍNDICE DE CONTENIDO
Página
AGRADECIMIENTOS ...................................................................................................... 5
RESUMEN ........................................................................................................................ 6
ÍNDICE DE TABLAS ....................................................................................................... 11
ÍNDICE DE ILUSTRACIONES O FIGURAS ................................................................... 12
Capítulo
1. ESTIMACIÓN DE PRECIPITACIÓN PLUVIAL A PARTIR DE IMÁGENES
DE SATÉLITE ........................................................................................................... 15
1.1 DEFINICIÓN DEL PROBLEMA. ......................................................................... 15
1.2 MOTIVACIÓN ..................................................................................................... 18
1.3 OBJETIVO .......................................................................................................... 19
1.4 TRABAJOS RELACIONADOS ............................................................................ 20
2. REDES NEURONALES ARTIFICIALES ................................................................... 23
2.1 INTRODUCCIÓN ................................................................................................ 23
2.2 RED MUL TICAPAS DE ALIMENTACIÓN HACIA DELANTE ............................. 25
2.2.1 OPERACIÓN DE LA RED ................................................................ 25
2.2.2 ALGORITMO DE ENTRENAMIENTO DE RETROPROPAGACIÓN
DEL ERROR .............................................................................................. 29
2.3 MAPA AUTO ORGANIZAD0 ............................................................................. 32
2.3.1 OPERACIÓN DE LA RED ................................................................ 33
2.3.2 ALGORITMO DE ENTRENAMIENTO DE APRENDIZAJE
COMPETITIV0 .......................................................................................... 34
2.4 RED DE PROPAGACIÓN DE CONTE0 ............................................................ 36
2.4.1 OPERACIÓN DE LA RED ................................................................ 37
2.4.2 ALGORITMO DE ENTRENAMIENTO DE PROPAGACIÓN DE
CONTE0 ................................................................................................... 38
2.5 CONSIDERACIONES SOBRE EL APRENDIZAJE DE LAS REDES
NEURONALES .................................................................................................... 38
2.6 DISCUSIÓN .................................................................................................. 39
3. MODELOS PROPUESTOS ..................................................................................... .43
8
3.1 RED DE PROPAGACIÓN DE CONTEO MODIFICADA ..................................... .43
3.1.1 VALOR DE SALIDA EN FUNCIÓN DE LA DISTANCIA. ................. .43
3.1.2 ENTRENAMIENTO DE LA RED ..................................................... .46
3.2 RED DE PROPAGACIÓN DE CONTEO CON INTERPOLACIÓN
LINEAL ...................................................................................................................... 46
3.2.1 INTERPOLACIÓN LINEAL. ............................................................. .46
3.2.2 ENTRENAMIENTO DE LA RED ..................................................... .48
3.3VALIDACIÓN DE LOS MODELOS PROPUESTOS ........................................... .49
3.3.1 ENTRENAMIENTO DE LA PRIMERA CAPA. ................................. .49
3.3.2 VALIDACIÓN CON UNA FUNCIÓN DE MUESTRE0 ...................... 54
3.3.2.1 CASO 1: VALIDACIÓN DE LA RED CON VALOR DE
SALIDA EN FUNCIÓN DE LA DISTANCIA. ................................... 54
3.3.2.2 CASO 11: VALIDACIÓN DE LA RED CON SALIDA DE
INTERPOLACIÓN DE LINEAL. ...................................................... 59
3.4 DISCUSIÓN ......................................................................................................... 62
4. ESTIMACIÓN DE PRECIPITACIÓN PLUVIAL PARA FRECUENCIA
HORARIA .................................................................................................................. 65
4.1 DATOS DE ENTRADA Y SALIDA ....................................................................... 65
4.2 CALIBRACIÓN DE LOS MODELOS .................................................................... 67
4.3 SELECCIÓN DE LOS PARÁMETROS DE ENTRENAMIENT0 .......................... 69
4.3.1 DETERMINACIÓN DEL NÚMERO DE ITERACIONES REQUERIDAS
PARA REDUCIR LA VECINDAD DE LA CAPA DE KOHONEN PARA EL
MODELO DE RED CON SALIDA EN FUNCIÓN DE LA
DISTANCIA ................................................................................................ 70
4.3.2DETERMINACIÓN DEL NÚMERO DE ITERACIONES REQUERIDAS
PARA REDUCIR LA VECINDAD DE LA CAPA DE KOHONEN PARA EL
MODELO DE RED CON SALIDA DE INTERPOLACIÓN ......................... 70
4.4ESTIMACIÓN DE PRECIPITACIÓN PLUVIAL EN PERÍODOS DE UNA
HORA ........................................................................................................................ 72
4.4.1 CASO 1: RED CON VALOR DE SALIDA EN FUNCIÓN DE LA
DISTANCIA ............................................................................................... 72
9
4.4.2 CASO 11: RED CON VALOR DE SALIDA DE INTERPOLACIÓ
LINEAL ....................................................................................... 78
4.5 DISCUSIÓN ......................................................................................................... 83
5. CONCLUSIONES ...................................................................................................... 86
5.1 CONCLUSIONES ................................................................................................ 86
5.2SUGERENCIAS PARA FUTUROS TRABAJOS .................................................. 88
ANEXOS
A. EXTRACCIÓN DE LA INFORMACIÓN DE LAS IMÁGENES
DE SATELITE ...................................................................................................... 90
B. DISEÑO DE CLASES .......................................................................................... 94
BIBLIOGRAFÍA ............................................................................................................. 109
10
ÍNDICE DE TABLAS
Tabla Página
3.1 Resultados de la Red con salida en función de la distancia ..................................... 58
3.2 Resultados de la Red con salida de interpolación lineal .......................................... 62
4.1 Respuesta de la red con salida en función a la distancia al
conjunto de entrenamiento ....................................................................................... 73
4.2 Respuesta de la red con salida en función a la distancia utilizando
al conjunto de validación .......................................................................................... 74
4.3 Respuesta de la red con salida de interpolación lineal al conjunto de
entrenamiento .......................................................................................................... 79
4.4 Respuesta de la red con salida de interpolación lineal
utilizando el conjunto de validación ................................................................. ....... 79
11
ÍNDICE DE ILUSTRACIONES O FIGURAS
Ilustración Página
1.1 Ubicación de las siete estaciones climatológicas ...................................................... 16
1.2 Imagen de todo México en la banda 2 ...................................................................... 17
1.3 Imagen del Noroeste de México en la banda 5 ........................................................ 17
2.1 Elementos de una neurona biológica ....................................................................... 24
2.2 Red de propagación hacia delante de tres capas .................................................... 25
2.3 Diagrama de una unidad .......................................................................................... 26
2.4 Función sigmoidal logística ....................................................................................... 27
2.5 Función tangente hiperbólica ................................................................................... 28
2.6 Mapa auto organizado .............................................................................................. 33
2.7 Función sombrero mexicano .................................................................................... 35
2.8 Función sombrero del cocinero ................................................................................ 35
2.9 Red de propagación de conteo ................................................................................ 36
2.1 O Generalización ........................................................................................................ 39
2.11 Tabla de búsqueda ................................................................................................ .41
3.1 Red de propagación de conteo con una salida ....................................................... .44
3.2 Red de propagación de conteo con interpolación lineal.. ........................................ .4 7
3.3 Salida de la red de interpolación ............................................................................. .48
3.4 Patrón de entrada para entrenamiento en dos dimensiones .................................... 50
3.5 Valores iniciales de los pesos de la capa Kohonen del mapa autoorganizado ........ 50
3.6 Valores de los pesos ( w1 , w2 ) después de 3000 iteraciones .................................... 51
3.7 Valores de los pesos ( w1, w2 ) después de 6000 iteraciones .................................... 51
3.8 Organización inicial en el caso de dos dimensiones ................................................ 52
3.9 Organización después de 2500 iteraciones .............................................................. 53
3.1 O Organización de los pesos después de 5000 ciclos ............................................... 53
3.11 Función sombrero mexicano ............................................................... -................... 55
3.12 Resultados al utilizar la red de 8x8 unidades ......................................................... 56
3.13 Resultados con una red de 15x15 unidades .......................................................... 56
3.14 Resultados con una red de 21x21 unidades .......................................................... 57
12
3.15 Resultados con una red de 30x30 unidades .......................................................... 57
3.16 Resultados de la red con interpolación lineal con 8x8 unidades ............................ 60
3.17 Resultados de la red con interpolación lineal con 15x15 unidades ........................ 60
3.18 Resultados de la red con interpolación lineal con 21x21 unidades ........................ 61
3.19 Resultados de la red con interpolación lineal con 30x30 unidades ........................ 61
4.1 Datos de entrada del modelo ................................................................................... 66
4.2 Determinación del número de iteraciones para reducir la vecindad
en el modelo en función a la distancia ..................................................................... 71
4.3 Determinación del número de iteraciones para reducir la vecindad
en el modelo de salida de interpolación .................................................................. 72
4.4 Factor correlación en función del número de unidades por lado en
la capa de Kohonen de la red con salida en función a la distancia .......................... 74
4.5 Gráfica de Erms en función del número de unidades por lado de
la capa de Kohonen de la red en función a la distancia ........................................... 76
4.6 Estimación de la precipitación pluvial de la red con salida en función
a la distancia ............................................................................................................. 76
4. 7 Gráfica desde el evento de precipitación pluvial 277 al 377 caso l. ......................... 77
4.8 Factor correlación en función del número de unidades por lado
en la capa de Kohonen de la red con salida de interpolación lineal. ......... ............... 80
4.9 Gráfica de Erms en función del número de unidades por lado
de la capa de Kohonen para la red con salida de interpolación lineal. ..................... 81
4.1 O Estimación de la precipitación pluvial de la red con salida
de interpolación lineal. ............................................................................................ 82
4.11 Gráfica desde el evento de precipitación pluvial 277 al 377 caso 11. ...................... 83
A.1 Imagen infrarroja del noroeste de México ....... ......................................................... 91
A.2 Imagen con nubes en Sinaloa, Durango y en la parte sur de Baja California Sur. .. 92
A.3 Imagen de un huracán aproximándose a península de Baja California Sur ............ 93
B.1 La clase GROSS_Node .............................................................................. 94
B.2 Operación Run de la clase GROSS_Node ....................................... .. ............ 95
B.3 Operación Learn de la clase GROSS_Node ................................................... 95
B.4 La clase COUNTER_Network ...................................................................... 96
B.5 Constructores y destructor de la clase COUNTER_Network ............................... 97
13
B.6 Operaciones Set_Output y Get_Output. ........................................................ 98
B.7 Operaciones Run_total, Learn_gross y Get_Output_Count. .............................. 98
B.8 Clase CONTMD_Link ................................................................................. 99
B.9 Constructor de la clase CONTMD_Link ................................................................... 99
B.1 O Clase KOH Nade ................................................................................................... 99
B.11 Constructores de la clase KOH Nade ................................................................. 100
B.12 Clase CONTMDI_Node ........................................................................................ 100
B.13 Constructor de la clase CONTMDI Nade ............................................................ 100
B.14 Operación Run de la clase CONTMDI_Node ....................................................... 101
B.15 Operación Learn de la clase CONTMDI_Node .................................................... 102
B.16 Clase CONTMDI Network ........................................................................ 102
B.17 Operación Create_Network .................................................................................. 103
B.18 Constructores de la clase CONTMDI_Network .................................................... 104
B.19 Operación Run_total. ........................................................................................... 105
B.20 Operaciones Learn_gross, Actual y Marca .......................................................... 106
B.21 Segmento de programa que utiliza la clase CONTMDI_Network ........................ 107
B.22 Diagrama de las clases para modelos propuestos .............................................. 108
14
l. ESTIMACIÓN DE PRECIPITACIÓN PLUVIAL A PARTIR DE
IMÁGENESDESATtLITE
1.1 DEFINICIÓN DEL PROBLEMA
Este proyecto surgió en la Dirección de Investigación y Estudios de Postgrado del
Instituto Tecnológico de Sonora; específicamente, en el área de Recursos Hidráulicos, y
forma parte de un proyecto mayor que busca integrar un sistema de información
geográfica para el noroeste de México.
Actualmente, se cuenta con un Centro de Percepción Remota (CPR), el cual fue
desarrollado con personal del instituto y en colaboración con investigadores de la
Comunidad Económica Europea. Dicho centro pone a disposición de los interesados las
imágenes de los satélites de los proyectos GOES (Satélite ambiental de órbita
geoestacionaria), así como información de una red de estaciones terrenas distribuidas
en los valles del Yaqui y Mayo, las cuales pueden accederse desde la página oficial de
Internet del instituto (http://www.itson.mx).
Un sistema de información geográfica requiere interpretar la información de la que
se dispone, y por medio de modelos generar nuevos parámetros. Tal es el caso de la
precipitación, cuya distribución espacial y temporal precisa, se requiere para una
adecuada planeación de los recursos hidráulicos.
En el Centro de Percepción Remota (CPR) del Instituto Tecnológico de Sonora
(ITSON), se reciben y procesan datos meteorológicos provenientes de sus
15
estaciones climatológicas, así como imágenes de los satélites meteorológicos de
operación geoestacionaria (GOES), con el propósito de estudiar y dar seguimiento a
fenómenos hidroclimatológicos.
Los datos climatológicos y las imágenes de satélite, recibidas y procesadas en el
CPR, se utilizan en proyectos de investigación que el ITSON desarrolla conjuntamente
con otras Instituciones, entre las que se encuentran: el Instituto de Hidrología del Reino
Unido, la Universidad Agrícola de Wageningen en Holanda y el Instituto de Medio
Ambiente y el Desarrollo Sustentable del Estado de Sonora en México.
En el Valle del Yaqui, Sonora, se cuenta con estaciones climatológicas
automatizadas localizadas en sitios estratégicos. En cada estación, se miden las
siguientes variables: temperatura del aire, humedad relativa, velocidad y dirección del
viento, precipitación, radiación solar, temperatura y flujo de calor del suelo, las cuales se
reportan como promedios cada hora. La ubicación de las estaciones se muestra en la
figura 1.1, éstas son: Ita, Ciano, ITSON 1, ITSON 2, Cemay, Sahuaral y Huatabampo.
Fig. 1.1 Ubicación de las siete estaciones climatológicas
Actualmente, se reciben imágenes del satélite GOES-1 O cada media hora, que
provienen de un área que comprende gran parte de México y el sur de Estados Unidos.
Estos satélites proporcionan cinco imágenes digitales en diferentes rangos de longitud
de onda. Una de éstas, se emplea para cubrir toda el área de México (banda
2). Esta imagen se encuentra en el rango de espectro infrarrojo (longitud de onda
16
de 3800 a 4000 nm); cada pixel abarca un área de 16 km2 (4x4) y permite la
observación de nubes por la noche. La imagen se muestra en la figura 1.2 .
. ···~~ -~
INSTITUTO TECNOLOGICO DE SOHORR CENTRO DE PERCEPCION REttOTA 26/ 4/2000 3: O Gttl < UT>
..... ,, ···-···• . .
Fig.1.2 Imagen de todo México en la banda 2
.:.-.. ... · A'!:··· . ~-:
Las imágenes de las bandas 1, 3, 4 y 5 comprenden únicamente el Noroeste de
México y el sur de Estados Unidos. Un ejemplo de ellas se ve en al figura 1.3.
Las imágenes de la Banda 1 se encuentran en el espectro visible y las restantes en
el infrarrojo, sólo que a diferentes longitudes de onda.
Como resultado del procesamiento de las imágenes; se cuenta con productos tales
como un mapa de temperaturas del Noroeste de México y Sur de Estados Unidos, así
como la estimación de nubosidad y radiación solar.
Fig.1.3 Imagen del Noroeste de México en la banda 5
17
Si bien es cierto que se dispone de información de precipitación de siete estaciones,
también lo es que, sólo dos de ellas captan datos cada hora, las otras miden el
acumulado por día; de tal manera, que los puntos de medición son insuficientes para
estimar la precipitación promedio por hora de los Valles del Yaqui y Mayo. Esto se debe
a que la distribución de la lluvia puede ser muy variable y puede no ser detectada entre
dos estaciones; sobre todo, en el período de verano. Debido a lo anterior, se requiere
de una red de estaciones terrenas más densamente distribuidas en todo el estado, lo
cual resultaría muy costoso.
Una alternativa para estimar la precipitación pluvial, ha sido la utilización de
imágenes satelitales tanto en el espectro visible como en el infrarrojo, utilizando
técnicas como la del índice de precipitación GOES [Arkin; Meisner, 1987], la cual asume
que si la parte superior de una nube está a una temperatura menor de 235 ºK entonces
debe de estar precipitando. Otros métodos consideran la duración de la nube, además
de la temperatura [Griffith et al, 1978].
Más recientemente, se han propuesto técnicas que se basan en modelos de redes
neuronales. Tal es el caso del sistema PERSIANN, desarrollado en la Universidad de
Arizona [Hsu et al, 1997b], el cual utiliza un modelo híbrido de redes neuronales (una
capa utiliza aprendizaje no supervisado y la otra utiliza aprendizaje supervisado) y
muestra un desempeño superior al del índice de precipitación GOES.
Independientemente de la técnica utilizada, la mayoría de éstas se basan en la
suposición de que una nube que tiene una temperatura por debajo de cierto valor en su
parte superior, es indicativo de precipitación.
Por otro lado, muchos de los sistemas descansan en mediciones de radares para
calibrar los modelos, o al menos en redes de estaciones meteorológicas densamente
distribuidas. Este no es el caso de la región al noroeste de México, donde no se
dispone de una red de estaciones meteorológicas en dimensiones apropiadas, ni de
radares meteorológicos, lo que dificulta el proceso de aprendizaje.
1.2 MOTIVACIÓN
Desde de su aparición, las redes neuronales artificiales provocaron un
18
gran entusiasmo en la comunidad científica, el cual fue sofocado por el ensayo clásico
sobre las limitaciones del aprendizaje del perceptrón [Minsky; Papert, 1988]. No fue
hasta que se desarrolló el algoritmo de retropropagación del error [Rummelhart;
McCleland, 1986], que el interés en el área resurgió.
A la fecha, las redes neuronales han sido utilizadas para resolver una gran cantidad
de problemas en muy diversas áreas como el control de mecanismos, reconocimiento
de voz, reconocimiento de caracteres, predicción de clima, aproximación de funciones
entre otros, e incluso para estimar la precipitación pluvial, el cual es el tema de este
trabajo de tesis.
Si bien es cierto que las redes neuronales artificiales son muy versátiles, la
estimación de la precipitación pluvial a partir de información de sensores remotos no es
un problema sencillo, ya que es necesario establecer el modelo adecuado, preprocesar
los datos, además de que se cuenta con pocas estaciones terrenas para entrenar a la
red.
1.30BJETIVO
En este trabajo, se pretende utilizar el máximo nivel de resolución de la imagen
infrarroja del satélite GOES (lo que no se ha realizado en otros trabajos previos), para
estimar la precipitación pluvial en períodos de una hora.
La estimación se realizará con dos modelos de redes neuronales; la evaluación de
desempeño de éstos considerará factores de correlación y de error, utilizando para ello
información de estaciones terrenas, ubicadas en dos lugares distintos, pero durante el
mismo período.
Como hipótesis central de este trabajo se tiene que si los modelos a evaluar son
desarrollados utilizando una arquitectura del tipo híbrido, se podrá lograr una reducción
del tiempo de entrenamiento. Además se podrá utilizar la información sin tener que
filtrarla, cosa que no sucede en las investigaciones desarrolladas sobre el tema, a fin de
evitar información irrelevante y así reducir el tiempo de entrenamiento [Hsu et al,
1997a].
Se espera que el modelo pueda ser
precipitación pluvial, considerando que en las
calibrado utilizando pocos eventos de
regiones de los Valles del Yaqui y
19
Mayo la frecuencia de lluvia no es tan intensa, como sucede en regiones tropicales.
Con base en lo anterior, se concluye que el objetivo formal de esta investigación es
desarrollar un modelo de redes neuronales capaz de estimar la precipitación pluvial en
intervalos de una hora a partir de imágenes infrarrojas del satélite GOES.
Con un preprocesamiento limitado de la información y utilizando la información de
estaciones terrenas de los Valles del Yaqui y Mayo.
1.4 TRABAJOS RELACIONADOS
Un satélite meteorológico puede proveer tres tipos de imágenes: visibles, infrarrojas
y microondas. Dichas imágenes están relacionadas con el tipo de sensor utilizado; las
aplicaciones de cada una de ellas son distintas.
Por un lado las imágenes visibles dan información sobre la brillantez de las nubes, a
partir de la cual se puede determinar el tipo de éstas.
La limitante de dichas imágenes es el hecho de que requieren de la luz de sol; no
así las imágenes infrarrojas, de las cuales es posible obtener la temperatura de los
objetos sobre la tierra incluidas las nubes.
Las imágenes de microondas atraviesan las nubes y detectan campos de lluvia; el
problema con ellas es que los satélites que utilizan estos sensores son de órbita polar
(baja altura), los cuales son de baja frecuencia temporal lo que los hace poco útiles
para estimar lluvia [lbarra, 1994].
Considerando que por un lado, la imagen visible únicamente puede aprovecharse
durante el día y que la de microondas se obtiene de satélites polares. Además de que
por otro lado, sólo se dispone de imágenes del satélite GOES (visibles e infrarrojas), se
puede concluir que la imagen infrarroja es las más adecuada para estimar la
precipitación pluvial para las 24 horas del día.
A partir de la década de los sesenta se han desarrollado técnicas para estimar la
precipitación utilizando imágenes recolectadas por Satélites Ambientales de Operación
Geoestacionaria (GOES). Estas técnicas han tratado de correlacionar la temperatura de
brillantez en la parte superior de las nubes con la cantidad de lluvia [Hsu et al, 1997a].
Una de las técnicas, es la desarrollada por Arkin (1987), la cual asigna
arbitrariamente 3mm/hr a cada pixel de una imagen infrarroja que detecte una
•• r • -1 I , i , . 20
temperatura inferior a 235 ºK.
El método de Arkin mostró buenos resultados para períodos mensuales y en áreas
de 2.5ºx 2.5º [Arkin; Meisner, 1987].
Otra técnica, la de Griffit-Woodley, utiliza, además de las imágenes de satélite, la
información de radares meteorológicos para calcular el área de cobertura de una nube
durante su vida y la relaciona con la temperatura de brillantez con el propósito de
estimar la cantidad de lluvia [Hsu et al, 1997a].
En años más recientes, se han utilizado redes neuronales para estimar la
precipitación pluvial [Hsu et al, 1998][Hsu et al, 1999). Un producto de estas
investigaciones es el sistema PERSIANN, desarrollado en la universidad de Arizona.
Dicho sistema, además de estimar la lluvia, realiza predicciones por hora utilizando un
modelo de red neuronal de propagación de conteo modificada, a partir de imágenes
satelitales en la banda infrarroja; la red neuronal es calibrada con información de una
red de radares meteorológicos (NEXRAD)[Hsu et al, 1997b].
Además de la estimación de lluvia, también se han utilizado las redes neuronales
para modelar el proceso de escurrimiento de lluvia en ríos [Hsu et al, 1995][Hsu et al,
1997c], para estimar evaporación de agua diaria [Han; Felker, 1997), y para simular
salinidad, temperatura y oxígeno disuelto en ríos [Conrads; Roehl, 1999].
El interés científico en la estimación de lluvia se debe al hecho de que el agua juega
un papel vital para la humanidad y nuestra principal fuente de abastecimiento sigue
siendo los ríos que desembocan en presas, las cuales dependen de la lluvia para
aumentar su volumen.
Por tal motivo, el fenómeno de la lluvia sigue siendo estudiado; por un lado, los
hidrólogos buscan conocer las propiedades, existencia, distribución y movimiento del
agua sobre y debajo de la superficie terrestre y por el otro lado, los meteorólogos
intentan determinar la probabilidad, magnitud y extensión de la lluvia [Kazmann, 197 4).
La región noroeste de México es una zona eminentemente agrícola y ganadera, con
una superficie de aproximadamente 1,300,000 hectáreas bajo riego donde se cultivan
granos, algodón y algunos cultivos hortícolas; para producir éstos, se requieren
volúmenes considerables de agua que son producto de las precipitaciones que se
generan a lo largo del año [!barra, 1994].
En la actualidad, las regiones de Guaymas y Hermosillo sufren
21
escasez de agua, incluso para uso doméstico, por lo que han tenido que importar agua
de regiones cercanas.
Debido a esto, recientemente se aprobó por el Congreso del Estado de Sonora un
proyecto para desalinizar el agua de mar, de tal forma que pueda abastecerse a la
ciudad de Hermosillo.
En la región del Valle del Yaqui, la Comisión Nacional del Agua ha limitado a un ciclo
los cultivos durante el año por las mismas razones. Sin embargo, se ve que en Sinaloa
han ocurrido inundaciones: como sucedió a finales de 1991, en la que se perdió más de
la mitad de la superficie sembrada, con daños estimados de alrededor de 21 O millones
de dólares [lbarra, 1994]. En consecuencia, resulta necesario desarrollar sistemas de
información que permitan estimar de manera confiable la cantidad de lluvia que
precipita en el noroeste de México, para poder planear y administrar de manera
adecuada los recursos hidráulicos de la región.
Este documento está organizado como sigue:
El capítulo 1 describe el problema de la estimación de precipitación pluvial.
El capítulo 2 es una introducción al tema de las redes neuronales artificiales.
En el capítulo 3 se proponen dos modelos variantes de la red de propagación de
conteo y se validan con una función del tipo sombrero mexicano.
En el capítulo 4 se estima la precipitación pluvial con los dos modelos propuestos.
El último capítulo son las conclusiones de este proyecto, así como las
recomendaciones para futuros trabajos.
El anexo A, describe el preprocesamiento de la información de las imágenes de
satélite.
El anexo B, describe las clases desarrolladas así como la utilización de éstas.
22
2. REDES NEURONALES ARTIFICIALES
2.1 INTRODUCCIÓN
El cerebro humano está formado primordialmente por tejidos, los cuales a su vez se
forman con células llamadas neuronas. El cerebro humano procesa información
compleja no lineal y lo hace en forma paralela, apoyado por las neuronas y las
conexiones existentes entre éstas.
La figura 2.1 muestra una neurona biológica [Stevens, 1979]. El cuerpo de la célula,
las dendritas (entradas), el axon (salida). El cuerpo de la célula o soma, contiene al
núcleo de la célula, que provee las funciones de soporte y estructura de ésta. Las
dendritas, son los elementos que reciben las señales de otras células. Al recibir una
señal de otra célula; la señal se transfiere al núcleo, que a su vez la transfiere por el
axon hacia otras células.
La recepción de las señales entre células, se realiza a través de las conexiones
llamadas sinapsis.
Con base a lo anterior, muchos científicos han tratado de desarrollar máquinas o
algoritmos que emulen la capacidad del cerebro, para procesar información; ejemplo de
ello son las redes neuronales artificiales.
¿ Qué es una red neuronal?, para responder a esta pregunta usaremos la definición
de Haykin, quién la define de la siguiente forma:
Una red neuronal es un procesador distribuido, masivamente paralelo, que tiene una propensión natural para almacenar conocimiento de experiencias y hacerlo accesible para su uso; ésta presenta dos similitudes con el cerebro:
23
1. El conocimiento es adquirido en un proceso de aprendizaje. 2. Las fuerzas de conexión entre neuronas conocidas como pesos
sinápticos, son utilizadas para almacenar el conocimiento [Haykin, 1994].
sinapsis
cuerpo de la célula
axon
núcleo de la célula . ./
smaps1
---- dendritas
Fig. 2.1 Elementos de una neurona biológica
En sus inicios, las redes neuronales despertaron una gran euforia en la comunidad
científica, sobre todo por el desarrollo del perceptrón, la máquina de aprendizaje más
simple. Sin embargo, a finales de los años sesenta, con la publicación de Marvin L.
Minsky en la que mostraba las limitaciones del perceptrón para aproximar la función
XOR entre otros [Minsky; Papert, 1988].
Gran parte de la comunidad científica que investigaba en el tema de las redes
neuronales se desalentó y sólo algunos siguieron trabajando. Fue hasta 1985, que el
grupo de investigación de la POP (Procesamiento Distribuido Paralelo), entre los que se
encontraban David E. Rummelhart y James L. McClelland, publicaron sobre el
algoritmo de aprendizaje de repropagación del error [Rummelhart; McClelland, 1986].
Aunque otros antes ya habían publicado al respecto, es en esta publicación donde
criticaron fuertemente a Minsky y mostraron bajo qué condiciones es posible resolver
muchos de los problemas que con el perceptrón se consideraban imposibles de
resolver. A partir de entonces, la comunidad científica volvió a interesarse en el tema.
24
2.2 RED MUL TICAPAS DE ALIMENCIÓN HACIA DELANTE
La red multicapas de alimentación hacia delante es una de las arquitecturas más
populares dentro del área de las redes neuronales, debido a su capacidad de
aproximar funciones y a su simplicidad.
2.2.1 OPERACIÓN DE LA RED
La figura 2.2 muestra una red neuronal de alimentación hacia delante. En la parte
inferior se muestra donde se aplican los patrones de entrada, los cuales pueden ser
valores continuos o bien, valores discretos.
La flecha indica el sentido en que fluye la información. Los círculos son llamados
unidades y a cada fila de éstos se le denomina como capa. A la primera de éstas se le
llama capa de entrada y a la última se le conoce como capa de salida.
Las capas intermedias son denominadas capas ocultas; la red de la figura 2.2 sólo
tiene una capa oculta, pero existe la posibilidad de tener más de éstas. Las conexiones
entre unidades tienen asociado un valor llamado peso.
Flujo de la informació
Salidas
Peso Unidad
Capa oculta
Fig. 2.2 Red de alimentación hacia delante de tres capas
25
Unidad J
Flujo de la información
Fig. 2.3 Diagrama de una unidad
La figura 2.3 muestra el diagrama de una de las unidades de una red, como la que
se mostró en la figura 2.2.
La unidad J recibe un grupo de yk señales multiplicadas por un peso w k, }
posteriormente se suman y aplican a una función, como se describe en las ecuaciones
2.1 y 2.2, donde y 1
es la salida . El parámetro n indica el número de iteración y z1
la
salida obtenida al multiplicarse las entradas por el peso de las conexiones.
z 1
( n ) = ¿ k w ¡k ( n ) y k ( n ) ( 2.1 )
y1(n) = f(z/n)) ( 2.2 )
La función f(z1 (n))dentro de la expresión 2.2, es denominada función de activación,
es común utilizar una función del tipo sigmoidal, la cuál es continua y derivable.
Ejemplo de éstas son: la función sigmoidal logística y la tangente hiperbólica.
26
La salida de la función de activación se comunica a las unidades de las siguientes
capas por medio de conexiones sinápticas. De la misma manera, las ecuaciones 2.1 y
2.2 describen el comportamiento de estas unidades.
La función sigmoidal logística se define en la ecuación 2.3 y es la más utilizada; en
la figura 2.4 se muestra la gráfica de dicha función, se observa que es asintótica en el
intervalo (0, 1 ), lo que evita que la salida de cada neurona sobrepase el valor de la
unidad o presente un valor de salida negativo. El trazo es suave, lo que permite que la
función sea derivable; es posible modificar la pendiente de la curva si agrega un
término constante que multiplique al término z.
1 f(z) =
1 _.
+ e .
El término z de la expresión 2.3, es el resultado de la expresión 2.1.
o 9
o • -o 7 -o 6 -o 5
o • o 3
o 2
o , o .5 _, .3 ·2 -1
/ /
/
Fig. 2.4 Función sigmoidal logística
( 2.3)
La función tangente hiperbólica permite tener valores de salida tanto positivos como
negativos. Además, posee las mismas propiedades que la función sigmoidal logística.
La ecuación 2.4 la define y la gráfica se muestra en la figura 2.5.
f(z) = 1-e:: 1 + e ·
( 2.4)
27
Fig. 2.5 Función tangente hiperbólica
Las redes neuronales artificiales, adquieren el conocimiento en un proceso de
aprendizaje. Éste puede definirse así:
El aprendizaje es un proceso, por el cual los parámetros libres de una red neuronal artificial son adaptados, a través de un proceso continuo de simulación del ambiente en el que la red es inmersa. El tipo de aprendizaje es determinado por la forma en el que los parámetros cambian [Haykin, 1994].
Los parámetros libres de una red neuronal artificial, por lo general corresponden a
los pesos de la red.
El aprendizaje en su nivel fundamental, puede dividirse en tres categorías:
supervisado, reforzado o con reforzamiento y auto organizado (no supervisado). El
proceso a través del cual se realiza el aprendizaje se denomina entrenamiento.
El aprendizaje supervisado necesita de un conjunto de entrenamiento, que contiene
un conjunto de datos con entradas y salidas deseadas. Al aplicar una entrada, la red la
procesa y genera una salida, ésta es comparada con la salida deseada; si existe un
error, los pesos de la red se reajustan para reducirlo.
Al proceso de aplicar entradas a la red neuronal y observar la respuesta de ésta,
para posteriormente ajustar los pesos, se le denomina paso de entrenamiento.
El aprendizaje reforzado es similar al supervisado, sólo que en vez de utilizar una
salida correcta, para ajustar pesos en cada paso de entrenamiento; la red recibe una
calificación de un índice escalar llamado señal de reforzamiento, que le dice que tan
bien lo ha hecho sobre una secuencia múltiple de pasos de entrenamiento.
28
El aprendizaje auto organizado, en respuesta a una entrada reajusta sus pesos y no
requiere de salida deseada.
Si una red neuronal artificial utiliza aprendizaje supervisado y no supervisado, se
dice que el del tipo híbrido.
2.2.2 ALGORITMO DE ENTRENAMIENTO DE RETROPROPAGACIÓN DEL ERROR
El aprendizaje en las redes alimentación hacia delante es del tipo supervisado. El
algoritmo lleva el nombre de retropropagación del error y lo desarrollaron Rumelhart y
McClelland (1986).
La señal de error en la salida de la neurona j ( considerando que se encuentra en al
capa de salida, ver figura 2.2) cuando se le aplica el n-ésimo patrón, se obtiene
utilizando la ecuación 2.5, el error e1
, siendo Y, la salida real y d1
la salida deseada.
e;Cn) = d/n)- y/n) ( 2.5)
El problema con la expresión 2.5, es el hecho de no se conoce la salida deseada
para la unidad J cuando ésta no está en la salida. De hecho, la idea del algoritmo es
calcular el error propagándolo desde la salida de la red hacia las capas ocultas. Una
vez obtenido dicho valor, se pueden ajustar los pesos de las conexiones, con el
propósito de reducir el error de la red.
De acuerdo a lo anterior, la idea de Rumelhart parte de reducir la suma de errores
cuadráticos en la capa de salida, como se describe en la expresión 2.6.
1, 2 E(n) = - L..e/n)
2 JEC
( 2.6)
Donde e es el conjunto que incluye a todos las unidades de la capa de salida; esto
se debe a que son las únicas unidades visibles ( cuyos valores de salida se conocen).
A partir de lo anterior se trata de minimizar la suma de errores cuadráticos E, en
función de los valores de los pesos w1k, tal como se calcula en 2.7 al utilizarse la regla
de la cadena.
29
8E(n) 8E(n) 8e1(n) 8y¡(n) 8z;(n) = ( 2.7)
El primer término de la expresión se obtiene derivando la ecuación 2.6.
8E(n) = e (n) ae}(n) J
( 2.8)
El segundo término se deriva de la ecuación 2.5.
( 2.9)
El siguiente término se obtiene de la ecuación 2.2.
By;(n) = f'(z (n)) az ;(n) J
( 2.1 O )
El último término se deriva de la ecuación 2.1.
( 2.11 )
Por lo tanto la expresión 2.7 queda de la siguiente forma.
( 2.12 )
30
Donde e¡(n) es el error en la unidad de salida J, f'(z¡{n))es la derivada de la
función de activación de dicha unidad e yk (n) es la salida de la unidad k de la capa
anterior, que a su vez es la entrada a la unidad J.
La corrección de los pesos se define por la llamada Regla Delta, mostrada en la
ecuación 2.13, donde r¡ es el parámetro llamado factor de aprendizaje y oE(n) es la ow,k (n)
derivada parcial del error cuadrático de salida de la red con respecto a un peso.
L'iw (n) = _ BE(n) ;k r¡ ow ;k ( n)
( 2.13 )
Al sustituir 2.12 en la ecuación anterior se tiene.
L'iw ;k (n) = r¡e 1 (n)f'(z
1 (n ))y k (n) ( 2.14)
A e/n)f'(z1(n)), se le conoce como el gradiente local y se describe así.
( 2.15 )
De las ecuaciones 2.14 y 2.15, se obtiene la expresión para el ajuste del peso w,k.
L'iw,k (n) = r¡81 (n)yk (n) ( 2.16 )
Cuando la unidad J es de la capa de salida, este valor se puede calcular ya que el
gradiente local se obtiene al multiplicar el error en la salida por la derivada de la función
de activación; que para el caso de la sigmoidal logística se define en 2.17. Otras
funciones, como la tangente hiperbólica, se pueden consultar en Hertz [Hertz et al,
1991).
31
f'(z/n)) = y/n)(l- y/n)) ( 2.17 )
Ahora bien, si la unidad j se encuentra en una capa oculta, el gradiente de éstas se
obtiene al propagar los gradientes desde la salida hacia la entrada como se define en la
expresión 2.18.
( 2.18 )
Uno de los problemas de este tipo de redes consiste, en que pueden consumir
demasiado tiempo en su entrenamiento y una forma de acelerarlo es aumentar el valor
del factor de aprendizaje 7J; esto permite grandes ajustes en lo pesos, pero con la
posibilidad de provocar un proceso de ajuste inestable (grandes oscilaciones). Por tal
razón, se recomienda utilizar un factor 7J pequeño para suavizar el ajuste o bien
modificar la Regla Delta agregándole un término de impulso que aumente la velocidad
de convergencia y reduzca las oscilaciones a un mínimo; la expresión 2.19 se refiere a
la Regla Delta, donde a es el impulso (momentum) y ~w1k (n -1) es al ajuste del peso
en el paso de entrenamiento anterior.
( 2.19 )
A pesar de la mejora que produce agregar el término de impulso, la red puede
llegar a un mínimo local, o bien, tener problemas para aprender ciertos patrones.
Existen otras formas para disminuir esos efectos, los cuales pueden consultarse en
Haykin (1994).
2.3 MAPA AUTO ORGANIZADO
Teuvo Kohonen desarrolló el mapa auto organizado. En dicha red se considera muy
importante el orden espacial, como sucede con las funciones cerebrales. Esta red, a
diferencia de la de alimentación hacia delante, sólo tiene dos capas: una de entrada y
~, .,_
la otra en la salida. Ésta última es llamada capa competitiva. El aprendizaje de la red es
no supervisado [Kohonen, 1997].
2.3.1 OPERACIÓN DE LA RED
En la figura 2.6, se muestra un mapa auto organizado. La capa de salida puede ser
de una o dos dimensiones; los unidades de la entrada se conectan con todos los
unidades de la segunda capa, las conexiones tienen valores de peso w/1 (n).
Cuando se aplica un patrón de entrada a la red, se realiza una comparación con
cada uno de los pesos que conectan a cada una de las unidades de la capa de salida.
Aquella unidad que presente la distancia euclidiana menor en esta comparación es la
que se activa. En otras palabras, se dice que el patrón pertenece a la clase asociada a
esa unidad.
Capa competitiva
C) C)
C) C)
~'~ C) C) \0-~-1 C)
\
C)
C) C)
C)
Fig. 2.6 Mapa auto organizado
Capa de Entrada
33
2.3.2 ALGORITMO DE ENTRENAMIENTO DE APRENDIZAJE COMPETITIVO
Para iniciar el entrenamiento, es necesario asignar pesos w1
; (n) que conectan a las
unidades de entrada con las unidades de la segunda capa de manera aleatoria.
Posteriormente, se aplica un vector de entrada x = [x1 (n),x2 (n), .... ,x, (n), .... ,x"'Jn)] y
para cada unidad de salida J, se calcula la distancia euclidiana.
m
d/n) = ¿(x,(n)-w1,(n))2 j = 1, ........ ,m1 ( 2.20) 1=1
La unidad que obtiene la distancia menor es la ganadora y se le considera el centro
de la vecindad a partir de la cual se realizan los ajustes de los pesos de acuerdo a la
ecuación 2.21.
w1
, (n + 1) = w1
; (n) + a(n)(x, (n)- w1
, (n))h(n) i = l, ..... ,m0 ( 2.21 )
Donde a(n) es el factor de aprendizaje de la red, el cual es ajustado a medida que
transcurre el entrenamiento, como se define en la expresión 2.22; h(n) es una función
de vecindad, la cuál define que unidades serán ajustadas y cuáles permanecerán sin
cambio.
Dicha función va reduciendo su radio de acción a medida que se realizan más
iteraciones y se centra en la neurona ganadora en cada iteración. Las funciones
pueden ser del tipo sombrero mexicano o bien del cocinero, como se observa en las
figuras 2.7 y 2.8.
n a(n) = a 0 (1--)
T ( 2.22)
La expresión 2.22 define el ajuste del factor de aprendizaje a(n), donde a 0 es el
valor inicial del factor de aprendizaje, n es el número de iteración y T es el número
total de pasos de entrenamiento.
34
1 O
0.8
0.6
0.4
0.2
O.O
-0.2
-30 -20 -10 O 10 20 30
Fig. 2.7 Función sombrero mexicano
1 O
08
0.6
0.4
0.2
00
-0.2
·30 -20 -10 O 10 20 JO
Fig. 2.8 Función sombrero del cocinero
La función de vecindad se define en la ecuación 2.23. Así como en la ecuación
anterior, T indica el número máximo de pasos de entrenamiento.
n h(n) = h0 (1--)
T ( 2.23)
Algunos autores recomiendan que la vecindad inicial h0 comprenda a la mitad del
número de las unidades de la capa competitiva por dimensión [Rogers, 1997].
35
2.4 RED DE PROPAGACIÓN DE CONTEO
La red de propagación de conteo combina un mapa auto organizado y una capa
llamada de Grossberg. Debido a que el aprendizaje que dicha capa utiliza, fue
desarrollado por Stephen Grossberg [Hecht-Nielsen, 1991 ].
La figura 2.9 muestra una red de propagación de conteo. La capa de entrada utiliza
aprendizaje no supervisado y la de salida con aprendizaje reforzado, por lo que se
considera que utiliza aprendizaje híbrido.
, z,
Capa de
Grossberg
Capa de
Kohonen
Entradas
zm, Salidas
deseadas
Fig. 2.9 Red de propagación de conteo
La figura 2.9 muestra las salidas deseadas de la red. Dichas salidas se utilizan en
el proceso de aprendizaje, se observan las conexiones de los pesos entres las capas
36
La red funciona como una tabla de búsqueda adaptable [Hecht-Nielsen, 1991]; ya
que se aplica una entrada a la red, una de las unidades de la capa de Kohonen será la
ganadora y dicha unidad generará un resultado en la capa de salida. Valores de
entrada similares darán el mismo resultado.
Si se compara con las redes multicapas de alimentación hacia delante, esta red
requiere menos tiempo de entrenamiento, por lo que es más adecuada en aquellos
casos donde se cuenta con una gran cantidad de patrones de entrenamiento.
2.4.1 OPERACIÓN DE LA RED
La red recibe un patrón de entrada x = [x¡(n),x 2 (n), .... ,x,(n), .... ,xm/n)], el cual se
encuentra normalizado en el intervalo [0, 1] y activa a una de las unidades de la capa de
Kohonen y = [y1 (n),y 2 (n), .... ,y/n), .... ,y"..(n) ]. La salida de la unidad ganadora es uno y
todas los demás son cero. Posteriormente, la unidad ganadora de dicha capa activa a
todas las unidades de salida conectadas a ésta.
Las unidades de salida se definen como z' = [z;(n),z;(n), .... ,z:(n), .... ,z:, (n)], l
donde el resultado de cada una de éstas será el valor del peso de la conexión que une
a la unidad ganadora de la capa intermedia.
Debido a que la primera capa de esta red es un mapa auto organizado, su
operación se define por medio de la ecuación 2.20; de tal forma que al aplicarle una
entrada, la unidad que tenga el valor de distancia mínimo será la unidad ganadora ], y
su salida será 1.0. Todas los demás serán O como se define en 2.24.
y¡(n)=l.0, si J=lc ( 2.24 )
y1 (n) = O, de otra forma
Ahora bien, la salida en la última capa se define con la ecuación 2.25.
z: (n) = ¿ vk, (n)y1 (n) = vk, (n), si j =], ( 2.25)
z: (n) =O, de otra manera
37
Donde vk; es la conexión entre la unidad de salida k y la unidad ganadora de la
capa oculta J .
2.4.2 ALGORITMO DE ENTRENAMIENTO DE PROPAGACIÓN DE CONTEO
El entrenamiento de la capa de Kohonen fue explicado en el punto 2.3.2 por lo que
sólo se explicarán los aspectos del entrenamiento de la capa de Grossberg. Para esto,
se aplican patrones de entrada y una unidad de la capa de Kohonen resulta ganadora
(para cada uno de los patrones), la cual tendrá un valor unitario y todas las demás
valdrán cero. Posteriormente, se ajustan los pesos de las conexiones que unen a la
unidad con las unidades de salida de acuerdo a la ecuación 2.26 [Hecht-Nielsen, 1991].
( 2.26)
Donde a es el factor de aprendizaje, zk (n) es la salida deseada en la iteración n y
l\1 (n) es el valor de peso de la conexión que une a la unidad de salida k con la unidad
J de la capa Kohonen; y/n) es la salida de capa de Kohonen, si se trata de una
unidad ganadora su salida es igual a 1 de lo contrario es igual a O.
2.5 CONSIDERACIONES SOBRE EL APRENDIZAJE DE LA REDES NEURONALES
Un aspecto que hace que las redes sean interesantes es su capacidad para
generalizar. Dicho de otra manera, la red puede ser entrenada con un conjunto de
patrones e inducir resultados aceptables para datos con los que no fueron entrenadas.
Por ejemplo, como se muestra en la figura 2.1 O, sean dos conjuntos de patrones
disjuntos R y T que pertenecen al conjunto S; si se supone que la red es entrenada
con el conjunto de datos R ; al probar la red con el mismo conjunto de datos, se está
probando su capacidad de memorizar. En cambio, si la red una vez entrenada se
valida con el conjunto de datos T, lo que se está evaluando es la capacidad de la red
para generalizar [Hertz g. et. al., 1991].
38
Resulta sumamente importante considerar que no necesariamente una red
neuronal que memoriza bien, deberá de generalizar de la misma manera. Por tal
motivo, se recomienda entrenar la red con un conjunto de datos y probar su capacidad
de generalizar con un conjunto distinto de éste.
u
s
Fig.2.1 O Generalización
2.6 DISCUSIÓN
Tanto la red de propagación de conteo como la red de alimentación hacia delante
multicapas, presentan ventajas y desventajas.
Una fortaleza de la red de alimentación hacia delante, es su capacidad de
aproximar funciones; esto es avalado por el teorema de Kolmogorov.
Dicho teorema establece que cualquier función continua, con valores de entrada en
el intervalo de [O, 1] y que mapea de un espacio n a un espacio m , puede ser
implementada con una red de alimentación hacia delante de tres capas. La capa de
entrada debe ser de n unidades, la capa intermedia de al menos 2n + 1 unidades y la
capa de salida de m unidades [Hecht-Nielsen, 1991].
El problema con el teorema de Kolmogorov es que es un teorema de existencia.
Desafortunadamente no establece como encontrar a la red para aproximar a la función;
39
si bien es cierto que orienta sobre el tamaño de la red, no establece el tipo de funciones
de activación requeridas [Hecht-Nielsen, 1991].
Al tratar de encontrar una red que aproxime a una función, es común utilizar al
menos dos capas intermedias [Hertz et al, 1991 ], o un número de unidades superior a
2n + 1 en la capa intermedia.
Si se utiliza el algoritmo de retropropagación del error para el aprendizaje de la red
multicapas de alimentación hacia delante o la red propagación de conteo, se puede
presentar el problema de mínimos locales. Éstos pueden evitar que la red converja y no
permitir que la red aprenda. Ahora bien, existen algunas alternativas para evitarlo como
utilizar factores de aprendizaje adaptables entre otras [Haykin, 1994].
Una fortaleza de la red de propagación de conteo, es una de las debilidades de la
red de propagación hacia delante cuando se utiliza el algoritmo de retropropagación del
error; ya que la primera, es de 1 O a 100 veces más rápida que la segunda en su
proceso de aprendizaje para un problema dado y a menudo con resultados
comparables [Hertz et al, 1991].
Si bien es cierto que la red de propagación de conteo es más rápida que la red que
utiliza el algoritmo de retropropagación del error; el problema con esta red es que su
capacidad para aproximar funciones no es tan buena como la de la red multicapas de
alimentación hacia delante[Hecht-Nielsen, 1991].
Otra desventaja de la red de propagación de conteo, es el hecho de que no es
posible que generalice, ya que funciona como una tabla.
Se dice que la red de propagación de conteo funciona como una tabla de búsqueda
adaptable, como lo muestra la figura 2.11.
Si a la red se le aplica una entrada X , buscará al vector de pesos W, más
parecido, activando a la unidad ganadora de la capa de Kohonen, que su vez generará
la salida del vector V, asociado a la unidad ganadora. El problema de la red es que
debido a que funciona como una tabla, sólo genera respuestas V, ya definidas, si se
desea aumentar la precisión, se requiere aumentar el número de unidades [Hecht
Nielsen, 1991].
40
w1 vi w2 v2
X w, V, V,
WN VN
Fig. 2.11 Tabla de búsqueda.
Si se considera que para estimar precipitación, hay que extraer una gran cantidad
de datos de las imágenes satelitales y además generar datos, pensar calibrar un
modelo de alimentación hacia delante con una gran cantidad de datos, no es factible
por el tiempo requerido para su aprendizaje.
Por lo que al parecer, la red de propagación de conteo es mejor opción ya que
aprende más rapido que la red de alimentación hacia delante. Sin embargo, la red de
propagación de conteo no generaliza.
Es necesario que la red generalice, debido a que es imposible tener los conjuntos
de entrenamiento, que abarquen todos lo posibles eventos climatológicos relacionados
con la precipitación pluvial.
Lo anterior sugiere que se podría desarrollar una red basada en la red de
propagación de conteo, pero agregándole la capacidad para generalizar.
Si se parte de que la red de propagación de conteo funciona como una tabla, lo que
se puede hacer es modificar su operación; de tal forma, que al aplicar un valor de
entrada X, se tenga una medida de la proximidad con el vector W, y el resultado de V,,
se vea afectado por dicha medida.
41
Otra idea que permitiría la generalización podría ser que en vez de obtener una
unidad ganadora en la capa de Kohonen, se podrían tener dos (las más cercanas) y
con una medida de proximidad a los valores de W de ambas, interpolar un resultado
entre los dos valores de V resultantes.
42
3. MODELOS PROPUESTOS
3.1 RED DE PROPAGACIÓN DE CONTEO MODIFICADA
Como se explicó en el capítulo anterior, la red de propagación de conteo funciona
como una tabla de búsqueda. Al aplicar un patrón la unidad ganadora en la capa de
Kohonen se activa y excita a la unidad de la siguiente capa, la cual sólo tiene un valor
de salida. Debido a esto, la red sólo aproxima resultados al valor más cercano. Esto es,
que valores muy parecidos producen el mismo resultado.
La red de propagación de conteo tiene la ventaja de que en su entrenamiento no
consume mucho tiempo y puede manejar una gran cantidad de datos. Sin embargo, su
capacidad para aproximar funciones no es muy buena. Si se desea aumentar la
precisión se requiere aumentar el número de unidades, lo cual no es muy conveniente
debido a que consumirá más tiempo en su entrenamiento y en su operación.
Aunado a lo anterior la red no puede generalizar, ya que valores de entrada
similares generan el mismo resultado.
3.1.1 VALOR DE SALIDA EN FUNCIÓN DE LA DISTANCIA
Con el objetivo de lograr que la red de propagación de conteo mejore su capacidad
para aproximar funciones y para generalizar, la respuesta de la red se establece de la
siguiente forma:
1) Se calcula la distancia euclidiana del valor de entrada con la unidad ganadora
de la capa de Kohonen.
43
2) Se calcula un valor complementario de la distancia euclidiana; de tal forma,
que a mayor cercanía del dato de entrada con el peso de la unidad ganadora,
el resultado sea mayor.
3) Se multiplica el valor complementario, por el valor de salida de la red que se
genera cuando funciona como una tabla (red de propagación de conteo sin
modificaciones).
A continuación se detallan los tres pasos descritos, para eso se muestra el
diagrama de una red propagación de conteo modificada en la figura 3.1, la red es de
una sola salida; se observa que la estructura de ésta no cambia, ya que la modificación
que se propone sólo afecta la operación de la red.
J 1
Fig. 3.1 Red propagación de conteo con una salida
El vector de entrada se define como x = [ x,, x2 , •••• , x mº] con valores normalizados en
el intervalo [O, 1 ]; la salida de la capa de Kohonen es y = [y,, y 2 , •••• , y m,] y la salida de la
capa de Grossberg (salida de la red) es z' = [z;,z;, .... ,z~J; el conjunto de pesos que
44
conecta a la entrada con la capa de Kohonen es W = { w11 , w12 , •••• , w"'""''} y el conjunto de
pesos que conecta a la capa Grossberg con la de Kohonen es V= {v1" v12 , •••• , '1n,,m,}.
El primer paso para obtener la salida de la red, es calcular distancias para la
entrada, con respecto a cada nodo de la capa de Kohonen, utilizando la ecuación 3.1.
"'º d}= ¿(x,-w,,)2 donde j = 1, ...... , m1 (3.1)
i=I
Del resultado de la ecuación 3.1 se obtiene la unidad ganadora, la cual es la que
tiene la distancia menor con respecto al valor de entrada; este valor siempre es menor
que uno, ya que se utilizan valores normalizados.
de = min(d) donde j = 1, ...... , m1 (3.2)
De la ecuación 3.2 se calcula un valor en función de la distancia y se multiplica
dicho valor, por el peso de la conexión entre la unidad ganadora de la primera capa y la
unidad de salida, como se define en las ecuaciones 3.3 y 3.4.
Y1 =1-d, si J es la unidad ganadora (3.3)
si J es otra unidad.
La ecuación 3.3 es diferente al resultado que se obtiene en una red de propagación
de conteo, ya que en dicha red los valores pueden ser únicamente cero o uno.
k = 1, ...... ,n2 (3.4)
La salida de la red sólo se calcula con respecto a nodos ganadores de la capa de
Kohonen, esto implica una simplificación del algoritmo y por lo tanto, una mejora en el
esfuerzo computacional con respecto al modelo propuesto por Hsu, en el que además
se toma en cuenta a las seis unidades vecinas a la unidad ganadora para calcular
z~ [Hsu et al, 1997a].
45
3.1.2 ENTRENAMIENTO DE LA RED
El entrenamiento de la red de propagación de conteo con salida en función de la
distancia es el mismo que el de la red de propagación de conteo ya presentado en el
capítulo 2: los pesos vk1
en la capa de salida de Grossberg equivalen al promedio de
los valores de salida deseada y se calculan utilizando la ecuación 2.26, de manera
iterativa.
Es importante hacer notar que, para fines de entrenamiento, la red opera en la
misma forma que la red de propagación de conteo, ya que los valores de y 1
sólo
pueden tener valores binarios. Sin embargo, una vez entrenada, la operación de ésta
es tal como ya se definió en el apartado 3.1.1.
3.2 RED DE PROPAGACIÓN DE CONTEO CON INTERPOLACIÓN LINEAL
Esta red es una variante de la red del apartado 3.1, sólo hay algunas diferencias en
la operación y el entrenamiento.
Si bien es cierto que la red del apartado 3.1, no genera la misma respuesta a
entradas similares; presenta la posible limitante, de no aproximar un valor de salida
entre las dos unidades de la capa de Kohonen más cercanas. Considerando que la red
funciona como una tabla de búsqueda.
3.2.1 INTERPOLACIÓN LINEAL
La red de propagación de conteo, puede modificarse agregándole la capacidad para
que interpole linealmente entre las dos unidades más próximos al valor de entrada, por
lo que se requiere que el valor de salida de las unidades ganadoras de la capa de
Kohonen esté en función de la distancia entre el valor del unidad y el valor de entrada.
En la figura 3.2, se muestra la red de propagación de conteo; tal como la red del
apartado 3.1, posee la misma estructura de la red de propagación de conteo, la
diferencia estriba en la forma de operar y de entrenarse, se observa que son dos las
unidades ganadoras de la capa de Kohonen.
46
Fig. 3.2 Red de propagación de conteo
con interpolación lineal.
El valor de salida de la capa de Grossberg se calcula haciendo una interpolación
lineal entre los valores de salida de las unidades ganadoras de la capa de Kohonen; tal
como se muestra en la figura 3.3, en donde se observa la salida de dichas unidades y
cómo un valor entre ellas puede ser aproximado a través de una función lineal, con la
expectativa de lograr un mejor desempeño de la red.
Esta red podría generalizar siempre y cuando el número de unidades sea adecuado
y se evite que la distancia entre unidades sea muy grande. Basándose en la figura 3.3,
se obtiene la ecuación 3.5, la cual es utilizada para calcular el valor de aproximación de
salida.
(3. 5)
47
z' 1
, - z, -t--
x,
Fig. 3.3 Salida de la red de interpolación
Donde d1 y d 2 son las distancias a las dos unidades de la capa de Kohonen que
son más cercanos al valor de entrada x,. Por otro lado, z; y z; son las salidas de las
unidades, en el caso de que alguna de las distancias d1 o d 2 sea cero.
En este algoritmo, la diferencia con la red propagación de conteo y con el algoritmo
propuesto por Hsu es marcada; se espera reducir el esfuerzo computacional del
entrenamiento sin sacrificar su desempeño en generalización.
3.2.2 ENTRENAMIENTO DE LA RED
El entrenamiento de esta red es casi igual al de la red de propagación de conteo y al
de la red del apartado 3.1, ya que al finalizar el entrenamiento, se lleva a cabo una
ejecución para desactivar las unidades de la capa de Kohonen que no resulten
ganadoras en ésta. Lo anterior se realiza, con el objetivo de asegurar una adecuada
operación de la interpolación. Debido, a que en el proceso de entrenamiento de la capa
de Grossberg, sólo las conexiones entre unidades ganadoras y las de salida son
modificadas.
48
3.3 VALIDACIÓN DE LOS MODELOS PROPUESTOS
En esta sección se presentan algunos casos de estudio para observar el
desempeño de los modelos propuestos. Primero, se utiliza un patrón de datos
distribuidos en un área que asemeja una cruz y se observa el desempeño para dos
casos: uno de ellos es aquel donde la capa Kohonen es de una sola dimensión y el otro
es de dos dimensiones. Esto, con el fin de observar el comportamiento del
entrenamiento de la primera capa, la cual es la misma en las redes de las secciones
3.1 y 3.2. Las funciones que se seleccionaron son las mismas que utiliza Rogers para
mostrar el comportamiento de la red con la red de propagación de conteo [Rogers,
1997], con el objeto de asegurar que la primera capa funciona adecuadamente.
Posteriormente, se analiza el comportamiento de las dos redes al aplicárseles una
función de sombrero mexicano. La justificación de la selección de dicha función, no es
otra que la de comparar el desempeño de la red con la propuesta de Hsu quien utiliza
la misma función en su trabajo [Hsu et al, 1997a].
3.3.1 ENTRENAMIENTO DE LA PRIMERA CAPA
La forma en la que se entrena la primera capa de las redes neuronales descritas en
las dos secciones previas, es la misma a la de un mapa autoorganizado planteada en
2.3.2.
Para mostrar como se comportan las unidades a distintos pasos de entrenamiento,
se presentan dos casos: para la capa de Kohonen de una sola dimensión y de dos
dimensiones.
En la figura 3.4, se observa que los valores de entrada x1 y x2 están acotados en el
rango de [0, 1] y cada punto representa el valor de un par ( x1 , x2 ). Todos los puntos
forman una cruz.
La primera validación del entrenamiento se realizó con un mapa auto organizado de
100 unidades en la capa de Kohonen en una sola dimensión.
Los valores seleccionados del factor de aprendizaje son los más utilizados en la
práctica. Hecht propone iniciar con 0.8 y finalizar con 0.1 o menos [Hecht-Nielsen,
49
1991 ]; Rogers recomienda iniciar 0.5 y finalizar con 0.01 [Rogers, 1997]. La segunda
opción fue la seleccionada.
1~~~~~~~~~~-----~~~~-~~~~ .. .. . - ,· . 1 ': ~ • • : ~~ ...... , •
o.91
L ~=· •:.: :,:".: : . . . ... ~··· . . ·, ... ··.:. ., ... º-ª~ , .. , ,, •...
1 • .;.¡,· •••• ,. • •• ~ : • . . · ... ' -:·· .. ·:. .... : ... ,. • • .. .. • ~ ... •• .. • • 1t .
't •• ,i-... . . .:.·, .... .. . . . . •. . . . . ..... :·.: .:-. .:) .• '. Q 6 ~ e - • • •• • 1 • • • I --•• !\ • • • • •, • • r . , • :• • ·~ ._:• • : .•. • ·~· ' • .. ,.- • .• • r 1 '• I • • '• • •
.:· .- • ·.. . .... j. 1 ~· ....... ·.~···. .. •• ··: • ~··· ···)
O.SL .. ,t•: . . ~·····: •• -.._:- • • ., •. : _: •• .:•·· .,· •. • . ,(·. . . .. r ·!"\ ..... , .. •• •• .,. :- ••••• ·~ r ... -· • •• • • • • l. • _,..; • • • .. •• •• • ,1. • 1
O 4 · ,. 1 • .... ' •' • •••• • • '.1 ._ - ~· .... : • .. • •• • • , . r ·.-e. ·. . . .. . . . ... . .- .. . ·~. : \; r. . .. i
I• ••• I• • .. •• ····~ • f• "-,• 1 • • ,. • i 1 , ••••• ,, ........ -~ 1
0_3Ll ·.·. • .·, ... • .... ,,. ~
'.) ...... ·,· .. r. . •
0.2 • ,. • • ~·,· •• ••••••
1
.,, ..••• -·····:· . .. , ~ .. O. 1 r ~ • ~ • " •• ~ •.:l.•
i ••• • • - ,. • o 1 •• • • • ·, •• ••
o 0.1 0.2 o.3 o.4 o.s o.s o.7 o.e o.9
Fig. 3.4 Patrón de entrada para entrenamiento en dos dimensiones
Se utilizó una vecindad de 40 unidades y un decremento del tamaño de ésta cada
150 iteraciones o sea un total de 6000 ciclos de entrenamiento; la justificación de la
selección fue la de repetir el experimento de Rogers, bajo las mismas condiciones
[Rogers, 1997].
En las figuras 3.5, 3.6 y 3.7 se muestran los valores de los pesos de cada una de
las unidades del mapa auto organizado.
0.9
0.8
0.7
0.6
0.5
OA, 1 1
0.3 •
0.2'
0.1 ·
Fig. 3.5 Valores iniciales de los pesos de la capa
Kohonen del mapa autoorganizado
50
En la figura 3.5, cada punto muestra la ubicación de cada peso y cada línea une
cada unidad vecina.
0.9 e----.---~-~--~-~--~-~--~
1
1 o.a I !
0.7 1
0.6
0.5
0.4
::l 0.1 ~----~-~--~-~--~-~---
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Fig. 3.6 Valores de los pesos ( w,, w2 ) después de 3000 iteraciones
En la figura 3.6, se observa cómo los valores de los pesos se ordenan de cierta
forma después de 3000 iteraciones.
i
O 9 ~ o.e¡-
o. 7 lf,
O 6
O 5 ~
O 4 ~
O 3 ~ O 2 l
1
"-,
i 1
0.1 ----~-~--____:,,"'-----~---~-~-º O 1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Fig. 3.7 Valores de los pesos ( w,, w2 ) después de 6000 iteraciones
51
En la figura 3.7 después de 6000 iteraciones, se tiene una mayor semejanza con la
silueta de una cruz; no se incrementó el número de iteraciones para comparar los
resultados con el caso de dos dimensiones.
El segundo ejemplo de entrenamiento, fue una red de 100 unidades en la capa de
Kohonen, organizada en un arreglo de 10 por 10, el factor de aprendizaje igual que el
caso anterior inició con un valor de 0.5 y finalizó en 0.01. La vecindad tuvo valores
iniciales de 5 por 5 unidades con decrementos unitarios cada 1000 iteraciones por lo
que se realizaron 5000 ciclos en total [Rogers, 1997].
Las figuras 3.8, 3.9 y 3.10, muestran el desarrollo de los valores de pesos (w1,w2 )
durante el entrenamiento, la figura 3.8 muestra el inicio, la figura 3.9 muestra los
valores de los pesos después de 2500 iteraciones y la figura 3.1 O muestra el resultado
final, una vez que se realizaron 5000 ciclos.
0.3 ~
// 0.2
0.1:
o¡ o 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Fig. 3.8 Organización inicial en el caso de dos dimensiones
Es evidente que la figura 3.1 O, se asemeja a una cruz, con la ventaja sobre el
resultado de la figura 3.7, de que los pesos se distribuyen en el interior, no sólo en la
periferia.
52
0.65 e----,---~--,---,------~--..,--~
1
o.6 r
0.55 f
0.5 f 0.45 ~
i
0.4
0.35
0.3 1
0.25 ~ 0.2 '------'----,.__ _ ___.__ __ -'---------'-------'-----'
0.1 0.2 0.3 0.4 0.5 0.6 0.7 o.e
Fig. 3.9 Organización después de 2500 iteraciones
,: f o.e~
1 :: ¡ 0.5 ~
1
::: ·tr
0.2
1
0.1 f-1
0.9
o~:-~-----'-------'---~-------~----º 0.1 0.2 o.3 o.4 o.s o.6 o.7 o.e o.9
Fig. 3.1 O Organización de los pesos después de 5000 ciclos
Al observar los resultados de los dos casos anteriores (una y dos dimensiones), se
puede concluir, que si se busca clasificar datos que se encuentren distribuidos en un
53
espacio de dos o más dimensiones, es más conveniente utilizar un mapa
autoorganizado de dos dimensiones.
3.3.2 VALIDACIÓN CON UNA FUNCIÓN DE MUESTREO
En esta sección se muestra el entrenamiento de la red completa, ya que en la
sección previa se mostró el comportamiento de los pesos al entrenar la primera capa.
La función que se utilizó es una función de muestreo descrita por la expresión 3.6.
Esta función es la misma utilizada por Hsu [Hsu et al, 1997a].
z = sin(~x2
+ y2
)
~x2 + yz donde -10 ~ x ~ 10 ( 3.6)
Las variables x1 y x 2 son normalizadas en el rango de [0, 1]. Para esto, se utilizan
las ecuaciones de transformación 3.7.
X X1 =-+0.5
20 y
X2 =-+0.5 20
( 3.7)
La figura 3.11 muestra una gráfica de la función de sombrero mexicano, o también
conocida como función de muestreo.
3.3.2.1 CASO 1: VALIDACIÓN DE LA RED CON VALOR DE SALIDA EN FUNCIÓN
DE LA DISTANCIA
En este punto, se muestran los resultados sobre la red descrita en la sección 3.1.
Para esto, se utilizó una red que fue entrenada en todos los casos con factores de
aprendizaje de 0.5 hasta 0.01 que son valores muy cercanos a los que recomiendan
algunos autores [Rogers, 1997][Hecht-Nielsen, 1991 ], con dos valores de entrada x1 , x2
y una salida z' .
54
0.5
-0.5 1
0.5 0.4
o o
Fig. 3.11 Función sombrero mexicano
Para entrenar la red se generaron 441 patrones (una rejilla de 21 por 21 puntos)
con puntos distribuidos en forma equidistante en el rango de [0, 1] tanto en x, como en
x2 . Una vez entrenada la red, se utilizaron patrones de validación con puntos ubicados
exactamente en medio de los puntos del conjunto de entrenamiento, con el objetivo de
probar la capacidad de la red para generalizar.
Se hicieron validaciones para cuatro casos: una red con 8x8, 15x15, 21x21 y 30x30
unidades en la primera capa. En todos los casos, se utilizaron vecindades que cubrían
el 50% del número de unidades por dimensión y 100 iteraciones para decrecer a la
vecindad. El primer caso es exactamente igual al desarrollado por Hsu [Hsu et
al, 1997a] los demás, son propuestos para evaluar el efecto de modificar el número de
unidades.
En las figuras siguientes se muestran los resultados de la generalización al utilizar
los patrones de validación.
55
0.5
-0.5 1
0.5
-0.5 1
... ~ .. ... ···:
0.6 0.4
o o
Fig. 3.12 Resultados al utilizar la red de BxB unidades
.... . '
.,
0.2 o o
Fig. 3.13 Resultados con una red de 15x15 unidades
56
0.5
-0.5 1
0.5
-0.5 1
o o
Fig. 3.14 Resultados con una red de 21x21 unidades
··: . . . .
.. :,·
0.5
o o
Fig. 3.15 Resultados con una red de 30x30 unidades
57
Los resultados de la validación se muestran en la tabla 3.1, para ello se utilizó el
cálculo de la raíz cuadrada del error cuadrático medio ( Erms ) y el factor de correlación
( CORR ), descritos en las expresiones 3.8 y 3.9.
Erms= donde i = 1, .... , N ( 3.8)
z, es el valor del patrón y
z~, es el valor estimado
CORR = COV(z,z:IÍ) ~VAR(z)VAR(z:,i)
donde COV es la covarianza ( 3.9)
y VAR es la varianza
El error cuadrático medio fue seleccionado, ya que permite valorar las desviaciones
ocurridas entre el valor esperado y el estimado por la red; esta medida es mejor que el
error promedio, ya que al elevarla al cuadrado detecta desviaciones positivas y
negativas.
El factor de correlación permite verificar las similitudes entre los valores estimados
por la red y los esperados.
Características de la Resultado Factor estadístico
red
Erms 0.130 1 Red con 8x8 unidades
CORR 0.68
Red con 15x15 Erms 0.084
unidades CORR 0.86
Red con 21 x21 Erms 0.080
unidades CORR 0.88
Red con 30x30 Erms 0.145 1
unidades CORR 0.51 1
1
Tabla 3.1 Resultados de la Red con salida en función de la distancia
58
Al analizar los resultados de la tabla 3.1 y las figuras 3.12, 3.13, 3.14, 3.15; se llega
a la conclusión, que el mejor desempeño se obtuvo con la red de 21 x21 unidades.
Ahora bien, la red de 15x15 unidades, se desempeñó de manera similar.
Sin embargo, se esperaría un factor de correlación al menos superior a 0.9;
considerando que la función tiene pendientes suaves y el conjunto de entrenamiento
cubrió todo el rango de la función.
No obstante, se puede calificar el desempeño de la red como regular. Es probable,
que si se aumentara el número de datos del conjunto de entrenamiento el desempeño
mejoría.
En casos reales, no siempre es posible que el conjunto cubra todo el rango de
posibilidades de los eventos a estimar.
3.3.2.2 CASO 11: VALIDACIÓN DE LA RED CON SALIDA DE INTERPOLACIÓN
LINEAL
En este punto se muestran los resultados usando la red descrita en la sección 3.2.
Para esto, se utilizó una red que fue entrenada en todos los casos con factores de
aprendizaje de 0.5 hasta 0.01; se tuvieron dos valores de entrada x1 , x., y una salida
z' . De hecho, las simulaciones descritas en la sección anterior, fueron repetidas
exactamente con la finalidad de comparar el comportamiento de esta red y la descrita
en el punto 3.1.
Es importante hacer notar, que tanto la red utilizada en la sección anterior, como la
de esta sección fueron entrenadas utilizando los mismos parámetros de entrenamiento.
En las figuras 3.16, 3.17, 3.18 y 3.19 se observa el comportamiento de la red con
interpolación lineal al utilizar los patrones de validación ya descritos en el punto
anterior.
En la tabla 3.2 se muestran los resultados de error RMS ( Erms ), así como el
coeficiente de correlación ( CORR ), ambos obtenidos al utilizar las ecuaciones 3.8 y 3.9.
59
1 . .
0.5
-0.5 1
o o
Fig. 3.16 Resultados de la red con interpolación lineal con 8x8 unidades
0.5
-0.5 1
.. , ·· ..
o o
'· .
. , .
0.4
Fig. 3.17 Resultados de la red con interpolación lineal con 15x15 unidades
60
1 .... .. ·
0.5
-0.5 1
0.5
,.: .. -··· : .. ···· : .,,,.,\ :
··:·· !'\ \ : . ., ' : . ·~~ .
0.6 0.4
o o
Fig. 3.18 Resultados de la red con interpolación lineal con 21 x21 unidades
0.5
o
-0.5 1
0.4
o o
Figura 3.19 Resultados de la red con interpolación lineal con 30x30 unidades
61
Características de la Resultado 1
Factor estadístico red
Erms 0.110 1
Red con 8x8 unidades !
CORR 0.75
Red con 15x1 5 Erms 0.064
unidades CORR 0.92 1
Red con 21x21 Erms 0.049 ! i i
unidades CORR 0.95 !
Red con 30x30 Erms 0.045
unidades CORR 0.96
Tabla 3.2 Resultados de la Red con salida de interpolación lineal
Analizando los resultados de la tabla 3.2 y las figuras 3.16, 3.17, 3.18, 3.19; se llega
a la conclusión, de que el mejor desempeño se obtuvo con la red de 30x30 unidades.
Ésta presentó el factor de correlación más grande y el menor error cuadrático medio.
Ahora bien, las redes de 15x15 y 21x21 unidades tuvieron un desempeño bastante
bueno, ya que ambas tuvieron factores de correlación superiores a 0.9.
3.4 DISCUSIÓN
Observando las figuras 3.7 y 3.1 O se ve que la red en su primera capa trata de
ubicar sus pesos de tal forma que el error sea cero y éstos se agrupan de manera
autoorganizada. Tanto en el caso de una dimensión como en el de dos dimensiones,
los pesos se organizan de manera que tratan de asemejar la figura patrón en forma de
cruz. Es evidente que se requiere un número importante de pasos de entrenamiento
para que eso suceda.
Con base a los resultados del apartado 3.3.1, parece ser que es más conveniente
utilizar una capa de Kohonen de dos dimensiones, cuando los patrones utilizados son
de dos o más dimensiones.
62
Se puede concluir que para las redes descritas en 3.1 y en 3.2, la primera capa
sirve para clasificar los patrones para los problemas de validación. Habría que
determinar el número de unidades así como el número de pasos de entrenamiento
adecuado para entrenar dicha capa.
En la sección 3.3.2 se compararon las redes de 3.1 y 3.2 en su desempeño para
tratar de estimar una función sombrero mexicano que se muestra en la figura 3.11; el
caso I se muestra en las figuras 3.12, 3.13, 3.14 y 3.15 donde es evidente que a
medida que se aumenta el número de unidades, el desempeño mejora. Sin embargo en
la última gráfica no sucede así, por lo que se concluye considerando que se utilizaron
441 patrones distintos, que la red no funciona adecuadamente si el número de
unidades de la primera capa es mayor al número de clases, por lo que la red tiene un
mal desempeño, caso contrario al resultado del caso 11 visto en la sección 3.3.2.2
donde al observar las figuras 3.14, 3.15, 3.16 y 3.17 se cumple el hecho de que a un
mayor número de unidades el desempeño mejora.
La explicación de lo anterior se debe a que en la red con interpolación lineal, en la
parte final de su entrenamiento se desactivan aquellas unidades de la capa de
Kohonen que no resultan ganadoras.
La desactivación evita posibles errores que pueden presentarse al utilizar un patrón
de validación; el cual puede provocar que resulte ganadora una unidad que no haya
sido activada al final del entrenamiento de la capa de Kohonen.
Si una unidad, no es activada al final del entrenamiento de la capa de Kohonen; la
conexión entre la unidad y la capa de salida no se modifica durante el entrenamiento.
Debido a que en el entrenamiento de la red con salida en función a la distancia, no
se desactivan unidades de la capa de Kohonen; es más susceptible a fallas cuando el
número de unidades de la capa de Kohonen es mayor al número de patrones utilizados
para entrenarla.
Por último al comparar los resultados de las tablas 3.1 y 3.2 se observa que la red
con salida de interpolación lineal funciona mejor para todos los casos y los dos factores
utilizados ( Erms y CORR ).
Debido a lo anterior se puede concluir que para estimar funciones la red descrita en
3.2 se desempeña mejor.
63
Con base a los resultados obtenidos en este capítulo, se esperaría que la red con
interpolación lineal pueda estimar la precipitación pluvial de una mejor manera que la
red con salida en función a la distancia.
64
4. ESTIMACIÓN DE PRECIPITACIÓN PLUVIAL PARA
FRECUENCIA HORARIA
4.1 DATOS DE ENTRADA Y SALIDA
Las imágenes del satélite GOES en la banda 5, la cual corresponde al espectro
infrarrojo, al recibirse se empaquetan en palabras enteras de una longitud de 1 O bits
(variable GOES).
A partir de la variable GOES, se puede obtener un valor de radianza (radiación en
espectro infrarrojo) y a partir de dicho parámetro, se puede generar la temperatura de
brillantez.
A diferencia de los trabajos de investigación previos a éste, en los cuales se ha
calculado la temperatura de brillantez o parámetros derivados de ésta para estimar la
precipitación [Hsu et al, 1997a][Arkin; Meisner, 1987]. Al considerar a las redes
neuronales como aproximadores universales de funciones, se llegó a la conclusión de
que no era necesario realizar conversiones para determinar la temperatura de brillantez.
En cambio se procedió a normalizar al valor entero de 1 O bits en el rango de valores
de O y 1, dividiendo el dato de cada pixel entre 1024. La justificación de dividir la
variable GOES por 1024; parte de que dicha variable es un valor entero es de 1 O bits
(transmitido por satélite), entonces el máximo valor de ésta es 210 que es equivalente a
1024.
Para que los modelos propuestos estimaran la precipitación por hora se
consideraron los siguientes supuestos: 65
1) Que el área de la nube puede influir en la cantidad de lluvia [Hsu et al, 1997a].
2) La temperatura en la parte superior de la nube se relaciona con la posibilidad de
lluvia [Arkin; Meisner, 1987].
Por las dos razones anteriores se propuso que los datos de entrada p de cada píxel
de la imagen, se representaran por la tupla de la expresión 4.1, la cual se basó en la
idea de Hsu [Hsu et al, 1997a].
( 4.1 )
Donde Pb0 es el valor GOES del pixel, Pb1 es el promedio de valores de nueve
pixeles (el pixel que se analiza y los ocho vecinos), Pb2 es el promedio de valores de
veinticinco pixeles (el pixel central y sus veinticuatro vecinos más próximos), SDPb1 es
la desviación estándar de nueve pixeles y SDPb2 es la desviación estándar de
veinticinco pixeles.
En la figura 4.1 se muestra de manera gráfica los datos de entrada, reflejados en el
plano de la imagen.
t~.-!~----------~~.........._~~--/l
..__;-· ~!_-~...._1--=_~~-=--1-· ~~:;/ !
! \1 7 7 ¡t 7
I [ T T 1 1 Fig. 4.1 Datos de entrada del modelo
La figura 4.1, muestra un cuadro de 25 pixeles de la imagen, de donde se calcula el
valor promedio Pb2
y la desviación estándar SDPb2 , además se observa una
66
proyección de 9 pixeles dentro de los 25 ya mencionados. A partir de éstos, se calculan
Pb1 y SDPb1 ; por último, se tiene en la parte superior una proyección del pixel central
Pb0 •
En este caso no fue necesario tener toda la información de la imagen para entrenar
a las redes neuronales, ya que sólo se ubicó a cada estación terrena y se obtuvo el
dato del píxel en dicha ubicación y los veinticuatro pixeles más cercanos. A partir de
éstos se calcularon los cinco parámetros descritos en la expresión 4.1.
Los detalles de la extracción de los datos, así como la ubicación de las estaciones
en la imagen se presentan en el ANEXO A.
El número de pixeles utilizados fue seleccionado considerando la mayor resolución
posible. Si sabemos que veinticinco pixeles forman un cuadrado de aproximadamente
25 km por lado, no se podría aumentar el número de pixeles, ya que las lluvias en
verano y otoño (períodos con los que se probaron los modelos) no cubren grandes
extensiones de terreno.
La salida de las redes es un valor normalizado en el rango de [O, 1], el cual al ser
desnormalizado representa la lluvia en unidades de mm/hr.
4.2 CALIBRACIÓN DE LOS MODELOS
En la figura 1.1 se muestran una serie de estaciones terrenas distribuidas en los
Valles del Yaqui y Mayo. El problema es que no todas ellas realizan mediciones de
precipitación pluvial en frecuencia horaria; además de que no se contó con un radar
meteorológico que permitiera determinar la lluvia, así como su distribución espacial.
Si bien es cierto que la expresión 4.1 se deriva del trabajo de Hsu [Hsu et al, 1997a],
también lo es que, no se incluyó el término de topología del terreno, debido a que las
estaciones terrenas se encuentran en lugares muy similares con relación al tipo de
terreno.
Para este proyecto, sólo se contó con los datos de tres estaciones terrenas: dos del
Valle del Yaqui (ITSON2 y CIANO) y una del Valle del Mayo (Huatabampo) que
coincidieran con las imágenes de satélite disponibles.
Lo anterior, limitó la información disponible para calibrar los modelos e introdujo una
mayor complejidad al proceso: En particular, si consideramos que los eventos de lluvia 67
en dichas regiones son escasos, entonces no fue posible obtener datos homogéneos.
Esto es, que una mitad de los datos fuesen de precipitación y la otra mitad de no lluvia.
Otro aspecto a considerar fue que no se realizó ningún filtrado de datos, debido a la
poca cantidad de eventos de lluvia disponibles. Otros trabajos [Arkin; Meisner, 1987)
[Hsu et al, 1999) si realizan algún tipo de filtrado de datos (eliminando datos repetidos o
similares); lo anterior permite reducir el número de unidades, pero aumenta el tiempo de
procesamiento de la información.
Para calibrar los modelos se utilizaron los datos de la estación CIANO, ubicada en la
posición 109º 55' longitud oeste y 27º 22' latitud norte. Para validar los modelos se
utilizaron los datos de la estación Huatabampo posicionada a 109º 39' longitud oeste y
26º 51' latitud norte; ya que ambas estaciones tenían más eventos de lluvia que la
estación ITSON2.
Se supuso que la precipitación sensada en la estación era igual y uniformemente
distribuida en el espacio que ocupa un pixel de la imagen satelital, lo cual sabemos no
necesariamente es cierto; ya que en los períodos de verano, la precipitación puede
presentarse en regiones de área menor a 16 km2.
Además otra limitante del proceso de calibración, fue el hecho de que el área que
abarca un sensor de una estación terrena para medir la lluvia, es del orden de unas
cuantas pulgadas cuadradas y el área que cubre un píxel en la imágen de satélite es de
16 km2 de terreno.
Los datos utilizados en la calibración de los modelos corresponden a los meses de
agosto y octubre del año de 1999; ya que de las imágenes disponibles, fueron los
meses en los que se presentaron la mayor cantidad de eventos de lluvia (en otros
meses no se presenta o es escasa). Desafortunadamente, no fue posible tener la
información completa de agosto y octubre, ya que debido a problemas técnicos en el
Centro de Percepción Remota, se perdieron algunos datos. Sin embargo, se utilizó la
información disponible.
68
4.3 SELECCIÓN DE PARÁMETROS DE ENTRENAMIENTO
Los parámetros de entrenamiento utilizados en la determinación experimental de
éstos en los dos modelos fueron iguales, con el objetivo de compararlos en las mismas
condiciones. éstos fueron:
1) Números de unidades de la capa de Kohonen.
2) Factor de aprendizaje inicial y final para la capa de Kohonen.
3) Área inicial de la vecindad de la unidad ganadora para la capa de Kohonen.
4) Número de iteraciones para reducir el área de la vecindad de la unidad
ganadora para la capa de Kohonen.
5) Factor de aprendizaje para la capa de Grossberg (segunda capa).
El número de unidades de la capa de Kohonen. se fue modificando, para determinar
el número adecuado de forma experimental.
Se hicieron experimentos para los siguientes tamaños de la capa Kohonen: 8x8,
16x16, 20x20, 30x30, 40x40, 50x50, 60x60 y 70x70 unidades.
Los factores de aprendizaje inicial y el de la capa de Grossberg seleccionados se
ajustaron a 0.5, valor cercano al que algunos autores recomiendan
[Rogers, 1997][Hecht-Nielsen, 1991] y el factor de aprendizaje final se fijó en 0.01 por la
misma razón.
El área inicial para la vecindad de la unidad ganadora de la capa de Kohonen, se
propuso de un 25% del área total de unidades de la red [Rogers, 1997].
El número de iteraciones para reducir el área de la vecindad de la unidad ganadora
para la capa de Kohonen se determinó de forma experimental en los modelos
propuestos, para esto se hicieron pruebas con redes de 8x8 unidades en la capa de
Kohonen, vecindad inicial de 4x4 unidades, factor de aprendizaje inicial de 0.5 y el
mismo factor de aprendizaje se utilizó para la capa de Grossberg.
Se utilizaron redes de 8x8 unidades en la capa de Kohonen, con la finalidad de no
consumir demasiado tiempo en la determinación experimental del número de
iteraciones requeridas para reducir el área de la vecindad ganadora.
La selección del número de iteraciones para ir reduciendo el área de la vecindad de
la unidad ganadora en la capa de Kohonen, determina el número total de pasos de
entrenamiento de la red.
69
El número total de pasos de entrenamiento, es igual al número de iteraciones
utilizadas para reducir el área inicial de la vecindad a la unidad ganadora de la capa de
Kohonen, por el número de unidades de un lado de dicha vecindad (un lado del
cuadrado).
4.3.1 DETERMINACIÓN DEL NÚMERO DE ITERACIONES REQUERIDAS PARA
REDUCIR LA VECINDAD DE LA CAPA DE KOHONEN PARA EL MODELO DE RED
CON SALIDA EN FUNCIÓN DE LA DISTANCIA.
Se simularon diferentes valores para ir reduciendo la vecindad a la unidad ganadora
de la capa de Kohonen, los valores utilizados fueron: 1, 3, 6, 12, 25, 50, 100, 200 y 300
iteraciones para ir reduciendo el área de la vecindad de la unidad ganadora de la capa
de Kohonen.
Si se considera que el área inicial de la unidad ganadora de la capa de Kohonen fue
de 4x4 unidades, por lo tanto el numero total de pasos de entrenamiento utilizados fue
de: 4, 12, 24, 48, 100, 200, 400, 800 y 1200 respectivamente.
La gráfica 4.2 muestra los resultados experimentales del factor de correlación en
función del número de iteraciones para reducir el área de la vecindad a la unidad
ganadora.
La figura 4.2 muestra la respuesta de la red al conjunto de entrenamiento con una
línea continua (datos de CIANO) y la respuesta de la red al conjunto de validación con
una línea discontinua (datos de Huatabampo).
Se observa en la gráfica 4.2 que a partir de 12 iteraciones no hay grandes
variaciones del factor de correlación.
4.3.2 DETERMINACIÓN DEL NÚMERO DE ITERACIONES REQUERIDAS PARA
REDUCIR LA VECINDAD DE LA CAPA DE KOHONEN PARA EL MODELO DE RED
CON SALIDA DE INTERPOLACIÓN.
Para la red con salida de interpolación, se repitió la simulación descrita en el
apartado anterior.
70
e: ·O ·¡;
"'
0.4_~-----------~---
0.35 ir'/
0.3
~ 0.25 r o ' ~ ¡, \ / i 0.21; o ;
: j; O 15 ¡
1,
0.05~-~--~----------0 50 100 150 200 250 300
Número de iteraciones para reducir área
Fig. 4.2 Determinación del número de iteraciones para reducir
la vecindad en el modelo en función a la distancia.
La figura 4.3 muestra la gráfica de los resultados, del factor de correlación en
función del número de iteraciones utilizadas para reducir el área de la vecindad.
Se observa que para el caso del patrón de validación graficado en línea discontinua
(datos de Huatabampo), que después de 100 iteraciones por decremento, la red ya no
mejoró su desempeño, además se observa que sucede lo mismo con la salida al
aplicarse el conjunto de entrenamiento, graficado en línea continua (datos de CIANO),
otro aspecto que se observa es el hecho de que la red respondió mejor al patrón de
entrenamiento que al de prueba.
Se observa en las figuras 4.2 y 4.3 que ambas redes no generalizaron bien, ya que
el mejor factor de correlación fue de 0.24, para el caso del conjunto de validación.
Además la redes tampoco memorizaron bien ya que el factor de correlación no llegó a
0.38, para el caso del conjunto de entrenamiento.
Sin embargo, los experimentos anteriores se desarrollaron para estimar el número
de iteraciones requeridas para reducir la vecindad de la capa de Kohonen, no para
estimar la precipitación pluvial; por tal motivo, se utilizaron redes con pocas unidades
(aunque podrían cambiar los resultados con más unidades).
Con base a los resultados experimentales se decidió utilizar un número de 100
iteraciones, para ir reduciendo el área de la vecindad de la unidad ganadora de la capa
de Kohonen para ambas redes.
71
0.38--
0.36 ,;
/- -----------------e: 0.34 e' . •!') u !!' 0.32 ,:
~ g 0.3 -., ,, ~ 0.28 -o u
~ 0.26 ~
0.24 ,
0.22 .. 1
0.2 -----·--·---~------~--- ·---~--º 50 100 150 200 250 300 Número de iteraciones para reducir área
Fig. 4.3 Determinación del número de iteraciones para reducir
la vecindad en el modelo de salida de interpolación.
4.4 ESTIMACIÓN DE PRECIPITACIÓN PLUVIAL EN PERÍODOS DE UNA HORA
Los dos modelos propuestos en el capítulo tres se utilizaron para estimar la
precipitación pluvial para una frecuencia horaria. Los detalles sobre la implantación de
éstos se tratan en el ANEXO B. Los modelos se probaron con diferentes números de
unidades en la capa de Kohonen, a fin de poder determinar el tamaño adecuado de la
red.
Es importante aclarar que antes de utilizar los modelos propuestos se intentó utilizar
una de retropropagación, pero ésta nunca logró aprender.
4.4.1 CASO 1: RED CON VALOR DE SALIDA EN FUNCIÓN DE LA DISTANCIA
La tabla 4.1 muestra los resultados del modelo, del factor de correlación ( CORR) y la
raíz cuadrada del error cuadrado medio ( Erms) a distintos tamaños de la red en la capa
Kohonen, para el conjunto de entrenamiento, la tabla 4.2 muestra los mismos
resultados para el conjunto de validación.
72
El número de unidades de la capa Kohonen, se determinó en forma empírica.
Aunque Hsu utiliza un tamaño de 15 por 15 unidades [Hsu et al, 1997a], se prefirió
analizar el posible efecto en el desempeño a diferentes tamaños.
Tamaño de la capa CORR Erms
Kohonen
8x8 unidades 0.376 0.009
16x16 unidades 0.444 0.009
20x20 unidades 0.504 0.008
30x30 unidades 0.688 0.007
40x40 unidades 0.745 0.007
50x50 unidades 0.736 0.007
60x60 unidades 0.857 0.005
70x70 unidades 0.999 0.000
Tabla 4.1 Respuesta de la red con salida en función
a la distancia al conjunto de entrenamiento.
Se observa que al aumentar el número de unidades el factor de correlación mejora.
Sucede lo mismo con el error cuadrático medio. Ahora bien, es evidente que el factor de
correlación es más adecuado como parámetro para analizar el desempeño de la red, ya
que presenta mayor sensibilidad a los cambios de tamaño.
La red memoriza mejor a una mayor cantidad de unidades en la capa de Kohonen,
como se muestra en la tabla 4.1. En este caso, el número de 70x70 unidades es igual a
4900 unidades, que es casi cinco veces mayor al número de patrones del conjunto de
entrenamiento, si consideramos que fueron utilizados 1046 patrones (datos
disponibles).AI observar los resultados que se muestran en la tabla 4.2. De la misma
manera como se vio en la tabla anterior, la raíz cuadrada del error cuadrático medio
permaneció invariante ante los diferentes tamaños de red, no así el factor de
correlación.
73
Tamaño de la capa CORR Erms
Kohonen
8x8 unidades 0.203 0.023
16x16 unidades 0.230 0.023
20x20 unidades 0.193 0.023
30x30 unidades 0.135 0.024
40x40 unidades 0.022 0.024
50x50 unidades -0.004 0.024
60x60 unidades -0.004 0.024
70x70 unidades -0.003 0.024
Tabla 4.2 Respuesta de la red con salida en función
a la distancia utilizando el conjunto de validación.
La figura 4.4 muestra una gráfica del factor de correlación en función del número de
unidades en una dimensión de la capa de Kohonen.
1.2 ,---~--~--------~---
0.2 i.-
1
o ~ - 1 1
-0.2 ,__· ~------'--------------10 20 30 40 50 60 70
Número de unidades por lado
Fig. 4.4 Factor correlación en función del número
de unidades por lado en la capa de Kohonen
de la red con salida en función a la distancia.
74
La línea continua de la figura 4.4 muestra la respuesta de la red al conjunto de
entrenamiento y la línea discontinua corresponde a la respuesta de la red al conjunto de
validación.
Se observa en la figura 4.4 que a un mayor número de unidades la red responde
mejor al conjunto de entrenamiento; no sucede lo mismo con el conjunto de validación
ya que a tamaños superiores de 16x16 unidades el desempeño va empeorando.
El mejor desempeño de la red se obtuvo en la red con un tamaño de 16 por 16
unidades, con un factor de correlación de 0.230; que si bien es bajo, se mantuvo dentro
del rango de resultados del trabajo de Hsu , entre 0.2 y 0.6 [Hsu et al, 1997a].
En el caso del conjunto de validación, la red respondió mejor con un tamaño de 16
por 16 unidades, que equivale a 256 unidades en total. Es decir, un número cuatro
veces menor a los 1046 patrones del conjunto de entrenamiento, lo cual es positivo ya
que al utilizarse un número menor de unidades, se utiliza poco tiempo para entrenar y
operar a la red.
La figura 4.5 muestra la raíz cuadrada del error cuadrado medio ( Erms ) en función
al número de unidades por lado en la capa de Kohonen.
Se observa en la figura 4.5, que al aumentar el número de unidades de la capa de
Kohonen, la raíz cuadrada del error cuadrado medio ( Erms) disminuye para el caso de
la respuesta al conjunto de entrenamiento (línea continua).
En la figura 4.5 se observa que no hay cambios significativos de la raíz cuadrada del
error cuadrático medio ( Erms ), al modificarse el número de unidades de la capa de
Kohonen, en respuesta al conjunto de validación (línea discontinua).
A partir de los resultados experimentales se utilizó la red de 16x16 unidades. Debido
a la disponibilidad de imágenes, se utilizaron los meses de agosto y octubre del año de
1999.
La figura 4.6 muestra los resultados de estimación de la red al conjunto de
validación.
La respuesta de la red en la figura 4.6 se muestra graficada con la línea de
asteriscos y la línea continua muestra los valores observados; se graficaron 1046
eventos no se incluyó la fecha ya que no se contó con las imágenes en la continuidad
requerida.
75
.9 ,:, QJ
E
0.025 ~-------------------
_g 0.02 ~ ,:,
"' ::, u
g 0.015 QJ
QJ ,:,
"' ~ 0.01 ~ 'O ----"' ::, u N
·¡¡¡ 0.005 a::
o~--~---~--~--~-----~·, 1 O 20 30 40 so 60 70
Número de unidades por lado
Fig. 4.5 Gráfica de Erms en función del número
de unidades por lado de la capa de Kohonen
de la red en función a la distancia.
25~--~-----~-----~---~
1
20:
15 ~
1 O,
5 -
o--..i...._¡¡,...._.._._....._ ... +.._ .. ~.· _.. ... ____________ __ O 100 200 300 400 500 600 700 BOO 900 1000
Eventos de precipitación pluvial
Fig. 4.6 Estimación de la precipitación pluvial de
la red con salida en función a la distancia.
De hecho sólo se muestran tres eventos de precipitación observados en la figura
4.6, éstos presentan la mayor magnitud con relación a los eventos estimados. La figura
4.7 muestra a detalle la gráfica desde el evento 277 al evento 377.
76
20 -
15 -
10 -
!', 1:
5 ~ 1 1 \ ~ I i 1 1
~~ Jt ' Q .,_. 1lf' l,;:113*'1+:Es n~**'*'*~~~ -. .... .-... ~,e.¡111111oEW;l!•iti.etlleiEI Jlei:e.:i,e~ l(+3i l~al ~ª*' ~ffl¡~ .. '**fl;CUu
280 290 300 310 320 330 340 350 360 370 E1.entos de precipitación plu'.1al
Fig. 4.7 Gráfica desde el evento de precipitación pluvial 277 al 377 caso l.
Se observa en la figura 4.7, que el modelo estimó con valores menores (línea con
asterisco) los eventos de precipitación observados (línea continua) y en la figura 4.6 se
observa que algunos eventos fueron estimados en donde no se observó precipitación
pluvial.
El comportamiento de la red con valor de salida en función de la distancia, se debe a
que en la primera capa se clasifican eventos en función a los cinco parámetros de
entrada y algunos eventos que pertenecen a la misma clase pueden ser eventos en
donde se presenta precipitación y donde no se presentó ésta.
Lo anterior explica el hecho de que donde no hubo precipitación observada la red
estima eventos de precipitación.
Por otro lado donde se observó precipitación, la red estimó precipitación pero con un
valor menor.
Si se considera que la segunda capa se entrena generando un valor promedio de los
valores de salida deseados y si la primera capa agrupó eventos de lluvia y no lluvia en la
misma clase, se puede entender lo que provocó que el valor de salida estimado fuese
menor al observado.
77
4.4.2 CASO 11: RED CON VALOR DE SALIDA DE INTERPOLACIÓN LINEAL
La tabla 4.3 muestra los resultados del modelo, del factor de correlación ( CORR) y la
raíz cuadrada del error cuadrado medio ( Erms) a distintos tamaños de la red en la capa
Kohonen, para el conjunto de entrenamiento.
La tabla 4.4, muestra los resultados para el conjunto de validación. La selección del
número de unidades de la capa Kohonen, se realizó de la misma forma que el caso
anterior.
En este experimento se observó un comportamiento similar al anterior. Es decir, al
aumentar el número de unidades, el factor de correlación mejora. Sucede lo mismo con
la raíz cuadrada del error cuadrado medio. Adicionalmente, se observó que el factor de
correlación resulta más adecuado para el análisis, ya que presenta mayor sensibilidad a
los cambios de tamaño.
Al igual que en el caso anterior, la red memoriza mejor a medida que se agregan
unidades a la capa de Kohonen. El número de 70x70 unidades es igual a 4900
unidades, que es casi cinco veces mayor al de patrones del conjunto de entrenamiento,
que fue igual a 1046 patrones.
Ahora bien, si comparamos los resultados del experimento de la red anterior contra
los resultados de este experimento, se observa de las tablas 4.1 y 4.3, que la red con
salida en función de la distancia memoriza mejor en redes con el mismo número de
unidades en la capa de Kohonen.
Al observar los resultados que se muestran en la tabla 4.4, como en todos los casos
anteriores, el factor de correlación discriminó mejor entre los diferentes tamaños de red.
El mejor desempeño en los experimentos, se obtuvo en la red con un tamaño de 60
por 60 unidades, con un factor de correlación de 0.397, que también se encuentra
dentro del rango de resultados del trabajo de Hsu, entre 0.2 y 0.6 [Hsu et al, 1997a] y
que además es mejor al de 0.23 obtenido con la red del caso anterior.
Sin embargo, se requiere un mayor número de unidades, lo cual hace a la red más
lenta en su operación. Ahora bien en casi todos los tamaños de la red se tuvo un mejor
desempeño que al usar el modelo de red en función a la distancia (excepto para 20 x 20
y 40 x 40 unidades).
78
Tamaño de la capa CORR Erms
Kohonen
8x8 unidades 0.349 0.009
16x16 unidades 0.416 0.009
20x20 unidades 0.458 0.009
30x30 unidades 0.461 0.009
40x40 unidades 0.670 0.007
50x50 unidades 0.694 0.007
60x60 unidades 0.713 0.007
70x70 unidades 0.829 0.006
Tabla 4.3 Respuesta de la red con salida de interpolación
lineal al conjunto de entrenamiento.
Tamaño de la capa CORR Erms
Kohonen
8x8 unidades 0.241 0.023
16x16 unidades 0.246 0.023
20x20 unidades 0.228 0.023
30x30 unidades 0.267 0.023
40x40 unidades 0.225 0.023
50x50 unidades 0.289 0.023
60x60 unidades 0.397 0.022
70x70 unidades 0.342 0.022
Tabla 4.4 Respuesta de la red con salida de interpolación
lineal utilizando el conjunto de validación.
En el caso del patrón de prueba, la red respondió mejor con un tamaño de 60 por 60
unidades, que equivale a 3600 unidades en total. Es decir, un número tres veces mayor
a los 1046 patrones del conjunto de entrenamiento, lo cual no es deseable ya que el
número de unidades se desea que sea menor al número de patrones.
La figura 4.8 muestra una gráfica del factor de correlación en función del número de
unidades en una dimensión de la capa de Kohonen en la red con salida de interpolación
lineal. 79
La línea continua de la figura 4.8 muestra la respuesta de la red al conjunto de
entrenamiento y la línea discontinua corresponde a la respuesta de la red al conjunto de
validación.
e: ·O
0.9
o.a
0.7
-~ 0.6
] 8 0.5 «> 'O i 0.4
LL 0.3
0.2
0.1
10 20 30 40 50 60 Número de unidades por lado
Fig. 4.8 Factor correlación en función del número
de unidades por lado en la capa de Kohonen
de la red con salida de interpolación lineal.
70
Se observa en la figura 4.8 que a un mayor número de unidades la red responde
mejor al conjunto de entrenamiento; no sucede lo mismo con el conjunto de validación
ya que a tamaños superiores de 60x60 unidades el desempeño no mejora.
El mejor desempeño de la red se obtuvo en la red con un tamaño de 60 por 60
unidades, con un factor de correlación de 0.397; éste se mantuvo dentro del rango de
resultados del trabajo de Hsu , entre 0.2 y 0.6 [Hsu et al, 1997a].
La figura 4.9, muestra la raíz cuadrada del error cuadrado medio ( Erms }, en función
al número de unidades por lado en la capa de Kohonen para la red con salida de
interpolación lineal.
80
Se observa en la figura 4.9, que al aumentar el número de unidades de la capa de
Kohonen, la raíz cuadrada del error cuadrático medio ( Erms) disminuye para el caso de
la respuesta al conjunto de entrenamiento (línea continua).
En la figura 4.9 se observa que no hay cambios significativos de la raíz cuadrada del
error cuadrado medio ( Erms ), al modificarse el número de unidades de la capa de
Kohonen, en respuesta al conjunto de validación (línea discontinua).
0 0.02 ~ i5 Q)
E o -e, e! "g 0.015-:, u
g Q)
ai -c 0.01 · ro
-e, e! -e, ro :, u
-~ 0.005 · o::
10 20 30 40 50 60 70 Número de unidades por lado
Fig. 4.9 Gráfica de Erms en función del número
de unidades por lado de la capa de Kohonen
para la red con salida de interpolación lineal.
A partir de los resultados experimentales se utilizó la red de 60 x 60 unidades.
Debido a la disponibilidad de imágenes, se utilizaron los meses de agosto y octubre del
año de 1999.
La figura 4.1 O muestra los resultados de estimación de la red al conjunto de
validación.
81
La respuesta de la red en la figura 4.1 O se muestra graficada con la línea de
asteriscos y la línea continua muestra los valores observados; se graficaron 1046
eventos. no se incluyó la fecha ya que no se contó con las imágenes en la continuidad
requerida.
20
i
5' r
1 ___ I t 0......, ... -.i._ ... ._llil!ii!!illli!il~ .......... ----.,.IIMiliii----.._....._ O 100 200 300 400 500 600 700 800 900 1000
Ewntos de precipitación pluvial
Fig. 4.1 O Estimación de la precipitación pluvial de
la red con salida de interpolación lineal.
Se muestran tres eventos de precipitación observados en la figura 4.1 O, éstos
presentan la mayor magnitud con relación a los eventos estimados. La figura 4.11
muestra a detalle la gráfica desde el evento 277 al evento 377.
Se observa en la figura 4.11, que el modelo estimó con valores menores (línea con
asterisco) los eventos de precipitación observados (línea continua) y en la figura 4.1 O se
observa que algunos eventos fueron estimados en donde no se observó precipitación
pluvial.
El comportamiento de la red con valor de salida de interpolación lineal, podría
explicarse a que cuando la primera capa fue entrenada se clasificaron eventos en
función a los cinco parámetros de entrada y algunos eventos que pertenecían a la
misma clase podrían ser eventos en donde se presentó precipitación y donde no se
presentó ésta. 82
1 1
20-1
5¡ 1
11 ,''1
Eventos de precipitación plu.;a1
Fig. 4.11 Gráfica desde el evento de precipitación pluvial 277 al 377 caso 11.
Lo anterior explica el hecho de que donde no hubo precipitación observada la red
estima eventos de precipitación ya que dicho dato fue clasificado como un evento de
lluvia. Además donde se observó precipitación, la red estimó precipitación pero con un
valor menor ya que la segunda capa promedia los valores de salida esperada durante su
entrenamiento.
Si se considera que la segunda capa se entrena generando un valor promedio de los
valores de salida deseados y si la primera capa agrupó eventos de lluvia y no lluvia en
la misma clase, se puede entender que eso provocó que el valor de salida estimado
fuese menor al observado.
4.5 DISCUSIÓN
En este trabajo fue necesario trabajar con la mayor resolución posible, ya que en los
períodos en los que se entrenaron y validaron los modelos se tiene lo siguiente: las
lluvias son de alta intensidad, de duración breve y localizadas en áreas reducidas.
83
Lo relativo a la intensidad de las lluvias y a la breve duración de éstas, se observa
en las gráficas 4.6, 4.7, 4.10 y 4.11.
A partir de los resultados de los dos modelos, puede observarse que se tiene un
mejor desempeño en la red con salida de interpolación lineal, lo cual se ya se esperaba
a partir de los resultados del capítulo anterior y considerando el factor de correlación
como parámetro de evaluación.
En conclusión, el factor de correlación discriminó mejor entre los diferentes tamaños
de red si se compara con el parámetro raíz cuadrada del error promedio elevado al
cuadrado, lo cual puede explicarse debido a que se incluyeron pocos eventos de lluvia,
si además los valores de error elevados al cuadrado se promedian se obtienen valores
muy pequeños del factor Erms , considerando que los modelos acertaron la mayor parte
de las veces que no hubo lluvia.
Ambas redes dieron resultados con valores dentro del rango de los resultados
obtenidos en trabajos anteriores y con resoluciones mayores; además dichos trabajos
se habían calibrado con datos de radar, lo que permite determinar la precipitación
pluvial promedio por pixel en una imagen.
En este trabajo se utilizaron datos de estaciones meteorológicas y se supuso que la
precipitación medida era igual al promedio de ésta por cada pixel.
Lo anterior introduce una posible fuente de errores, considerando que en verano las
precipitaciones están localizadas en regiones pequeñas.
La red que obtuvo mejores resultados, lo hizo para un número de unidades tres
veces mayor al tamaño del patrón lo cual no es muy conveniente.
Esto es, si dicha relación se mantuviese, se necesitaría un número mayor de
patrones y por lo tanto crecería mucho la red; provocando una mayor consumo de
tiempo para su operación y entrenamiento.
Una forma de evitar el crecimiento de la red, podría ser a partir de la modificación de
la arquitectura de la red.
Una modificación sería evitar la utilización de un parámetro constante que conecta la
capa de Kohonen con la capa de Grossberg y utilizar una función de aproximación
polinomial que ajustase los valores de salida, aunque éstos correspondan a eventos
donde haya lluvia y no lluvia.
84
Surge la pregunta ¿cómo definir a priori el tamaño de la red?. A partir de los
resultados obtenidos, lo que se puede concluir es que hay que obtenerlo de forma
experimental o bien utilizar una arquitectura que lo determine, como el caso de las
redes neuronales de resonancia adaptativa.
Otro aspecto que resalta del trabajo, es que en ambos modelos sucedió que a
mayor número de unidades la red memorizaba mejor, cosa que no sucedió con la
generalización donde después de un tamaño, el desempeño empeora.
Lo anterior implica que existe un tamaño óptimo para la red y que no
necesariamente a un mayor tamaño la red generalizará mejor.
85
5. CONCLUSIONES
5.1 CONCLUSIONES
En este trabajo se propusieron dos modelos híbridos que son variantes de la red de
propagación de conteo. Ambos modelos funcionaron adecuadamente con una función
de prueba tipo sombrero mexicano.
Ahora bien, el objetivo principal fue estimar la precipitación pluvial utilizando
imágenes satelitales de la banda infrarroja. Este objetivo se cumplió en la medida de
que los resultados obtenidos de ambos modelos estuvieron dentro del rango de otros
trabajos de investigación, con la desventaja de que ambos modelos se calibraron:
1) Con información que incluía pocos eventos de lluvia.
2) Apoyado en datos de estaciones terrenas con sensores simples.
3) Con una resolución mayor a la de otros trabajos.
La información utilizada en la calibración de ambos modelos incluyó pocos eventos
de precipitación, ya que las regiones de los Valle del Yaqui y Mayo no presentan lluvias
de manera frecuente.
Al disponerse de poca información de eventos de lluvia, se dificulta el proceso de
calibración, ya que la fortaleza de las redes descansa en poseer un conjunto de
entrenamiento adecuado.
Un conjunto de entrenamiento adecuado, debe de incluir la mayor cantidad de
clases de eventos posibles, a fin de que la red pueda generalizar.
86
Sin embargo; a pesar que los resultados que arrojaron ambas redes fueron
razonables, ya que la precipitación pluvial en breves períodos de tiempo es muy
variable y difícil de estimar con precisión sobre todo si consideramos que los eventos
fueron de tipo tormenta (alta intensidad), para estimar adecuadamente se requiere un
mayor nivel de correlación (al menos 0.7) y así poder utilizar los modelos de manera
confiable.
La información de las estaciones terrenas disponible para el proyecto, presentó la
desventaja de que se midieron los eventos de precipitación en un área de unos cuantos
centímetros y se supuso que era igual al promedio de precipitación de un pixel de la
imagen ( 16 km2).
El área de precipitación durante los períodos y regiones utilizadas pueden ser
menores al área de un pixel, lo que pudo haber generado una fuente de error y justificó
la utilización de la mayor resolución posible.
A partir de los resultados obtenidos, se puede concluir que la red de propagación de
conteo con salida de interpolación lineal se desempeña mejor que la red con salida en
función a la distancia, considerando los resultados que arroja en términos del factor de
correlación.
El factor raíz cuadrada del error cuadrático medio ( Erms) no se utilizó para evaluar
el desempeño, ya que no se observaron variaciones importantes de dicho parámetro
entre los diferentes tamaños de redes debido a que los conjuntos de entrenamiento
incluyeron pocos eventos de precipitación.
Se puede concluir, que el factor de correlación puede ser utilizado para evaluar el
desempeño de las redes propuestas cuando se dispone de pocos eventos de
precipitación.
Además, se puede concluir que a medida que se aumenta el número de iteraciones
para reducir la vecindad en la capa de Kohonen, se llega a un punto en el que no hay
mejoría en el desempeño. Lo que implica que se tiene que determinar
experimentalmente el tamaño óptimo de la red y así tener la red que funcione a la
mayor velocidad y que ocupe el menor espacio posible.
87
5.2 SUGERENCIAS PARA FUTUROS TRABAJOS
Con el fin de obtener una estimación más precisa de la precipitación pluvial, se
requiere calibrar los modelos con radares meteorológicos, con la idea de evitar la fuente
de error que implica medir con un sensor de una estación terrena.
Considerando, que la medición de una radar cubre un radio de 100 km y la de un
sensor de precipitación pluvial unos cuantos centímetros.
Otra alternativa sería realizar pruebas en otras regiones donde se tenga la
información requerida.
El ITSON está involucrado en un proyecto donde del 2002 al 2004 se establecerán
alrededor de 100 estaciones de medición de lluvia en la Sierra Madre Occidental. Estos
datos podrían utilizarse para suplir la falta de información de este trabajo.
Además, se podría probar la capacidad de los modelos para estimar precipitación en
períodos más largos. Es muy probable que el desempeño mejore ya que de alguna
manera los errores se promediarían; ya que ambos modelos subestimaron la
precipitación cuando ésta se presentó y estimaron eventos cuando éstos no se
presentaron.
Se podrían realizar algunas modificaciones en los modelos, de tal forma que en
lugar de que la conexión entre la capa de Kohonen y la de Grossberg sea un parámetro
de ganancia constante se podría utilizar un polinomio. Así, a pesar de que la capa de
Kohonen agrupase eventos de lluvia y no lluvia el polinomio permitiría ajustar los
valores
Otros trabajos podrían orientarse a utilizar información en tiempo real de satélites de
mayor frecuencia, o bien de estaciones terrenas con sistemas de comunicación para
recalibrar los modelos. Claro, que un sistema así eleva los costos del sistema. Sin
embargo, no habría que hacer grandes cambios al algoritmo, sólo se tendría que hacer
que el parámetro constante que conecta a una unidad de la capa Kohonen y la capa de
Grossberg fuese adaptativo (aprendizaje en linea).
También podría trabajarse con nuevos modelos para estimar la precipitación pluvial
por ejemplo aquellos que determinan automáticamente el número de unidades (ART2).
Ahora bien, si consideramos la gran cantidad de información que se tiene que procesar,
88
se sugieren modelos híbridos, ya que por lo general consumen menor cantidad de
tiempo en su entrenamiento.
En futuros trabajos se sugiere utilizar información de imágenes visibles o bien
mediciones terrestres de otros parámetros como la dirección e intensidad del viento, la
humedad relativa y la presión barométrica.
También es conveniente buscar extraer otras características de los datos de entrada
a las redes como medición de distancias, análisis de ondeletas, análisis factorial; a fin
de observar si mejoran los resultados.
89
ANEXO A
EXTRACCIÓN DE LA INFORMACIÓN DE LAS IMÁGENES
DE SATÉLITE
La información que genera el satélite GOES, es captada en el CPR. De hecho, cada
media hora se tiene un barrido de todo el hemisferio. Esta información, corresponde a
diferentes bandas de los sensores o medidores que tiene el satélite; una vez que la
información se recibe ésta es almacenada en cinta.
De la información en cinta se puede obtener un área definida (ya que no es
necesario tener los datos del hemisferio) así como la banda que se desee. Para este
proyecto, sólo se utilizó la información de la banda 5. De hecho, pudo haberse utilizado
la información de la banda 4 sin que hubiese gran diferencia, ya que ambas bandas son
muy cercanas en el espectro de frecuencia. Los datos de las bandas 4 y 5 son enteros
de diez bits de forma secuencial, donde cada dato es un píxel. Por lo tanto, para utilizar
la información, se tiene que conocer el número de filas y renglones del área para poder
utilizar la imagen, como se muestra en la figura A.1.
La imagen se tiene en forma secuencial en un archivo de datos enteros. Lo primero
que se hizo, fue leer dicho archivo y guardar los datos en un arreglo de 328 filas y 535
columnas. Posteriormente, los datos del arreglo se normalizaron en el rango de [0, 1] al
dividir los datos entre 1024 (21º).
90
50
100
150
200
250
300
50 100 150 200 250 300 350 400 450 500
Fig. A.1 Imagen infrarroja del noroeste de México
Una vez normalizada la información, se procedió a ubicar los datos que
correspondían a las estaciones terrenas, así como a los veinticuatro pixeles vecinos.
Para esto, se utilizó una función, ya que la imagen del satélite tiene una distorsión
provocada por la posición del satélite y la redondez del planeta.
Los datos de entrada a la función que sirve para ubicar las estaciones terrenas en el
archivo de imagen son la longitud y latitud; la salidas de la función son los números de
columna y renglón. A partir de la determinación, se obtuvo un arreglo de 5 x 5 datos.
Posteriormente, a partir de dicho arreglo se generaron los cinco datos utilizados por
el modelo.
Debido a que la información del satélite corresponde a un barrido con frecuencias de
media hora, se promediaron los datos para tener el promedio por hora, con la finalidad
de equiparar la frecuencia de medición de las estaciones terrenas y de esta forma tener
los datos de entrada y salida para calibrar los modelos.
En la figura A 1, se observa regiones en colores rojos y anaranjados, lo que indica
que las temperaturas son altas, por lo que seguramente no llueve.
Además se observan nubes en color azul, mientras más intenso es el color indica
que la temperatura es más baja en su parte superior, por lo que la probabilidad de que
precipiten es mayor. 91
La figura A.2 muestra otro ejemplo de una imagen del noroeste de Méxicos, en la
parte izquierda de la imagen se muestran cielos despejados.
100
150
200
250
300
50 100 150 200 250 300 350 400 450 500
Fig. A.2 Imagen con nubes en Sinaloa, Durango y
en la parte sur de Baja California Sur.
La imagen A.2 muestra nubes en los estados de Sinaloa, Durango y algunas en la
parte sur de estado de Baja California Sur.
Se observa que alrededor de las nubes el color tiende al azul verde, ya que la
temperatura no es tan baja.
En la figura A.3 se muestra un huracán acercándose a la península de Baja
California.
Los colores de la imagen son más claros que las anteriores e incluso no se observan
colores rojos o anaranjados, lo que indica temperaturas bajas.
92
50
100
150
200
250
300
50 100 150 200 250 300 350 400 450 500
Fig. A.3 Imagen de un huracán aproximándose
a la península de Baja California.
93
ANEXO B
DISEÑO DE CLASES
Los modelos se programaron en lenguaje C++, para eso se utilizó como base una
librería de clases desarrollada por Rogers [Rogers, 1997]. sin embargo fue necesario
desarrollar algunas clases ya que dicha librería sólo incluía las redes adalina, retro
propagación, mapas auto organizados y memorias asociativas bidireccionales; la
librería fue seleccionada debido a que se utilizó en su desarrollo un enfoque de diseño
orientado a objetos granular, ya que hay clases de unidades y de conexiones, lo cual
permite crear a partir de ellas otros tipos de redes.
A continuación se describirán sólo las clases que fueron diseñadas.
La clase GROSS_Node es derivada de la clase SON_Node, es utilizada en la
definición de la red de propagación de conteo y se muestra en la figura B.1; la clase
GROSS_Node define unidades en la capa de Grossberg.
class GROSS_Node : public SON_Node {
public:
};
GROSS_Node(int v_size=1, int e_size=O); 11 (NODE_ VALUE) virtual void Run(int mode); virtual void Learn(int mode); virtual char *Get_Name(void); virtual void Print(ofstream &out);
Fig. B.1 La clase GROSS_Node
94
La operación Run de la clase GROSS_Node, genera el valor de salida y como dato
de entrada tiene la posición de la unidad ganadora de la capa de Kohonen.
El dato de entrada mode permite ubicar la conexión entre la unidad ganadora de la
primera capa y la unidad de salida en la capa de Grossberg, el código se muestra en la
figura B.2.
void GROSS_Node::Run(int mode) {
Base_Link *link; in_links.Reset_ To_Head(); int cont=O; while( cont<mode)
{ in_links.Next(); cont++; }
link=in_links.Curr(); value[NODE_ VALUE]=link->Get_ Value(WEIGHT);
}
Fig. B.2 Operación Run de la clase GROSS_Node
La figura 8.3 muestra la operación Learn de la clase GROSS_Node, en el caso de la
red de propagación de conteo el valor de salida deseado se guarda en el valor de peso
de la conexión entre la unidad de la capa de Grossberg y la unidad ganadora de la capa
de Kohonen.
void GROSS_Node::Learn(int mode) {
Base_Link *link; in_links.Reset_ To_Head(); int cont=O; while(cont<mode)
{ in links.Next(); cont++; }
link=in_links. Curr(); link->Set_ Value(value[NODE_ VALUE],WEIGHT); }
Fig. 8.3 Operación Learn de la clase GROSS_Node
95
Las operaciones Get_Name y Print, no serán descritas ya que sólo se utilizan para
indicar el nombre de la clase y para imprimir la estructura.
La clase GROSS_Node, junto con otras clases es utilizada por la clase
COUNTER_Network para crear una red de propagación de conteo.
La figura 8.4 describe la clase COUNTER_Network; node_outputs define el número
de unidades en la capa de Grossberg y num_links_out el número de conexiones entre
la capa de Grossberg y la de Kohonen.
class COUNTER_Network: public SON_Network {
protected: int node_outputs; int num_links_out; 8ase_Node **G_node; 8ase_Link **links_out; virtual void Create_Network(void);
public:
};
COUNTER_Network(char filename[]); COUNTER_Network(int num_input, int num_output, int x_dim, int y_dim,
double init_lr, double final_lr, int init_ns, int ns_dec_int, long iterations);
COU NTER _ Network(void); -COUNTER_Network(void); virtual void Set_ Output(Pattern *input_pattern); virtual double Get_ Output(int id); virtual void Save(ofstream &outfile); virtual void Load(ifstream &infile); virtual void Run_total(int mode=O); virtual void Learn_gross(int mode=O); virtual char *Get_Name(void); virtual int Get_Output_Count(void);
Fig. 8.4 La clase COUNTER_Network
Los apuntadores de doblemente referenciados G_Node y links_out, permite la
signación dinámica para arreglos de unidades y conexiones.
La figura 8.5 muestra a los constructores y destructores de la clase
COUNTER_Network.
96
Los constructores de la clase COUNTER_Network, permiten crearla a partir de un
archivo o bien definiendo sus parámetros, en el destructor se libera la memoria
asignada para las unidades de salida y las conexiones de salida.
COUNTER_Network::COUNTER_Network( char filename[]) : SON_Network() { ifstream infile(filename); Load(infile); infile.close() ; };
// ----------------------------------------------------------------------------COUNTER_Network::COUNTER_Network( int num_inputs, int num_outs, int x_dim, int y_dim, double init_lr, double final_lr, int init_ns, int ns_dec_int,long iterations): SON _Network()
{ init_learning_rate=init_lr; final_learning_rate=final_lr; learning_rate=init_lr; init_neigh_size=init_ns; neigh_decrement_interval=ns_dec_int; num _iterations=iterations; iteration=O; num_nodes=num_inputs; node _ outputs=num _ outs; neighborhood=init_ neigh _ size; x_size=x_dim; y_size=y_dim; Create_Network(); };
1/-----------------------------------------------------------------------------COUNTER_Network::COUNTER_Network( void): SON_Network()
{ num_nodes=O; num_links=O; node_outputs=O;}; 1/-----------------------------------------------------------------------------COUNTER_Network: :-COUNTER_Network( void)
{ for(int i=O;i<node_outputs;i++)
delete G_node[i]; delete []G_node; for(int i=O;i<num_links_out;i++)
delete links_out[i]; delete []links_out; };
Fig. 8.5 Constructores y destructor de la clase COUNTER_Network
97
La figura 8.6 muestra las operaciones que permiten obtener los valores de salida de
la red o bien ubicar un valor de salida en la red de propagación de conteo.
void CO U NTER _ Network:: Set_ Output(Pattern *input_pattern) {
for(int i=O; i<input_pattern->Out_Size();i++) G_node[i]->Set_ Value(input_pattern->Out(i),NODE_ VALUE);
} 1/----------------------------------------------------------------------------double COUNTER_Network::Get_Output(int id)
{ return G _node[id]->Get_ Value(NODE_ VALUE);
}
Fig. 8.6 Operaciones Set_ Output y Get_ Output
La figura 8.7 muestra las operaciones Run_total, Learn_gross y Get_Output_Count.
La operación Run_total, realiza una corrida de la red de propagación de conteo,
Learn_gross realiza el aprendizaje de la capa de salida.
void COUNTER_Network::Run_total( int mode) { int posicion; Run(); posicion=Get_ Value(COMPOSITE); for(int i=O;i<node_outputs;i++)
G_node[i]->Run(posicion+(i*x_size*y_size)); }
1/-----------------------------------------------------~---------------------void COUNTER_Network::Learn_gross( int mode)
{ int posicion; posicion=Get_ Value(COMPOSITE); for(int i=O; i<node _ outputs; i++)
G_node[i]->Learn(posicion+(i*x_size*y_size)); }
/1----------------------------------------------------------------------------int COUNTER_Network::Get_Output_Count(void)
{ return node_outputs; }
Fig. 8.7 Operaciones Run_total, Learn_gross y Get_Output_Count
98
La redes de propagación de conteo modificadas, tanto como la de salida en función
a la distancia como la de interpolación lineal tienen pocas diferencias entre sí, por lo
que sólo se explicará la de salida con interpolación lineal.
La figura 8.8 muestra la definición de la clase CONTMD_Link, la conexión puede
almacenar dos valores.
class CONTMD_Link: public 8ase_Link { public:
CONTMD _Link( int mode=2); virtual void Save( ofstream &outfile ); virtual void Load( ifstream &infile ); virtual char *Get_Name( void ); };
Fig. 8.8 Clase CONTMD _Link
La figura 8.9 muestra al constructor de la clase CONTMD _Link.
CONTMD_Link::CONTMD_Link(int mode): 8ase_Link(mode) { value[WEIGHT]=Random(-1.0, 1.0); }
Fig. 8.9 Constructor de la clase CONTMD_Link
La figura 8.1 O muestra la definición de la clase KOH_Node.
class KOH_Node: public SON_Node { public:
KOH_Node( int v_size=3, int e_size=O ); // (NODE_VALUE, LEARNING_RATE,ACTIVE)
KOH_Node( float Ir); virtual char *Get_Name( void );
};
Fig. 8.10 Clase KOH_Node
La clase KOH Nade, se utiliza para definir unidades en la capa de Kohonen y puede
almacenar tres valores.
Los constructores de la clase KOH_Node se muestran en la figura 8.11.
99
II Constructor KOH_Node::KOH_Node( int v_size, int e size ): SON_Node(v_size,e_size)
{value[ACTIVE]=O. O;};
/1-----------------------------------------------------------------------------KOH_Node::KOH_Node( float lr):SON_Node(3,0)
{ value[LEARNING _RA TE]=lr; value[ACTIVE]=O.O; };
Fig. B.11 Constructores de la clase KOH_Node
La figura B.12 muestra la definición de la clase CONTMDI_Node, la cual es utilizada
para las unidades en la capa de salida y es derivada de la clase GROSS_Node.
class CONTMDI_Node : public GROSS_Node {
public: CONTMDI_Node(int v_size=3, int e_size=O); // (NODE_ VALUE,
};
virtual void Run(int mode); virtual void Learn(int mode); virtual char *Get_Name(void);
II POSITION1 ,POSITION2)
Fig. B.12 Clase CONTMDI_Node
La figura B.13 muestra el constructor de la clase CONTMDI_Node, se observa que I
clase es derivada de la clase GROSS Nade.
CONTMDI_Node::CONTMDI_Node(int v_size,inte_size) :GROSS_Node(v_size,e_size){};
Fig. B.13 Constructor de la clase CONTMDI_ Node
En la figura B.14 se muestran la operación Run; definida para la clase
CONTMDI Nade.
Con los valores de las posiciones de las unidades ganadoras de la capa de
Kohonen, se ubican las dos conexiones a dichas unidades con la unidad de salida y se
aplica el algoritmo de interpolación lineal.
100
void CONTMDI_Node::Run(int mode) {
Base_Link *link; int pos1 ,pos2; double distance1 ,distance2; double weight1 ,weight2; in_links.Reset_ To_Head(); int cont=O; pos1=(int)Get_ Value(POSITION1); while(cont<pos1) // Find position 1
{ in_links.Next(); cont++; }
link=in_links.Curr(); distance1 =link->ln_ Value(); weight1 =link->Get_ Value(WEIGHT); in_links.Reset_ To_Head(); cont=O; pos2=(int)Get_ Value(POSITION2); while(cont<pos2) // Find position 2
{ in_links.Next(); cont++; }
link=in_links.Curr(); distance2=1ink->ln_ Value(); weight2=1ink->Get_ Value(WEIGHT); if(distance2==0)
value[NODE_ VALUE]=weight1; else
value[NODE_ VALUE]=distance1*((weight2-weight1 )/(distance1 +distance2))+weight1; }
Fig. B.14 Operación Run de la clase CONTMDI_Node
La figura B.15 muestra la operación Learn de la clase CONTMDI_Node.
101
void CONTMDI_Node::Learn(int mode) {
Base_Link *link; in_links.Reset_ To_Head(); int cont=O; double weight,counter; while( cont<mode)
{ in_links.Next(); cont++; }
link=in_links.Curr(); weight=link->Get_ Value(WEIGHT); weight=weight+value[NODE_ VALUE]; link->Set_ Value(weight,WEIGHT); counter=link->Get_ Value(COUNTER); counter=counter+1.0; link->Set_ Value(counter,COUNTER); }
Fig. B.15 Operación Learn de la clase CONTMDI_Node
La figura B.16 muestra la clase CONTMDI_Network.
class CONTMDI_Network: public COUNTER_Network {
protected: int min_x1 ,min_y1;
virtual void Create_Network(void); public:
};
CONTMDI_Network(char filename[]); CONTMDI_Network(int num_input, int num_output, int x_dim, int y_dim,
double init_lr, double final_lr, int init_ns, int ns_dec_int, long iterations);
CONTMDI_Network(void); virtual void Run_total(int mode=O); virtual void Learn_gross(int mode=O); virtual void Marca(void); virtual void Actual(void); virtual char *Get_Name(void);
Fig. B.16 Clase CONTMDI_Network
La figura B.17 muestra la operación Create_Network.
102
void CONTMDI_Network::Create_Network(void) {
node=new Base_Node*[num_nodes]; // Create Pointers to Input Nodes num_links=num_nodes*x_size*y_size; K_node=new Base_Node**[x_size]; // Create Kohonen Layer Pointers for (int x=O; x<x_size; x++)
K_node[x]=new Base_Node*[y_size]; link=new Base_Link*[num_links]; // Create Pointers to Links for (int i=O; i<num_nodes; i++) // lnstantiate Input Nodes
node[i]=new lnput_Node; int curr=O; for (int x=O; x<x_size; x++)
}
for (int y=O; y<y_size; y++) { K_node[x][y]=new KOH_Node; // lnstantiate Kohonen Layer Nade for (int i=O; i<num_nodes; i++) // Connect Kohonen Layer nade
}
{ // to each Input Node link[curr]=new SON_Link; Connect(node[i], K_node[x][y], link[ curr++ ]); }
G_node=new Base_Node*[node_outputs]; for(int i=O;i<node_outputs;i++) // Create Grossberg layer
{ G_node[i]=new CONTMDI_Node; G_node[i]->Set_ Value(O.O,NODE_ VALUE);
} num_links_out=node_outputs*x_size*y_size; curr=O; links _ out=new Base _Link*[num _links _ out]; for(int i=O;i<node_outputs;i++)
{ for(int x=O;x<x_size;x++)
for(int y=O;y<y_size;y++) {
}
links _ out[ curr]=new CONTMD _ Link; links_out[curr]->Set_ Value(O.O,WEIGHT); links_out[curr]->Set_ Value(O.O,COUNTER); Connect(K_node[x][y],G_node[i],links_out[curr++]); }
Fig. B.17 Operación Create_Network.
103
La creación de la red implica asignar espacios para unidades y conexiones;
posteriormente, se conectan las unidades y las conexiones.
La figura 8.18 muestra los constructores de la clase CONTMDI_Network.
CONTMDI_Network::CONTMDI_Network( char filename[]) : COUNTER_Network() { ifstream infile(filename ); Load(infile); infile.close(); };
/1----------------------------------------------------------------------------CONTMDI_Network::CONTMDI_Network( int num_inputs, int num_outs, int x_dim,
int y_dim,double init_lr, double final_lr, int init_ns, int ns_dec_int,long iterations):COUNTER_Network()
{ init_learning_rate=init_lr; final_learning_rate=final_lr; learning_rate=init_lr; init_neigh_size=init_ns; neigh _ decrement_interval=ns _ dec _int; num_iterations=iterations; iteration=O; num _ nodes=num _inputs; node_outputs=num_outs; neighborhood=init_neigh _ size; x_size=x_dim; y_size=y_dim; Create_Network(); };
1/-----------------------------------------------------------------------------CONTMDI_Network::CONTMDI_Network( void ) : COUNTER_Network()
{ num_nodes=O; num_links=O; node_outputs=O;};
Fig. 8.18 Constructores de la clase CONTMDI_Network
Los constructores de la clase CONTMDI_Network, son por un lado a través de un
archivo o a partir de la definición de parámetros de la red.
La operación Run_total ejecuta la operación de la red CONTMDI_Network y su
programación se muestra en la figura 8.19.
104
void CONTMDI_Network::Run_total( int mode) { int x,y; int pos1 ,pas2; dauble min_value=99999.0; dauble nade_value; for (x=O; x<x_size; x++) 11 for each nade in Kahanen layer
for (y=O; y<y_size; y++) { K_nade[x][y]->Run(); node_value=K_nade[x][y]->Get_ Value(NODE_ VALUE); if ((nade_ value<min_ value )&&( (int)K_ node[x][y]->Get_ Value(ACTIVE)))
{
}
min_ value=node _ value; min_x=x; min_y=y; }
min_ value=99999.0; for (x=O; x<x_size; x++) // for each nade in Kahanen layer
for (y=O; y<y_size; y++) { node_value=K_nade[x][y]->Get_ Value(NODE_ VALUE); if ( (node _ value<min _ value )&&( (int)K_nade[x][y]->Get_ Value(ACTIVE)))
{
}
if((x!=min_x)ll(y!=min_y)) {
} }
min_value=node_value; min x1=x·
- 1
min_y1=y;
pos 1 =Get_ Value(COMPOSITE); pos2=min_x1 "'y_size+min_y1; for(int i=O;i<nade_outputs;i++)
}
{ G _ node[i]->Set_ Value(pos 1, POSITION 1 ); G_node[i]->Set_ Value(pos2,POSITION2); G_node[i]->Run();
}
Fig. B.19 Operación Run_total
105
Primero se ubican a las dos unidades ganadoras de la capa de Kohonen y
posteriormente, se ejecuta la corrida de la unidad de salida que conecta con ambas
unidades.
La figura B.20 muestra las operaciones Learn_gross, Actual y Marca.
void CONTMDI_Network::Learn_gross( int mode) { int posicion; posicion=Get_ Value(COMPOSITE); for(int i=O;i<node_outputs;i++)
G_node[i]->Learn(posicion+(i*x_size*y_size)); }
// ----------------------------------------------------------------------------void CONTMDI_Network::Actual(void)
{ double weight,counter; int curr=O; for(int i=O; i<node _ outputs; i++)
{
}
for(int x=O;x<x_size;x++) for(int y=O;y<y_size;y++) {
}
weight=links _ out[ curr]->Get_ Value(WEIGHT); counter=links_out[curr]->Get_ Value(COUNTER); if( counter!=O.O)
{ weight=weight/counter;
links_out[curr]->Set_ Value(weight,WEIGHT); }
curr++; }
/1-----------------------------------------------------------------------------void CONTMDI Network::Marca(void)
{ int x,y; x=(int)Get_ Value(ROW); y=(int)Get_ Value(COL); K_node[x][y]->Set_ Value(1.0,ACTIVE); }
Fig. B.20 Operaciones Learn_gross, Actual y Marca.
106
Las tres operaciones descritas en la figura 8.20, se utilizan en el aprendizaje de la
segunda capa.
La operación Learn_gross, define la forma en que se entrena la segunda capa; la
operación Actual, actualiza los valores de peso de las conexiones y la operación Marca
pone una bandera indicando que una unidad de la capa de Kohonen fue ganadora.
La figura 8.21 muestra un fragmento de código en el que se observa como se
utilizaron las clases diseñadas para la red con salida de interpolación lineal.
// Define Objeto CONTMDI_Network a( input_nodes, output_nodes, x_size,y_size,
initial_learning_rate,final_learning_rate,initial_neigh_size, neighborhood _ decrement_interval, num _iterations)
// Entrena capa de Kohonen for (iteration=O; iteration<num_iterations; iteration++)
{ for (int i=O; i<pattern_count; i++)
{ a.Set_ Value(data[i]); // Set Input Node Values a.Run(); a.Learn(); }
a.Epoch(); if (display_interval!=O && iteration%display_interval==O)
cout << 11 lteration: 11 << iteration << 11
• Learning Rate: 11 << a.Get_Learning_Rate() << 11 Neighborhood: 11 << a.Get_Neighborhood_Size() << endl;
if (frame_rate!=O && iteration%frame_rate==O) a.Print(ofile); }
if (frame_rate!=O) ofile.close(); // Entrena capa de Grossberg for(int i=O;i<pattern_count;i++)
{ a.Set_ Value(data[i]); a.Set_ Output(data[i]); a.Run(); a.Marca(); a.Learn_gross(); }
// Coloca valores de entrada II Coloca valores de salida // Ejecuta la primera capa
// Marca a la unidad ganadora ACTIVE=1 // Aprendizaje de la capa de Grossberg
a.Actual(); //Actualiza los pesos 8.21 Segmento de programa que utiliza la clase CONTMDI_Network
107
En este anexo no se muestra el diseño de las clases para la red con salida en
función a la distancia ya que son bastantes similares a la red con salida de interpolación
lineal.
El código puede solicitarse a la dirección de correo electrónico [email protected].
En la figura B.22 se muestra un diagrama de jerarquía de clases para las redes de
propagación de conteo modificada con salida en función a la distancia y con salida de
interpolación lineal.
Input Nade
KOHNade
CONTMDI Nade
Base Nade
CONTMDD Nade
CONTMDI Netwark
Base Network
SON Netwark
COUNTER Netwark
CONTMDD Netwark
Base Link
AD AUNE Link
SON Link
CONTMD Link
Fig. B.22 Diagrama de las clases para modelos propuestos
Las clases de la figura que incluían la biblioteca de Rogers son: Base Nade, SON
Nade, Input Node, Base Network, ADALINE Network, SON Network, Base Link,
ADALINE Link y SON Link.
Las otras ocho clases fueron desarrolladas, a fin de poder probar los modelos
propuestos en este trabajo.
108
BIBLIOGRAFÍA
Arkin, P. A., Meisner, B. N. (1987). The relationship between large-scale convective rainfall and cold cloud over the western hemisphere during 1982-84.Monthly Weather Review, Vol. 115, No. 1, 51-74.
Belward A. S., Valenzuela C. R. (1991). Remate Sensing and Geographical lnformation Systems of Resource Management in Developing Countries. Netherlands Kluwer Academic Publishers, 506 p.
Conrads, P. A., Roehl, E. A. (1999). Comparing Physics-Based and Neural Networks Models far Simulating Salinity, Temperature, and Dissolved Oxygen in a Complex, Tidally Affected River. Proceedings of the 1999 South Carolina Enviromental Conference, March 15-16, Myrtle Beach, SC.
Dingman, S. L. (1994). Physical Hidrology. USA: Mcmillan College Publishing Company, 575 p.
Freeman, J. A., Skapura, D. M. (1991). Neural Networks (Algorithms, Applications, and Programming Techinques). USA: Addison Wesley Publishing Company, 401 p.
Griffith, G. C., Woodley, W. L., Grube, P. G., Martin, D. W., Stout, J., & Sikdar, D. N. (1978). Rain estimation from geosynchronous satellite imagery - visible and infrared studies. Monthly Weather Review, Vol. 106, 1153-1171.
Han, H., Felker, P. (1997). Estimation of daily soil water evaporation using an artificial neural network. Journal of Arid Environments, 37, 251-260.
Haykin, S. (1994). Neural Networks: A comprehensive foundation. USA: Maccmillan College Publishing Company, 696 p.
Hecht-Nielsen, R. (1991). Neurocomputing. USA: Addison Wesley, 431 p. Hertz, J., Krogh, A., & Palmer, R. G. (1991). lntroduction to the theory of neural
computation. USA: Perseus Books Publishing, L. L. C., 327 p. Hsu, K. L., Sorooshian, S., Gao, X., & Gupta, H. V. (1997a). Rainfall estimation from
satellite infrared imagery using artificial neural networks. Technical Report: HWR Nº 97-01 O, Department of Hidrology and Water Resources, The University of Arizona, Tucson AZ.,. 234 p.
Hsu, K. L., Sorooshian, S., Gao, X., & Gupta, H. V.(1998). Rainfall estimation using an artificial neural network. First Conference on Artificial lntelligence, Phoenix AZ. by American Meteorological Society. Bastan MA.
Hsu, K. L., Sorooshian, S., Gao, X., & Gupta, H. V. (1999). Estimation of physical variables from multichannel remotely sensed imagery using a neural network: Application to rainfall estimation. Water Resources Research, Vol. 35, No. 5, 1605-1618.
Hsu, K. L., Sorooshian, S., Gao, X., & Gupta, H. V. (1997b). Precipitation estimation from remotely sensed information using artificial neural networks. Journal of Applied Meteorology, Vol. 36, No. 9, 1176-1190.
Hsu, K. L., Sorooshian, S., & Gupta, H. V. (1995). Artificial neural network modeling of the rainfall-runoff process. Water Resources Research, Vol. 31, No. 10, 2517-2530.
109
Hsu, K. L., Sorooshian, S., Gao, X., & Gupta, H. V. (1997c) Application of a Recurrent Neural Network to Rainfall-Runoff Modeling. ASCE Annual Conference, April 7-1 O, Houston, Texas.
http://www.oso.noaa.gov/goes/gvar conversion.htm lbarra, P. F. (1994). Estimación de precipitación en el noroeste de México utilizando
imágenes del satélite GOES. Tesis de maestría, Instituto Tecnológico de Sonora, 146 p.
Kazmann, R. G. (1974). Hidrología Moderna. México, Compañía Editorial Continental, 19, 420 p.
Kohonen, T. (2d edition). (1997). Self-Organizing Maps. Germany: Springer-Verlag Berlín Heidelberg, 426 p.
Minsky, M. L., Papert, S. A. (Expanded edition). (1988). Perceptrons.USA: MIT Press, 292 p.
Rogers, J. (1997). Object-Oriented Neural Networks in C++. USA: Academic Press, 310 p. Rumelhart, D. E., McClelland, J. L. (1986). POP RESEARCH GROUP. Parallel
Distributed Processing (Explorations in the microstructure of cognition) Volume 1: Foundations. USA, Cambridge MA: MIT Press, 547 p.
Snijders, F. L. (1991). Rainfall monitoring based on Meteosat data a comparison of techniques applied to Western Sahel. lnternational Journal of Remate Sensing, Vol. 12, No. 6, p. 1331-1347.
Stevens, C. F. (1979). The neuron. Scientific American, 241, 54-56.
110