Диапазоны нейронных весов и веса, представленные в виде битовых векторов

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

а) Является ли общепринятой практикой для простоты поддерживать веса сети в диапазоне [-1, 1]?

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

б) Есть ли способ представить числа с плавающей запятой в виде битовых векторов, чтобы все «перестановки» битового вектора попадали в определенный диапазон?

Возможным решением б) было бы определение определенного количества шагов, скажем, 1024, представление веса в виде битового вектора длины 10 и преобразование числа между [0, 1023] в число между [-1, 1].

Спасибо.


person tsorn    schedule 03.03.2016    source источник


Ответы (1)


Является ли общепринятой практикой поддерживать веса сети в диапазоне [-1, 1]?

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

Есть ли способ представить числа с плавающей запятой в виде битовых векторов, чтобы все «перестановки» битового вектора попадали в определенный диапазон?

Да. Допустим, у вас есть вес, который принимает значение из интервала [-2, 2]. Для представления значения с плавающей запятой вы решаете использовать (например) «5-битную точность». Таким образом, битовый вектор может принимать значения от 0 до (2^5)-1.

Чтобы вычислить значение с плавающей запятой, представленное битовым вектором, вы вычисляете
weight_min + int(bitvector)/( (2^5)-1 ) * weight_range

Числовой пример: пусть ваш битовый вектор равен 01000, а диапазон — [-2, 2]. Это означает, что диапазон весов равен 4, а минимальный вес равен -2. Заполнение формулы из предыдущего пункта:
-2 + 8 / 31 * 4 = -0.97

person jorgenkg    schedule 03.03.2016