Você está na página 1de 6

Combinando particle swarm optimization e algoritmos genéticos na

supervisão do treinamento de redes neurais artificiais

Entre os muitos métodos evolutivos de parâmetros de algoritmos de Inteligência Artificial, na busca da


solução ótima para um determinado tipo de predição ou classificação, estão os algoritmos genéticos (GA)
e o Particle Swarm Optimization (PSO). Muitas vezes, o uso combinado de tais algoritmos pode resultar
em modelos com maior capacidade preditiva, e de generalização (menos overfitting), além de obteníveis
com menos tempo de processamento, do que o que seria possível atingir usando apenas um deles
isoladamente.

Quando supervisionando o treinamento de uma rede neural artificial (ANN) por exemplo, algoritmos
genéticos criam mutações dos parâmetros das redes: números de neurônios em camadas intermediárias
(e o número dessas camadas), parâmetros das funções de atenuação (além das próprias funções).
Produzem geração após geração de ANNs criando sempre a próxima a partir da aplicação de pequenas
mutações (combinadas com “cruzamentos genéticos” das características das funções) às redes que
melhor desempenharam, aplicando um filtro de “seleção Darwiniana”, com base em um critério
preestabelecido, como maximização de R2, por exemplo) e desprezando as demais em cada “geração”,
conforme ilustrado abaixo (para um caso de população total variável de soluções candidatas).

Em cada geração, as soluções que melhor atendem o critério seletivo (maior R2 ou menor RMSE, por exemplo), aqui ilustradas
em vermelho, são usadas como matrizes para popular a próxima geração de soluções.

As soluções acabam se dirigindo para um ótimo local ou global, em pequenos passos, dados em todas as
direções (as mutações são aleatórias). À medida em que as gerações se sucedem, mais as soluções
candidatas nelas incluídas se aproximam entre si pelo critério de seleção escolhido, portanto uma
subpopulação maior delas será usada no cruzamento e mutação para a criação da próxima geração de

Pág. 1 de 6
soluções candidatas. Isso vai tornando o processo de treinamento da ANN mais lento ao caminhar ao
longo de muitas gerações, embora apresente significativa probabilidade de alcançar um ótimo global.

Por outro lado, o método de otimização de Particle Swarm é inspirado em outro comportamento da
natureza, a convergência gradual de enxames locais que se consolidam num enxame global de bandos de
pássaros em busca de alimento. Como algoritmo otimizador, ele funciona também em gerações, portanto
é evolutivo, mas não num conceito genético, tendo em vista que não opera mutações ou “cruzamentos”
sobre as soluções como fazem os algoritmos genéticos.

Imagine um bando de pássaros em busca de alimento. Inicialmente nenhum deles sabe exatamente a
localização exata do alvo (e pode haver mais de uma concentração de comida, uma delas sendo a maior).
Entretanto, cada um deles tem uma ideia da direção e distância, através do olfato e “dicas” visuais. À
medida em que o bando se desloca, alguns pássaros se aproximam mais do alimento, convergindo mais
rapidamente o voo (“mergulhando”) para alcançá-lo. Portanto, para cada indivíduo do bando, a estratégia
mais eficiente de direcionamento do voo é a de seguir a ave mais próxima da posição provável, e que está
se conduzindo na direção aproximada prevista inicialmente.

Como algoritmo de otimização, PSO segue uma estratégia muito similar (vide animação ilustrativa aqui
ou usando o URL nas referências ao final do texto). Cada solução candidata (parâmetros de uma ANN no
nosso caso) é um "pássaro" no espaço de pesquisa (ou espaço de soluções candidatas), que chamamos
de "partícula". A cada uma delas atribuímos um valor de adequação (R2, ou RMSE, por exemplo), o critério
a ser otimizado, bem uma velocidade (módulo, direção e sentido) que direciona o seu “voo”. As partículas
“voam” pelo espaço de pesquisa com base na sua própria proximidade da melhor solução e na das
partículas “ótimas” (melhor valor de adequação) atuais.

O algoritmo inicializa uma “população” de partículas aleatórias (soluções candidatas) com posições e
velocidades (aleatórias também, ou podendo ser zero para o caso da velocidade). Ao conjunto de
parâmetros aleatórios iniciais, damos o nome coletivo de semente (“seed”). Em seguida, o algoritmo de
PSO procura melhores soluções ajustando as velocidades (variações/derivadas dos parâmetros da ANN
no nosso caso) em gerações sucessivas. Em cada iteração do algoritmo, cada partícula é atualizada
seguindo os "melhores" valores, considerando o dela própria, o da população como um todo e,
eventualmente, o de partículas na sua vizinhança imediata.

Diferentemente do algoritmo genético, em que a população como um todo se aproxima do ótimo local
ou global sem muitas diferenças entre as várias soluções individuais (em relação ao critério de
adequação), PSO converge mais rapidamente, mesmo que não envolvendo toda a população de soluções
candidatas. É um pouco mais suscetível do que algoritmos genéticos a convergir para um ótimo local e
ficar presa a ele, sem possibilidade de buscar um ótimo global, caso este não seja (e esteja distante) o
que provocou a convergência inicial.

Entretanto, caso a convergência inicial das soluções candidatas seja na direção de um ótimo global, ou na
de um ótimo local que esteja próximo deste, um PSO pode se tornar um atalho importante, “um batedor
sobrevoando o espaço de pesquisa” que pode acelerar intensamente a busca pela melhor solução (no
caso, melhor conjunto de parâmetros da ANN), criando várias soluções candidatas agrupadas próximas
do ótimo. Após essa aproximação rápida, o método de otimização pode ser passado a um algoritmo
genético que fará a aproximação final mais lentamente, porém com maior chance de chegar a um ótimo
global. Os diagramas a seguir ilustram melhor essa estratégia de otimização hibrida PSO+GA, que tem
sido usada em algumas situações específicas com resultados surpreendentes.

