通用计算理论-贝叶斯最优性-Solomonoff-归纳与-AIXI

通用计算理论:贝叶斯最优性、Solomonoff 归纳与 AIXI

原文:towardsdatascience.com/the-theory-of-universal-computation-bayesian-optimality-solomonoff-induction-aixi/

引言

在一本开创性但未得到充分重视的书中,名为《通用人工智能:基于算法概率的序列决策》的 Marcus Hutter 尝试对 通用人工智能 进行了数学公式化,简称为 AIXI。本文旨在从概念和形式上使 AIXI 对数据科学家、技术爱好者以及普通大众都变得易于理解。

我们首先简要概述概率论公理。随后我们深入探讨条件概率,其计算受贝叶斯定理的支配。虽然贝叶斯定理提供了信念更新的框架,但它留下了如何分配先验的问题。为了解决这个问题,我们转向算法信息理论,该理论将 Kolmogorov 复杂度(定义为输出字符串的最短程序长度)与贝叶斯先验的分配联系起来。这两个想法之间的桥梁是 Solomonoff 先验,也称为通用先验。通用先验为我们提供了探索 AIXI 公式的必要支撑,该公式整合了序列决策理论、Solomonoff 先验和 Occam 的剃刀。在最后一节中,我们简要讨论了 AIXI 的局限性以及形式化通用代理的替代方法,同时承认“通用代理”这一术语具有重大的哲学模糊性。特别是,我们讨论了 Active Inference 作为 AIXI 的哲学替代品,其中前者模型化了一个具身预测代理,而后者则模型了一个非具身的效用最大化算法。

注意:博客中的所有图像均由作者创建。

概率公理

Kolmogorov 公理将概率空间定义为三元组 (Ω , 𝒜, 𝓟),其中 Ω 定义了总样本空间,𝒜 是感兴趣事件子集的集合,𝓟 是将概率分配给每个事件并归一化到单位区间的函数。

  1. 如果 𝑨 属于 𝒜,那么 𝓟(𝑨) ≥ 0

  2. 如果 𝑨, B 属于 𝒜 且 AB = ∅,那么 P (AB) = P(A) + P(B)

  3. P(Ω) = 1

第一个公理,非负性,确保概率作为信念或频率的真实值测度是有意义的。第二个,可加性,形式化了不相交结果的概率是它们各自概率之和的原则。第三个,归一化,确保分配给整个样本空间的总概率等于一。

然而,虽然概率公理指定了概率的结构规则,但它们并没有规定如何根据新的证据更新概率。从这个意义上说,柯尔莫哥洛夫框架是分析性和先验的:它定义了概率测度必须满足的条件,但没有规定如何通过证据来修订这样的测度。要从静态概率分配转移到动态推理,我们需要一种将新数据与现有假设相关联的方法,即条件概率。在频率统计学中,通过解释条件概率通过重复事件的长期频率来解决这个问题,通常假设这些事件是独立同分布(i.i.d.)的,而贝叶斯定理提供了一个根据新证据更新关于假设信念的规范性规则,这在观察是逐步进行或样本空间没有明确定义时特别有用。

贝叶斯推理

贝叶斯定理最初由一位苏格兰僧侣正式提出,是条件概率的代数推导。一旦我们了解了条件概率是如何计算的,就可以通过几个代数运算推导出贝叶斯定理。让我们回顾一下我们是如何计算条件概率的:

条件概率公式

这表明,给定证据 D 的假设 H 的概率是通过假设和证据的联合概率除以证据的概率来计算的。

我们为什么会以这种方式计算条件概率?让我们通过一个例子来解释。在地面湿润的情况下,下雨的概率——即假设——假设这两个事件是相关的。如果它们是独立的,那么它们共同发生的概率将通过它们的乘积 P(H) · P(D) 来计算。这是因为 P(H|D) = P(H) 和 P(D|H)=P(D) 的概率假设地面湿润的事件与下雨是独立的。注意我们刚刚提出的:P(H∩D) = P(H) · P(D)。这意味着独立事件的交集是通过它们各自概率的乘积来计算的。

但是,如何计算相关事件的交集 P(H∩D) 呢? 从集合论的角度来看,联合概率被定义为两个集合的交集:

为了理解样本空间分布的比例,我们可以将我们想要计算的条件概率可视化如下:

