gpt4 book ai didi

python - 如何通过强化学习更新函数逼近中的权重?

转载 作者:行者123 更新时间:2023-11-30 08:47:27 26 4
gpt4 key购买 nike

我的 SARSA 梯度下降法使权重呈指数级上升。在第 4 集第 17 步,值已经是 nan

Exception: Qa is nan

例如:

6) Qa:
Qa = -2.00890180632e+303

7) NEXT Qa:
Next Qa with west = -2.28577776413e+303

8) THETA:
1.78032402991e+303 <= -0.1 + (0.1 * -2.28577776413e+303) - -2.00890180632e+303

9) WEIGHTS (sample)
5.18266630725e+302 <= -1.58305782482e+301 + (0.3 * 1.78032402991e+303 * 1)

我不知道在哪里寻找我所犯的错误。这是一些代码 FWIW:

def getTheta(self, reward, Qa, QaNext):
""" let t = r + yQw(s',a') - Qw(s,a) """
theta = reward + (self.gamma * QaNext) - Qa


def updateWeights(self, Fsa, theta):
""" wi <- wi + alpha * theta * Fi(s,a) """
for i, w in enumerate(self.weights):
self.weights[i] += (self.alpha * theta * Fsa[i])

我有大约 183 个二进制特征。

最佳答案

您需要在每次试验中进行标准化。这将使权重保持在有限的范围内。 (例如[0,1])。他们的方式是你每次都增加权重,只是增加权重,在第一次尝试后就毫无用处了。

我会做这样的事情:

self.weights[i] += (self.alpha * theta * Fsa[i])
normalize(self.weights[i],wmin,wmax)

或参见以下示例(来自 RL 文献):

enter image description here

不过,您需要自己编写规范化函数;)

关于python - 如何通过强化学习更新函数逼近中的权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23775766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com