• No results found

CHAPTER VI Field Programmable Analog Array Based Artificial Neural Network for

B. Hardware Setup for Experiment

Los métodos de clustering que basan su criterio de descarte en el radio de cobertura, resuelven de manera general una búsqueda kNN(q) utilizando las distancias del objeto de búsqueda a los centros y los radios de cobertura, para determinar, por una parte, una primera lista de candidatos a k vecinos más cercanos formada por los centros más próximos, y por otra, el cluster más cercano al objeto

5.3. Búsqueda por similitud con Reducción de Cluster 145

c

r

c

q

′ r′

q

r

Figura 5.4: Similitud del proceso de determinar las regiones a explorar con el de pivotes.

de búsqueda, denominado frecuentementecluster más prometedor. Sobre ese cluster se realiza una exploración exhaustiva, calculando para cada uno de sus objetos su distancia a q y actualizando la lista de candidatos. El proceso continúa actuando sobre los siguientes clusters más cercanos a q y finaliza cuando el siguiente cluster más cercano está más lejos de q que el actualk-ésimo vecino más cercano.

La búsqueda kNN(q) usando Reducción de Cluster se diferencia en que, una vez determinado el cluster más prometedor, no se compara el objeto de búsqueda q con todos los objetos del cluster, sino que se compara solo con aquellos que pertenecen a la región del cluster más cercana a q. El cluster sobre el que se ha actuado se sigue considerando en el resto del proceso de búsqueda, pero ahora sin la región ya explorada. La búsqueda continúa explorando el siguiente cluster más prometedor, hasta que la siguiente región más cercana al objeto de búsqueda se encuentre más lejana que el actual k-vecino más cercano a q, momento en el que la búsqueda finaliza.

Las búsquedas se restringen así a las regiones más cercanas a q y no abarcan la totalidad de los clusters, al igual que ocurría en las búsquedas por rango. Se puede decir que se produce también un cambio de óptica, pasando de buscar en el cluster más prometedor a hacerlo sobre la región más prometedora, porque después de

determinar el cluster más prometedor, se actúa solo sobre la región más cercana al objeto a buscar, se actualiza la lista de candidatos y se reduce el cluster eliminando esa región, para reiterar el procedimiento considerando ahora el cluster reducido. Esta estrategia permite actuar directamente sobre las regiones imprescindibles e ir reduciendo los clusters, para buscar la siguiente región que se encuentre más próxima al objeto de búsqueda, sea en el mismo cluster o en cualquier otro. Podría ocurrir que primero se explorase una región de un cluster y una vez elimina esa región, la siguiente a explorar resultase otra región de otro cluster, provocando un efecto de optimización al explorar las regiones más cercanas al objeto de búsqueda, independientemente del cluster en el que se encuentran.

Para determinar cuál es el cluster más prometedor, se tiene en cuenta que dado un cluster C de centro c y radio de cobertura rc, la expresión d(q, c)−rc es una cota inferior para la distancia de q a cualquier objeto de C, esto es,

x∈ C, d(q, x)≥d(q, c)−rc (5.1) por lo que dados dos clusters Ci y Cj, el cluster Ci es más prometedor que Cj si: d(q, ci)rci < d(q, cj)−rcj (5.2)

Se representa así de manera formal la idea de que Ci está más próximo a q. Si el objeto de búsqueda se encontrase dentro de los límites del círculo definido por el cluster Ci, el lado izquierdo de la inecuación5.2sería negativo, haciendo que esta se cumpliese de manera trivial.

El objeto de búsqueda se compara con todos los centros de los clusters originando una cola de prioridad en la que se colocan primero los clusters más cercanos a q. En cada paso se extrae de la cola el cluster más prometedor y se explora su región más cercana al objeto de búsqueda, actualizando la lista de candidatos, para luego eliminarla del cluster, provocando su reducción, y después introducirlo en la cola con una nueva prioridad, determinada en función de su actual distancia a q. El proceso se repite hasta que la cota inferior de la distancia de q al siguiente cluster más prometedor es mayor que la distancia al actualk-ésimo candidato a vecino más cercano.

