Выбор параметров для генетического алгоритма

9

Как можно выбрать правильное количество параметров для генетического алгоритма для моделирования данной системы?

Например, скажем, вы хотите оптимизировать производство автомобилей, и у вас есть 1000 измерений почасовой эффективности для различных задач для каждого из 1000 различных сотрудников. Итак, у вас есть 1 000 000 точек данных. Большинство из них, вероятно, будут слабо коррелировать с общей эффективностью вашего предприятия, но не настолько слабо, чтобы вы могли сказать, что они не имеют отношения к статистической достоверности. Как вы выбираете входные данные для своего GA, чтобы у вас не было более 1 000 000 степеней свободы, что приводило к очень медленной конвергенции или ее отсутствию вообще?

В частности, какие алгоритмы можно использовать для предварительного выбора или выборочного устранения признаков?

Один подход , который я использовал себя в этом сценарии эволюционировать выбор параметров сам, так что я мог бы иметь родителей , как {a,b,c}, {b,d,e,q,x,y,z}и так далее. Затем я бы мутировал детей, чтобы добавлять или удалять функции. Это хорошо работает для нескольких десятков функций. Но проблема в том, что это неэффективно, если существует большое количество степеней свободы. В этом случае вы смотрите на 10^nкомбинации (в приведенном выше примере 10^1,000,000), что делает некоторую предварительную фильтрацию функций критически важной для получения какой-либо полезной производительности.

elixenide
источник

Ответы:

11

Прежде всего - пример не подходит, потому что вы, вероятно, использовали бы некоторые регрессионные или классические методы ML для решения этой проблемы. Во-вторых, вы имеете в виду общую проблему выбора признаков (Kira, Rendell, 1992) или выбора атрибутов (Hall, Holmes, 2003) или выбора переменных (Guyon, Elisseeff, 2003) или выбора поднабора переменных (Stecking, Schebesch, 2005). или извлечение признаков (Hillion, Masson, Roux, 1988) или уменьшение размерности (Roweis, Saul, 200) или абстракция состояний (Amarel, 1968), Эта проблема актуальна не только для генетических алгоритмов, но и почти для всех методов машинного обучения при работе с данными большого размера.

Здесь можно выделить три случая: последний случай этой проблемы, известный как абстракция состояния, обычно связан с моделированием процесса (что подходит вашему примеру, но не контексту GA). Первые три, то есть выбор функции , выбор атрибута или переменный выбор , как представляется, наиболее актуален при приеме на ваш вопрос буквально. В этом контексте общим решением является подход mRMR (Peng, Long, Ding, 2005) . Из моего опыта это не всегда хорошо работает с непрерывными данными - однако, взаимная информация может быть заменена другими коэффициентами, такими как, например, корреляция. Другой возможный подход заключается в использовании перекрестной проверки (Picard, Cook, 1984)за это. Вы можете иметь несколько моделей, каждая из которых использует различные функции, и с помощью выбора модели с методами перекрестной проверки вы выбираете лучшую модель, которая дает вам информацию о том, какие функции лучше всего подходят для данной задачи.

В извлечении признаков и сокращения размерных случаев позволяют не только выбрать начальные функции, но и их комбинацию. Хорошо известным примером решения для этого случая является алгоритм PCA (Pearson, 1901) , который дает оптимальный, с точки зрения объясненной дисперсии, набор признаков, представляющих собой линейные комбинации входных объектов.

Также обратите внимание, что существует много моделей, которые самостоятельно выполняют задачу извлечения объектов. Вот некоторые примеры: Растущая сеть нейронных газов (Fritzke, 1995) , LASSO (Tibshirani, 2011) , RFE SVM (Zeng, Chen, Tao, 2009) , Деревья решений (Quinlan, 1986) .

Ссылки:

BartoszKP
источник
3

Я никогда не делал этого раньше и, очевидно, не имею доступа к указанным данным, но потенциально хорошим способом сделать это была бы кластеризация . Для каждого сотрудника у нас есть n-мерный вектор, где каждое измерение соответствует отдельной задаче. Затем мы можем использовать кластеризацию для группировки «похожих» сотрудников; однако это будет зависеть исключительно от ваших данных, т. е. вполне возможно, что с учетом только 1000 сотрудников кластеризация приведет к группам сотрудников, которые на самом деле не так уж связаны, и поэтому, хотя мы можем сократить численность населения, это может быть за счет потери информации.

Стив П.
источник