Изменять вес и смещения в нейронной сети через генетический алгоритм - PullRequest
0 голосов
/ 30 октября 2018

У меня есть генетический алгоритм, развивающий популяцию нейронных сетей

До сих пор я делаю мутации на весах или смещениях, используя random.randn (Python), который является случайным значением из нормального распределения со средним значением = 0

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

Моя интуиция заключается в том, что это приведет к большему разнообразию в моих сетях

1 Ответ

0 голосов
/ 03 ноября 2018

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

О разнообразии. Я предполагаю, что вы создаете некоторый случайный вектор, который представляет веса. На этапе мутации вы выполняете сложение случайного числа. Это число будет более вероятно из близкого интервала вокруг среднего значения, поэтому в случае 0 мутация с высокой вероятностью приведет к незначительному изменению некоторых элементов. Таким образом, по сравнению с вектором будут только небольшие улучшения, а иногда и что-то большое. В случае равномерного распределения изменения будут более случайными, что приведет к разным индивидуальным изменениям. Вопрос в том, будут ли эти личности лучше? Я не знаю, но я предлагаю вам другой взгляд. Я смотрю на генетические алгоритмы как на аналогию с теорией эволюции. И с этой точки зрения кумулятивные небольшие улучшения личности с небольшой вероятностью каких-то больших изменений более уместны. Подумайте о ситуации, используется равномерное распределение, но дети имеют низкую пригодность из-за больших изменений, поэтому на этапе создания новое поколение не будет выбрано. И вы так долго будете ждать крошечного улучшения, которое сделает вашу сеть работающей с хорошими результатами.

Может быть, еще одна вещь. Ваши эксперименты могут показать, что равномерное / нормальное распределение лучше. Но такой результат может быть верным только для вашей текущей проблемы, а не вообще.

...