Ambos os processos parecem ser usados para estimar o valor máximo de uma função desconhecida, e ambos obviamente têm maneiras diferentes de fazer isso.
Mas, na prática, um dos métodos é essencialmente intercambiável? Onde eu gostaria de usar um sobre o outro?
https://en.wikipedia.org/wiki/Simulated_annealing
Pergunta semelhante
Otimização bayesiana ou descida de gradiente?
optimization
maximum
bayesian-optimization
canyon289
fonte
fonte
Respostas:
O recozimento simulado (SA) é um algoritmo muito simples em comparação com a otimização bayesiana (BO). Nenhum dos métodos assume convexidade da função de custo e nenhum dos métodos se baseia fortemente em informações de gradiente.
A SA é, de certa forma, uma caminhada aleatória levemente educada. A solução candidata salta pelo espaço da solução, com uma programação de salto específica (o parâmetro de resfriamento). Você não se importa onde aterrissou antes, não sabe onde aterrará em seguida. É uma abordagem típica da cadeia de Markov. Você não modela nenhuma suposição forte sobre a superfície da solução subjacente. A otimização do MCMC percorreu um longo caminho desde o SA (veja, por exemplo, o Hamiltoniano Monte Carlo ), mas não expandiremos mais. Um dos principais problemas do SA é que você precisa avaliar muitas vezes "rapidamente". E faz sentido, você precisa de tantas amostras quanto possível para explorar o maior número possível de estados (ou seja, soluções candidatas). Você usa apenas um pouquinho de informações de gradiente (que quase sempre aceita soluções "melhores").
Olhe agora para BO. A regressão BO (ou simplisticamente Processo Gaussiano (GP)) sobre suas avaliações da função de custo) tenta fazer exatamente o oposto em termos de avaliação da função. Ele tenta minimizar o número de avaliação que você faz. Ele cria um modelo não paramétrico específico (geralmente um GP) para sua função de custo que geralmente assume ruído. Ele não usa informações de gradiente. O BO permite criar um modelo informativo da sua função de custo com um pequeno número de avaliações de funções. Depois, você "consulta" essa função ajustada por seus extremos. Novamente, o diabo está nos detalhes; você precisa provar de forma inteligente (e presumir que o seu prior também é meio razoável). Há um trabalho sobre onde avaliar sua função a seguir, especialmente quando você sabe que ela realmente evolui um pouco com o tempo (por exemplo, aqui ).
Uma vantagem óbvia do SA sobre o BO é que, no SA, é muito simples colocar restrições no espaço da sua solução. Por exemplo, se você deseja soluções não-negativas, basta limitar sua distribuição de amostras em soluções não-negativas. O mesmo não é tão direto no BO, porque mesmo você avalia suas funções de acordo com suas restrições (por exemplo, não negatividade), você também precisará restringir seu processo; esta tarefa, embora não seja impossível, está mais envolvida.
Em geral, é preferível a SA nos casos em que a função de custo é barata de avaliar e a BO nos casos em que a função de custo é cara de avaliar. Eu acho que o SA está lenta mas firmemente caindo em desuso; especialmente o trabalho de otimização sem gradiente (por exemplo , NEWQUA , BOBYQA ) tira uma de suas principais vantagens em comparação com os métodos padrão de descida com gradiente, que não precisam avaliar uma derivada. Da mesma forma, o trabalho no MCMC adaptável (por exemplo, consulte a referência acima) o torna um desperdício em termos de otimização do MCMC para quase todos os casos.
fonte