Definir espaço de pesquisa
O conjunto de valores de hiperparâmetro testado durante o ajuste de hiperparâmetro é conhecido como o espaço de pesquisa. A definição do intervalo de possíveis valores 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 determinado conjunto finito de possibilidades. Você pode definir um espaço de pesquisa para um parâmetro discreto usando uma Opção de uma lista de valores explícitos, que poderá definir como uma lista de 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) * qQLogUniform(min_value, max_value, q)
: retorna um valor como round(exp(Uniform(min_value, max_value)) / q) * qQNormal(mu, sigma, q)
: retorna um valor como round(Normal(mu, sigma) / q) * qQLogNormal(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 and max_valueLogUniform(min_value, max_value)
: retorna um valor traçado conforme exp(Uniform(min_value, max_value)), de modo que o logaritmo do valor retornado seja distribuído uniformementeNormal(mu, sigma)
: retorna um valor real normalmente distribuído com sigma de desvio padrão e mu médioLogNormal(mu, sigma)
: retorna um valor traçado conforme exp(Normal(mu, sigma)) de modo que o logaritmo do valor retornado seja normalmente distribuído
Definição de 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 seguinte espaço de pesquisa 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),
)