第36行: |
第36行: |
| | | |
| 智能体面临的基本问题是基于对环境状态的建模和对未来环境的预测。这需要一个量化的理论来描述智能体如何处理信息和构建模型。 | | 智能体面临的基本问题是基于对环境状态的建模和对未来环境的预测。这需要一个量化的理论来描述智能体如何处理信息和构建模型。 |
| + | |
| + | ==因果态== |
| + | 智能体对环境的测量精度一般都是有限的,测量结果只能描述环境状态的投影,智能体需要对测量结果[[粗粒化]]后才能识别环境状态投影中的斑图。具体来说,我们可以利用微分的思想,将测量结果的数据划分为若干部分,并将每个斑图的数据独立划分,会观察到在不同的时刻,某些斑图会反复出现。我们可以用同一个字符串来表示这些重复出现的斑图,这样就能简化描述,以此得到模型的最小程序长度。我们可以把这些能够用同一个字符串描述的重复斑图称为“因果态”。 |
| + | |
| + | ===因果态的定义=== |
| + | |
| + | 若将测量对象过去未来的所有信息视为限制在离散值、离散时间上的稳定[[随机过程]],用双无限序列可数集合<math>\overleftrightarrow{S}=⋯s_{-2} s_{-1} s_0 s_1 s_2…</math>表示,则测量结果为<math>\overleftrightarrow{S}</math>中任意随机变量的序列。基于时间<math>t</math>可以将<math>\overleftrightarrow{S}</math>分为单侧前向序列<math>s_t^→=s_t s_{t+1} s_{t+2} s_{t+3}…</math>和单侧后向序列<math>s_t^←=⋯s_{t-3} s_{t-2} s_{t-1} </math>两个部分,所有可能的未来序列<math>s_t^→</math>形成的集合记作<math> \overrightarrow{S}</math>,所有可能的历史序列<math>\overleftarrow{s_t}</math>形成的集合记作<math> \overleftarrow{S}</math>。 |
| + | |
| + | 按照一定的划分方法( partition)将<math> \overset{\leftarrow}{S}</math>划分为若干个互斥且全面的子集,那么每个子集就是一个状态,这些划分得到的状态的集合记作<math>\mathcal{R} </math>,划分方法可以是任意函数映射<math> η </math>,用公式表示为<math> \eta{:}\overleftarrow{S}\mapsto\mathcal{R}</math>,也可以将划分得到的状态理解为将<math> \overset{\leftarrow}{S}</math>中的某段序列[[马尔科夫链的粗粒化|粗粒化]]后得到的宏观态。 |
| + | [[文件:划分示意图.jpg|居中|400x400像素|替代=|无框]] |
| + | 上图为某种划分方法的示意图,将集合<math> \overset{\leftarrow}{S}</math>划分为某类状态<math> \mathcal{R}=\{\mathcal{R}_i:i=1,2,3,4\}</math>,值得注意的是,<math> \mathcal{R}_i</math>不必形成紧致集,也可以是康托集或其他更特殊的结构,上图为了示意清楚才这样画的。 |
| + | |
| + | 用来划分集合<math> \overset{\leftarrow}{S}</math>的映射可以有很多种,若某一种划分方法( partition)能够在预测能力最强的同时消耗的计算资源最少,那么它肯定是最优的划分,我们把这种用最优的划分方法得到的状态称为因果态。因果态就是智能体对测量结果进行处理后,根据其内部模型(尤其是状态结构)识别出的斑图,并且这种斑图不随时间发生变化。形式化定义为:对于任意的时刻<math>t </math> 和<math>t^{'} </math>,给定过去状态<math> s_t^← </math>的条件下,未来状态<math> s^→ </math>的分布与给定过去状态<math> s_{t^{'}}^← </math>的条件下,未来状态<math> s^→ </math>的分布相同。那么<math>t </math> 和<math>t^{'} </math>的关系就记作<math>t∼t^{'} </math>,“<math>∼ </math> ” 表示由等效未来状态所引起的等价关系,可以用公式表示为:<math>t∼t^{'} \triangleq Pr(s^→ |s_t^← )=Pr(s^→ |s_{t^{'}}^← ) </math>,若<math>t </math> 和<math>t^{'} </math>对未来状态预测的分布相同,则定义他们具有相同的因果态(casual state)。 |
| + | [[文件:因果态的定义.jpg|居中|无框|400x400px|替代=]] |
| + | 如上图所示,左侧的数字代表<math>t</math>时刻的状态序列,右侧的箭头形状代表对未来状态预测的分布,可以观察到<math>t_9</math>和<math>t_{13}</math>时刻的箭头形状完全相同,说明它们对未来状态预测的分布相同,则处于相同的因果态;同样的道理,在<math>t_{11}</math>时刻,它的箭头形状与<math>t_9</math>和<math>t_{13}</math>时刻不同,则处于不同的因果态。 |
| | | |
| == 模型复杂度的量化指标 == | | == 模型复杂度的量化指标 == |
第96行: |
第111行: |
| 如果在已确定描述语言(程序)的情况下,柯式复杂度[math]\displaystyle{ K(s^L ) }[/math]可以理解为描述[math]\displaystyle{ s^L }[/math]所用的总信息量。[math]\displaystyle{ h_μ L }[/math]为允许损失的信息量。统计复杂度[math]\displaystyle{ C_μ (s^L ) }[/math]可以理解为允许存在误差率[math]\displaystyle{ h_μ }[/math]的情况下,描述[math]\displaystyle{ s^L }[/math]所用的最少信息量。 | | 如果在已确定描述语言(程序)的情况下,柯式复杂度[math]\displaystyle{ K(s^L ) }[/math]可以理解为描述[math]\displaystyle{ s^L }[/math]所用的总信息量。[math]\displaystyle{ h_μ L }[/math]为允许损失的信息量。统计复杂度[math]\displaystyle{ C_μ (s^L ) }[/math]可以理解为允许存在误差率[math]\displaystyle{ h_μ }[/math]的情况下,描述[math]\displaystyle{ s^L }[/math]所用的最少信息量。 |
| | | |
− | ==因果态==
| + | == 因果态的主要性质 == |
− | 要计算模型的统计复杂度[math]\displaystyle{ C_μ(x) }[/math],我们需要找到一种方法来最大限度地压缩描述测量结果的字符串。这意味着要先识别出测量结果中的斑图。具体来说,我们可以利用微分的思想,将测量结果的数据划分为若干部分,并将每个斑图的数据独立划分,会观察到在不同的时刻,某些斑图会反复出现。我们可以用同一个字符串来表示这些重复出现的斑图,这样就能简化描述,以此得到模型的最小程序长度。我们可以把这些能够用同一个字符串描述的重复斑图称为“因果态”,这样一来,通过找到这些因果态,就能计算出模型的统计复杂度。
| |
− | | |
− | ===因果态的定义===
| |
− | | |
− | 智能体对环境的测量精度一般都是有限的,测量结果只能描述环境状态的投影,智能体需要对测量结果[[粗粒化]]后才能识别环境状态投影中的斑图。若将测量对象过去未来的所有信息视为限制在离散值、离散时间上的稳定[[随机过程]],用双无限序列可数集合<math>\overleftrightarrow{S}=⋯s_{-2} s_{-1} s_0 s_1 s_2…</math>表示,则测量结果为<math>\overleftrightarrow{S}</math>中任意随机变量的序列。基于时间<math>t</math>可以将<math>\overleftrightarrow{S}</math>分为单侧前向序列<math>s_t^→=s_t s_{t+1} s_{t+2} s_{t+3}…</math>和单侧后向序列<math>s_t^←=⋯s_{t-3} s_{t-2} s_{t-1} </math>两个部分,所有可能的未来序列<math>s_t^→</math>形成的集合记作<math> \overrightarrow{S}</math>,所有可能的历史序列<math>\overleftarrow{s_t}</math>形成的集合记作<math> \overleftarrow{S}</math>。
| |
− | | |
− | 按照一定的划分方法( partition)将<math> \overset{\leftarrow}{S}</math>划分为若干个互斥且全面的子集,那么每个子集就是一个状态,这些划分得到的状态的集合记作<math>\mathcal{R} </math>,划分方法可以是任意函数映射<math> η </math>,用公式表示为<math> \eta{:}\overleftarrow{S}\mapsto\mathcal{R}</math>,也可以将划分得到的状态理解为将<math> \overset{\leftarrow}{S}</math>中的某段序列[[马尔科夫链的粗粒化|粗粒化]]后得到的宏观态。
| |
− | [[文件:划分示意图.jpg|居中|400x400像素|替代=|无框]]
| |
− | 上图为某种划分方法的示意图,将集合<math> \overset{\leftarrow}{S}</math>划分为某类状态<math> \mathcal{R}=\{\mathcal{R}_i:i=1,2,3,4\}</math>,值得注意的是,<math> \mathcal{R}_i</math>不必形成紧致集,也可以是康托集或其他更特殊的结构,上图为了示意清楚才这样画的。
| |
− | | |
− | 用来划分集合<math> \overset{\leftarrow}{S}</math>的映射可以有很多种,若某一种划分方法( partition)能够在预测能力最强的同时消耗的计算资源最少,那么它肯定是最优的划分,我们把这种用最优的划分方法得到的状态称为因果态。因果态就是智能体对测量结果进行处理后,根据其内部模型(尤其是状态结构)识别出的斑图,并且这种斑图不随时间发生变化。形式化定义为:对于任意的时刻<math>t </math> 和<math>t^{'} </math>,给定过去状态<math> s_t^← </math>的条件下,未来状态<math> s^→ </math>的分布与给定过去状态<math> s_{t^{'}}^← </math>的条件下,未来状态<math> s^→ </math>的分布相同。那么<math>t </math> 和<math>t^{'} </math>的关系就记作<math>t∼t^{'} </math>,“<math>∼ </math> ” 表示由等效未来状态所引起的等价关系,可以用公式表示为:<math>t∼t^{'} \triangleq Pr(s^→ |s_t^← )=Pr(s^→ |s_{t^{'}}^← ) </math>,若<math>t </math> 和<math>t^{'} </math>对未来状态预测的分布相同,则定义他们具有相同的因果态(casual state)。
| |
− | [[文件:因果态的定义.jpg|居中|无框|400x400px|替代=]]
| |
− | 如上图所示,左侧的数字代表<math>t</math>时刻的状态序列,右侧的箭头形状代表对未来状态预测的分布,可以观察到<math>t_9</math>和<math>t_{13}</math>时刻的箭头形状完全相同,说明它们对未来状态预测的分布相同,则处于相同的因果态;同样的道理,在<math>t_{11}</math>时刻,它的箭头形状与<math>t_9</math>和<math>t_{13}</math>时刻不同,则处于不同的因果态。
| |
− | | |
− | ===因果态的主要性质===
| |
| 因果态的划分函数记作<math>\epsilon</math>,公式为<math> \epsilon{:}\overleftarrow{S}\mapsto2^{\overset{\leftarrow}{S}}</math>,其中<math> 2^{\overset{\leftarrow}{S}}</math>是<math> \overleftarrow{S}</math>的幂集。根据因果态的定义,则存在如下关系:<math>\epsilon(\stackrel{\leftarrow}{s})\equiv\{\stackrel{\leftarrow}{s}^{\prime}|\mathrm{P}(\stackrel{\rightarrow}{S}=\stackrel{\rightarrow}{s}\mid\stackrel{\leftarrow}{S}=\stackrel{\leftarrow}{s})=\mathrm{P}(\stackrel{\rightarrow}{S}=\stackrel{\rightarrow}{s}\mid\stackrel{\leftarrow}{S}=\stackrel{\leftarrow}{s}^{\prime}),\mathrm{for~all~}\overrightarrow{s}\in\overrightarrow{S},\stackrel{\leftarrow}{s}^{\prime}\in\stackrel{\leftarrow}{S}\} </math>,其中<math>\mathcal{S} </math>为因果态的集合,<math>\stackrel{\leftarrow}{s} </math>为历史序列的随机变量。因果态具有如下性质: | | 因果态的划分函数记作<math>\epsilon</math>,公式为<math> \epsilon{:}\overleftarrow{S}\mapsto2^{\overset{\leftarrow}{S}}</math>,其中<math> 2^{\overset{\leftarrow}{S}}</math>是<math> \overleftarrow{S}</math>的幂集。根据因果态的定义,则存在如下关系:<math>\epsilon(\stackrel{\leftarrow}{s})\equiv\{\stackrel{\leftarrow}{s}^{\prime}|\mathrm{P}(\stackrel{\rightarrow}{S}=\stackrel{\rightarrow}{s}\mid\stackrel{\leftarrow}{S}=\stackrel{\leftarrow}{s})=\mathrm{P}(\stackrel{\rightarrow}{S}=\stackrel{\rightarrow}{s}\mid\stackrel{\leftarrow}{S}=\stackrel{\leftarrow}{s}^{\prime}),\mathrm{for~all~}\overrightarrow{s}\in\overrightarrow{S},\stackrel{\leftarrow}{s}^{\prime}\in\stackrel{\leftarrow}{S}\} </math>,其中<math>\mathcal{S} </math>为因果态的集合,<math>\stackrel{\leftarrow}{s} </math>为历史序列的随机变量。因果态具有如下性质: |
| | | |
第144行: |
第144行: |
| 用[[互信息]]的角度去理解的话,上式等价于<math>I(\mathcal{S}^{\prime};\mathcal{S})\geq I(\hat{\mathcal{R}}^{\prime};\hat{\mathcal{R}}) </math>,可以理解为任意状态对它自己下一时刻的互信息中,其中因果态的互信息最大。 | | 用[[互信息]]的角度去理解的话,上式等价于<math>I(\mathcal{S}^{\prime};\mathcal{S})\geq I(\hat{\mathcal{R}}^{\prime};\hat{\mathcal{R}}) </math>,可以理解为任意状态对它自己下一时刻的互信息中,其中因果态的互信息最大。 |
| | | |
− | 若想更深入的理解因果态的性质可以阅读Cosma Rohilla Shalizi 和James Crutchfield合写的一篇论文<ref name=":4">Shalizi, C. R.. & Crutchfield, J. P. (2001). Computational Mechanics: Pattern and Prediction, Structure and
| + | 要计算模型的统计复杂度[math]\displaystyle{ C_μ(x) }[/math],我们需要找到一种方法来最大限度地压缩描述测量结果的字符串,因果态的性质正好能满足上述要求,所以只要将测量结果最大化的转化为因果态的形式,就能计算模型的最小统计复杂度。若想更深入的理解因果态的性质可以阅读Cosma Rohilla Shalizi 和James Crutchfield合写的一篇论文<ref name=":4">Shalizi, C. R.. & Crutchfield, J. P. (2001). Computational Mechanics: Pattern and Prediction, Structure and |
| | | |
| Simplicity,Journal of Statistical Physics,104(3/4).817-879.</ref>,里面有因果态更多的性质和对应的形式化证明过程。 | | Simplicity,Journal of Statistical Physics,104(3/4).817-879.</ref>,里面有因果态更多的性质和对应的形式化证明过程。 |