📜  FOCL算法

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

FOCL算法

先决条件:FOIL算法

一阶组合学习器 (FOCL) 算法是纯归纳法 FOIL 算法的扩展。它使用领域理论进一步改进了对最佳规则的搜索,并大大提高了准确性。它将基于解释的学习 (EBL)的方法结合到现有的 FOIL 方法中。但在进入 FOCL 的工作之前,让我们先了解以下内容:

  • 领域理论
  • 基于解释的学习

基于解释的学习 (EBL)

简单来说,就是通过观察和分析特定问题的解决方案,获得基本的问题解决技巧的能力。在机器学习方面,它是一种算法,旨在理解为什么一个示例是特定概念的一部分,以便从训练示例中进行概括或形成概念。例如,EBL 使用领域理论并创建了一个学习下棋的程序。

直觉:



EBL 的目标是了解特定概念的基本属性。所以,我们需要找出是什么构成了一个例子,一个特定概念的一部分。与 FOIL 算法不同,这里我们关注一个示例,而不是收集多个示例。

解释单个示例的能力被称为“领域理论”。

EBL 接受 4 种输入:

i) A training example: what the learning model sees in the world.
ii) A goal concept: a high level description of what the model is supposed to learn.
iii) A operational criterion: states which other terms
 can appear in the generalized result.
iv) A domain theory: set of rules that describe relationships between objects and actions in a domain.

从上述 4 个参数中,EBL 使用领域理论找到最能描述目标概念的训练示例,同时遵守操作标准并尽可能保持我们的理由。

EBL 包括 2 个步骤:

  1. 说明——领域理论用于消除所有不重要的训练示例,同时保留最能描述目标概念的重要示例。
  2. 概括——对目标概念的解释尽可能概括和广泛适用。这可确保涵盖所有案例,而不仅仅是某些特定案例。

EBL架构:

  • 训练期间的 EBL 模型
    • 在训练期间,模型以这样一种方式概括训练示例,即所有场景都会导致目标概念,而不仅仅是在特定情况下。 (如图1所示)

图 1:训练 EBL 模型

  • 训练后的 EBL 模型
    • 训练后,EBL 模型倾向于直接到达涉及目标概念的假设空间。 (如图2所示)

图 2:经过训练的 EBL 模型

FOCL

FOCL 的目标与 FOIL 一样,是根据外延定义的谓词创建规则,该规则涵盖所有正例,不包含任何反例。与 FOIL 不同,FOCL 将背景知识和 EBL 方法集成到其中,从而更有效地搜索适合训练数据的假设空间。 (如图3所示)




图 3 – FOIL 与 FOCL

FOCL:直觉

与 FOIL 一样,FOCL 也倾向于执行迭代过程,学习一组最佳规则以覆盖训练示例,然后删除该最佳规则覆盖的所有训练示例。 (使用顺序覆盖算法)

然而,使 FOCL 算法更强大的是它在搜索最佳规则时所采用的方法。

如果文字可以正确描述训练示例,从而导致输出假设,则该字面量被称为可操作的。相比之下,在领域理论中仅作为中间特征而不作为实例的原始属性出现的字面量被认为是不可操作的。非操作谓词的计算方式与 FOCL 中的操作谓词相同。

涉及的算法:

//Inputs Literal --> operationalized 
List of positive examples 
List of negative examples
//Output Literal --> operational form
Operationalize(Literal, Positive examples, Negative examples):
    If(Literal = operational):
        Return Literal
    Initialize Operational_Literals to the empty set
    For each clause in the definition of Literal
        Compute information gain of the clause over Positive examples and Negative examples
    For the clause with the maximum gain
        For each literal L in the clause
            Operational_Literals <-- Operationalize(L, Positive examples, Negative examples)

算法的工作

图 4:FOCL 示例

让我们考虑图 4 中所示的示例。

  • 首先,FOCL 创建所有有可能成为最佳规则的候选字面量(均用实线箭头表示)。我们已经在 FOIL 算法中看到了一些东西。此外,它还创建了几个自己的逻辑相关的候选字面量。 (领域理论)
  • 然后,它从域理论中选择一个先决条件与目标概念相匹配的字面量。如果存在多个这样的文字,那么它只选择一个提供与目标概念相关的最多信息的字面量。
For example, 
    If the bottle (goal concept) is made of steel (while satisfying the other domain theory preconditions),
    then the algorithm will select that as it the most relevant information related to the goal concept.
    i.e. the bottle.

  • 现在,所有删除的字面量除非影响训练示例的分类准确性。这样做是为了使领域理论不会通过添加不相关的字面量过度专业化结果。这组字面量现在被添加到当前假设的先决条件中。
  • 最后,从两种专业化方法中选出一个提供最大信息增益的候选字面量。 (FOIL 和领域理论)

FOCL 是一种强大的机器学习算法,它使用 EBL 和领域理论技术,快速有效地到达假设空间。与 Inductive FOIL 算法相比,它显示出更多改进和准确的结果。一项关于“合法棋盘位置”的研究表明,在描述 30 个合法和 30 个非法残局棋盘位置的 60 个训练示例中,FOIL 准确率约为 86%,而 FOCL 准确率约为 94%。
在其他领域也得到了类似的结果。如有任何疑问/疑问,请在下方评论。