Otimização por amostragem aleatória

7

Na internet, vi referências dispersas à ideia de redimensionar uma função objetiva e usá-la como PDF para fins de otimização. (Neste site, por exemplo: As técnicas de otimização são mapeadas para as técnicas de amostragem? ) Alguém pode me indicar um local onde eu possa aprender mais sobre esse método? (Artigos, postagens em blogs, palestras etc.)

A idéia, como eu a vi, é pegar sua função objetiva e criar uma nova função , onde é um número muito grande para um problema de maximização ou um número negativo muito grande para um problema de minimização. A nova função será então muito mais alta no ideal global do que em qualquer outro lugar. Se for tratado como uma função de densidade de probabilidade não normalizada, a maioria das amostras extraídas dessa distribuição será em torno do ideal.f(x)g(x)=ekf(x)kg(x)g(x)

O que eu quero saber inclui, mas não se limita a:

  1. Quais algoritmos de amostragem são eficazes para essas funções de probabilidade?
  2. Por que esse método não é usado com mais frequência? (Parece que poderia ser tão eficaz). Em outras palavras, existem argumentos contra isso?
  3. Existem variantes desse método que melhoram a eficiência ou o desempenho?
KFox
fonte

Respostas:

4

Parece que você está interessado em estudar métodos de otimização estocástica . Se você enquadrar a otimização como um tipo de problema de amostragem, obterá um método de otimização estocástica, e esse último método só será vantajoso se fornecer alguma melhoria em relação aos métodos de otimização determinísticos análogos.

De um modo geral, métodos de otimização estocástica desse tipo envolvem a geração de valores aleatórios de uma maneira que depende da função que está sendo otimizada e, portanto, é provável que seja pelo menos tão computacionalmente intensivo (e provavelmente mais computacionalmente intensivo) que os métodos determinísticos correspondentes . Métodos estocásticos também são geralmente mais complicados de entender. Portanto, a única vantagem que provavelmente resultará em métodos de otimização estocástica (bem construída) é que eles geralmente mantêm uma probabilidade diferente de zero de "procurar" áreas do domínio que podem ser perdidas por métodos determinísticos e, portanto, são indiscutivelmente mais robusto, se você estiver disposto a executá-los por um longo tempo.

A maioria dos métodos de otimização determinística padrão envolve dar passos iterativos em direção ao ótimo, escolhendo uma direção determinística do movimento e movendo-se nessa direção por uma quantidade determinística (por exemplo, com a subida mais acentuada nos movemos na direção do vetor gradiente). A direção e o comprimento das etapas são geralmente determinados observando o gradiente da função, que na prática é calculada observando a inclinação em um pequeno incremento de movimento. Ao transformar a otimização em um problema de amostragem, você efetivamente apenas se move em uma direção aleatória em uma quantidade aleatória, mas ainda deseja usar informações na inclinação da função para determinar o comportamento estocástico desse movimento. É provável que o último método use as mesmas informações que o primeiro, apenas de forma mais complexa (e, portanto, mais intensamente computacionalmente). Abaixo, construirei um método usando o algoritmo MH, com base na sua descrição.


Implementação com o algoritmo Metropolis-Hastings: Suponha que você esteja lidando com um problema de maximização com uma distribuição em uma dimensão e considere o método de amostragem Metropolis-Hasting usando desvios gaussianos. Este é um método bem conhecido de amostragem que é bastante robusto contra comportamentos desagradáveis ​​pela densidade de amostragem.

Para implementar o algoritmo, geramos uma sequência de desvios aleatórios, que mais tarde multiplicaremos pelo parâmetro "largura de banda" (portanto, este parâmetro representa o desvio padrão de nossas etapas propostas). Também geramos uma sequência de variáveis ​​aleatórias uniformes. Escolhemos um valor inicial arbitrariamente e geramos a sequência de valores de amostra recursivamente como:ε1,ε2,ε3,...IID N(0,1)λ>0U1,U2,U3,...U(0,1)x0

xt+1={xt+λεt+1if Ut+1exp(k(f(xt+λεt+1)f(xt))),xtotherwise.

O algoritmo MH tem uma distribuição estacionária igual à densidade alvo, portanto, temos a distribuição aproximada para grandes . Tomando um valor grande para (relativo ao parâmetro de largura de banda) significa que os desvios na direção dos ótimos serão aceitos com alta probabilidade e os desvios dos ótimos (ou superação dos ótimos) serão rejeitados com alta probabilidade.Portanto, na prática, os valores da amostra devem convergir para perto do ponto de maximização da densidade (ainda haveria casos em que isso não ocorreria; por exemplo, se a densidade for bimodal e o algoritmo subir na inclinação errada). Se pegarmos um valor grande de , a distribuiçãoXnexp(k(f(x))nkfkexp(k(f(x)) é altamente concentrado próximo ao valor maximizador, portanto, neste caso, a média amostral dos valores amostrados (descartando alguns valores de queima) deve nos fornecer uma boa estimativa do valor maximizador na otimização .

Agora, suponha que neutralizemos o grande valor de , definindo a largura de banda como pequena. Nesse caso, obtemos pequenos valores para os desvios, portanto, temos as probabilidades de aceitação aproximadas:kλ

exp(k(f(xt+λεt+1)f(xt)))exp(kλεt+1f(xt)).

Podemos ver que, neste caso, a probabilidade de aceitação é determinada pela derivada da densidade, pela magnitude e direção do desvio e pelo valor .εt+1kλ

Então, esse algoritmo realmente tem um desempenho melhor do que os algoritmos de otimização determinística aplicáveis? Bem, podemos ver que o algoritmo exige que calculemos a densidade em cada etapa potencial e, se o parâmetro de largura de banda for pequeno, isso equivale a calcular a derivada da função. Portanto, isso é bastante semelhante a uma forma de ascensão do gradiente estocástico, com mais trabalho computacional do que o método determinístico correspondente. A vantagem, se houver, é que os desvios propostos são aleatórios e todos ocorrem com uma probabilidade diferente de zero (embora desapareça muito rapidamente); portanto, o algoritmo tem o potencial de "escapar" de regiões de alta, mas não maximizável, densidade .

Ben - Restabelecer Monica
fonte
Existe alguma conexão entre essa abordagem e a abordagem em que o ruído é adicionado ao gradiente antes de cada etapa, por exemplo, where ? E a dinâmica Langevin do gradiente estocástico ? θ˙=L(θ)+εtεtN(0,σt)
user76284
Eles parecem procedimentos diferentes para mim, mas é possível que haja algumas conexões. Eles estão conectados pelo menos no sentido amplo que envolve iterações estocásticas, onde algum componente de ruído é adicionado à iteração Newton-Raphson padrão (na direção, distância ou gradiente).
Ben - Restabelece Monica