Какова цель использования генетического алгоритма в обучении ИНС

Я изучил основы обучения ИНС с помощью генетического алгоритма. Я узнал, что есть в основном 2 вещи, которые вы можете сделать:

  1. Используйте ГА, чтобы спроектировать структуру сети (определить, должно ли быть ребро между двумя нейронами или нет). Я предполагаю, что мы предполагаем, что можем использовать только определенное количество соединений нейрон-нейрон.
  2. Используйте GA для расчета оптимальных весов.

Я также узнал, что GA имеет смысл только в случае нерегулярных сетей. Если сеть состоит из слоев, рекомендуется использовать обратное распространение, так как оно быстрее.

Если обратное распространение быстрее и требует сети, состоящей из слоев, зачем мне выбирать GA для обучения или проектирования сети?


person Andrzej Gis    schedule 13.08.2014    source источник


Ответы (3)


Используйте ГА, чтобы спроектировать структуру сети (определить, должно ли быть ребро между двумя нейронами или нет).

В общем, вы, кажется, говорите о сетях прямой связи, предположительно MLP.

С этой структурой сети связано количество нейронов и слоев, а также связи между нейронами. Обычно они располагаются полностью связанными, так что каждый нейрон в слое n связан с каждым нейроном в слое n+1. Метод обучения устраняет частичную связность, обучая некоторые веса до нуля или до очень малых чисел.

Есть несколько правил настройки ИНС в зависимости от сложности данных и того, что вы хотите от них делать. Они могут дать вам хорошую отправную точку. Алгоритмы обучения будут определять связь между нейронами, но не будут влиять на количество нейронов или слоев.

Поэтому GA можно использовать для экспериментов с параметрами, влияющими на размер сети.

Используйте GA для расчета оптимальных весов.

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

Для MLP с прямой связью GA займет больше времени на обработку, чем обратное распространение.

Я также столкнулся с тем, что GA также не настраивается точно, поэтому у вас может быть сеть, которая менее устойчива к шуму при использовании GA, чем BP.

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

Я также узнал, что GA имеет смысл только в случае нерегулярных сетей. Если сеть состоит из слоев, рекомендуется использовать обратное распространение, так как оно быстрее.

Вы здесь правы, и не только с ВР. Большинство сетевых архитектур, имеющих специальный алгоритм обучения, подходят для этого лучше, чем ГА.

Но для нерегулярных сетей может не быть отдельного алгоритма обучения. Для них ГА позволяет вам экспериментировать и тренироваться. Тестирование архитектур, чтобы увидеть, возможно ли решение, прежде чем пытаться написать специальный алгоритм обучения.

Помните, что до изобретения BP был десятилетний перерыв в ИНС, потому что не было метода обучения МЛП!

Если обратное распространение быстрее и требует сети, состоящей из слоев, зачем мне выбирать GA для обучения или проектирования сети?

Если вы используете сеть FF, BP обычно является лучшим выбором для ОБУЧЕНИЯ. Однако обучение включало только манипулирование весами. Генеральный анализ можно использовать для проектирования структуры и изменения других элементов, таких как смещение, функция сжатия и т. д.

Следует отметить, что часто упускается из виду, что обратное распространение обучает одну сеть, регулируя веса. ГА представляет собой совокупность множества сетей с фиксированными весами, он развивает решение, которое представляет собой сеть, «рожденную» с фиксированными весами. Нет фактического сетевого обучения/обучения.

При этом исходные параметры одиночной сети; количество нейронов, слоев, смещение, начальные веса могут потребовать внимания и экспериментов. Параметры ГА; размер популяции, начальные значения, частота мутаций, кроссовер... все это влияет на время эволюции и результат вероятного или возможного решения.

person Niccolo    schedule 14.08.2014
comment
Прежде всего танк вас, это отличный ответ. Хотя есть еще одна вещь, которую я не понимаю. В начале вы говорите: метод обучения разберется с частичной связностью, обучая некоторые веса до нуля или до очень малых чисел. Позже вы скажете: ГА — это совокупность множества сетей с фиксированными весами. Это похоже на противоречие. Итак, как я могу определить пригодность конкретной конфигурации сети? Должен ли я установить для всех весов одно и то же значение и рассчитать ошибку, или я должен взять каждую конфигурацию, попытаться обучить ее на небольшом наборе данных и посмотреть, как быстро это уменьшит ошибку? - person Andrzej Gis; 14.08.2014
comment
Пожалуйста. Под методом тренировки я имел в виду специальный метод, такой как BP. Для «обучения» ГА каждый цикл ГА будет создавать новую популяцию с новыми фиксированными весами, отличными от предыдущих. Вы тестируете каждого из людей один раз и записываете их ошибку, это функция пригодности GA. Чтобы использовать ГА для развития конфигурации сети, вы берете каждого человека и тренируете их с помощью BP, я предлагаю тренировать каждого несколько раз со случайными весами и брать лучший/средний балл. Вы не можете установить одинаковые веса, потому что они имеют разные конфигурации. - person Niccolo; 15.08.2014
comment
Спасибо еще раз. Я думаю, теперь я понимаю. :) - person Andrzej Gis; 15.08.2014

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

То же самое касается весов. Обратное распространение не обязательно дает идеальный результат. Он может найти только локальный оптимум, который работает хуже, чем сеть с другим набором весов. Генетический алгоритм может дать и здесь лучшие результаты.

В конце концов, это другой подход к решению сложных задач оптимизации, которые ставят ИНС.

person janwschaefer    schedule 14.08.2014
comment
Говоря о структуре, я предполагаю, что самой сильной сетью будет сеть с полностью связанными слоями, построенная из как можно большего количества нейронов. Мне кажется, что использование ГА имеет смысл, если есть ограничение на количество нейронов, которые можно использовать. . Я прав? - person Andrzej Gis; 14.08.2014
comment
Как выбрать пригодность при проектировании структуры ИНС с помощью ГА? У нас еще нет рассчитанных весов, так как же определить, хороша новая структура или плоха? - person Andrzej Gis; 14.08.2014
comment
Что касается первого вопроса, да, полносвязная сеть имеет большую пропускную способность, но часто это плохо. Переобучение может быть проблемой для моделей со слишком большим количеством свободных параметров, поэтому сеть с более редкими связями на самом деле может быть быстрее в обучении и более точной. Во втором вопросе вы назначаете пригодность, обучая сеть, которую создает ГА. Вы можете тренироваться так, как вам нравится — с обратной опорой, с помощью ГА (или другого ГА) изучающего веса или любым другим методом. Пригодность сетевой структуры — это ошибка, которую вы получили, когда обучали ее на данных. - person deong; 14.08.2014

Потому что вы понятия не имеете, как организовать свою сеть по слоям; на самом деле, вы можете использовать GA, чтобы придумать способ организовать его в слои, а затем использовать BP для расчета весов в указанной сети.

person Scott Hunter    schedule 13.08.2014
comment
Я не понимаю, в чем сложность разделения сети на слои. Может через меня говорит отсутствие опыта, но в чем может быть проблема? Слой — это тривиальная структура. Группа нейронов, каждый из которых связан с каждым нейроном из предыдущего слоя. - person Andrzej Gis; 14.08.2014
comment
У вас может быть один слой, или два, или три, или десять, с двумя, шестью или двадцатью девятью нейронами в каждом. Таким образом, существует бесконечное количество возможных настроек, и все они будут работать по-разному. Какой из них лучше? Часто трудно сказать. Генетический алгоритм может дать лучшие результаты, чем человеческие догадки. - person janwschaefer; 14.08.2014