30

Есть ли у вас какие-либо советы или какие-либо рекомендации по разработке функций для задания машинного обучения? Хорошие функции ввода важны даже для нейронной сети. Выбранные функции повлияют на необходимое количество скрытых нейронов и необходимое количество примеров обучения.Как инженерные функции для машинного обучения

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

Пример из мотивации: Что бы хороший вход, если смотреть на головоломки (например, 15-puzzle или Sokoban)? Можно ли узнать, какое из двух государств ближе к цели?

ответ

46

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

Это может быть сделан итерационно: Ваш сверху вниз понимания проблемы мотивации экспериментов, а затем снизу вверх информации вы узнаете, для этих экспериментов позволяет получить лучшее понимание проблемы. Более глубокое понимание проблемы может стимулировать больше экспериментов.

Установка функции на свой классификатором

Допустим, вы используете простой линейный классификатор как logistic-regression или SVM с линейным ядром. Если вы считаете, что могут быть интересные взаимодействия между различными атрибутами, которые вы можете измерить и предоставить в качестве входных данных для классификатора, вам нужно вручную создать и предоставить функции, которые захватывают эти взаимодействия. Однако, если вы используете SVM с полиномиальным или гауссовским ядром, взаимодействия между входными переменными уже будут захвачены структурой модели.

Аналогично, SVM могут работать плохо, если некоторые входные переменные принимают гораздо больший диапазон значений, чем другие (например, большинство функций принимают значение 0 или 1, но одна функция принимает значения от -1000 до 1000) , Поэтому, когда вы выполняете разработку функций для SVM, вы можете попытаться нормализовать значения своих функций, прежде чем предоставлять их классификатору. Однако, если вы используете decision trees или random forests, такая нормализация не требуется, так как эти классификаторы устойчивы к различиям в величине между значениями, которые принимают различные функции.

Примечания В частности на решения головоломки

Если вы смотрите на решение проблемы с комплексным пространством состояний, вы можете захотеть использовать reinforcement learning подход как Q-learning. Это помогает структурировать задачи обучения, которые связаны с достижением определенной цели с помощью ряда промежуточных шагов системы.

+0

Является ли признание взаимодействий между атрибутами, упомянутыми в книге? Как распознать, что что-то отсутствует на входе? –

+0

В большинстве учебников по статистике следует упомянуть взаимодействие. Но есть хороший обзор в Википедии: http://en.wikipedia.org/wiki/Interaction_%28statistics%29. – dmcer

+6

Что касается материала, отсутствующего на входе, я предполагаю, что вы имеете в виду «как узнать, есть ли у меня достаточное количество правильных функций».Если вы измените порядок регуляризации для своего классификатора, и производительность по-прежнему плохая в данных обучения, вы, вероятно, должны попытаться мозгового штурма больше возможностей. Однако, когда производительность вашего тренинга хороша, но ваша производительность тестового набора плохая, вы переопределяете набор тренировок, и вам нужно будет удалить некоторые функции и/или активировать регуляризацию. – dmcer

Смежные вопросы