El algoritmo 1 muestra el pseudocódigo de la búsqueda kNN(q) usando Reducción de Cluster. Se usan dos colas de prioridad, clustersQueue que almacena los clusters según su criterio de proximidad al objeto de búsqueda o cómo de prometedores son en relación la búsqueda, y neighborsQueue para mantener la lista de candidatos a k vecinos más cercanos a q. La función Reduce realiza la exploración de la región de Ci más cercana a q, actualiza la cola de prioridad de los candidatos a vecinos más cercanos y elimina del cluster la región que acaba de explorar.

5.3. Búsqueda por similitud con Reducción de Cluster 147

Algoritmo 1: Pseudocódigo de la búsqueda kNN con Reducción de Cluster. 1 kNNSearch(q) 2 foreachclusterCi do 3 did(q, ci) 4 Insert(clustersQueue,Ci,dirci) 5 end 6 Cipull(clustersQueue)

7 whiled(q, ci)rci < radius(neighborsQueue)do 8 Reduce(q,Ci, neighborsQueue)

9 Insert(clustersQueue,Ci, dirci) 10 Cipull(clustersQueue)

11 end

La figura5.5refleja un ejemplo de búsqueda 2NN sobre un objeto de búsqueda q en un espacio particionado en dos clusters C1 y C2, de centros c1 y c2

respectivamente. El proceso se inicia calculando las distancias de q a los centros de los clusters, de forma que los centros pasan a formar parte de la lista de candidatos a 2-vecinos más cercanos. Dado que la cota inferior de las distancias de q a cualquier objeto de C1, representada por d1, es menor que la correspondiente al cluster C2,

representada por d2, se tiene que el cluster C1 es el más prometedor. La estrategia

de Reducción de Cluster no compara ahora q con la totalidad de los objetos de C1,

como hacen los métodos existentes, sino solo con los de la región de C1 más próxima

a q, que es la más alejada del centro del cluster. Después de la exploración de dicha región, se actualiza la lista de candidatos a vecinos más cercanos, reemplazando en ella los dos centros de los clusters por los dos objetos encontrados en la región. A continuación se reduce el cluster C1 eliminando la región que ya ha sido explorada,

pasando a ser la nueva cota inferior de las distancias de q a cualquier objeto del cluster reducido, la distancia representada por d3.

El proceso de búsqueda prosigue determinando de nuevo el cluster más prometedor, y como d2 es menor que d3, resulta ser C2, por lo que se repite el

procedimiento de exploración de su región más cercana a q, que es la más alejada de su centro. Los dos objetos que posee pasan también a ser los nuevos candidatos a vecinos más cercanos y después se reduce el cluster al eliminar esa región. El siguiente cluster más prometedor lo determina el hecho de que la distancia d4 es

menor que d3, por lo que se explora la segunda región de C2, pero ocurre que

los objetos que se encuentran en ella no modifican la lista de candidatos, porque están más alejados de q que los dos candidatos que actualmente hay en la lista. Las siguientes regiones a explorar las determinan las distancias d3 y d5, pero al ser

c

1

c

2

r

c1

r

c2

q

d 5 d3 d 4 d1 d2 d1 d2 d3 d4 d5

Figura 5.5: Ejemplo de búsquedakNN con Reducción de Cluster.

mayores que la distancia de q al segundo candidato a vecino más cercano, que está representada en la figura por la circunferencia discontinua, se tiene que cualquier objeto de las regiones asociadas a esas distancias estaría a una distancia mayor que la existente a ese candidato, con lo que se garantiza que no se necesita explorar ninguna región más y la búsqueda finaliza.

En este ejemplo la búsqueda se ha resuelto realizando la exploración, esto es, el cálculo de la función de distancia, en únicamente tres de las ocho regiones en las que se habían dividido los dos clusters, con lo que se ha reducido a solo un 37,5 % del total de posibles comparaciones. Además se ha explorado primero una región de un cluster y después se ha saltado a otra del otro cluster, reflejando el carácter optimizador de esta estrategia, ya que en cada iteración del proceso, se centra en la región más adecuada para realizar la búsqueda, esto es, en la más cercana al objeto a buscar, independientemente del cluster al que pertenezca.

