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

Завершено

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

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

Для некоторых гиперпараметров требуются дискретные значения - другими словами, необходимо выбрать значение из конкретного конечного набора возможностей. Можно задать пространство поиска для дискретного параметра, используя выбор из списка явных значений, который можно определить как список 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),
)