Я создал 2D-игру, в которой вы используете редактор карт, чтобы размещать автомобили, препятствия и точки назначения, куда должны ехать автомобили.
Идея состоит в том, что эти машины будут управляться генерацией нейронных сетей с прямой связью.Но я не уверен, как информация должна быть представлена на входном слое и как должна выглядеть эволюция, поэтому я объясню свою идею, и было бы здорово получить совет о том, как сделать эту идею лучше, особенно если что-то не сработает.вообще.
Значения входного слоя:
- Нейроны между ними (0,1), представляющие расстояние до препятствия
- Нейроны между ними (-1,1)представляет скорость автомобиля и его направление (-1 - максимальная скорость назад, 0 - нет скорости, 0,5 - половина максимальной скорости вперед)
- Два нейрона между (-1,1), представляющие cos и sin (или 2 * asin / Pi и 2 * (acos-pi / 2) / Pi) вектора от автомобиля до места назначения относительно некоторой постоянной оси холста (карты).
Значения выходного слоя:
- Нейрон между (-1,1), представляющий ускорение автомобиля и его направление
- Нейрон между (-1,1), представляющий, где и как быстро автомобиль будет поворачивать
Глядя на значения, я думаю об использовании функции tanhywhere.Но разве это хорошая идея использовать одно отрицательное / положительное значение для определения направления (в качестве входа или выхода)?Или это хорошая идея использовать два нейрона, чтобы сообщить нейронной сети, куда она должна идти (очевидно, не может сказать одно значение) и т. Д.
Я полагаю, что сама эволюция заключается в переключении некоторого весаи значения смещения в основном между лучшими сетями (в зависимости от пригодности) и добавления небольших случайных чисел к некоторым весам и смещениям для изменения (где случайное число abs будет зависеть от пригодности, чтобы избежать разрушительных огромных изменений в хороших сетях).