但在实践中,我们几乎从未事先了解联合概率分布。这就是我们可以使用一个简单的代数步骤来帮助我们近似联合概率的地方。我们将等式的两边乘以分母以求解联合概率 P(H∩D):

图片

现在相反地,如果我们想计算在下雨的情况下地面湿润的概率,我们的条件概率公式将是以下:

图片

同样的变换给我们:

图片

注意到所涉及的两个事件的联合概率是两个条件概率共有的项。由于 P(H∩D) 是一个对称关系,因此是方程之间的代数常数,我们得到以下关键等式:

图片

因此,如果我们想测试“下雨”的假设,给定“地面湿润”,我们可以重新排列这个等式以获得贝叶斯公式:

图片

在贝叶斯术语中,我们将 P(H|D) 称为 后验概率(即我们希望确定的概率),P(H) 称为 先验概率,P(D|H) 称为 似然,P(D) 称为 边缘概率

这种传统命名法在处理贝叶斯统计时很重要。似然提供了在假设下数据点的条件概率(提供用于更新我们信念的值),而边缘概率将后验概率归一化到条件或数据的样本空间。

由于我们需要贝叶斯公式中所有项的近似值,贝叶斯统计中的一个主要障碍是如何最好地分配这些值。特别是,指定先验可能具有挑战性,因为我们并不总是事先拥有所需的知识。近似先验的一些策略包括使用 均匀分布的先验,其中我们将相同的概率分配给所有可能的结果,这被称为拉普拉斯 无差异原理,其他策略包括使用 信息先验,即旨在近似事件实际概率分布的先验。在我们的例子中,这可能是每日降雨的泊松分布。

当我们从将假设视为固定值转变为将它们视为随机变量时,目标变为推断完整的后验分布,而不是单个估计。因此,我们现在可以从将假设视为点估计转向对具有相应概率分布的随机变量进行统计推断。为此,我们将先验 P(H) 和似然 P(D|H) 模型化为概率分布,并计算数据的边缘概率 P(D),这可以通过求和(离散变量的概率质量函数)或积分(连续变量的概率密度)获得。这些组成部分使我们能够应用贝叶斯定理以获得后验分布:P(H|D)。

图片

总概率定律(边缘概率)以离散变量的假设空间上的和表示。

概率质量函数(PMF)是分布所有值的总和,等于 1,而概率密度函数(PDF)是分布曲线下面积的积分,当极限接近 1 时。对于连续变量,我们进行积分,因为我们处理的是分布中的无限值。以下是连续变量的边缘公式,即总概率定律,表示为概率密度函数:

将总概率定律(边缘)表示为连续变量的假设空间的积分。

贝叶斯统计形成了统计学中更成熟的频率方法的一个替代框架。尽管其历史根源与频率公式的根源一样深,但计算上的不可行性限制了它在 20 世纪的大部分时间内的采用。随着计算能力的提高,贝叶斯方法经历了快速发展并得到了更广泛的应用。今天,贝叶斯统计在机器学习(ML)中扮演着核心角色,尤其是在概率建模、不确定性估计和不确定性下的决策。

柯尔莫哥洛夫复杂度

我们看到,我们的柯尔莫哥洛夫公理为计算概率提供了一个分析框架,其中包括将不相交集合的并集定义为和,它们的交集定义为积。但它没有告诉我们如何计算联合集合。为此,我们引用了贝叶斯定理,该定理利用集合交集推导出条件概率的通用公式。

然而,在我们对贝叶斯概率的解释中,我们确定了先验的分配是框架的一个问题:我们应该在先验中编码什么信息? 我们应该根据无差异原则使其无差异,还是使其具有信息性?

这就是柯尔莫哥洛夫复杂性的概念所在。虽然柯尔莫哥洛夫复杂性与概率无关,但通过编码定理(我们将在下面解释),它将后验元理论假设编码为数学选择偏差。这种元理论概括表明简单性编码了更高的概率。如果我们面临的是地面湿润的数据或结果,我们应该从所有可能假设的存储库中选择哪个假设?直观上,我们想要的是赋予观察结果最高概率的假设。但没有额外的信息,我们如何知道哪个假设最大化了结果的可能性?柯尔莫哥洛夫在算法信息理论的范围内回答了这个问题:最简单的假设是编码最少信息或最短序列的假设

