Потеря тензорного потока уже низкая

Я делаю ИИ с подкреплением обучения и получаю странные результаты, потеря показывает примерно так: Потеря Tensorflow: https://imgur.com/a/Twacm

И пока он тренируется, после каждой игры он играет против случайного игрока и после игрока с взвешенной матрицей, но он идет вверх и вниз: результаты: https://imgur.com/a/iGuu2

В основном я делаю учебного агента по подкреплению, который учится играть в Отелло. Используя E-жадный, опыт воспроизведения и глубокие сети, используя Keras поверх Tensorflow. Пробовал разные архитектуры, такие как сигмоид, релю и на изображениях, показанных выше, танх. Все они имеют аналогичные потери, но результаты немного отличаются. В этом примере агент учится на 100 000 профессиональных игр. Вот архитектура со скоростью обучения по умолчанию 0,005:

model.add(Dense(units=200,activation='tanh',input_shape=(64,)))
model.add(Dense(units=150,activation='tanh'))
model.add(Dense(units=100,activation='tanh'))
model.add(Dense(units=64,activation='tanh'))
optimizer = Adam(lr=lr, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
model.compile(loss=LOSS,optimizer=optimizer)

Оригинальный код: https://github.com/JordiMD92/thellia/tree/keras

Итак, почему я получаю эти результаты? Теперь мой ввод 64 нейронов (матрица 8*8), с 0 пустым квадратом, 1 черным квадратом и -1 белым квадратом. Это плохо использовать отрицательные входы?

1 ответ

Решение

Это может быть проблема вашей функции активации. Попробуйте использовать relu вместо tanh, и если вы используете глубокое обучение q, вам может не потребоваться какая-либо активирующая функция или заботиться об оптимизаторе, который сбрасывает веса.

Другие вопросы по тегам