你如何在没有确切答案的情况下训练神经网络?
How do you train a neural network without an exact answer?
大多数神经网络使用反向传播来学习,但根据我的理解,您需要准确回答输出应该是什么才能使其工作。我想做的是学习步行机器人走路,并有一个分数或健身变量来评估它。关于如何在 python 或 keras 中执行此操作的任何想法?
TLDR;强化学习
一般来说,训练代理使用强化学习。它与您解释的不同,因为您似乎想要定义一个适应度 heuristic 来告诉代理它是否做得好,这可能是有偏见的。强化学习也有偏差,但它们是研究和研究的。典型的偏见是决定先前行动有多重要的一个因素w.r.t。当前操作对当前结果的影响。
通过强化学习,您只能时不时地获得对操作的正面或负面反馈。你只能从那些 feedback-moments 中学习。不幸的是,这意味着您只能轻松学习 'winning actions','leading to winning actions' 更难。所以你需要一个技巧,通常是 evaluation-function 中的一些递归的东西来让它工作。好消息是,研究人员已经想出了这样的技巧。你可以从时间差异学习或Q-learning开始。如果您的模型是神经模型 Network-based,它们通常使用梯度下降进行训练。
大多数神经网络使用反向传播来学习,但根据我的理解,您需要准确回答输出应该是什么才能使其工作。我想做的是学习步行机器人走路,并有一个分数或健身变量来评估它。关于如何在 python 或 keras 中执行此操作的任何想法?
TLDR;强化学习
一般来说,训练代理使用强化学习。它与您解释的不同,因为您似乎想要定义一个适应度 heuristic 来告诉代理它是否做得好,这可能是有偏见的。强化学习也有偏差,但它们是研究和研究的。典型的偏见是决定先前行动有多重要的一个因素w.r.t。当前操作对当前结果的影响。
通过强化学习,您只能时不时地获得对操作的正面或负面反馈。你只能从那些 feedback-moments 中学习。不幸的是,这意味着您只能轻松学习 'winning actions','leading to winning actions' 更难。所以你需要一个技巧,通常是 evaluation-function 中的一些递归的东西来让它工作。好消息是,研究人员已经想出了这样的技巧。你可以从时间差异学习或Q-learning开始。如果您的模型是神经模型 Network-based,它们通常使用梯度下降进行训练。