作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 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 文献):
不过,您需要自己编写规范化函数;)
关于python - 如何通过强化学习更新函数逼近中的权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23775766/
我使用 Theano 设计了一个神经网络,用于近似数学多重函数。但是我一直无法逼近非线性函数,例如:2x/x+3 等。但是网络在线性函数上表现良好。 我使用 1 个隐藏层和 2 个神经元。我试过增加隐
我目前正在研究余弦的近似值。由于最终目标设备是使用 32 位浮点 ALU/LU 的自行开发,并且有专门的 C 编译器,因此我无法使用 C 库数学函数(cosf,...)。我的目标是编写在准确性和指令/
我正在寻找一个更快的实现或更好的函数近似 cmath . 我需要加速以下功能 pow(x,y) exp(z*pow(x,y)) 哪里z<0 . x来自 (-1.0,1.0) 和 y来自 (0.0, 5
我是一名优秀的程序员,十分优秀!