Tensorflow 如何为无监督学习模型创建损失函数,其中输出类似于游戏代理的直接输入?

Tensorflow 如何为无监督学习模型创建损失函数,其中输出类似于游戏代理的直接输入?,tensorflow,deep-learning,unsupervised-learning,loss,Tensorflow,Deep Learning,Unsupervised Learning,Loss,我正在尝试建立一个深层的神经网络,它可以预测游戏代理在世界上的下一步行动。要控制游戏代理,需要两个浮点输入。第一个控制速度(0.0=停止/不移动,1.0=最大速度)。第二个控制转向(-1.0=左转,0.0=直行,+1.0=右转) 我设计了这个网络,这样它有两个输出神经元,一个用于速度(应用了一个S形激活),另一个用于转向(有一个tanh激活)。我想给网络提供的实际输入是像素数据和一些游戏状态值 为了训练网络,我只需运行整个游戏(大约2000帧/样本)。比赛结束后,我想训练这个模特。这里是我挣扎的

我正在尝试建立一个深层的神经网络,它可以预测游戏代理在世界上的下一步行动。要控制游戏代理,需要两个浮点输入。第一个控制速度(0.0=停止/不移动,1.0=最大速度)。第二个控制转向(-1.0=左转,0.0=直行,+1.0=右转)

我设计了这个网络,这样它有两个输出神经元,一个用于速度(应用了一个S形激活),另一个用于转向(有一个tanh激活)。我想给网络提供的实际输入是像素数据和一些游戏状态值

为了训练网络,我只需运行整个游戏(大约2000帧/样本)。比赛结束后,我想训练这个模特。这里是我挣扎的地方,我的损失函数会是什么样子?玩游戏时,我从网络收集所有动作/输出、游戏状态和每帧/样本的奖励。当游戏结束时,我也得到了经纪人赢或输的信息

编辑:

这篇文章给了我灵感。也许我可以使用打折(移动、旋转)值对,如果游戏代理失败,乘以(-1),如果游戏代理赢了,乘以(+1)。现在我可以使用这些值作为梯度来更新网络权重

如果有人能帮我,那就太好了

祝你一切顺利,
Tobs.

您所说的问题属于强化学习,在强化学习中,代理与环境交互并收集数据,即游戏状态、动作以及最后获得的奖励/分数。现在有很多方法

您正在谈论的是
保单梯度
方法,损失函数为
E[\sum r]
,其中
r
是必须最大化的分数。其梯度将是
A*grad(log(p_θ))
,其中
A
是优势函数,即赢/输的
+1/-1
。而
p_θ
是选择由
theta
(神经网络)参数化的动作的概率。现在,如果它赢了,梯度将更新为有利于该策略,因为
+1
,反之亦然

注:设计
A
有很多方法,在这种情况下,选择
+1/-1

你可以阅读更多的细节