Próbuję zaprogramować własny system do uruchamiania sieci neuronowej. Aby zmniejszyć liczbę potrzebnych węzłów, zasugerowano, aby traktować obroty wejścia jednakowo.
Moja sieć stara się uczyć i przewidywać grę życia Conwaya, patrząc na każdy kwadrat i otaczające go kwadraty w siatce, i dając wynik dla tego kwadratu. Jego dane wejściowe to ciąg 9 bitów:
Powyższe jest reprezentowane jako 010 001 111.
Istnieją jednak trzy inne obroty tego kształtu i wszystkie wytwarzają tę samą moc wyjściową:
Moja topologia sieci to 9 węzłów wejściowych i 1 węzeł wyjściowy dla następnego stanu środkowego kwadratu na wejściu. Jak mogę zbudować ukryte warstwy, aby brały te same obroty tak samo, zmniejszając liczbę możliwych danych wejściowych do jednej czwartej oryginału?
Edytować:
Istnieje również odwrócenie każdego obrotu, co daje identyczny wynik. Włączenie ich spowoduje zmniejszenie moich nakładów o 1/8. W przypadku szybowca moim celem jest, aby wszystkie te dane wejściowe były traktowane dokładnie tak samo. Czy będzie to wymagało wstępnego przetwarzania, czy też mogę włączyć to do sieci?