【问题标题】:q agent is learning not to take any actionsq 代理正在学习不采取任何行动
【发布时间】:2020-05-24 15:23:45
【问题描述】:

我正在训练一个深度 q 网络来交易股票;它有两种可能的动作; 0:等待,1:没买就买,买了就卖。作为输入,它获取所购买股票的价值、股票的当前价值以及与股票相关的前 5 个时间步长的股票价值。所以像

[5.78, 5.93, -0.1, -0.2, -0.4, -0.5, -0.3]

奖励只是销售价格和购买价格之间的差额。任何其他动作的奖励都是 0,尽管我尝试过让它为负数或其他没有结果的东西。

简单吧?不幸的是,代理总是收敛于采取“0”行动。即使我放大了以盈利或任何数量出售的回报。我真的把我的头发拉出来了,我错过了什么明显的东西吗?

【问题讨论】:

  • 能否在您的问题中包含您的代码?很难抽象地回答。
  • 准确的定义或你的奖励函数是什么?添加一些代码也会有所帮助。
  • 增加了奖励函数定义。我可以添加代码,但是哪些代码?有好几百行“相关”代码,我不想只是复制粘贴整个内容并要求您弄清楚。

标签: python neural-network q-learning dqn


【解决方案1】:

虽然代理本身可能有问题,但我编写的第二个代理表现出类似的行为。我终于通过降低学习率解决了这个问题;最后它必须比原来低一千倍左右

【讨论】:

    最近更新 更多