📜  神经逻辑强化学习——简介

📅  最后修改于: 2022-05-13 01:58:08.259000             🧑  作者: Mango

神经逻辑强化学习——简介

神经逻辑强化学习是一种将逻辑编程与深度强化学习方法相结合的算法。逻辑编程可用于以不依赖于实现的方式表达知识,使程序更加灵活、压缩和易于理解。它使知识与使用分离,即可以在不更改程序或其底层代码的情况下更改机器架构。

深度强化学习算法不可解释或泛化。这些算法学习解决方案,而不是找到解决方案的路径。 DRL 算法还使用深度神经网络,使学习到的策略难以解释。因此,解决方案是不可解释的,因为人类无法理解它们是如何学习或获得答案的。这是 DRL 算法的一个巨大缺点。 ML 或 RL 算法的另一个缺点是它们不可推广。也就是说,如果算法是针对特定环境训练的,那么一旦环境稍有改变,性能就会非常糟糕。因此,这些算法不能在新领域中表现良好。但在实际问题中,训练和测试环境并不总是相同的。因此,泛化性是任何算法运行良好的必要条件。

在 NLRL 中,agent 必须自己学习辅助创造的谓词以及动作谓词。谓词由基于给定示例和环境的真实陈述组成。所有可能的子句集都由谓词的组合组成。构建演绎矩阵,使得形成子句的谓词的理想组合满足所有约束。为了确定每个子句的真实值并用最合适的子句达到理想的结果,为每个谓词分配权重。权重不会直接分配给整个策略。这些权重根据子句的真实值进行更新,从而达到具有最佳权重和最高真值的最佳子句。要训练的参数参与推导过程。该算法使用策略梯度训练参数化的基于规则的策略。每个动作都表示为一个原子。代理以基本谓词的 0-1 估值和有意谓词的所有子句的随机权重初始化。权重通过前向链接方法更新。对于转发链接的每一步,我们首先使用推导矩阵获得所有常量组合的所有子句的值。然后,根据推导函数更新每个内涵原子的值。因此,获得所有动作的值并相应地选择最佳动作,就像在任何 RL 算法中一样。

NLRL 算法的基本结构与任何深度 RL 算法都非常相似。但是状态和动作被表示为原子和元组。状态到原子的转换可以手动完成,也可以通过神经网络完成。这些表示确保算法是可泛化的,也可解释为实现解决方案的逻辑是学习的,而不是直接无法泛化的解决方案。由于在深度强化学习中使用了神经网络,因此该算法对于丢失和错误分类或错误的数据也具有鲁棒性。