私がよく理解していれば、あなたの単一の出力ノードは中央の正方形の次のステータスになります。モデルをトレーニングするための十分なリソースがあれば、非表示のレイヤーのノード数を気にする必要はありません。この問題はニューラルネットワークで非常に簡単に学習できるため、サイズの問題はありません。
教師付きトレーニングを行う必要があります。つまり、入力データと一致する期待される出力をフィードする必要があります。トレーニングデータで、4つの回転すべてが同じ出力に割り当てられていることを確認する必要があります。このようにして、ネットワークはこれらすべてを同じように扱うことを学ぶ必要があります。
あなたは私を好奇心をそそられたので、私は自分で試しました。私のソリューションは、古いラップトップで数秒以内に実行される約20エポックで100%正しいと学習できました。出力を[0,1]または[1,0]のいずれかに分類するように少しだけ変更しましたが、これにより、探しているのと同じ結果が得られます。参考までに、Pythonで書かれたコードを次に示します。
from keras.models import Sequential
from keras.layers import Input, Dense
from keras.models import Model
from keras import optimizers
from keras.utils.np_utils import to_categorical
import helper
x_,y_ = helper.fnn_csv_toXY("conway.csv","output",False)
y_binary = to_categorical(y_)
model = Sequential()
model.add(Dense(100, activation='relu', kernel_initializer='glorot_uniform',input_shape =(9,)))
model.add(Dense(20, activation='relu', kernel_initializer='glorot_uniform'))
model.add(Dense(2, activation='softmax'))
adam=optimizers.Adam()
model.compile(optimizer=adam,
loss='categorical_crossentropy',
metrics=['acc'])
model.fit(x_, y_binary, epochs=100)