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

Давайте посмотрим на один случай. Скажите о поиске альфа-гиперпараметра, о скорости обучения. Предположим, вы подозреваете, что 0,0001 может быть на нижнем уровне или, возможно, может быть даже выше 1. Теперь, если вы проведете числовую линию от 0,0001 до 1 и назначите значения вдоль этой числовой линии случайным образом наугад. Примерно 90 процентов значений вашей выборки будут между 0,1 и 1.

Таким образом, вы используете 90 процентов ресурсов для поиска между 0,1 и 1, а поиск между 0,0001 и 0,1 - только 10 процентов ресурсов. Звучит неправильно. Вместо этого более разумным кажется поиск гиперпараметров в логарифмической шкале. Таким образом, у вас будет 0,0001 вместо использования линейной шкалы, а затем 0,001, 0,01, 0,1, а затем 1, а затем вы будете производить выборку в этом виде логарифмической шкалы случайным образом, наугад. Теперь у вас есть больше ресурсов для сканирования от 0,0001 до 0,001, от 0,001 до 0,01 и т. Д.

И способ, которым вы выполняете это в Python,

r = -4 * np.random.rand()  # -4 <= r <= 0, uniformly at random

А затем случайно выбранное значение альфа как

alpha = np.exp(10, r) # 10e-4 <= alpha <= 1.0

Таким образом, r будет случайным числом от -4 до 0 после этой первой строки. А альфа будет между 10 ^ 4 и 10 ^ 0. В более общем случае, если вы попытаетесь отсортировать в логарифмической шкале от 10 ^ a до 10 ^ b. Затем вы измеряете r равномерно, случайным образом между a и b. Таким образом, в этом случае r будет между -4 и 0. А для значения гиперпараметра, выбранного случайным образом, вы можете установить альфа как 10r. Так что просто для повторного захвата, для выборки в логарифмической шкале, возьмите низкое значение, возьмите журналы, чтобы выяснить, что такое. Возьмите большое значение и возьмите журнал, чтобы решить, что такое b. Итак, теперь вы пытаетесь выполнить выборку в логарифмической шкале от 10a до 10b. Таким образом, вы устанавливаете r случайным образом и равномерно между a и b. И тогда гиперпараметр выставляется на 10р. Вот как вы реализуете выборку в этой логарифмической шкале.