量化学习机器人:从Bengio演讲发散开来 探讨逻辑推理与机器学习
量化学习机器人:从Bengio演讲发散开来 探讨逻辑推理与机器学习图 4. 手写方程解译难题:机器应同时学习识别符号并找出未知运算规则(本例中为「xnor」)为了验证所提出方法的有效性,作者设计了一个手写方程解译任务,如图 4 所示,并应用 ABL 进行求解。解译任务的方程由连续的字符图片组成。方程由符号图像(「0」、「1」、「 」和「=」)构成并用未知的运算规则生成,每个例子都有一个表示公式是否正确的标签。机器的任务是从一组带标签的方程组中学习,并期望训练后得到的模型能够正确地预测未知的方程组。因此,这项任务需要使用图 1 中所示出的感知和推理能力来完成。ABL 的目标是学习与背景知识和训练实例相一致的假设。更具体地说,ABL 试图在给定背景知识 B 的情况下,最大化外推假设 H 与训练数据 D 之间的一致性:关于 ABL 的优化过程本文不在详述,感兴趣的读者可以阅读作者原文。2.1.3 手写方程解译任务
图 3. ABL 完整框架
逻辑程序(Logic Programming)中的一个声明性框架将上述的过程形式化,称为诱因性逻辑程序(Abductive Logic Programming,ALP)[8]。形式上,诱因性逻辑程序(abductive logic program)可以定义如下:
定义 1:诱因性逻辑程序是一个三元组 (B A IC),其中 B 是背景知识,A 是一组可扩展谓词,IC 是完整性约束。给定一些观测事实 O,程序输出为一组 A 的真值推理结果∆,如:
即,诱因性解释 ∆ 是一种假设:根据背景知识 B 和约束 IC 来解释观察 O 是如何成立的。考虑到公式(1),ABL 将关于最终概念的实例标签作为观测事实,并将假设模型 H=p∪∆C 作为推导内容。给定一个固定的∆C,ABL 可以根据 B 和 Y 推导出 p(x);当感知模型 p 确定后,ALP 能够根据 B∪p(x)∪Y 推导出知识模型∆C。
ABL 的目标是学习与背景知识和训练实例相一致的假设。更具体地说,ABL 试图在给定背景知识 B 的情况下,最大化外推假设 H 与训练数据 D 之间的一致性:
关于 ABL 的优化过程本文不在详述,感兴趣的读者可以阅读作者原文。
2.1.3 手写方程解译任务
为了验证所提出方法的有效性,作者设计了一个手写方程解译任务,如图 4 所示,并应用 ABL 进行求解。解译任务的方程由连续的字符图片组成。方程由符号图像(「0」、「1」、「 」和「=」)构成并用未知的运算规则生成,每个例子都有一个表示公式是否正确的标签。机器的任务是从一组带标签的方程组中学习,并期望训练后得到的模型能够正确地预测未知的方程组。因此,这项任务需要使用图 1 中所示出的感知和推理能力来完成。
图 4. 手写方程解译难题:机器应同时学习识别符号并找出未知运算规则(本例中为「xnor」)
图 5 给出了本文中 ABL 实现的架构,它使用卷积神经网络(CNN)作为感知机器学习模型。CNN 以图像像素作为输入,期望输出为图像中的符号。符号输出构成了伪标签。逻辑推理部分是用 Prolog 语言实现的一个诱因性逻辑程序。在训练之前,将以逻辑程序形式编写的领域知识作为背景知识 B 提供给 ALP。在作者的实现中,B 只涉及方程的结构和位操作的递归定义。方程结构的背景知识是一组定句语法(Definite Clause Grammar,DCG)规则,DCG 递归地定义一个数字是「0」和「1」的序列,每个方程共享 X Y=Z 的结构,尽管 X、Y 和 Z 的长度可能不同。位操作的知识是一种递归的逻辑程序,它反向计算 X Y,即对 X 和 Y 从最后一位到第一位逐位运算。
图 5. ABL 结构
注:请注意,计算运算的具体规则在 B 中没有定义,即「0 0」、「0 1」和「1 1」的结果可以是「0」、「1」、「00」、「01」甚至「10」。缺失的计算规则形成知识模型 ∆C,这一部分是需要从数据中学习得到的。
训练开始后,CNN 将图像解释为伪标签「0」、「1」、「 」和「=」构造的符号方程。因为 CNN 没有经过训练,所以感知到的符号通常是错误的。在这种情况下,ALP 不能根据领域知识导出任何与训练数据一致的 ∆C。为了导出一致性的 ∆C,ABL 学习了启发式函数δ来标记可能不正确的伪标签。
当 CNN 收敛或算法满足迭代极限后,所有 < x_i y_i > 被关系特征确定为二元特征向量。对于每个输入方程 x_i,其伪标签将由所有的关系特征来评估以产生二进制向量 u_i= [u_i1 ... u_iT]: