Нам пришлось выбрать ряд гиперпараметров для определения и обучения модели. Мы полагались на интуицию, примеры и рекомендации лучших практик. Однако наш первый выбор значений гиперпараметров может не дать наилучших результатов. Это только дает нам хорошую отправную точку для обучения. Каждая проблема уникальна, и настройка этих гиперпараметров поможет уточнить нашу модель, чтобы лучше представить особенности рассматриваемой проблемы. Давайте посмотрим на некоторые гиперпараметры, которые мы использовали, и на то, что означает их настройка:
Количество слоев в модели . Количество слоев в нейронной сети является показателем ее сложности. Мы должны быть осторожны при выборе этого значения. Слишком много слоев позволит модели узнать слишком много информации об обучающих данных, что приведет к переоснащению. Слишком мало слоев может ограничить способность модели к обучению, что приведет к недообучению. Для наборов данных классификации текста мы экспериментировали с одно-, двух- и трехслойными MLP. Модели с двумя слоями показали себя хорошо, а в некоторых случаях даже лучше, чем модели с тремя слоями. Точно так же мы пробовали sepCNN с четырьмя и шестью слоями, и четырехслойные модели работали хорошо.
Количество единиц на слой : единицы в слое должны содержать информацию для преобразования, которое выполняет слой. Для первого слоя это определяется количеством функций. В последующих слоях количество единиц зависит от выбора расширения или сжатия представления из предыдущего слоя. Постарайтесь свести к минимуму потерю информации между слоями. Мы пробовали значения единиц измерения в диапазоне
[8, 16, 32, 64]
, и 32/64 единицы работали хорошо.Частота отсева. Слои отсева используются в модели для регуляризации . Они определяют долю входных данных, которую нужно отбросить, в качестве меры предосторожности от переобучения. Рекомендуемый диапазон: 0,2–0,5.
Скорость обучения : это скорость, с которой веса нейронной сети меняются между итерациями. Большая скорость обучения может вызвать большие колебания весов, и мы можем никогда не найти их оптимальные значения. Низкая скорость обучения — это хорошо, но для сходимости модели потребуется больше итераций. Это хорошая идея начать с малого, скажем, с 1e-4. Если обучение идет очень медленно, увеличьте это значение. Если ваша модель не обучается, попробуйте уменьшить скорость обучения.
Мы настроили несколько дополнительных гиперпараметров, характерных для нашей модели sepCNN:
Размер ядра : размер окна свертки. Рекомендуемые значения: 3 или 5.
Размеры встраивания : количество измерений, которые мы хотим использовать для представления встраивания слов, т. е. размер каждого вектора слова. Рекомендуемые значения: 50–300. В наших экспериментах мы использовали встраивания GloVe с 200 измерениями с предварительно обученным слоем встраивания.
Поэкспериментируйте с этими гиперпараметрами и посмотрите, что работает лучше всего. После того, как вы выбрали наиболее эффективные гиперпараметры для своего варианта использования, ваша модель готова к развертыванию.