IV Simposio Nacional de Predicci≤n

Memorial "Alfonso Ascaso"

Madrid 15-19 Abril 1996

I.N.M.


TECNICAS DE REDES NEURONALES APLICADAS AL RECONOCIMIENTO Y CLASIFICACION DE PIXELES DE IMAGENES DE SATELITE

Miguel Angel Martínez Rubio1
Mercedes Velázquez Pérez2

1 Servicio de Teledetección (I.N.M.)
2 Oficina de Proyectos (I.N.M.)

RESUMEN

Las técnicas de redes neuronales son una de las técnicas objetivas más utilizadas en el reconocimiento automático de patrones y en la clasificación de datos de sensores remotos. Estas técnicas son útiles en el análisis no lineal de los procesos atmosféricos. En este artículo se mostrará el proceso de diseño, construcción, entrenamiento y aplicación de dos tipos de redes con diferente tipo de entrenamiento (supervisado y no supervisado) a una imagen procedente del satélite NOAA-TIROS. A cada "pixel" de la imagen se le asignará de forma automática un valor que representa: tierra, mar o la clase de nube a la que pertenece si es un "pixel" nuboso.

1.    Introducción.

Entre las razones de la amplia utilización de las redes neuronales, se pueden destacar las siguientes:

- Teóricamente pueden determinar cualquier función, por lo que son adecuadas en aplicaciones que no son fácilmente descritas analíticamente.

- Excepto los patrones de entrada, no es necesario suministrar información adicional.

- Se pueden aplicar a cualquier tipo de patrones y a cualquier tipo de datos.

- Se obtienen buenos resultados con datos ruidosos, como los encontrados frecuentemente en meteorología.

- No se hacen hipótesis acerca de la distribución estadística de las variables de entrada.

- Después de entrenadas son extremadamente rápidas y fácilmente implementables en arquitecturas paralelas.

Hay cientos de diferentes modelos de redes neuronales descritos en la literatura. Las redes difieren unas de otras en la topología y en el tipo de entrenamiento. De entre todos ellos hemos seleccionado dos redes: una con entrenamiento supervisado (descrita en el apartado 2) y otra con entrenamiento no supervisado (descrita en el apartado 3).

2.    Entrenamiento supervisado (Perceptrón Multicapa):

    

En el proceso de entrenamiento de la redes de este tipo, se utilizan patrones conocidos y ya clasificados. Dentro de las redes con entrenamiento supervisado, la más utilizada es el Perceptrón Multicapa usando en el entrenamiento un algoritmo de retropropagación.

2.1.    Topología.

Consta de una capa de entrada, una o varias capas escondidas y una capa de salida. El número de neuronas que constituyen cada capa debe adaptarse a cada problema.


Figura 1: Diagrama de la topología del Perceptrón Multicapa.