为了理解这一动机背后的原因,我们首先在算法信息理论中陈述这个问题,然后回到其在更抽象、现实世界场景中的应用。

在算法信息理论中,我们根据某种符号基(如二进制)对符号序列或字符串进行编码。我们定义一个通用图灵机 U,它是一个从程序 p 到输出 x 的(部分 — 因为 p 不能定义所有输出)函数,即U(p) = x。将其视为与:f(x) = y 类似。程序 p 代表假设或理论,而输出 x 代表数据或证据。这种映射对于理解理论的直观动力很重要。

信息对象的可兰姆复杂性定义为输出该对象的最短算法序列长度,其中 K(x) 定义了程序的位数:

图片

这个表达式告诉我们,在所有产生 x 作为输出的程序 p 中,我们选择最短的一个,即最小的 {|p|}。可兰姆复杂性是在有限二进制字符串 x ϵ {0,1} 上定义的

我们现在需要做的是将可兰姆复杂性连接到概率理论,以便它可以告知我们的贝叶斯先验。为此,我们注意到可兰姆复杂性和香农信息熵之间至少在表面上存在联系。两者似乎都量化了某种信息内容:K(x) 定义了位数长度,而信息熵 H 定义了编码随机变量分布所需的平均信息量,其中信息定义为不确定性,并通过所有可能结果的 -log P(x) 的期望值来量化,以位为单位。不确定性越大,编码事件所需的信息量就越大。K(x) 和 H(X) 都以位为单位测量,那么它们之间的区别是什么?

K(x) 描述了输出字符串 x 的最短程序的位数长度,而 H(X) 计算从 x 的可能值概率分布中抽取的程序所需的平均位数,在 X 的样本空间上。似乎这两个度量之间必须存在某种深刻的联系。那么,可兰姆复杂性和香农熵之间的关系是什么?我们需要从原始长度值到它们的概率之间的桥梁。

如果我们从香农分布中隔离出一个单个结果,我们可以将其定义为 x 的自我信息,即我们程序的输出:

图片

单个概率结果的自我信息

这意味着自我信息(可以将其视为单个结果的熵度量)与 x 发生的对数逆概率成正比。I(x) 是全分布的一个实例,它定义了特定事件的香农熵:

图片

香农熵定义了整个分布的预期自信息为平均熵。

现在,编码定理指出, Kolmogorov 复杂度大约等于字符串中包含的香农信息。

图片

这表明输出 x 的最短程序大约与输出 x 的总概率的对数倒数一样长。换句话说,我们的香农分布包含最短程序,作为分配最高概率的程序!我们现在已经将原始程序长度与概率理论联系起来:程序输出越可压缩,其发生的可能性就越大。

这就是我们将算法压缩性,即针对实例定义的程序长度,与概率和信息理论联系起来,使我们能够将压缩性视为贝叶斯似然的方法。顺便提一下,方程上我们没有精确的等式,是因为所假设的关系不是精确的,直到一个加性常数 c,这取决于通用图灵机(UTM)的选择,使得 K(x)在所有 UTM 的上限 c 之前是机器相关的先验:

图片

现在你可能想知道,哪种分布能让我们为所有可能的程序长度分配概率?这种分布就是索洛蒙诺夫通用先验

索洛蒙诺夫归纳

正如我们讨论的,先验的选择会影响后验,尤其是在样本大小足够小的时候。这引发了一个问题:如果我们有一个可以应用于样本空间中所有可能事件的先验函数会怎样?这正是索洛蒙诺夫先验所编码的内容。确切地说,索洛蒙诺夫先验编码了观察到一个输出序列x的概率,即随机程序在通用图灵机上输出 x 的总概率。

现在,让我们看一下索洛蒙诺夫的通用先验公式,它应该会印证我们之前的断言,即算法概率与简单性密切相关。索洛蒙诺夫将通用先验 P(x)定义为所有有限二进制前缀无关程序 p 的概率之和,其中 p 的概率由其简单性定义,即 2^-|p|。

图片

通用索洛蒙诺夫先验

因为我们将程序的每个额外比特包含的概率定义为减半,所以程序中的信息比特越多,其在分布中的权重就越小。因此,所有前缀无关二进制程序的总概率将由最短程序主导。

