Я решил пойти с нейронной сетью, чтобы создать поведение для движка анимации, который у меня есть. Нейронная сеть принимает 3 вектора 3 и 1 угол Эйлера для каждой части тела, которую у меня есть. Первым вектором 3 является положение, второе - его скорость, а третья - его угловая скорость. Угол Эйлера - это то, во что вращается часть тела. и у меня 7 частей тела. Каждый из этих типов данных имеет 3 поплавка. 7 * 4 * 3 = 84, поэтому у меня 84 входа для моей нейронной сети. Выходы отображаются на мышцы персонажа. Они обеспечивают количество силы для применения к каждой мышце, и их 15.Размер нейронной сети для системы анимации
Я запускаю 15 сетей одновременно в течение 10 секунд, оценивая их пригодность, вычисляя наименьшее потребление энергии, имея наименьшее количество движений z и x, и если части тела находятся в правильном положении y по сравнению с остальными (hips.y> upperleg.y, upperleg.y> lowerleg.y и т. д.), а затем запускать их через генетический алгоритм. У меня была нейронная сеть из 168 нейронов на скрытый слой с 8 скрытыми слоями. Я пытаюсь заставить персонажа встать прямо и не двигаться слишком много. Я побежал на 3000 поколений, и я даже не приблизился.
Нейронная сеть и генетический алгоритм - это версии C# this tutorial. Я изменил метод кроссовера с одной точки на смешение.
У меня есть 84 входа и 15 выходов. Насколько велика моя Нейронная сеть?
Мне не нравится ваш ответ, но, похоже, это правда. Спасибо за головы, хотя. Мне любопытно посмотреть литературу. Разница между NEAT и HyperNEAT - это CPPN, правильно? CPPN может создавать нейронные сети, но сама по себе не является нейронной сетью? Или это нейронная сеть, которая развивается, а затем создает другие нейронные сети? Очень полезно, спасибо. – DrSammyD
NEAT использует прямое кодирование, что означает, что для каждого нейрона и соединения в геноме у вас будет то же самое в конечной сети. HyperNEAT использует косвенное кодирование. Геном - это одна сеть (CPPN развивается с NEAT), которая - когда вы применяете на нейронных парах субстрата (~ нейроны второй сети + дополнительная информация, как правило, ее координаты в 2D/3D системе координат), будет производить вес соединения. Я думаю, что технически CPPN также является NN, но он может использовать фантастические функции активации вместо обычного сигмоида/tanh. Однако могут быть и некоторые другие незначительные различия. –