Cada neurona de la capa escondida (x'i) o de la capa de salida (yl) tiene como entradas las neuronas de la capa anterior. El valor de salida de cada neurona esta representado por las siguientes funciones:



x sub i' = f ( SUM from {j=1} TO {N-1} w sub {ij} x sub i - theta sub i )



y sub l = f (sum from {k=0} to {M-1} w sub {kl} ' x sub k '- theta sub k ' )

donde wij y w'kl son los pesos, que se determinarán en el proceso de entrenamiento y f() es la función de activación.

2.2.    Función de activación.

Como función de activación se emplean normalmente funciones continuas, crecientes, diferenciables y no lineales. La más utilizada es la función sigmoide binaria, debido a que la relación existente entre el valor de la función en un punto y su derivada, evita el cálculo de la derivada.

La función sigmoide binaria tiene como salida valores entre 0 y 1.


Rough Equation

f(x)={1} OVER {1+exp(- sigma x)}


Rough Equation

f'(x)= sigma f(x) LEFT [{1-f(x)} RIGHT ]


Figura 2: Función sigmoide binaria con .=1.

En algunos casos puede ser más adecuado utilizar la función sigmoide bipolar, cuyo rango de salida esta comprendido entre -1 y 1.


Rough Equation

g(x)=2f(x)-1={2} OVER {1+exp(- sigma x)}-1


Rough Equation

g'(x)={ sigma } OVER {2} LEFT [{1+g(x)} RIGHT ] LEFT [{1-g(x)} RIGHT ]

2.3.    Algoritmo de entrenamiento (BACKPROPAGATION)

El algoritmo de entrenamiento por retropropagación, es un algoritmo iterativo por descenso del gradiente diseñado para minimizar el error cuadrático medio entre la salida real del Perceptrón Multicapa y la salida deseada. Consta de los siguientes pasos (asumiremos una función de activación sigmoide binaria que simplifica el cálculo de las derivadas):

Paso 1: Inicializar Pesos y Umbrales.

Todos los pesos y umbrales de los nodos se inicializan con valores aleatorios pequeños.

Paso 2: Presentar la entrada y las salidas deseadas.

Se presenta un vector de entrada (x0,x1,......,xN-1) y la salida deseada (d0,d1,....,dM-1). Si la red se usa como un clasificador, todas las componentes de cada vector salida son 0 excepto la componente (o componentes) que corresponde al patrón de entrada que se fija a 1.

Paso 3: Cálculo de las salidas reales.

Usando las funciones sigmoides para cada neurona y a través de la topología de la red se calculan las salidas (y0,y1,.....,yM-1)

Paso 4: Adaptación de los pesos.

Se utiliza un algoritmo recursivo empezando en los nodos de salida y trabajando hacia atrás hasta llegar a la primera capa escondida.

Se ajustan los pesos mediante la siguiente fórmula (descenso del gradiente):


Rough Equation

w SUB {ij}(t+1)=w SUB {ij}(t)+ eta delta SUB {j}x SUB {i} SUP {,}

donde:

wij(t): es el peso desde el nodo i-ésimo escondido en el instante t (o el peso desde una entrada) al nodo j-ésimo.

xj': es la salida del nodo i-ésimo (o es una entrada)

.: es un término de ganancia comprendido entre 0 y 1. Normalmente se usan valores pequeños, siendo conveniente hacer pruebas de convergencia y

estabilidad con varios valores.

.j: es un término de error para el nodo j:

a) Si el nodo j es un nodo de salida, entonces:


Rough Equation

delta SUB {j}=y SUB {j} CDOT(1-y SUB {j}) CDOT(d SUB {j}-y SUB {j})

donde dj es la salida deseada del nodo j e yj es la salida real obtenida por la red. En la fórmula [8] yj(1-yj) es la derivada de la función de activación, si se desea emplear otra función de activación sería necesario sustituir este factor por la derivada de la función de activación empleada. El uso de funciones como la sigmoide, en las cuales el valor de la función y su derivada están relacionados, permite acelerar el algoritmo de entrenamiento evitando hacer cálculos adicionales.

b) Si el nodo j es un nodo interno escondido, entonces:


Rough Equation

delta SUB {j}=x SUB {j} ' CDOT (1-x SUB {j} ' ) SUM FROM {k} delta SUB {k} w SUB {jk}


donde k es el índice que recorre todos los nodos de la capa por encima del nodo j.

    

Cuando hay problemas de convergencia es conveniente añadir un término de momento (efecto de memoria del cambio en el paso anterior) que evite que el proceso quede atrapado en algún mínimo local de la función de error. En este caso la actualización de los pesos se realiza mediante la fórmula:


Rough Equation

w SUB {ij}(t+1)=w SUB {ij}(t)+ eta delta SUB {j}x SUB {i} SUP {,}+ alpha (w SUB {ij}(t)-w SUB {ij}(t-1))

donde 0<.<1.

Paso 5: Repetir el proceso desde el paso 2 hasta que el error o los cambios en los pesos sean despreciables.

2.4.     Procedimiento operativo de entrenamiento del Perceptrón Multicapa.

El esquema operativo para la construcción de la red, constará de las siguientes fases:

Fase 1.- Selección de los patrones de entrenamiento.

Se seleccionan un conjunto de patrones de entrada (x0,x1,......,xN-1) y sus correspondientes salidas deseadas (d0,d1,....,dM-1). Este conjunto de patrones disponibles se divide en un conjunto de entrenamiento y un conjunto de test.