我们指出,索洛蒙诺夫先验被定义为字符串的前缀无关有限二进制序列。让我们确保我们理解每个限定词。我们使用二进制序列,因为通用图灵机可以用二进制输入和输出来定义,其中我们可以用二进制编码来表示任何信息对象。我们定义先验在有限序列上,是为了满足可计算性的条件:无限序列是图灵不可计算的。

如果集合中的某个字符串不是另一个字符串的前缀,则该字符串集是前缀无关的:

图片

这产生了不相交的有限二进制字符串序列集。换句话说,我们需要不相交的集合来计算它们的并集。根据柯尔莫哥洛夫的可加性公理,集合成员的并集的概率可以表示为它们概率的和。

不相交性确保与每个假设或先验字符串相关的概率遵守克劳特不等式,该不等式指出所有概率的总和不超过单位区间:

图片

克劳特不等式

这告诉我们,对于某些前缀无关字符串 C,该序列的概率表示为 2 的负指数次幂,其中指数描述了长度。因为所有序列都是不相交的,它们的和不能超过 1(尽管它可以小于 1,使其成为一个半测度)。这使得我们可以将代码权重视为概率,从而通过求和字符串权重来计算整个分布的概率质量函数。

因此,索洛蒙诺夫的先验被定义为有限二进制程序 p 的权重或概率之和:

图片

通用索洛蒙诺夫先验

因此,为了计算从某个可能的程序中得到某些输出 x 的概率,我们将这个概率条件化到所有可能程序的概率之和:

图片

索洛蒙诺夫边缘概率

因为 p 是确定性的,所以似然和后验被定义为狄拉克δ函数:要么一个程序输出 x,要么不输出。

图片

此外,因为先验是在前缀无关的二进制字符串上定义的,我们可以用位串来表示条件化:

图片

我们没有事件上的联合分布,而是对生成 x 的位串进行加权求和,作为所有可能事件的替代。这揭示了形式主义的某些局限性:形式可压缩性是否足以作为某些程序或理论相对于其他程序或理论的解释偏差? 我们将在后面深入探讨这些局限性,例如缺乏结构偏差和表示对齐。

与编码定理一起,索洛蒙诺夫先验揭示了归纳和压缩性之间的深刻联系:泛化被正式证明与信息压缩等价,即数据集越可压缩,产生它的程序就越可能。然而,在现实世界中,我们知道最“可压缩”的理论并不总是具有最大解释力或预测力的理论,尽管最好的理论近似往往趋向于简单性。

下面的公式表达了我们的算法复杂性、通用先验和信息熵在特定范围 x 下近似等价的概念:

图片

AIXI

目前,我们的结合索洛蒙诺夫先验和贝叶斯后验的通用归纳理论并未为受约束的智能体定义。如果我们把索洛蒙诺夫归纳法顺序决策理论结合起来会怎样呢?

这就是马库斯·赫特(Marcus Hutter)的AIXI 理论发挥作用的地方:它整合了索洛蒙诺夫归纳法(Solomonoff induction)、决策理论和强化学习,使得我们的通用先验能够为智能体(agent)的工作提供支持。

从索洛蒙诺夫归纳法过渡到决策理论和强化学习的领域,需要扩展我们的本体论以包括动作观察奖励。AIXI 模型了一个通用智能体,它与任何可计算环境的交互使其能够选择最大化预期奖励的动作。更正式地说,AIXI 在每个时间步选择一个动作,并从环境中获得一个观察和奖励。AIXI 是如何选择最优动作的?正如我们将看到的,因为 AIXI 编码了一个理想的贝叶斯智能体,它构成了一个基于模型的智能体。然而,与典型的基于 Bellman 的确定性智能体(通过解 Bellman 方程来确定最优性,参见我之前关于强化学习的文章)不同,AIXI 对所有可能的环境保持不确定性。它是通过计算似然率的乘积之和来做到这一点的,即给定动作空间的环境反馈的概率,以及分配给每个可计算环境(或程序)的索洛蒙诺夫权重,称为通用混合

简而言之,通用混合(universal mixture)是 AIXI 中的一个术语,它定义了在给定当前动作的情况下,对下一个观察和奖励对的概率预测。它是通过计算每个可能环境的加权分布的乘积之和来计算的。通用混合通过将每个环境的权重与其概率分布的乘积相加,穷尽了环境空间。通用混合由以下公式给出:

图片

