Page 67 - 《软件学报》2025年第8期
P. 67

3490                                                       软件学报  2025  年第  36  卷第  8  期


                         F  droplasts 问题上的内存成本对比. 显著地, Metagol AI_ 在全局堆栈限制下推理大幅减少, 平均减幅
                                                                     F
                 Metagol AI_ 在
                 约为  46.12%. 与  Metagol A 相比, Metagol AI_ 需要更少的子句垃圾收集.
                                                  F
                                    I


                             表 11 删除列表尾元素任务中系统           Metagol A 和 I  Metagol AI_ 之间的内存成本比较
                                                                           F

                                               Metagol AI                    Metagol AI_F
                            Example
                                      Inferences  Atoms     CGC     Inferences  Atoms     CGC
                              1       3.17×10 6  6 400.90  15.10    1.74×10 6  6 401.00  12.33
                              2       3.53×10 6  6 401.00  18.10    1.83×10 6  6 401.00  16.00
                              3       3.63×10 6  6 401.00  16.90    1.82×10 6  6 401.00  15.33
                              4       3.77×10 6  6 401.00  16.40    1.91×10 6  6 401.00  14.67
                              5       3.57×10 6  6 400.90  17.50    2.22×10 6  6 401.00  15.33

                 6   相关工作

                 6.1   归纳逻辑程序设计相关工作
                    ILP  是一个专注于从例子和背景知识中归纳构建一阶子句理论的学科. 一阶逻辑归纳理论的开创性工作始于
                 20  世纪  70  年代. 作为著名的  ILP  系统之一, 基于相对最不一般化的        Golem  由  Muggleton  等人  [23] 提出. 其他依赖于
                 一阶逻辑归纳的方法也相继被提出. 例如, Duce 是一个由              Muggleton [24] 提出的基于命题  Horn  子句归纳的机器学习
                 系统. Muggleton  等人  [22] 提出了一个系统  Cigol, 通过发明一阶  Horn  子句谓词自动补全背景知识中的不完整信息.
                 继此工作之后, Rouveirol 等人   [25] 将  Cigol 中引入的操作符扩展到非单位子句. Linus      [26] 是一个基于命题属性-值语
                                                                 [4]
                 言的方法. CLINT  [27] 是一个基于主动学习的     ILP  系统, 而  Progol 则是基于模式导向逆蕴涵的系统.

                 6.2   元解释学习相关工作
                    由  Muggleton  等人  [2] 于  2014  年开发的  MIL  框架最初应用于归纳语法推断, 随后在    2015  年扩展到学习高阶二
                 元  Datalog 程序  [15] , 并进一步扩展到从少量实例进行递归数据转换, 涵盖半结构化和非结构化数据                 [28] . Cropper 等人  [8]
                 引入了蕴涵约简算法和推导约简算法             [9] 以减少假设空间. 随后的研究      [29] 提出了一种使用背景知识预先识别假设约
                 束的方法, 大大减少了学习时间. 与这些在学习过程之前应用算法的方法相比, 本文提出的方法在学习阶段通过记
                 录和检查失败的      Goals 来应用剪枝算法, 以避免重复证明.
                    为了学习更好的程序, 现有的         MIL  系统优化要么最小化程序的资源复杂性             [30] , 要么减少学习程序的文本复杂
                 性  [21] . Metaopt [19] 扩展了  Metagol 以支持学习高效的程序. 它在假设搜索过程中维护一个成本, 并利用该成本来修
                 剪假设空间. 与这些工作相比, 我们的优化策略主要集中于解决                    MIL  学习过程中重复证明的问题, 以提高学习效
                 率. 值得注意的是, 由于上述工作基于          Metagol 系统, 重复证明的问题在这些系统中也存在. 从理论上讲, 本文提出
                 的算法也可以应用于这些         MIL  系统.
                    Kazmi 等人  [31] 扩展了一种基于答案集编程       (ASP) 的  ILP  方法  (名为  XHAIL), 在假设泛化算法中引入了修剪
                 机制. 他们的工作使用了一种优化方法, 并允许使用次优结果. 其改进重点在于在保持相似质量的同时对更大数据
                 集进行学习. 与此不同, 我们的优化目标是用更少的时间学习完全相同的程序. Kaminski 等人                       [32] 指出, 直接的  MIL
                 编码将导致巨大规模的底层程序和搜索空间. 他们的工作使用答案集编程                         (ASP) 通过在  ASP  的  HEX  扩展中编
                 码  MIL  来解决  MIL  问题, 利用  HEX  接口机制缓解了底层问题. 相比之下, 我们的方法专注于确保底层和非底层
                 目标不被多次证明.
                    Cropper 等人  [33] 提出了一种结合答案集编程和      Prolog  编程的  ILP  系统  Popper, 该系统通过“从失败中学习”策
                 略逐步缩小假设空间, 从失败的假设中提取约束以提升学习效率. Popper 基于                     ASP, 避免了  Prolog  回溯搜索的冗
                 余问题, 但在高复杂度程序生成方面仍存在一定局限性. 本文的剪枝算法则专为元解释学习设计, 以减少                                 MIL  中
                 的冗余证明, 提升其在复杂任务中的学习效率. Wang              等人  [34] 提出了一种改进的元解释学习方法, 称为          MILER, 该
                 方法通过向背景知识中扩展谓词来引入可复用的程序模式以解决                        MIL  在庞大程序搜索空间中的效率限制问题.
   62   63   64   65   66   67   68   69   70   71   72