от
Я попытался реализовать оптимизацию проксимальных политик с помощью вознаграждений за любопытство для современной нейронной сети LSTM. Потери как в PPO, так и в ICM расходятся, и я хотел бы выяснить, есть ли в нем ошибка в коде или неправильно выбранные гиперпараметры. Код (где может быть неправильная реализация): В модели ICM я использую первый слой LSTM, чтобы соответствовать входным размерам. В ICM весь набор данных распространяется одновременно с нулями в качестве начальных скрытых (результирующие тензоры отличаются, чем они были бы, если бы я распространял только 1 состояние или пакет и повторно использовал скрытые ячейки) При обработке преимуществ и скидок PPO набор данных распространяется один за другим, и скрытые ячейки используются повторно (в точности наоборот, чем в ICM, потому что здесь он использует ту же модель для выбора действий, и этот подход «подобен в реальном времени») В ППО обучающая модель обучается партиями с повторным использованием скрытых ячеек Я использовал https://github.com/adik993/ppo-pytorch в качестве кода по умолчанию и переработал его для работы в моей среде и использования LSTM Я могу предоставить образцы кода позже, если специально запрошено из-за большого количества строк гиперпараметры:
def __init_curiosity(self):
        curiosity_factory=ICM.factory(MlpICMModel.factory(), policy_weight=1,
                                      reward_scale=0.1, weight=0.2,
                                      intrinsic_reward_integration=0.01,
                                      reporter=self.reporter)
        self.curiosity = curiosity_factory.create(self.state_converter,
                                                  self.action_converter)
        self.curiosity.to(self.device, torch.float32)
        self.reward_normalizer = StandardNormalizer()

def __init_PPO_trainer(self):
        self.PPO_trainer = PPO(agent = self,
                               reward = GeneralizedRewardEstimation(gamma=0.99, lam=0.95),
                               advantage = GeneralizedAdvantageEstimation(gamma=0.99, lam=0.95),
                               learning_rate = 1e

Графики тренировок:

(Обратите внимание на большие числа по оси Y)














    

        

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.
...