首页 > 解决方案 > 使用外部评估功能在 Keras 中进行训练

问题描述

首先让我描述一下设置:我们在 Unity 中有一个自治代理,其决策基于感知环境(级别)和一些用于值映射的预定义参数。我们的目标是在 DNN 中预训练代理的参数。所以这个想法基本上是定义一个错误度量来评估代理在 Unity 模拟中的性能(运行关卡,例如测量与最优轨迹的偏差 = 统一的基本事实)。因此,根据 DNN 的输入级别,网络应该训练输出参数,执行模拟并将误差作为误差值(如准确度)传回网络,因此网络可以根据该误差进行训练/表现。

在 Keras 之外的训练期间,有什么方法可以进行评估(与基本事实的比较)?通常,一个人将 X 数据传递给网络,训练东西并将其与基本事实 Y 进行比较。这对于预测很有效,但我不想预测某些东西。我想要的是测量模拟中与基本事实的偏差。我知道有 Unity ML 代理,但据我所知,“大脑”在运行时控制代理,即在每一帧更新它并控制运动。我想要的是执行整个模拟以更新网络的参数/权重。

最好的祝愿。

标签: pythonunity3dkerasdeep-learningml-agent

解决方案


在我的大学进行了一些会谈后:设置不会以这种方式工作,因为我需要拆分过程。

我需要工作代理的参数来仅基于级别描述(例如像视频游戏描述语言的矩阵)来训练网络。要根据实际水平和地面实况数据(例如轨迹偏差)获得参数化代理,需要使用带有评分函数的强化深度学习来获得这些参数。因此 Unity ML 代理可能很有用。之后,我可以使用参数设置和相关级别数据来训练网络以仅根据级别描述产生所需的参数。


推荐阅读