O algoritmo gravitacional aplicado na tarefa de segmentação foi primeiramente pro- posto por Wright (1977) e se baseia na lei da gravitação universal, podendo ser classifi- cado como um tipo de algoritmo hierárquico aglomerativo.No entanto, contrariamente aos algoritmos de agrupamento hierárquicos clássicos onde os padrões são estáticos, no algo- ritmo gravitacional todos os padrões são considerados como partículas móveis submetidas aos campos gravitacionais uns dos outros. Ele funciona da maneira a seguir: considere uma base de dados com N elementos no Rp, cada uma com sua massa m
i. A cada ins-
tante de tempo dt todas as partículas se moverão de acordo com uma função g(i,t, dt). O maior deslocamento possível é fixado pelo parâmetro δ, e se uma partícula estiver a uma distância ε de outra, ocorre uma fusão entre as mesmas (simulação de uma colisão puramente inelástica), onde normalmente ε = 2δ. Sendo assim, o algoritmo começa com
Nobjetos e termina com apenas 1. Os resultados obtidos podem ser vistos em formato de
dendrograma assim como os demais métodos de agrupamento hierárquicos. A qualidade de um dado agrupamento encontrado é tanto maior quanto maior for o intervalo de tempo em que o sistema permanece nesse estado.
7.2.1
Variantes do algoritmo de agrupamento gravitacional
Uma variante do algoritmo de agrupamento foi proposta por Gomez et al. (2003), com o intuito de determinar automaticamente o número de agrupamentos, eliminar ruído e ge- rar protótipos que representem a base de dados. A idéia envolvida reside na hipótese de que a força gravitacional exercida em padrões fora de um agrupamento é desprezível se comparada àquela exercida em padrões dentro de um agrupamento, e por conseguinte, padrões dentro de um agrupamento se moverão em direção ao centro do mesmo enquanto ruídos permanecerão praticamente na mesma posição. Diferentemente da abordagem ori- ginal, as partículas (padrões) são considerados com massa unitária, porém ambos podem ser classificados como técnicas hierárquicas aglomearativas, com a diferença de que nessa variante, o critério de parada é o número de iterações, de modo que não necessariamente o algoritmo finaliza com um único grande agrupamento.
O algoritmo tem os seguintes parâmetros: • Constante gravitacional (G)
• Termo de decaimento (∆G) • Número de iterações (M)
• Distância mínima para a união de duas partículas (ε)
• Percentual mínimo da base de dados que pode ser considerado um agrupamento (α) Sejam x e y padrões de uma base de dados em Rn, isto é, x = [x
1 x2 ... xn] e y =
7.2. ALGORITMOS DE AGRUPAMENTO GRAVITACIONAIS 67 x(t + 1) = x(t) + G kd(x(t),y(t))k3 d(x(t), y(t)) (7.1) onde d(x(t), y(t)) = y(t) − x(t) (7.2)
onde G é a constante gravitacional, que diminui monotonicamente com o tempo, x e y são os padrões escolhidos aleatoriamente a partir do conjunto de dados, e || · || é a norma Euclidiana. As partículas são fundidas quando separadas por uma distância mínima que é um parâmetro de entrada. Nesse caso o padrão x é movido em função da ação do campo gravitacional de y.
A constante gravitacional decresce monotonicamente da seguinte forma
G= (1 − ∆G)G (7.3)
Considerando uma base de dados com N padrões o algoritmo é sequencial no número de iterações e passagem pelo conjunto de dados. Ele funciona da seguinte forma:
• Passo 1 - Selecionar aleatoriamente dois padrões e mover ambos de acordo com a equação 7.1;
• Passo 2 - Fazer a união (novo conjunto) dos padrões caso a distância entre eles seja menor do que ε;
• Passo 3 - Testar se o critério de parada foi atendido. Em caso negativo voltar ao passo 1.
O algoritmo é muito sensível ao parâmetro G, seguido de ∆G. Se o G inicial for muito grande assim como se ∆G for muito pequeno, será formado apenas um agrupamento. De modo análogo, se G for muito pequeno assim como se ∆G for muito grande, não haverá a formação de agrupamentos. O parâmetro α se relaciona à resolução do algoritmo ao extrair o número de agrupamentos que é considerado válido em função do seu número de elementos.
Apesar de sugerir valores para quase todos os parâmetros (exceto para G), de modo geral, valores ótimos dependem da base de dados. Especificamente se tratando de G, um valor que se adeque para todas as bases de dados não foi definido.
É mostrado que para um bom desempenho do algoritmo, não necessariamente toda a base de dados precisa ser utilizada, dessa forma, abre-se a possibilidade para a aplicação da quantização vetorial , como por exemplo com a rede SOM, antes da aplicação do algoritmo gravitacional, que será visto em mais detalhes na próxima seção.
Outra variante do algoritmo de agrupamento gravitacional foi proposta por Long & Jin (2006) com o objetivo de melhor definir de protótipos iniciais para o k-means que por sua vez torna-se entrada de um algoritmo de aprendizado supervisionado com a tarefa de reconhecimento de padrões, como o trainamento MCE e o LVQ.
Considerando novamente uma base de dados com N padrões o algoritmo é sequencial no número de iterações e passagem pelo conjunto de dados. Todas as partículas (padrões) são inicializados com massa unitária. Ele funciona da seguinte forma:
• Passo 1 - Definir os padrões x e y que irão se mover e se fundir através da equação argmin ||x − y||mx+ m2 y (7.4) • Passo 2 - A posição z e a massa m da partícula resultante da fusão são definidos pelas equações 7.5 e 7.6. Caso haja fusão entre os padrões x e y, a nova massa m e a nova posição z da partícula resultante são dadas por:
m= mx+ my (7.5)
z= mxx+ myy
mx+ my
(7.6) • Passo 3 - Testar se o critério de parada foi atendido. Em caso negativo voltar ao
passo 1.
A cada instante apenas um par de objetos pode se mover, enquanto todos os outros são mantidos fixos. O critério de parada utilizado é o número k de centros desejados.
Ao substituir a inicialização aleatória pelos centros gerados pelo algoritmo de agru- pamento gravitacional no algoritmo k-means resultou em uma melhora considerável de desempenho.
Essa variante do algoritmo gravitacional possui uma diferença fundamental em rela- ção ao tradicional, pois propõe que partículas com massa menor tendem a se mover antes em detrimento à partículas de massa maior, e isso beneficia o algoritmo no sentido da menor sensibilidade ao ruído.
Na literatura existem outras variantes do algoritmo gravitacional, bem como outras aplicações. Por exemplo, princípios gravitacionais foram utilizados para desenvolver um algoritmo de treinamento da rede SOM que é capaz de se auto gerir de modo a ser in- dependente da definição e otimização da taxa de aprendizagem e região de vizinhança [Lange & Freiesleben 1996], bem como para o desenvolvimento de algoritmo de procura aliado ao recozimento simulado aplicado a problemas de otimização [Chen et al. 2011].
7.2.2
Mapa auto-organizável gravitacional - gSOM
Recentemente um algoritmo de agrupamento gravitacional do SOM foi proposto por Ilc & Dobnikar (2011), o qual consiste em duas etapas. Na primeira fase uma rede SOM é treinada com a base de dados e parâmetros definidos conforme na seção 2.1 do capítulo 2. Com o mapa já treinando, aproveitando suas propriedades, tais como quantização vetorial (menor custo computacional do que trabalhar com a base de dados completa) e posicionamento do SOM (fator de magnificação: há uma maior densidade de neurônios onde há maior densidade de padrões). Sendo assim, neurônios de ligação ou neurônios interpoladores, isto é, aqueles que não são associados a nenhum padrão são eliminados, assim como as suas conexões. Sobre os neurônios restantes são aplicadas as equações 7.1 e 7.2. Todas as partículas têm massa unitária, inclusive as novas que vão se formando por fusão durante os passos do algoritmo, de modo que regiões de alta densidade não se
7.2. ALGORITMOS DE AGRUPAMENTO GRAVITACIONAIS 69 sobreponham à regiões de baixa densidade. Assim como no trabalho de Gomez et al. (2003), existe uma distância mínima para que haja a fusão de objetos. Além disso, o coeficiente G decresce com o tempo, e os demais parâmetros devem ser determinados.
A seleção aleatória determina o caráter estocástico do algoritmo. Considere o con- junto Q contendo todos os neurônios restantes após a eliminação dos neurônios interpo- ladores. Duas partículas x e y são selecionadas aleatoriamente. Especificamente, após a escolha da partícula x, a partícula y é escolhida como pertencente ao conjunto Q com probabilidade p ou ao conjunto dos vizinhos de x, Qx, com probabilidade (1 − p) ambas
definidas por: P(y ∈ Qx) = 0 se Qx= /0 p+(1 − p)|Qx| |Q| − 1 caso contrário (7.7) P(y /∈ Qx) = (1 − p) |Q| − 1 Q Qx − 1 (7.8) O critério de parada pode ser o número de iterações ou o número k de agrupamentos encontrado.
Como o algoritmo é aplicado aos protótipos do SOM ao invés dos dados, o custo computacional é reduzido. A utilização dos protótipo ao invés dos dados propriamente ditos está de acordo com Gomez et al. (2003), conforme foi mencionado, não é preciso toda a base de dados para simular o algoritmo gravitacional.
Utilizando o algoritmo mencionado acima, Ilc & Dobnikar (2012) propôs ainda uma abordagem de agrupamento ensemble, no qual as diferentes partições obtidas pelo gSOM são analisadas por uma função de consenso e então é definida a partição final. A qualidade da partição final é definida pela figura de mérito CA, que consiste na razão entre o número de padrões corretamente classificados e o número total de padrões. De modo geral o método tem desempenho menor em bases de dados com determinadas características, tais como alta sobreposição de classes ou bases com formatos anelares.
7.2.3
Comentários Finais
De modo geral todos os modelos são do tipo hierárquico aglomerativo, com diferen- ças em termos das características consideradas na ocasião da união de elementos. No hierárquico aglomerativo tradicional os objetos são estáticos, são consideradas somente métricas de distâncias e o resultado final consiste em um único grande agrupamento con- tendo todos os padrões, enquanto nos algoritmos discutidos nessa seção as partículas são móveis, são consideradas também forças gravitacionais e o resultado final depende de di- versos fatores tais como os valores dos parâmetros e o critério de parada. Os algoritmos diferem entre si em relação à escolha da sequência em que as partículas a serão movidas, o valor das massas atribuídas a elas durante os passos do algoritmo, os critérios de parada e a força gravitacional a elas aplicadas.
a influencia da força gravitacional simultânea de todos os corpos do sistema físico no qual eles são baseados, além de desprezar os termos referentes à velocidade do movimento e forças de atrito.