Как мне ввести ближайший объект в искусственном симуляторе жизни на входах нейронной сети?
Я только начал работать над искусственным симулятором жизни (снова... я потерял другого) в Python и Pygame, используя Pybrain, и я планирую, как это будет работать. До сих пор у меня есть среда с некоторыми "пищевыми гранулами". Пищевые гранулы добавляются каждую минуту. Я еще не сделал своих агентов (также известных как "Существа"), но я знаю, что хочу, чтобы у них были простые нейронные сети с прямой связью с некоторыми входами, и выходы будут его движением. Я хочу, чтобы входные данные показывали то, что перед ними, вроде как они видят имитируемый мир перед ними. Как я должен идти об этом? Я либо хочу, чтобы они на самом деле "видели" цвета в своем поле зрения, либо просто вводили ближайший объект в свой NN. Какой из них будет лучшим, и как я буду их реализовывать?
1 ответ
Наличие полного поля зрения технически возможно в нейронной сети, но требует МНОГО входов и массивной обработки; не направление, которое вы должны ожидать, чтобы иметь возможность развиваться любым значимым способом.
Нейронная сеть имеет дело со значениями и порогами. Я бы порекомендовал использовать два входа, связанных с ближайшим человеком - один из них имеет значение для расстояния (ближайшего), а другой - его угол (при этом ноль находится прямо впереди, меньше нуля слева и больше нуля) справа).
Убедитесь, что эти значения легко обрабатываются в выходные данные. Например, если один выход поступает на привод вращения, убедитесь, что входные значения и выходные значения находятся в одной шкале. Тогда будет легко повернуться к конкретному человеку или от него.
Если вы хотите, чтобы они могли видеть несколько человек, просто включите несколько пар входов. Я собирался предложить расположить их в порядке расстояния, но для них может быть проще, если, как только организм видит что-то, он всегда поступает на одни и те же данные, пока не перестанет отслеживаться.