我正在训练一个深度q网络来交易股票;它有两种可能的操作; 0:等待,1:如果不买股票就买股票,买到就卖股票。作为输入,它获得它购买的股票的价值、股票的当前价值以及相对于它的前 5 个时间步长的股票价值。所以像
[5.78, 5.93, -0.1, -0.2, -0.4, -0.5, -0.3]
奖励只是销售价格和购买价格之间的差额。任何其他操作的奖励都是 0,尽管我尝试过让它是负数或其他没有结果的东西。
很简单,对吧?遗憾的是,代理总是收敛于采取"0"操作。即使我放大了以利润或任何数量的东西出售的奖励。我真的在拔头发,我错过了什么明显的东西吗?
虽然代理本身可能出了问题,但我编写的第二个代理也表现出类似的行为。我终于通过降低学习率解决了这个问题;最后,它必须比原来低一千倍左右。