长片优化深度Q网络

lll*_*lll 11 optimization machine-learning reinforcement-learning deep-learning

我正在研究一个旨在通过深度Q学习解决的问题。但是,问题在于,每个情节的培训时间都太长,大约需要83个小时。我们正在设想在100集之内解决问题。

因此,我们逐渐学习矩阵(100 * 10),并且在每个情节中,我们需要执行某些操作的100 * 10迭代。基本上,我们从1000个候选者的集合中选择一个候选者,将该候选者放入矩阵中,然后通过将整个矩阵作为输入来计算奖励函数:

在此处输入图片说明

中心的障碍是,每一步的奖励函数计算都非常昂贵,大约需要2分钟,并且每次我们更新矩阵中的一个条目时。

从长远来看,矩阵中的所有元素都是相互依赖的,因此,如果我理解正确的话,整个过程似乎不适合某些“分布式”系统。

有人可以阐明我们如何看待这里的潜在优化机会吗?喜欢一些额外的工程工作吗?任何建议和评论将不胜感激。谢谢。

========================更新了一些定义=================

0.初始阶段:

  • 100 * 10矩阵,每个元素为空

1.动作空间:

  • 每一步,我将从1000个元素的候选池中选择一个元素。然后将元素一一插入矩阵。

2.环境:

  • 每一步我都会有一个更新的矩阵来学习。

  • oracle函数F返回的定量值范围为5000〜30000,值越高越好(F的一次计算大约需要120秒)。

    此函数F将矩阵作为输入并执行非常昂贵的计算,并且返回一个定量值以指示到目前为止合成矩阵的质量。

    此函数本质上用于衡量系统的某些性能,因此确实需要一些时间才能在每个步骤中计算奖励值。

3.情节:

说“我们正在计划在100集内解决它”,这只是一个经验估计。但至少不应少于100集。

4.约束

理想的是,就像我提到的那样,“矩阵中的所有元素长期相互依赖”,这就是为什么奖励函数F通过将整个矩阵作为输入而不是最新选择的元素来计算奖励。

实际上,通过在矩阵中添加越来越多的元素,奖励可以增加,也可以减少。

5.目标

合成矩阵应使oracle函数F返回大于25000的值。只要达到此目标,我都会终止学习步骤。

Sim*_*mon 3

老实说,如果不知道奖励函数中的哪些计算或者您做出了哪些我们可以帮助的编程设计决策等具体细节,就没有有效的方法来了解如何优化该系统。

您可能是对的,这些情节不适合分布式计算,这意味着我们无法并行化它,因为它们依赖于之前的搜索步骤。然而,可以在奖励函数评估中投入更多的计算能力,从而减少运行所需的总时间。

我鼓励您分享有关该问题的更多详细信息,例如通过分析代码以查看哪个组件占用最多时间,通过共享代码摘录,或者随着科学标准的提高,共享可复制的代码库。