Definir um espaço de pesquisa

Concluído

O conjunto de valores de hiperparâmetro testados durante o ajuste de hiperparâmetro é conhecido como espaço de pesquisa . A definição do intervalo de valores possíveis que podem ser escolhidos depende do tipo de hiperparâmetro.

Hiperparâmetros discretos

Alguns hiperparâmetros exigem valores discretos– em outras palavras, você deve selecionar o valor de um conjunto de possibilidades fin ito específico. Você pode definir um espaço de pesquisa para um parâmetro discreto usando um Choice de uma lista de valores explícitos, que você pode definir como um de lista do Python (Choice(values=[10,20,30])), um intervalo (Choice(values=range(1,10))) ou um conjunto arbitrário de valores separados por vírgulas (Choice(values=(30,50,100)))

Você também pode selecionar valores discretos de qualquer uma das seguintes distribuições discretas:

  • QUniform(min_value, max_value, q): retorna um valor como round(Uniform(min_value, max_value) / q) * q
  • QLogUniform(min_value, max_value, q): retorna um valor como round(exp(Uniform(min_value, max_value)) / q) * q
  • QNormal(mu, sigma, q): retorna um valor como round(Normal(mu, sigma) / q) * q
  • QLogNormal(mu, sigma, q): retorna um valor como round(exp(Normal(mu, sigma)) / q) * q

Hiperparâmetros contínuos

Alguns hiperparâmetros são contínuos – em outras palavras, você pode usar qualquer valor ao longo de uma escala, resultando em um número infinito de possibilidades. Para definir um espaço de pesquisa para esses tipos de valor, você pode usar qualquer um dos seguintes tipos de distribuição:

  • Uniform(min_value, max_value): retorna um valor distribuído uniformemente entre min_value e max_value
  • LogUniform(min_value, max_value): retorna um valor desenhado de acordo com exp(Uniform(min_value, max_value)) para que o logaritmo do valor retornado seja distribuído uniformemente
  • Normal(mu, sigma): Retorna um valor real que é normalmente distribuído com média mu e desvio padrão sigma
  • LogNormal(mu, sigma): retorna um valor desenhado de acordo com exp(Normal(mu, sigma)) para que o logaritmo do valor retornado seja normalmente distribuído

Definindo um espaço de pesquisa

Para definir um espaço de pesquisa para ajuste de hiperparâmetro, crie um dicionário com a expressão de parâmetro apropriada para cada hiperparâmetro nomeado.

Por exemplo, o espaço de pesquisa a seguir indica que o hiperparâmetro batch_size pode ter o valor 16, 32 ou 64, e o hiperparâmetro learning_rate pode ter qualquer valor de uma distribuição normal com uma média de 10 e um desvio padrão de 3.

from azure.ai.ml.sweep import Choice, Normal

command_job_for_sweep = job(
    batch_size=Choice(values=[16, 32, 64]),    
    learning_rate=Normal(mu=10, sigma=3),
)