Я довольно новичок в области глубокого обучения и нейронных сетей и пытаюсь реализовать агента, который сможет играть в мою простую игру
Таким образом, цель состоит в том, чтобы получить максимально возможную оценку (сумму посещенных ячеек) при достижении цели (оранжевая ячейка) в пределах доступных шагов (всегда расстояние от игрока до финишной ячейки).
Модель для моегоСеть действительно простая (я использую tflearn
)
network = input_data(shape=[None, 13, 1], name='input')
network = fully_connected(
network,
13**2,
activation='relu'
)
network = fully_connected(network, 1, activation='linear')
network = regression(
network,
optimizer='adam',
learning_rate=self.lr,
loss='mean_square',
name='target',
)
model = tflearn.DNN(network, tensorboard_dir='log')
, где 13
- это ряд функций, которые я могу извлечь из игрового состояния.Но полученная модель дает действительно плохое поведение при игре
[default] INFO:End the game with a score: 36
[default] INFO:Path: up,up,up,up,up,up,up,up,up,up,up,up,up,up,up
Поэтому я хочу выяснить, какие важные части я пропустил, и у меня есть несколько открытых вопросов, чтобы уточнить:
Training Step: 3480 | total loss: 0.11609 | time: 4.922s
| Adam | epoch: 001 | loss: 0.11609 -- iter: 222665/222665
- Какое значение потери я ищу?Есть ли эмпирическое правило, которое скажет мне, что потери достаточно хороши?
- Сколько эпох мне нужно иметь?Как определить точное их количество?
- Что, если моя архитектура NN полностью неверна и не подходит для этой задачи?Как это определить?
- И, наконец: с чего начать при отладке вашей сети, и какие аспекты я должен сначала перепроверить и проверить.
Я понимаю, что этоЭто немного открытый вопрос, и размещать его здесь может быть неуместно, поэтому я буду признателен за любые рекомендации или общие комментарии.