Гиперпараметры в классификации
Гиперпараметры можно рассматривать как параметры, используемые для обучения. Например, мы можем настроить, проводить ли обучение медленно или быстро. Гиперпараметры влияют на обучение, поэтому они влияют на конечную производительность модели. Какие именно гиперпараметры будут доступны, зависит от типа обучаемой нами модели. Обычно с гиперпараметрами экспериментируют, чтобы оптимизировать производительность модели.
Примеры для случайных лесов
В случайном лесу доступны различные виды гиперпараметров. Конкретно для случайных лесов линия между гиперпараметрами архитектурных решений может быть размыта. Это обусловлено тем, что гиперпараметры влияют не только на параметры внутри модели, но также и на структурирование деревьев и леса.
Вспомним, что в начале обучения каждому дереву принятия решений предоставляется множество примеров, например 100 гимнастов, часть из которых выиграла медали. Мы должны построить дерево, которое постепенно разделяет эти образцы на небольшие подгруппы спортсменов. Цель состоит в получении подгрупп, которые содержат схожих между собой атлетов. Например, в одной подгруппе все атлеты выиграли медали, а в другой — все проиграли. Давайте рассмотрим некоторые гиперпараметры, которые могут повлиять на процесс обучения.
Критерии разбиения
Во время обучения оптимизатор должен решить, когда следует разбить узел. Возможны различные способы принятия подобных решений, а выбранный метод будет называться гиперпараметром. По сути, различные методы используют разные способы определения того, насколько схож пример.
Общие методы разделения узлов основаны на теории информации. Вы можете подумать об этом примерно как разделение образца, чтобы два результирующего подсампли являются "чистыми", чем исходный. Доступные методы немного отличаются друг от друга и могут привести к незначительным различиям в итоговом результирующем дереве, примерно так же, как функции затрат, используемые для градиентного спуска, могут выдавать разные итоговые модели. В следующем наборе упражнений мы будем экспериментировать с двумя критериями.
Уменьшение показателя минимальной чистоты
Можно дополнительно настроить критерий, используемый для разделения узлов. Например, параметр Уменьшение показателя минимальной чистоты означает, что узел можно разделить только в случае, если он улучшит модель в определенном объеме (или больше). Существует несколько связанных гиперпараметров, которые могут блокировать создание новых узлов, например максимальная глубина или минимальное количество выборок в узле.
Деревья ограничиваются в росте с целью предотвращения избыточного обучения и возникновения лжевзаимосвязей. Более крупные деревья лучше соответствуют набору данных для обучения, но они могут избыточно настроиться на этот обучающий набор и перестать правильно работать с другими данными. Иными словами, ограничение сложности древа поможет уменьшить его тенденцию к избыточному обучению.
Максимальное количество функций
При создании деревьев в случайном лесу они предоставляются с подмножеством обучающих данных для соответствия и списка используемых функций. Важно отметить, что каждое дерево может принимать свои собственные, отличные от других коллекций функций. Например, в одном дереве может использоваться вес и рост, а в другом — рост и возраст.
Увеличение максимального числа признаков, которые может получить каждое дерево, скорее всего, улучшит то, насколько хорошо каждое дерево может соответствовать набору обучения, так как предоставляется дополнительная информация. Чтобы понять, пойдет ли это на пользу или во вред производительности во время работы с тестовым набором, необходимо будет провести эксперимент. Это связано с тем, что всегда предоставляя множество функций, может означать, что деревья в лесу в конечном итоге более похожи на другую, уменьшая преимущество случайного леса над простым деревом принятия решений. Для поиска баланса между этими требованиями обычно требуется поэкспериментировать.
Посев
Подгонка модели, как правило, зависит от использования в определенный момент случайных чисел. Компьютеры не создают действительно случайные числа, а содержат правила, которые указывают, как создавать список случайных чисел, учитывая начальное число, называемое случайным начальным значением .
Например, если наше начальное значение равно 10 и выбираются первые три "случайных" числа, компьютер может создать 0,75, 0,13, 0,68. Хотя эти числа отображаются случайным образом, каждый раз, когда вводится начальное значение 10, мы получаем тот же набор чисел.
В машинном обучении случайные числа используются для инициализации параметров модели и (или) разделения наборов данных на обучающие и проверочные наборы. Если задано случайное начальное значение, случайные значения, используемые в процессе обучения, будут одинаковыми при каждом запуске кода, то есть каждый раз при повторном запуске кода мы назначаем одинаковые данные для тестирования или обучения наборов и обучения моделей с одинаковым состоянием инициализации (начальные параметры).
В отличие от этого, если не задать начальное значение, компьютер выберет один для нас (например, на основе времени), что означает, что выполнение обучения дважды может дать немного разные результаты.
Случайное начальное значение не является гиперпараметром, но мы представляем его здесь, чтобы выделить, что этот внешний параметр может играть роль в эффективности обучения. Следующий момент может показаться незначительным, но, если модель очень сложна и (или) объем доступных данных мал, производительность модели тестирования может заметно отличаться при использовании двух различных начальных значений. В таких ситуациях часто он платит за выполнение обучения с несколькими разными семенами, чтобы оценить, насколько ваш дизайн модели достаточно, и насколько ваша производительность просто "слепая удача".