Определение пространства поиска

Завершено

Набор значений гиперпараметров, которые были опробованы во время настройки гиперпараметров, называется областью поиска. Определение диапазона возможных значений, которые могут быть выбраны, зависит от типа гиперпараметра.

Дискретные гиперпараметры

Для некоторых гиперпараметров требуются дискретные значения. Другими словами, необходимо выбрать значение из определенного конечного набора возможностей. Пространство поиска для дискретного параметра можно определить с помощью выбора из списка явных значений, которые можно определить как список Python (), диапазон (Choice(values=[10,20,30])Choice(values=range(1,10))) или произвольный набор значений, разделенных запятыми (Choice(values=(30,50,100)))

Можно также выбрать дискретные значения из любого из следующих дискретных распределений.

  • QUniform(min_value, max_value, q): возвращает значение, например round(Uniform(min_value, max_value) / q) * q
  • QLogUniform(min_value, max_value, q): возвращает значение, например round(exp(Uniform(min_value, max_value)) / q) * q
  • QNormal(mu, sigma, q): возвращает значение, например round(Normal(mu, sigma) / q) * q
  • QLogNormal(mu, sigma, q): возвращает значение, например round(exp(Normal(mu, sigma)) / q) * q

Непрерывные гиперпараметры

Некоторые гиперпараметры являются непрерывными - другими словами, вы можете использовать любое значение в масштабе, что приводит к бесконечному количеству возможностей. Чтобы определить область поиска для этих типов значений, можно использовать любой из следующих типов распределения.

  • Uniform(min_value, max_value): возвращает значение, равномерно распределенное между min_value и max_value
  • LogUniform(min_value, max_value): возвращает значение, нарисованное в соответствии с exp(Uniform(min_value, max_value)), чтобы логарифм возвращаемого значения равномерно распределялся
  • Normal(mu, sigma): возвращает реальное значение, которое обычно распределяется со средним мю и стандартным отклонением сигмы
  • LogNormal(mu, sigma): возвращает значение, нарисованное в соответствии с exp(Normal(mu, sigma)), чтобы логарифм возвращаемого значения обычно распределялся

Определение области поиска

Чтобы определить область поиска для настройки гиперпараметров, создайте словарь с соответствующим выражением параметра для каждого именованного гиперпараметра.

Например, следующее пространство поиска указывает, что batch_size гиперпараметр может иметь значение 16, 32 или 64, а learning_rate гиперпараметр может иметь любое значение из нормального распределения со средним значением 10 и стандартным отклонением 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),
)