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

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

Мои планы следующие (могут быть изменены, много). Мои входные нейроны будут использовать набор данных, который может иметь практически любое положительное число (включая десятичные дроби до двух знаков, так что на самом деле они будут числами с плавающей запятой), но, скорее всего, от 0 до 20000. Потому что важность заключается в том, как числа сравниваются друг с другом по значению, а не по величине, они сначала будут разделены на наибольшее число всех введенных значений. Они должны быть умножены на веса (любые положительные или отрицательные числа с плавающей запятой) перед переходом к их скрытому слою. Каждый нейрон в скрытом слое будет суммировать все свои входные данные, пока они не будут вычислены. Затем они будут обработаны функцией логистики и выведены.

Моя среда - Visual Studio C ++ 2010 Express, и я использую clr.

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

Спасибо (и извините, если это должно быть в теоретической информатике, но я думал, что это не так. ' не вписывается)

9
задан contrapsych 19 February 2011 в 02:07
поделиться