通用混合模型根据动作历史为未来的观察和奖励对分配概率。

通用混合模型通过它采取的每个动作累积环境的预测分布。将 ξ 视为在给定的动作序列下,为每个可能的观察和奖励的未来轨迹分配概率。

通用混合模型为我们提供了在动作历史下观察和奖励对的概率,但它没有告诉我们这些轨迹中哪一个是最有价值的或奖励最大的。为此,我们按环境或轨迹汇总奖励:

图片

累积奖励的总和,其中 k 是时间索引,m 是最远的时间步。

为了找出要选择哪个轨迹,我们将每个轨迹的奖励总和乘以通用混合模型分配给该轨迹的概率:

图片

在环境预测下的预期奖励计算

因此,我们通过按累积奖励加权每个轨迹来计算期望。

在我们计算期望之后,最后一步涉及根据奖励和环境概率的加权选择最大化预期回报的动作。为此,我们采用 arg max 函数如下:

图片

Arg max 选择最大化所有可能轨迹累积回报的动作:

图片

AIXI 旨在形式化一个通用代理,其配备的 Solomonoff 先验偏置使其倾向于具有最小 Kolmogorov 复杂度的环境。除了假设所有可能的可计算环境并将压缩性与更高的概率相关联之外,AIXI 代理通过与环境的交互获得结构偏置。这确保了 AIXI 应该能够导航任何环境(前提是它一开始就是结构化的/可计算的)。

虽然 AIXI 形式化了一个通用代理,但它并没有足够地偏置这个代理,使其能够有效地导航实际环境。也就是说,AIXI 形式化的最优行动或决策的程序没有编码有效的结构偏差,例如特定领域的启发式方法或架构约束,这些偏差可以加速学习。然而,这一特性是 AIXI 在所有可能环境中设置决策最优通用界限范围的结果。原则上,AIXI 通过贝叶斯更新间接地获得有效的结构偏差。在足够的环境采样下,AIXI 在无限次的交互中,假设环境是可计算的并且具有非零先验,渐近收敛到真实环境。然而,在实践中,由于后验权重过度扩散,收敛可能效率低下,导致代理的行动在不确定的时间内次优。

不可计算性与结构偏差

在其通用形式中,AIXI 由于 Kolmogorov 复杂性和 Solomonoff 先验都是不可计算的,因此无法通过算法实现。所有能够停止并产生有效(可计算)环境的程序集合是不可数的或不是递归可枚举的。计算通用先验需要无限的环境模拟,而计算未来期望则需要无限的前瞻性,所有这些都是数学上难以处理的。

因此,存在 AIXI 的可计算近似,例如 AIXItlAIXItl 引入了时间和程序长度界限(这就是 tl 的含义),将环境空间 Mtl 限制在 ≤ t 步时间和 l 比特长然而,AIXItl 仍然效率低下,因为环境的组合可能性是指数级的:O(2^l)。无模型替代方案,如 DQN,以及基于梯度的替代方案,如 DreamerWorld Models,代表了在寻找通用代理方面的替代方案。这些后来的替代方案使用启发式方法和基于采样的方法进行探索,例如 蒙特卡洛树搜索 用于最优决策。从根本上说,这场竞赛在于基于模型和无模型方法之间,后者完全从与环境交互中获取偏差。

表示对齐

正如我们之前所述,AIXI 将宇宙视为一个可计算的序列,通过有限的二进制字符串来表示。环境是图灵可计算这一假设并不包含在丘奇-图灵论题中,因此代表了 AIXI 的一个额外假设。从原则上讲,即不是针对一个可实现的机器,这个假设的真实性是一个悬而未决的问题,尽管有很好的理由认为它是错误的。

正如我们所见,AIXI 将观察视为位串,而现实世界的数据需要结构化的表示,例如因果关系结构时间关系空间维度等。为了在 AIXI 中编码更丰富的结构,我们需要先验知识来编码结构化的表示,如图、张量、微分方程等。编码结构偏差会使 AIXI 更有效率,但会牺牲其通用性。因此,在贝叶斯模型中编码现实世界的表示结构是以牺牲环境泛化能力为代价来专门化模型。鉴于在实践中实现 AIXI 的代理是不可能的,因此我们应该寻找编码现实世界表示的代理,如 AIXItl、无模型代理或基于深度学习的代理。

