使用神经网络进行时间差异学习

数据挖掘 神经网络 强化学习
2022-02-22 21:02:49

假设我想训练一个价值网络v通过 TD(0)。

所以我的 TD 目标是一个时间步长t等于:

Rt+1+γv(st+1)

如果我理解正确,我只需要使用均方误差,这样v(st)越来越接近这个目标。但是,我的网络输出值介于(1;1)并且奖励也来自这个区间,所以 TD 目标介于(2;2). 我应该在应用学习之前对其进行扩展吗?不这样做的后果是什么,即用输出的更广泛区间的目标值训练神经网络?我们能从理论上说些什么吗?

1个回答

我应该在应用学习之前对其进行扩展吗?

当然,您需要:

  1. 缩放您的网络输出,使其位于 (-2, 2) 范围内,或者,
  2. 缩放您的训练数据,使其位于 (-1, 1) 范围内

后者稍微可取,因为它只需要计算一次,而不是在每次通过网络时计算。

我们能从理论上说些什么吗?

这是一个非常标准的设计,并且仅仅是因为最常用的激活函数具有 [-1, 1]、[0, 1]、[0, inf) 或 (-inf, inf) 的界限。特别是对于有限有界激活函数(即那些输出以 [-1, 1] 或 [0, 1] 为界的函数),您需要确保网络的输出空间能够表示所需的目标空间。例如,对于二元分类问题,您经常会看到人们根据最终输出是由tanh还是sigmoid函数激活来选择 0/1或-1/1 的标签。