Как оптимизировать нейронную сеть с помощью генетического алгоритма?

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

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


person Billy Coen    schedule 19.01.2010    source источник


Ответы (6)


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

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

person Gregory Maxwell    schedule 19.01.2010

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

person dan    schedule 19.01.2010

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

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

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

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

person user247468    schedule 19.01.2010
comment
спасибо за ответ, но мне нужно более конкретно. Например, если я использую функцию GA в Matlab, X = GA (FITNESSFCN, NVARS), какой должна быть функция, входные данные и что делать с x в конце. - person Billy Coen; 21.01.2010
comment
Извините, я никогда не касался GA Matlab. Я думаю, вы можете обратиться к его документу за значениями аргументов и возвращаемого значения. - person user247468; 26.01.2010

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

В основном вам нужно будет выполнить 2 основные задачи:

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

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

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

person JohnIdol    schedule 10.02.2011

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

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

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

person Emil Nielsen    schedule 25.03.2013

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

person Paul Nathan    schedule 19.01.2010