Casos particulares de la búsqueda kNN

Si el objeto a buscar q, se encuentra dentro del círculo formado por el centro del cluster y el radio de cobertura, se procede de manera similar al ejemplo anterior. La figura 5.6 muestra un ejemplo de esta situación, ya que q pertenece a la región más alejada del centro del cluster de la izquierda. Para ese cluster ocurre que

5.3. Búsqueda por similitud con Reducción de Cluster 149

d(q, c1)−rc1 ≤ 0 , con lo que se actúa primero sobre él, concretamente sobre su región más próxima a q. En esa región se calculan las distancias de q a los dos objetos que contiene y se actualiza la lista de candidatos a vecinos más cercanos. Uno de los objetos de la región, el más cercano a q, sustituye al centro c2 en

esa lista de candidatos. Finalmente, se elimina la región ya explorada. Al reducir el cluster eliminando su región más exterior ocurre que el cluster reducido ya no contiene al objeto de búsqueda, por lo que la búsqueda continúa como en el ejemplo anterior.

c

1

c

2

r

c1

r

c2

q

Figura 5.6: Segundo ejemplo de búsquedakNN con Reducción de Cluster.

El ejemplo tratado clarifica también la manera de proceder del algoritmo, que siempre actúa sobre la región más cercana al objeto de búsqueda, la explora y la elimina del cluster al que pertenece, para reiterar el procedimiento ahora sobre la nueva región más cercana al objeto de búsqueda, pero considerando ya el cluster reducido.

Resulta también interesante mostrar el comportamiento del algoritmo si el objeto de búsqueda está dentro de los límites de una región interior. Esta situación se representa en la figura 5.7, en la que q está contenido en la segunda región del cluster de centro c1 que está más alejada del propio centro. En primer lugar ocurre

que d(q, c1)−rc1≤0 , por lo que se actúa sobre ese cluster.

Siendo β el número de regiones en las que se dividen los cluster y denotando con rc11 al radio de cobertura del cluster de centro c1, esto es, rc11 = rc1 y

con rc12, ..., rc1β a sus radios de cobertura interiores en orden decreciente, ocurre

que, una vez calculada la distancia del objeto de búsqueda al centro del cluster y sin realizar nuevos cálculos de la función de distancia, es inmediato determinar la región a la que pertenece q, ya que es la que cumple una de las dos condiciones siguientes, o bien q pertenece a la i-ésima región si:

rc1id(q, c) > rc1i+1 para algún i= 1, ..., β−1 (5.3) o bien q pertenece a la β-ésima región, la más cercana al centro, si:

rc1βd(q, c) (5.4)

Primero se explora la región a la que pertenece el objeto de búsqueda, que en la figura 5.7 es la segunda más alejada del centro del cluster de la izquierda, se actualiza la lista de candidatos a vecinos más cercanos y después se elimina la región, reduciendo el cluster. A continuación se determina la siguiente región más cercana a q, teniendo en cuenta que al cluster de centro c1 se le ha eliminado

la segunda región más alejada del centro del cluster, por lo que la siguiente más cercana a q es la más alejada del centro que pertenece al mismo cluster, en la que uno de sus objetos pasa a la lista de candidatos a vecinos más cercanos. Después de eliminar también esa región, aún hay otra región que puede tener objetos que están más cerca de q que el actual segundo vecino más cercano, y es la que ahora está más alejada del centro del cluster, la que inicialmente era la tercera más alejada del centro, por lo que es necesario explorarla. Después de hacerlo, resulta que no se modifica la lista de candidatos, y la región se elimina del cluster. Las siguientes regiones, tanto de ese cluster como del otro, están ya a una distancia mayor de q que el actual segundo vecino más cercano, por lo que la búsqueda finaliza, pasando los objetos de la lista de candidatos a ser los 2-vecinos más cercanos a q.

Related documents