Otimização prática do hiperparâmetro: Pesquisa aleatória versus pesquisa em grade

41

Atualmente, estou pesquisando a Pesquisa aleatória de otimização de hiper-parâmetros de Bengio e Bergsta [1], onde os autores afirmam que a pesquisa aleatória é mais eficiente do que a pesquisa em grade para obter desempenho aproximadamente igual.

Minha pergunta é: as pessoas aqui concordam com essa afirmação? No meu trabalho, tenho usado a pesquisa em grade principalmente por causa da falta de ferramentas disponíveis para executar a pesquisa aleatória facilmente.

Qual é a experiência das pessoas que usam a grade versus a pesquisa aleatória?

Barra
fonte
A pesquisa aleatória é melhor e sempre deve ser preferida. No entanto, seria ainda melhor usar bibliotecas dedicadas para otimização de hiperparâmetros, como Optunity , hyperopt ou bayesopt.
Marc Claesen
Bengio et al. escreva sobre isso aqui: papers.nips.cc/paper/… Então, o GP funciona melhor, mas o RS também funciona muito bem.
Guy L
10
@ Marc Quando você fornece um link para algo com o qual está envolvido, deve tornar sua associação clara (uma ou duas palavras podem ser suficientes, até algo tão breve quanto se referir a ele como our Optunitydeveria fazer); como a ajuda sobre o comportamento diz: "se algum ... acontecer de ser sobre o seu produto ou site, que está tudo bem No entanto, você deve divulgar sua afiliação."
Glen_b

Respostas:

39

A pesquisa aleatória tem uma probabilidade de 95% de encontrar uma combinação de parâmetros dentro dos 5% ótimos com apenas 60 iterações. Também comparado a outros métodos, ele não ataca as ótimas local.

Confira esta excelente postagem no blog da Dato por Alice Zheng, especificamente a seção Algoritmos de ajuste do hiperparâmetro .

Adoro filmes em que o oprimido vence e adoro papéis de aprendizado de máquina em que soluções simples são surpreendentemente eficazes. Esta é a história de “Pesquisa aleatória para otimização de hiperparâmetros” por Bergstra e Bengio. [...] A pesquisa aleatória não foi levada muito a sério antes. Isso ocorre porque ele não pesquisa sobre todos os pontos da grade, portanto, não pode superar o ideal encontrado pela pesquisa na grade. Mas então apareceu Bergstra e Bengio. Eles mostraram que, em surpreendentemente muitos casos, a pesquisa aleatória funciona tanto quanto a pesquisa em grade. Em suma, tentar 60 pontos aleatórios amostrados na grade parece ser bom o suficiente.

(10.05)n. Portanto, a probabilidade de que pelo menos um deles consiga atingir o intervalo é de 1 menos essa quantidade. Queremos pelo menos uma probabilidade de 0,95 de sucesso. Para descobrir o número de empates que precisamos, resolva apenas n na equação:

1(10.05)n>0.95

n60

A moral da história é: se a região quase-ótima dos hiperparâmetros ocupa pelo menos 5% da superfície da grade, a pesquisa aleatória com 60 tentativas encontrará essa região com alta probabilidade.

Você pode melhorar essa chance com um número maior de tentativas.

Em suma, se você tiver muitos parâmetros para ajustar, a pesquisa na grade poderá se tornar inviável. É quando eu tento pesquisa aleatória.

