Definir um espaço de pesquisa
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) * qQLogUniform(min_value, max_value, q)
: Devolve um valor como round(exp(Uniform(min_value, max_value)) / q) * qQNormal(mu, sigma, q)
: Devolve um valor como round(Normal(mu, sigma) / q) * qQLogNormal(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_valueLogUniform(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ídoNormal(mu, sigma)
: Devolve um valor real que é normalmente distribuído com mu média e desvio padrão sigmaLogNormal(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),
)