Fase 2.- Aplicar iterativamente el algoritmo de entrenamiento ("BACKPRO-PAGATION") a todos los patrones:

Se aplica el algoritmo de entrenamiento a cada uno de los patrones del conjunto de entrenamiento. Una vez pasado el algoritmo a todos los patrones del conjunto de entrenamiento, se calcula el error total correspondiente a esa iteración para el conjunto de entrenamiento. El proceso de iteración se repite hasta que el error total de una iteración es menor que una cantidad prefijada, o hasta que este se estabiliza. En este momento se salvan los pesos.

Con los pesos obtenidos en el paso anterior se aplica la red al conjunto de patrones que reservamos como conjunto de test. Si el error cometido al aplicar la red al conjunto de test es del orden del que obtuvimos al aplicar el algoritmo de entrenamiento al conjunto de patrones de entrenamiento, se considera que la red tiene un comportamiento adecuado. Si no, sería necesario repetir el proceso variando la topología, la función de activación, el algoritmo de entrenamiento o el tipo de red.

2.5. Aplicación a una imagen TIROS.

La topología utilizada consta de una capa de entrada con 5 neuronas (brillo bandas 1 y 2, y temperatura bandas 3,4 y 5), una capa escondida de 5 neuronas y una capa de salida con 6 neuronas (mar, tierra, nubosidad, nubes medias, nubes bajas y nubes de desarrollo).

El conjunto de entrenamiento se construyó capturando para cada "pixel" los valores de brillo de las bandas 1,2 y de las temperaturas de las bandas 3,4 y 5 sobre una zona pequeña (situada en al costa de Asturias que contenía todo tipo de patrones) de una imagen TIROS. Los valores de las correspondientes neuronas de salida se fijaron utilizando los valores asignados a la nubosidad por una máscara nubosa desarrollada en la Sección de Satélites, en el caso de que el "pixel" fuera despejado se le aporto información adicional sobre si ese punto era tierra o mar. Una vez entrenada la red se aplicó al área global con los resultados mostrados en la Figura 4, cada una de las imágenes que constituyen dicha figura es el resultado de aplicar un realce a cada una de las neuronas de salida. Por ejemplo, en la figura 4.a) cuando la neurona de tierra despejada tiene un valor superior a 0.94 se le asigna el valor de brillo 250 y 0 en el resto de los casos.


Figura 3: Imagen del satélite TIROS original.



Figura 4: Imágenes resultantes de asignar valores de brillo a las diferentes neuronas. a) Tierra despejada, b) Nubosidad, c) Nubes de desarrollo, d) Nubes medias.

3.    Entrenamiento no supervisado. Mapas Topológicos Autoorganizativos (Mapas de Kohonen).

En este tipo de redes en el proceso de entrenamiento no es necesario disponer de información "a priori" o tener clasificados los patrones del conjunto de entrenamiento, siendo el propio proceso de entrenamiento el que produce la clasificación.

3.1.    Algoritmo para producir Mapas Topológicos Autoorganizativos (Mapas de Kohonen)

La Topología de los Mapas de Kohonen puede verse en la Figura 5.


Figura 5: Topología de un Mapa de Kohonen.

Consta de una capa de entrada y una capa de salida. En la capa entrada se introducen los valores de los datos y se calcula la salida de cada neurona como producto escalar de los pesos de cada neurona por los valores de la capa de entrada. Después de entrenada, la salida para cada patrón es una matriz de distancias del patrón de entrada a los vectores peso de cada neurona. La disposición del mapa topológico como matriz permite fijar el criterio de vecindad, ya que las salidas (distancias) de una neurona y las neuronas cercanas son similares. La interpretación de la matriz de salida puede ser todo lo compleja y exhaustiva que se desee, teniendo siempre en mente la interpretación geométrica de la red como conjunto de distancias del patrón de entrada a los vectores de peso de las neuronas, estos tienen la propiedad de hacer mínimo el error total sobre el conjunto de entrenamiento. El algoritmo de entrenamiento es el siguiente:

Paso 1: Inicializar los pesos.