Firebug
fonte
3
Link para o post é para baixo :( Poderia ser este o mesmo artigo? Oreilly.com/ideas/evaluating-machine-learning-models/page/5/...
n1k31t4
@DexterMorgan Ei, obrigado pelo aviso. Sim, aparentemente, o blog está fora do ar e não tenho certeza se devo vincular a outras fontes que podem não ser "oficiais" , então vou deixar como está agora.
Firebug
O blog ainda está inativo ... obrigado por citá-lo e @ n1k31t4 obrigado por fornecer um link para outras leituras!
LLRs
8

Olhe novamente para o gráfico do papel (Figura 1). Digamos que você tenha dois parâmetros: com a pesquisa em grade 3x3, você verifica apenas três valores de parâmetros diferentes de cada um dos parâmetros (três linhas e três colunas no gráfico à esquerda), enquanto na pesquisa aleatória você verifica nove (!) Valores de parâmetros diferentes de cada um dos parâmetros (nove linhas distintas e nove colunas distintas).

Grade vs pesquisa aleatória

Obviamente, a pesquisa aleatória, por acaso, pode não ser representativa para todo o intervalo de parâmetros, mas, à medida que o tamanho da amostra aumenta, as chances disso diminuem.

Tim
fonte
6

Se você pode gravar uma função na pesquisa em grade, provavelmente é ainda mais fácil escrever uma função para fazer pesquisa aleatória, porque você não precisa pré-especificar e armazenar a grade antecipadamente.

Deixando isso de lado, métodos como LIPO, otimização de enxame de partículas e otimização bayesiana fazem escolhas inteligentes sobre quais hiperparâmetros provavelmente serão melhores; portanto, se você precisar manter o número de modelos em um mínimo absoluto (por exemplo, porque é caro ajustar um modelo), essas ferramentas são opções promissoras. Eles também são otimizadores globais, portanto, têm uma alta probabilidade de localizar o máximo global. Algumas das funções de aquisição dos métodos BO têm limites comprováveis ​​de arrependimento, o que os torna ainda mais atraentes.

Mais informações podem ser encontradas nestas perguntas:

Quais são algumas das desvantagens da otimização de hiper parâmetros bayesianos?

Otimização quando a função de custo demora para avaliar

Restabelecer Monica
fonte
2

Por padrão, a pesquisa aleatória e a grade são algoritmos terríveis, a menos que um dos seguintes seja válido.

  • Seu problema não possui uma estrutura global, por exemplo, se o problema é multimodal e o número de ótimos locais é enorme
  • Seu problema é barulhento, ou seja, avaliar a mesma solução duas vezes leva a diferentes valores de função objetivo
  • O orçamento das chamadas de função objetiva é muito pequeno comparado ao número de variáveis, por exemplo, menor que 1x ou 10x.
  • O número de variáveis ​​é muito pequeno, por exemplo, menor que 5 (na prática).
  • algumas outras condições.

A maioria das pessoas afirma que a pesquisa aleatória é melhor que a pesquisa em grade. No entanto, observe que quando o número total de avaliações de funções é predefinido, a pesquisa em grade levará a uma boa cobertura do espaço de pesquisa, que não é pior que a pesquisa aleatória com o mesmo orçamento e a diferença entre as duas é desprezível, se houver. Se você começar a adicionar algumas suposições, por exemplo, que seu problema é separável ou quase separável, você encontrará argumentos para apoiar a pesquisa na grade. No geral, ambos são comparativamente terríveis, a menos que em poucos casos. Portanto, não há necessidade de distinguir entre eles, a menos que considerações adicionais sobre o problema sejam consideradas.

IndieSolver
fonte
você pode propor algo melhor? Como podemos saber o que é melhor se não tentarmos? Parece-me que a pesquisa aleatória em muitos modelos é a melhor solução de compromisso.
JPErwin
0

Encontrar um ponto dentro de 95% do máximo em uma topografia 2D com apenas um máximo leva 100% / 25 = 25%, 6,25%, 1,5625% ou 16 observações. Desde que as quatro primeiras observações determinem corretamente em que quadrante estão os máximos (extremos). A topografia 1D ocupa 100/2 = 50, 25, 12,5, 6,25, 3,125 ou 5 * 2. Eu acho que as pessoas que pesquisam vários máximos locais distantes usam grande pesquisa na grade inicial e depois regressão ou algum outro método de previsão. Uma grade de 60 observações deve ter uma observação dentro de 100/60 = 1,66% dos extremos. Otimização global Wikipedia Ainda acho que sempre existe um método melhor do que a aleatoriedade.

ran8
fonte
O recozimento simulado é uma forma de pesquisa aleatória que existe há vários anos.
Michael Chernick