示例 2.4 k项DNF公式
析取范式(DNF)公式是几个项的析取的公式,每个项都是布尔文字的合取。k项DNF是由k项的析取定义的DNF公式,每个项最多由n个布尔文字组成。因此,对于k=2和n=3,k项DNF的示例为(x1∧x2∧x3)∨(x1∧x3)。
k项DNF公式的C类是PAC可学习的吗?类的基数是3nk的基数,因为每个项是至多n个变量的合取,并且有3n个这样的合取,如前面所见。假设集H必须包含C才能实现一致性,因此∣H∣≥3nk。定理2.1给出了以下样本复杂性界:
m≥ϵ1((log3)nk+logδ1),(2.12)
这是多项式。然而,可以证明学习k项DNF的问题在RP中,RP是允许随机多项式时间决策解决方案的复杂问题类别。因此,除非RP=NP,否则该问题在计算上是难以解决的,通常认为情况并非如此。因此,虽然学习k项DNF公式所需的样本大小只是多项式,但除非RP=NP,否则此类PAC的有效学习是不可能的。
示例2.5 k-CNF公式
合取范式(CNF)公式是析取的合取。k-CNF公式是T1∧...∧Tj形式的表达式,具有任意长度的j∈N,并且每个项都是至多k个布尔属性的析取。学习k-CNF公式的问题可以简化为学习布尔文字的连接的问题,如前所述,这是一个PAC可学习的概念类。为此,只需将每个项Ti与新变量关联即可。然后,这可以通过以下双射完成:
ai(xi)∨...∨ai(xn)→Yai(xi),...,ai(xn),(2.13)
式中,ai(xj)表示在Ti项中对xi的赋值。这种对布尔文字连接的PAC学习的简化可能会影响原始分布,但这不是问题,因为在PAC框架中,没有对分布进行任何假设。因此,布尔文字连接的PAC可学习性意味着k-CNF公式的PAC可学习性。
然而,这是一个令人惊讶的结果,因为任何k项DNF公式都可以写成k-CNF公式。实际上,使用结合性,可以通过以下方式将k项DNF重写为k-CNF公式:
i=1⋁kai(xi)∧...∧ai(xn)=i1,...,ik=1⋀na1(xi1)∨...∨ak(xik).
为了在特定情况下说明这种重写,请观察,例如
(u1∧u2∧u3)∨(v1∧v2∧v3)=i,j=1⋁3(ui∨vj)
但是,正如我们之前看到的,k 项 DNF 公式不是有效的 PAC 可学习的!什么可以解释这种明显的不一致?观察到通过刚刚描述的转换将 k 项 DNF 写为 k-CNF 公式所需的新变量的数量在 k 中呈指数, O(nk) 。差异来自概念表示的大小。 k 项 DNF 公式可以是指数级更紧凑的表示,如果需要该大小的时间复杂度多项式,则有效的 PAC 学习是难以处理的。因此,这个明显的悖论涉及 PAC 学习的关键方面,包括概念表示的成本和假设集的选择。