Как оптимизировать нейронную сеть с помощью генетического алгоритма? - PullRequest
5 голосов
/ 19 января 2010

Я совершенно новичок в этой теме, поэтому любая помощь будет отличной.Что мне нужно, это оптимизировать нейронную сеть в MATLAB с помощью GA.В моей сети есть вход [2x98] и цель [1x98], я пытался обратиться к справке MATLAB, но я все еще не знаю, что делать :( так что любая помощь будет принята. Спасибо заранее.

Редактировать: я думаю, что я не сказал, что нужно оптимизировать, как сказал Дэн в 1-м ответе. Думаю, самое важное - это количество скрытых нейронов. И, возможно, количество скрытых слоев и параметры обучения, такие как количество эпох илитак что. извините за то, что не предоставил достаточно информации, я все еще изучаю это.

Ответы [ 6 ]

1 голос
/ 19 января 2010

Если это домашнее задание, делайте все, чему вас учили в классе.

В противном случае полностью отказывайтесь от MLP.Регрессия опорных векторов (http://www.csie.ntu.edu.tw/~cjlin/libsvm/) гораздо более надежно обучаема при широком спектре проблем и почти никогда не сталкивается с проблемой застрявших в локальных минимумах, часто возникающей с обученным MLP обратного распространения, который заставляетвам нужно решить задачу оптимизации топографии сети, просто чтобы найти сеть, которая действительно будет тренироваться.

0 голосов
/ 25 марта 2013

Matlab имеет простое, но отличное объяснение этой проблемы здесь . Это объясняет как ANN, так и GA часть.

Для получения дополнительной информации об использовании ANN в командной строке см. this .

Существует также много литературы по этому вопросу, если вы гуглите ее. Однако это не связано с MATLAB, а просто результаты и метод.

0 голосов
/ 10 февраля 2011

Поскольку вы уже используете MATLAB, я предлагаю вам взглянуть на решатель Genetic Algorithms (известный как GATool, часть Global Optimization Toolbox ) и нейронную сеть Toolbox .Между этими двумя вы сможете сэкономить немало вычислений.

В основном вам придется выполнить 2 основные задачи:

  1. Придумать представление (или кодировку)) для ваших возможных решений
  2. Кодируйте вашу функцию пригодности (которая в основном проверяет возможные решения) и передайте ее в качестве параметра решателю GA.

Если вам нужна помощь в разработке функции пригодности или кодировании возможных решений, вам нужно быть более конкретным.

Надеюсь, это поможет.

0 голосов
/ 19 января 2010

Найдите Мэттью Сеттлс в Google Scholar. Он работал в этой области в Университете Айдахо за последние 5-6 лет. У него должны быть цитаты, относящиеся к вашей работе.

0 голосов
/ 19 января 2010

Полагаю, у вас есть набор параметров (количество скрытых слоев, количество нейронов на слой ...), которые необходимо настроить, вместо того, чтобы перебором всех комбинаций для поиска хорошей комбинации, GA может помочь вам«прыгать» из этой комбинации в другую.Таким образом, вы можете «исследовать» пространство поиска потенциальных кандидатов.

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

Вам нужно будет найти что-нибудь, чтобы закодировать данные (входные параметры, функции ...), подаваемые в GA.Для нахождения набора входных параметров или хорошего набора функций, я думаю, двоичное кодирование должно работать.Кроме того, выбор операторов для ГА для воспроизведения потомков также важен.Тем не менее, GA тоже нужно настроить (ранняя остановка, которая также может быть применена к ANN).

Вот лишь некоторые идеи.Возможно, вы захотите найти дополнительную информацию о GA, выборе функций, обрезке ANN ...

0 голосов
/ 19 января 2010

ну, вам нужно быть более конкретным в том, что вы пытаетесь оптимизировать. Это размер скрытого слоя? У вас есть скрытый слой? Оптимизация параметров (скорость обучения, параметры ядра)?

...