Definición del espacio de búsqueda

Completado

El conjunto de valores de hiperparámetro probado durante el ajuste de los hiperparámetros se conoce como espacio de búsqueda. La definición del rango de valores posibles que se pueden elegir depende del tipo de hiperparámetro.

Hiperparámetros discretos

Algunos hiperparámetros requieren valores discretos; en otras palabras, debe seleccionar el valor de un conjunto finito determinado de posibilidades. Puede definir un espacio de búsqueda de un parámetro discreto mediante una opción de una lista de valores explícitos, que puede definir como una lista de Python (Choice(values=[10,20,30])), un rango (Choice(values=range(1,10))) o un conjunto arbitrario de valores separados por comas (Choice(values=(30,50,100))).

También puede seleccionar valores discretos de cualquiera de las distribuciones discretas siguientes:

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

Hiperparámetros continuos

Algunos hiperparámetros son continuos; es decir, puede usar cualquier valor a lo largo de una escala, lo que da lugar a un número infinito de posibilidades. Si desea definir un espacio de búsqueda para estos tipos de valor, puede usar cualquiera de los tipos de distribución siguientes:

  • Uniform(min_value, max_value): devuelve un valor distribuido uniformemente entre min_value y max_value.
  • LogUniform(min_value, max_value): devuelve un valor que se extrae según exp(Uniform(min_value, max_value)) de forma que el logaritmo del valor devuelto se distribuya uniformemente.
  • Normal(mu, sigma): devuelve un valor real que se distribuye normalmente con media mu y desviación estándar sigma.
  • LogNormal(mu, sigma): devuelve un valor extraído según exp(Normal(mu, sigma)) de forma que el logaritmo del valor devuelto se distribuya normalmente.

Definición de un espacio de búsqueda

Si desea definir un espacio de búsqueda para el ajuste de hiperparámetros, cree un diccionario con la expresión de parámetro adecuada para cada hiperparámetro con nombre.

Por ejemplo, el espacio de búsqueda siguiente indica que el hiperparámetro batch_size puede tener el valor 16, 32 o 64, y el hiperparámetro learning_rate puede tener cualquier valor de una distribución normal con una media de 10 y una desviación estándar 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),
)