Pytorch:如何创建不来自衍生品的更新规则?

数据挖掘 机器学习 Python 强化学习 反向传播 火炬
2022-03-13 01:28:45

我想实现以下算法,取自本书第 13.6 节

在此处输入图像描述

在这里,神经网络的输出是V(S,w)π(A|S,θ),参数化为wθ分别。

对于这个问题,我只会参考V(S,w)为简单起见。

w的更新规则theta,这两个网络的参数,依赖于ZwZtheta,这反过来又递归地依赖于它们自己,以及网络的输出的导数。

简化方程以创建一个损失项 [pytorch 可以处理] 可以使用loss.backward()将产生

ww+αwδzneww

ww+αwδ[γλwzoldw+IwV(S,w)]

ww+αwδw[γλwzoldww+IV(S,w)]

因此损失将是

Loss=δ[γλzoldww+IV(S,w)]

我正在努力解决的一些问题:

  1. 如何获得w对于损失项,含义,以某种方式直接访问他们的网络权重?
  2. 如何在没有数学操作的情况下编写迭代更新规则?这适用于难以或不可能进行此类操作的情况,或者更新规则以上述形式给出的情况(如书中所示),并且可以避免进入丢失形式的麻烦。这也可以防止错误,只需从(经过测试的)书中获取最终形式。
0个回答
没有发现任何回复~