Я пытаюсь запрограммировать свою собственную систему для запуска нейронной сети. Чтобы уменьшить количество необходимых узлов, было предложено сделать так, чтобы он обрабатывал повороты входа одинаково.
Моя сеть нацелена на изучение и прогнозирование игры жизни Конвея, рассматривая каждый квадрат и окружающие его квадраты в сетке, и давая выходные данные для этого квадрата. Его ввод - строка из 9 битов:
Выше представлен как 010 001 111.
Однако есть три других поворота этой формы, и все они производят одинаковый результат:
Моя топология сети состоит из 9 входных узлов и 1 выходного узла для следующего состояния центрального квадрата на входе. Как я могу построить скрытый слой (слои), чтобы они принимали каждое из этих вращений как одно и то же, сокращая количество возможных входных данных до четверти оригинала?
Редактировать:
Существует также переворот каждого поворота, который дает идентичный результат. Включение их сократит мой вклад на 1/8. С помощью планера моя цель состоит в том, чтобы все эти входы обрабатывались одинаково. Должно ли это быть сделано с предварительной обработкой или я могу включить ее в сеть?