Particle Swarm Optimization (PSO), contada a partir do artigo original de Kennedy & Eberhart, 1995
Como ler este material. Na esquerda fica o artigo original, em inglês, com o trecho em discussão marcado e o que foi descartado riscado. Na direita fica a explicação, com simulações que você pode mexer.
IEEE International Conference on Neural Networks, Perth, Austrália, 1995
Páginas 1942 a 1948 · 7 páginas · DOI 10.1109/ICNN.1995.488968
Um artigo curto que virou uma das meta-heurísticas mais usadas do mundo. A combinação dos dois autores explica muito: a ideia nasce da psicologia social e vira ferramenta de engenharia.
A Seção 3 é o coração: ela conta, passo a passo, como uma simulação de pássaros virou um otimizador.
Um método para otimizar funções contínuas não lineares, descoberto ao simular um modelo social simplificado.
A metáfora social explica de onde a ideia veio, mas o algoritmo funciona sem ela. Hoje ninguém precisa pensar em pássaros para usar PSO.
bandos de pássaros, cardumes, enxames
algoritmos genéticos, programação evolutiva
Duas raízes. A primeira é óbvia pelo nome. A segunda aparece no fim do artigo, quando os autores comparam o PSO com algoritmos genéticos.
Testado já no artigo em dois problemas: treinar os pesos de uma rede neural e a função f6 de Schaffer, um benchmark clássico de algoritmos genéticos.
Depois dos cortes da Seção 3.3, o grupo já não se comporta como um bando. Ele se comporta como um enxame.
E "enxame" tem base na literatura: os autores usam o termo no sentido de Millonas (1994), que estudava vida artificial e definiu os princípios da inteligência de enxame.
Os autores notam que estabilidade e adaptabilidade são os dois lados da mesma moeda.
Os membros não têm massa nem volume, então seriam "pontos". Mas velocidade e aceleração combinam mais com partículas.
Na computação gráfica, sistemas de partículas modelam nuvens, fogo e fumaça. Daí o nome particle swarm.
Cada partícula é um vetor de 13 números. O "terreno" é o erro da rede. O enxame voa num espaço de 13 dimensões usando exatamente a fórmula de 1995, sem derivadas.
O PSO treinou os pesos tão bem quanto backpropagation, o método padrão. No conjunto Iris, a média foi de 284 épocas em 10 sessões de treino.
Um otimizador "social", sem derivada nenhuma, empatando com o gradiente. Em 1995 isso chamava atenção.
Os autores chamam isso de indícios informais: os pesos achados pelo enxame às vezes generalizam melhor do treino para o teste que os do gradiente.
Um benchmark clássico de algoritmos genéticos, muito difícil: a superfície tem uma quantidade enorme de ótimos locais. O PSO achou o ótimo global em todas as execuções, com número de avaliações parecido com o de AGs elementares.
Um algoritmo extremamente simples que parece funcionar para uma grande variedade de funções.
Uma forma de vida artificial de "nível médio": acontece no tempo da experiência do dia a dia.
O que é único: voar soluções pelo hiperespaço. E o segredo é passar do alvo.
vasculham o espaço entre regiões já boas. É a intensificação.
faz a partícula ultrapassar e cair em regiões desconhecidas. É a diversificação.
Ligam isso à "alocação ótima de tentativas" de Holland: o equilíbrio entre testar o conhecido e arriscar o desconhecido.
“Why is social behavior so ubiquitous in the animal kingdom? Because it optimizes.”
Um psicólogo social e um engenheiro eletricista: o algoritmo serve aos dois campos. E o caminho inverso também vale: um bom jeito de resolver problemas de engenharia é modelar comportamento social.
Simples e robusto. Deixar a solução emergir em vez de impor, imitar a natureza em vez de controlar.
Poucas linhas de código, e só precisa da especificação do problema e de alguns parâmetros. Fim do artigo. Daqui em diante: o PSO como ele é usado hoje.
r₁ e r₂ são sorteados em [0, 1] a cada passo e dimensão. O w veio em 1998 (Shi & Eberhart). Com w = 1 e c₁ = c₂ = 2, volta a ser a fórmula de 1995. Clique numa partícula para ver as três forças.
para cada partícula i: xi ← posição aleatória; vi ← velocidade aleatória pi ← xi g ← melhor entre os pi repita até o critério de parada: para cada partícula i: vi ← w·vi + c₁r₁(pi − xi) + c₂r₂(g − xi) xi ← xi + vi se f(xi) < f(pi): pi ← xi se f(pi) < f(g): g ← pi retorne g
Todos enxergam o melhor de todos. Converge rápido, mas arrisca ficar preso num ótimo local.
Cada partícula só enxerga dois vizinhos. Converge mais devagar, mas resiste melhor à convergência prematura.
A topologia é quem pode ser "o grupo" de cada partícula. Troque no seletor e compare no Rastrigin.
Diversidade alta = enxame espalhado, explorando. Quando ela despenca, o enxame está intensificando. Se despenca cedo demais com o melhor valor ainda alto, é convergência prematura.
Detalhe: o Pacheco sugere c₁ = c₂ = 2,05 com w = 0,5. O 2,05 costuma vir junto do fator de constrição χ ≈ 0,7298, e 0,7298 × 2,05 ≈ 1,496 é exatamente o "equilibrado" acima.
Existe um terreno escondido com vários vales. O objetivo é achar o ponto mais baixo. Você tem 8 toques: cada toque revela a altura naquele ponto.
Depois, 8 partículas fazem a mesma busca com PSO, também começando no escuro, durante 15 iterações. Quem chega mais perto do mínimo?
Não existe "o" PSO estado da arte para tudo. O problema central ainda é a convergência prematura, e a melhor variante depende do problema.
Uma cidade quer instalar K bases. Cada casa é atendida pela base mais próxima. Onde colocar as bases para que a distância média seja a menor possível?
Clique no mapa para adicionar casas. Esse é o problema das p-medianas contínuo: não tem fórmula fechada e o custo muda de forma não suave.
Cada partícula é uma configuração inteira de bases: com K = 3, um ponto em 6 dimensões. No mapa, cada partícula aparece como um triângulo apagado ligando suas 3 bases.
O enxame começa espalhado e converge para uma boa configuração. As linhas coloridas mostram qual base atende cada casa no gbest.
| PSO | Algoritmo Genético | Evolução Diferencial | |
|---|---|---|---|
| Inspiração | comportamento social | seleção natural | diferenças entre vetores |
| Representação | vetor real com velocidade | cromossomo (binário ou real) | vetor real |
| Como gera soluções | movimento rumo a pbest e gbest | seleção, crossover e mutação | mutação diferencial e crossover |
| Memória | sim: pbest de cada partícula | só a população atual | só a população atual |
| Quem sobrevive | ninguém morre, todos se movem | os mais aptos | disputa um a um com o pai |
| Domínio natural | contínuo | discreto e contínuo | contínuo |
Perguntas?
| → espaço | próximo passo |
| ← | passo anterior |
| ↑ ↓ | slide anterior / próximo |
| M | sumário |
| N | notas do apresentador nesta tela |
| P | abrir a visão do apresentador em outra janela |
| F | tela cheia |
| B | tela preta |
| A | abrir o artigo ao lado |
| O | abrir o PDF original do artigo em outra aba |
| T | tema claro / escuro |
| L | transmitir ao vivo para os celulares |
O artigo original de 1995 já vem com o site: abrir PDF · baixar.
Como um bando se move sem líder?
Cientista da computação. Queria reproduzir a estética da coreografia de um bando.
Heppner é zoólogo. Queria descobrir as regras que deixam milhares de pássaros voarem sincronizados.
Os dois chegaram à mesma intuição: regras locais, de cada pássaro com seus vizinhos, bastam para produzir o comportamento do grupo.