Método de otimização que considera o custo variável no tempo da função objetivo para diferentes parâmetros

9

Estou trabalhando para melhorar o processo de otimização de alguns softwares de modelagem demográfica para que ele possa ajustar melhor os modelos demográficos aos dados. Gostaríamos de diminuir o tempo de otimização.

O tempo necessário para avaliar nossa função objetivo varia muito, dependendo dos valores de entrada. A relação entre o tempo para avaliar a função objetivo e a entrada é conhecida. Gostaria de saber se existem métodos de otimização que considerem o custo relativo do tempo da função objetivo ao escolher quais pontos avaliar.

Obrigado!

Atualizar:

Como Paulo solicitou, aqui estão algumas características importantes dessa função objetivo específica:

  1. O número de parâmetros é moderado (~ 12ish)
  2. Nosso problema é não convexo, ou pelo menos existem "estrias" estreitas e planas na superfície da função objetivo. No momento, estamos lidando com isso usando várias otimizações de diferentes pontos, mas gostaríamos de fazer melhor.
  3. A função objetivo é bastante suave, embora apenas possamos calcular aproximações de diferenças finitas para derivadas.
  4. O custo da avaliação também é uma função suave dos valores dos parâmetros e é bastante previsível. grosso modo, para cada parâmetro, o custo para avaliar é alto em uma extremidade da faixa e baixo na outra extremidade. Portanto, temos grandes regiões de conjuntos de parâmetros caros para avaliar, mas sabemos onde eles estão.
nova
fonte
2
Olá Kate, e bem-vindo ao Scicomp! Você poderia compartilhar algumas das características da sua função objetivo? Isso pode ajudar a identificar um método específico para o seu caso.
Paul
Eu nunca ouvi falar de nenhum algoritmo que considere o custo de avaliar a função objetivo (ou quaisquer restrições) explicitamente ao escolher pontos para avaliar. No entanto, existem algoritmos de otimização sem derivativos que tentam escolher de maneira inteligente o próximo ponto a ser avaliado pelo otimizador. A premissa é que o número de avaliações de funções deve ser minimizado se as avaliações de funções forem caras. No entanto, não tenho certeza se o uso de algoritmos sem derivativos ajudará no seu caso de uso.
Geoff Oxberry
Olá @Paul, obrigado pelas boas-vindas! Estou animado por ter encontrado esta comunidade. Eu adicionei características. Deixe-me saber se há outros recursos que são mais importantes.
nova
Estou certo de deduzir do seu número 2 que você está interessado em um minimizador global ? Ou você está satisfeito com a diminuição "suficiente"? A otimização global é um campo próprio e a questão de obter uma solução global (se houver) pode ser totalmente separada de evitar pontos de teste caros.
Dominique
Dominique, tínhamos assumido que um otimizador global seria muito lento para o nosso problema, portanto ficamos satisfeitos com os otimizadores locais. Otimizadores globais são algo que planejamos analisar no futuro.
Nova

Respostas:

4

Uma abordagem comum para lidar com funções objetivas caras é criar (por exemplo, modelagem de regressão) um "modelo de superfície de resposta" que se aproxime da função objetivo original e, em seguida, otimizar a superfície de resposta em vez de trabalhar com a função original. Na prática, as superfícies de resposta são tipicamente apenas modelos quadráticos ajustados por regressão, portanto, encontrar um mínimo da superfície de resposta se torna um problema de otimização muito fácil.

Você não disse nada sobre a suavidade ou convexidade de sua função objetiva. Se a função é não suave ou não convexa, isso obviamente se torna muito, muito mais difícil.

Você também não disse nada sobre onde estão os pontos caros no seu espaço de parâmetros. Se eles estiverem distribuídos aleatoriamente por todo o espaço de parâmetros, você poderá usar técnicas de design de experimentos para construir seu modelo de superfície de resposta e evitar os pontos caros. Se houver regiões maiores do espaço de parâmetros em que as avaliações são caras, tente minimizar o número de pontos nas áreas usadas na construção do modelo de superfície de resposta. Obviamente, se o seu ideal estiver localizado no meio dessa região, você estará fadado a avaliar funções na região cara.

Brian Borchers
fonte
1

Não conheço métodos que pesem especificamente os custos relativos da avaliação do objetivo em diferentes pontos do estudo, mas se você puder prever com relativa confiabilidade se um candidato será caro para avaliar ou não, sugeriria tentar uma método direto . Os métodos diretos se encaixam na família de métodos sem derivativos. Não é necessariamente uma coisa ruim usá-los, mesmo que você suspeite que o seu problema seja tranquilo, pois eles podem fornecer um certo nível de flexibilidade que os métodos para otimização suave não podem.

A idéia é que os métodos diretos definam uma malha (dependente da iteração) sobre a iteração atual e uma "etapa" da malha (dependente da iteração). Com base nesta etapa da malha, o método determina os pontos de teste na malha que são vizinhos da iteração atual (eles ficam na malha e estão a uma distância definida pela etapa da malha). Em seguida, procederá à avaliação do objetivo nos vizinhos. Assim que um candidato melhor é encontrado, ele se torna a nova iteração atual. À sua escolha, você também pode avaliar todos os vizinhos e escolher o melhor.

No seu caso, pode ser uma boa ideia ordenar os vizinhos com base em sua estimativa do custo de avaliar o objetivo lá. Avalie-os nesta ordem e escolha o primeiro sucesso como a próxima iteração. Intuitivamente, você está favorecendo candidatos baratos. Nos métodos diretos, esses pedidos se encaixam na categoria de modelos substitutos , um conceito que generaliza o de um modelo de superfície de resposta mencionado por Brian.

Aqui está uma excelente implementação de um método direto (em C ++): http://www.gerad.ca/nomad/Project/Home.html

Se isso parece estar dando resultados promissores, sinta-se à vontade para voltar para mim e talvez eu possa sugerir outras melhorias.

Acredito que o NOMAD também tenha recursos para otimização global (como a inicialização múltipla que você está aplicando atualmente) com base no conceito de pesquisa de bairro variável .

Dominique
fonte