主动推理

我们看到 AIXI 包含一个最大信息先验,但这个先验是完全无结构的,并且除了对短或可压缩程序作为最可能的选择的元选择偏差之外,不包含关于世界的任何先验知识。我们还看到,这使得 AIXI 和 Solomonoff 先验在计算上不可行,这阻止了其完整形式的实现。

另一条代理建模的线索,最近被命名为主动推理,其核心是自由能最小化原理,旨在将效用最大化、强化学习、贝叶斯推理、预测编码、统计力学以及远离热力学平衡动力学等建模谱系整合到层次生成贝叶斯代理的统一模型中。主动推理生成贝叶斯模型中的最优性在于最小化自由能,其中自由能被定义为对感觉和其推断原因共同发生的预期惊讶。

用通俗的话来说,生成模型通过前向模型预测未来感知,该模型通过先验估计那些感觉的原因,并通过逆模型相反地估计或预测实现所需状态所需采取的行动。代理通过前向和逆模型的循环或更简单地说,通过感知和行动的循环动态地导航环境。自由能来自预测和环境反馈之间的不匹配,通过模型先验的分层贝叶斯更新来最小化。

下面的公式形式上表达了变分自由能的计算,即识别密度(近似后验)与条件密度(真实后验)之间的散度,其中 ỹ 表示观察到的输入,𝜗 表示潜在原因,p( ỹ, 𝜗) 定义生成模型为感知和潜在原因的联合概率密度,而 q(𝜗) 定义近似后验:

图片

公式中的第一个表达式定义了近似后验 q(𝜗)与真实后验 p(𝜗| ỹ)之间的 Kullback-Leibler 散度,减去模型证据的对数 log p(ỹ)。一般来说,Kullback-Leibler 散度量化了模型分布 Q 与实际分布 P 之间的几何散度。自由能源于近似后验与真实后验之间的信息论散度,通过模型证据的对数进行偏移。我们通过在潜在原因上对近似和真实联合分布的对数比进行积分来计算变分自由能。第二个项将这个相同的量表示为近似后验 q(𝜗)的熵与后验和生成模型 p( ỹ, 𝜗)之间的交叉熵之和。最小化自由能相当于减少识别模型和条件密度之间的散度。

AIXI 和主动推断以不同的方式提供最优贝叶斯代理。但是,虽然 AIXI 在其无界形式上在形式上不可计算,主动推断通过变分贝叶斯模型实现可处理的近似。AIXI 中的优化包括最大化奖励,而主动推断中的优化是最小化自由能。在前者中,模型精度隐含地从最大化奖励中产生,而在后者中,最大化奖励隐含地从最小化预期惊喜或自由能中产生。在这方面,主动推断构成了一个结构化的生成模型,它通过推理而不是 AIXI 的枚举来估计潜在原因,通过推理而不是 AIXI 的枚举来指导行动选择,AIXI 从所有可能的环境中选取最大化奖励的行动。然而,主动推断仍然是一个不完整的框架,因为它忽略了关于具体代理的许多细节,例如目标设定、模型学习(其中非常模糊)以及代理边界的可行描述(马尔可夫毯公式不足,无法区分生物代理和非生物系统,后者并不构成实际的代理)。

参考文献

Friston, K., Kilner, J., & Harrison, L. (2006). 脑部的自由能原理. 《巴黎生理学杂志》第 100 卷(第 1-3 期), 70-87. doi.org/10.1016/j.jphysparis.2006.10.001

Hutter, M. (2005). 通用人工智能:基于算法概率的顺序决策(第 1 版). Springer Berlin Heidelberg. doi.org/10.1007/b138233 SpringerLink+13SpringerLink+13Google Books+13

Sommaruga, G. (编者). (2009). 信息形式理论:从香农到语义信息理论和一般信息概念(计算机科学讲义,第 5363 卷). Springer Berlin Heidelberg. doi.org/10.1007/978-3-642-00659-3

Zabell, S. (2009). 归纳逻辑哲学:贝叶斯视角。收录于 L. Haaparanta (编者) 的《现代逻辑的发展》(第 725–774 页)。牛津大学出版社。doi.org/10.1093/acprof:oso/9780195137316.003.0044

posted @ 2026-03-28 10:06  布客飞龙III  阅读(80)  评论(0)    收藏  举报