Pág. 2 de 6
Na fase inicial do treinamento (otimização) da Na fase seguinte, após a mudança para uma
ANN, por PSO, a convergência é rápida para um supervisão por GA, os deslocamentos (não
ótimo local ou global no espaço de pesquisa necessariamente convergentes) são menores,
(representado aqui como tridimensional apenas aproximando-se com mais precisão de ótimos
para facilitar a visualização) locais ou globais.

Na IntellISearch temos adotado essa combinação com alguma frequência, parcialmente porque
utilizamos ferramentas de AI da Ward Systems e, uma delas, o Chaos Hunter, suporta a elaboração de
modelos preditivos baseados em ANNs (e/ou em funções analíticas convencionais) e não apenas permite
escolher entre otimização por GA ou PSO, mas viabiliza a combinação das duas, iniciando com PSO e
concluindo com GA.

Entretanto, para se obter um resultado melhor do que a utilização de GA apenas, é preciso trabalhar os
parâmetros de otimização, especialmente o “seed”, a população inicial e o ponto (qual geração) de
interrupção do PSO e a passagem para GA como otimizador.

O exemplo a seguir ilustra a aplicação prática dessa estratégia. Trata-se de uma otimização de um modelo
preditivo para o percentual da perda esperada para uma carteira de crédito com devedores de alto risco,
usando 8 variáveis independentes, a variável dependente sendo o próprio percentual de perda esperada.

Os dados das variáveis independentes (colunas 2 a 9) e da Otimização apenas por GA, população de 100 e seed de 10.
variável dependente (perda esperada) a ser prevista pela Critério de adequação: maximização de R2
ANN.

Pág. 3 de 6
Por simplificação, o modelo será puramente
uma ANN, com várias combinações topológicas
possíveis

A seguir, o gráfico do ciclo de otimização das soluções candidatas (ANNs), conduzido apenas por
algoritmos genético.

Após mais de 4.600 gerações, e mais de 7 minutos de otimização por GA, o R2 das ANNs da população de 100 continua abaixo
de 60%.

Pág. 4 de 6
Se, por outro lado iniciarmos com um ciclo curto de otimização por PSO, interrompendo já na segunda
geração, e depois prosseguirmos com a otimização genética, resultados melhores são atingidos em menos
tempo e em um número menor de gerações.

Iniciando o novo ciclo de otimização por PSO, A interrupção é forçada imediatamente após o primeiro salto
interrompendo em duas gerações no valor de R2

Após a interrupção da otimização por PSO na segunda geração, e o reinício do processo por GA, em pouco mais do que 3.400
gerações, e cerca de seis minutos de otimização por GA, o R2 das ANNs da população de 100 supera os 90%.

Para termos certeza de que tal ganho não teve como contrapartida uma perda de generalização
(overfitting) da ANN mais otimizada, devemos aplicar os modelos ao conjunto de dados “out-of-sample”,
e o resultado está refletido nos gráficos de dispersão apresentados no quadro a seguir. A NN obtida pela
otimização híbrida apresenta desempenho bem melhor, especialmente para os valores menores de perda
esperada.

Pág. 5 de 6
Gráfico de dispersão para o caso de treinamento Gráfico de dispersão para o caso de treinamento Híbrido
exclusivamente por GA (otimização interrompida após 4.613 PSO+GA (otimização por PSO interrompida após 2 gerações.
gerações) Seguida por GA interrompida após mais 3.487 gerações)

É claro que para obter benefícios dessa estratégia híbrida é fundamental a sintonia fina dos parâmetros
“seed” e tamanho máximo da população de soluções candidatas. O ponto de parada, quando se
interrompe a otimização por PSO e passa-se o bastão ao GA, também é vital na obtenção de uma boa
capacidade preditiva. Como regra geral, deve-se interromper a PSO logo ao primeiro salto no valor da
variável de medida de adequação (R2 no nosso exemplo). É fácil entender que aconteça dessa forma,
visto que é quando a população de partículas (soluções candidatas), “sobrevoando” o espaço de pesquisa,
identificou a localização de um máximo local ou global e começou a se movimentar na direção apropriada.
Daí em diante a aproximação mais precisa fica por conta do algoritmo genético, que apresenta maior
capacidade de “contornar” ótimos locais em direção ao global.

Também é fácil de entender porque a hibridização oposta (GA seguido de PSO) não funciona muito bem
(em geral pior do que qualquer um dos dois métodos isoladamente). Seria como se, após escavar os
primeiros degraus que levam a uma tumba de um faraó, os arqueólogos interrompessem o processo e
recorressem a um levantamento aerofotogramétrico (ou mesmo por LIDAR) para localizá-la.

Toda essa sintonia é tão arte quanto ciência, e durante os mais de 15 anos da nossa experiência no
desenvolvimento de aplicações AI para empresas de vários segmentos, colecionamos muitas
configurações desses parâmetros que resultam em modelos de ANN com alta capacidade
preditiva/classificatória.

Referências bibliográficas:

http://www.swarmintelligence.org/tutorials.php

http://www.chaoshunter.com/company_info.html

https://en.wikipedia.org/wiki/Particle_swarm_optimization#/media/File:ParticleSwarmArrowsAnimatio
n.gif

Pág. 6 de 6