Настройка метода выборки
Определенные значения, используемые в выполнении настройки гиперпараметров или задании очистки, зависят от типа используемой выборки .
Существует три основных метода выборки, доступные в Машинное обучение Azure:
- Выборка сетки: выполняет все возможные сочетания.
- Случайная выборка: случайным образом выбирает значения из пространства поиска.
- Собол: добавляет начальное значение к случайной выборке, чтобы сделать результаты воспроизводимыми.
- Выборка Байезиана: выбирает новые значения на основе предыдущих результатов.
Примечание.
Соболь — это вариант случайной выборки.
Решетчатая выборка
Выборка сетки может применяться только в том случае, если все гиперпараметры дискретны и используются для каждой возможной комбинации параметров в пространстве поиска.
Например, в следующем примере кода выборка с помощью сетки используется для выполнения всех возможных сочетаний дискретных значений batch_size и learning_rate:
from azure.ai.ml.sweep import Choice
command_job_for_sweep = command_job(
batch_size=Choice(values=[16, 32, 64]),
learning_rate=Choice(values=[0.01, 0.1, 1.0]),
)
sweep_job = command_job_for_sweep.sweep(
sampling_algorithm = "grid",
...
)
Случайная выборка
Случайная выборка используется для случайного выбора значения каждого гиперпараметра, который может быть сочетанием дискретных и непрерывных значений, как показано в следующем примере кода:
from azure.ai.ml.sweep import Normal, Uniform
command_job_for_sweep = command_job(
batch_size=Choice(values=[16, 32, 64]),
learning_rate=Normal(mu=10, sigma=3),
)
sweep_job = command_job_for_sweep.sweep(
sampling_algorithm = "random",
...
)
Sobol
Возможно, вы сможете воспроизвести задание случайной выборки. Если вы ожидаете, что вы делаете, вы можете использовать Sobol вместо этого. Соболь — это тип случайной выборки, которая позволяет использовать начальное значение. При добавлении начального значения задание очистки можно воспроизвести, а распределение пространства поиска распределяется более равномерно.
В следующем примере кода показано, как использовать Sobol, добавив начальное и правило, и используя RandomSamplingAlgorithm
класс:
from azure.ai.ml.sweep import RandomSamplingAlgorithm
sweep_job = command_job_for_sweep.sweep(
sampling_algorithm = RandomSamplingAlgorithm(seed=123, rule="sobol"),
...
)
Байесовская выборка
Байесовская выборка выбирает значения гиперпараметров в зависимости от байесовского алгоритма оптимизации, который пытается выбрать сочетания параметров которые приведут к повышению производительности по сравнению с предыдущим набором. В следующем примере кода показано, как настроить байесовскую выборку:
from azure.ai.ml.sweep import Uniform, Choice
command_job_for_sweep = job(
batch_size=Choice(values=[16, 32, 64]),
learning_rate=Uniform(min_value=0.05, max_value=0.1),
)
sweep_job = command_job_for_sweep.sweep(
sampling_algorithm = "bayesian",
...
)
Вы можете использовать только выборку Байезиана с выражениями параметров выборки, униформы и квниформы.