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, deve-se selecionar o valor a partir de um conjunto finito de possibilidades. Você pode definir um espaço de pesquisa para um parâmetro discreto usando um Choice a partir de uma lista de valores explícitos, que você pode definir como um de lista de Python (Choice(values=[10,20,30])
), um intervalo de (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)
: 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 - ou seja, pode-se usar qualquer valor ao longo de uma escala, resultando num infinito número 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 é distribuído normalmente com média mu 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 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),
)