Definir um espaço de pesquisa

Concluído

O conjunto de valores de hiperparâmetros tentado durante o ajuste de hiperparâmetros é conhecido como o 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 requerem valores discretos - em outras palavras, você deve selecionar o valor de um determinado conjunto finito de possibilidades. Você pode definir um espaço de pesquisa para um parâmetro discreto usando uma Escolha de uma lista de valores explícitos, que você pode definir como uma lista Python (), um intervalo () ou um conjunto arbitrário de valores separados por vírgulas (Choice(values=[10,20,30])Choice(values=range(1,10))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): Devolve um valor como round(Uniform(min_value, max_value) / q) * q
  • QLogUniform(min_value, max_value, q): Devolve um valor como round(exp(Uniform(min_value, max_value)) / q) * q
  • QNormal(mu, sigma, q): Devolve um valor como round(Normal(mu, sigma) / q) * q
  • QLogNormal(mu, sigma, q): Devolve 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): Devolve um valor uniformemente distribuído entre min_value e max_value
  • LogUniform(min_value, max_value): Devolve um valor desenhado de acordo com exp(Uniform(min_value, max_value)) para que o logaritmo do valor de retorno seja uniformemente distribuído
  • Normal(mu, sigma): Devolve um valor real que é normalmente distribuído com mu média e desvio padrão sigma
  • LogNormal(mu, sigma): Devolve um valor desenhado de acordo com exp(Normal(mu, sigma)) para que o logaritmo do valor de retorno seja normalmente distribuído

Definir um espaço de pesquisa

Para definir um espaço de pesquisa para ajuste de hiperparâmetros, 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 pode ter o valor 16, 32 ou 64, e o batch_size learning_rate hiperparâmetro 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),
)