15516 字
78 分钟
模型与工程·三|模型内部是什么:呈现、语义、观察与身份

水箱可以用水位写,也可以用体积写;网络的隐藏单元可以重排,输出函数仍然相同。看见这些对应,我们容易说:写法变了,模型没有变。再看另一些对应,这句话便需要分开。两个概率分布都允许零和一,成功概率却可能不同;两个优化问题有同一个最优点,其他方案的排序却可能相反;两个因果模型给出相同观察分布,改变一个变量以后又有不同后果。

区别已经在这些对象里面。我们给它们什么域,允许什么操作,怎样解释呈现,观察保留哪些内容,都影响“相同”的判断。用一个无权集合装下所有可能结果,能表示某些关系,也会丢掉概率与干预;把模型统一当作函数,又可能删去多解、历史和交互。要完整看见内部,须让对象按其关系取得自己的数学形式。

前两篇已经建立了问题形成和经验表征。现在暂把经验联系放在明确的地址上,进入形式对象本身:一份呈现怎样取得语义,一个家族怎样成为实例,观察怎样从内部提取内容,以及身份标准怎样依这些选择成立。随后再把计算和经验关系接回去。内部分析可以使这些联系更准确,各项联系也会反过来推动内部修订。

一个式子,怎样取得数学内容#

先看 x2+1=0x^2+1=0。在实数中没有解,在复数中有 ii 与 −i-i 两个解。同样的字符,用了不同的域,得到不同的解集。我们并没有在某一次计算上碰巧走向不同答案;域的选择改变了允许什么元素、怎样解释运算,以及整项问题有哪些满足者。

再看 x2=1x^2=1。它在实数中的解是 −1,1-1,1;写成 (x−1)(x+1)=0(x-1)(x+1)=0,在同一个实数解释下得到同一解集。文字身份不同,当前语义相同。这里还用了实数没有零因子的性质。在模八整数环中,1,3,5,71,3,5,7 都满足平方为一;因式分解仍成立,乘积为零却不要求一个因子为零。若把实数中的推理原封不动移来,错处落在推理所依赖的结构,而不在算式外形。

这几个初等例子已把三项工作分开。呈现提供待解释的符号和条件;解释给定元素与运算;推理利用这个结构中的性质。说明一个方程,需要的内容因而不只是一行等号。域、参数、变量和满足方式,都参加对象的形成。某些内容在共同语境中可以省略,跨语境比较时却须把它们找回来。

逻辑中的“模型”还可能指一种满足理论的结构。比如群的公理允许不同群作为模型,每个群给乘法、单位元和逆元以自己的解释。动力学中的模型通常规定演化,统计模型规定概率家族,实际水箱则是经验参照装置。它们都可以成为严谨数学讨论的对象,名称相同没有使所指相同。讨论群公理的满足者与讨论一条排水轨迹,须选择各自的解释和比较。

形式满足与经验有效性也在这里分开。若一条函数满足所写微分方程,它是该条件下的形式解;它能否贴合装置中的水位,要经过第二篇已经建立的测量和表征关系。一个方程可能有严格求出的解,却没有覆盖实际孔口的低水位机制;一个经验预测器也可能在指定资料上表现很好,而没有恢复装置的生成关系。把两项所得分别说足,才容易看见下一步缺在哪里。

水位与体积之间,什么被逐项保持#

沿用常面积水箱,先固定 A>0A>0、时间区间 [0,T][0,T]、初始水位和一个共同的连续输入 q(t)q(t)。令出流函数为 F(h)F(h),在当前讨论的非负水位域内已指定。它可以取前篇有效区间的 κh\kappa\sqrt h,这里先研究已给函数下的对应。水位表达为

Ah˙=q(t)−F(h),h(0)=h0.A\dot h=q(t)-F(h),\qquad h(0)=h_0.

定义 V=AhV=Ah,相应体积表达便是

V˙=q(t)−F(V/A),V(0)=Ah0.\dot V=q(t)-F(V/A),\qquad V(0)=Ah_0.

对每条可微水位解取 V(t)=Ah(t)V(t)=Ah(t),求导得 V˙=Ah˙\dot V=A\dot h,所以第二式成立。反过来,对每条体积解取 h=V/Ah=V/A,第一式也成立。两项转换互为逆映射,因而建立解集之间的双射。A>0A>0 同时把 h≥0h\ge0 对应到 V≥0V\ge0;水位阈值 h≤ah\le a 对应到体积阈值 V≤AaV\le Aa。初值、允许域和所问条件,随换元一起改变。

这比两份输出曲线看起来相近更强。对应覆盖全部允许解,逐项说明每条解怎样进入另一表达;阈值查询也沿同一映射保持。若只改右侧变量而把体积初值仍写成数值 h0h_0,便通常是在研究另一项问题。单位已经提醒我们这一点:米与立方米不是同一初值类型,数值相同不提供转换根据。

比较输出时,还要让两边回到共同观察域。水位表达直接观察 hh;体积表达可以观察 V/AV/A。于是对应解给出完全相同的水位历程。若观察原始坐标,一边输出米,一边输出立方米,就没有直接要求它们相等的理由。一个结构对应与一个共同观察共同工作,才使“同一过程的两种表达”成为明确判断。

换元仍有自己的条件。若面积随时间变化,V˙=Ah˙+A˙h\dot V=A\dot h+\dot A h,刚才的常面积推导不再原样成立。若截面随高度变化,应由体积函数 V(h)V(h) 及其可逆范围重新建立对应。正面说出原对应保持什么,也便指出新条件下应检查哪里。可逆性不是所有“换一种变量”操作自带的性质,保持关系须在所选对象上算出来。

这里可以开始理解同构。两个带结构对象之间存在可逆映射,并且它和逆映射都保持所指定的关系,便得到该结构意义下的同构。水位与体积对应保持演化、初值、非负域和变换后的查询。在另一种结构中,例如只关心解集的基数,所需保持的内容会少得多。称作同构时,所用结构和态射也须明确;这个词本身没有代我们选好它们。

有类型的呈现,怎样形成语义实例#

回到水箱,我们已经使用了时间、长度、体积、流量、常数、函数和轨迹。它们能够相接,靠的是类型与解释。hh 是时间到长度的函数,AA 是固定正面积,FF 把高度送到流量。F(V/A)F(V/A) 因而有意义,F(V)F(V) 却未必合法。矩阵与向量也有类似条件:维数决定哪些乘法允许,坐标的物理或统计含义决定比较怎样解释。类型先把合法操作组织起来,之后才问结果如何。

以 Σ\Sigma 表示一份带类型的签名,保存所用的对象种类、符号、运算和关系。在水箱例中,它可声明 t∈[0,T]t\in[0,T]、h∈C1([0,T];R≥0)h\in C^1([0,T];\mathbb R_{\ge0})、A>0A>0,并指定 qq 和 FF 的域与余域。这里 C1C^1 表示函数和一阶导数连续。签名说明表达的材料和合法接法;方程、初值及其他约束组成呈现 pp。声明 hh 的类型,没有规定它怎样演化;加入微分方程,才把允许轨迹限制下来。

还要选择语义种类 τ\tau,以及相应的语义域 Sτ\mathcal S_\tau。若当前任务研究全部允许水位轨迹,语义可以是满足 pp 的解集;若任务研究给定输入的演化算子,就要在解唯一及其定义域明确的条件下建立算子。选择概率语义时,目标则可能是轨迹的律或条件核。τ\tau 让解释取得明确的目标,并提醒我们:相同符号可以进入不同的对象组织。

在已经指定的解释规则下,记

s=⟦p⟧∈Sτ.s=\llbracket p\rrbracket\in\mathcal S_\tau.

双括号表示按当前规则解释呈现的结果。这项记号预设了规则,并未自动产生规则。在水箱中,我们用实数、导数和等式解释方程;在有限状态程序中,可能由执行步给出转移关系;在逻辑理论中,还可能研究全部满足公理的结构。哪种解释符合当前问题,仍是数学工作的一部分。记号用得简洁,不能把这项工作省去。

一个呈现也可能不含足够条件,使预期解释未定义。规定“下一状态为方程的解”,却没有给初值,通常还没有唯一下一状态;规定一个概率密度,却未保证非负和积分为一,也没有得到概率律。我们可以补充条件,或者把语义改为允许解的关系,并把不存在与多解保留下来。后一种改法有自己的所得:它使之前被函数表达排除的问题取得对象形式。

参数家族与固定实例在这套组织中占不同位置。设参数域为 Θ\Theta,每个 θ\theta 给出呈现 pθp_\theta 及语义 sθs_\theta,于是形成 θ↦sθ\theta\mapsto s_\theta 的家族。固定 (A,κ)(A,\kappa) 选择了一个水箱语义实例;固定输入和初值,才进一步选择一次求解问题;在解唯一时,再得到一条具体轨迹。家族、实例、求解条件和运行,沿不同的选择接起来,不能以“这就是模型”互相覆盖。

参数和输入的分工也按所研究的变化确定。前篇把固定孔口的出流系数作为参数,把进水历程作为输入,因而能比较同一装置面对不同输入的回答。若我们研究可控阀门,开度须进入输入或状态;若研究一批水箱,面积可以在总体中变化。一个数在一次计算中固定,不表示它在所有问题中永远是参数。变动对象时,家族和实例的地址随之改变。

观察规格 vv 再说明当前要保留什么,观察映射 Ωv\Omega_v 从相应语义对象提取该内容。水箱可以观察共同水位轨迹,网络可以观察全部输入上的函数,也可以只观察某个样本集上的预测。观察的域、查询、聚合和单位共同决定比较,后面会给出精确条件。这里先把它接在语义之后,避免把一次可见输出当成内部的全部内容。

计算实现 rr 和经验表征 ρ\rho 也有位置。实现用某个算法与制品去求解或执行已选对象;表征把形式对象同参照世界及用途相接。前篇已经给出 ρ\rho 的具体条件。两者可以改变语义所需的理解,但各自的保持关系仍须建立:代码返回了什么,误差指向什么,记录又从哪里来。把它们列为角色,使比较能够追到相应对象,而不把八个角色当成任何模型都必须独立填写的坐标。

角色在当前问题中辨认什么
τ\tau解集、演化、律、优化或其他语义种类
Σ\Sigma对象、符号与合法操作的类型
pp方程、规则、约束和条件的呈现
s=⟦p⟧s=\llbracket p\rrbracket按已选解释得到的形式对象
家族与实例哪些量可变,哪些条件已固定
v,Ωvv,\Omega_v从哪个对象提取哪些共同观察
rr求解或执行所用的实现及其结果
ρ\rho形式对象与参照对象、资料和用途的经验联系

这张表把已经发展出来的关系放在一起。其作用在随后异质对象的比较中更清楚:我们可以共享这几项提问,各种语义仍保留自己的数学结构。统一的是辨认关系的办法,概率律、优化排序和因果机制并不因此被改造成同一种无权行为集。

约束与非确定行为,为什么需要关系#

函数为每个输入给出一个输出,是一种很有力的组织。它却已经要求单值。在不少问题中,我们先有允许范围,再有选择;把范围提前压成一个函数,可能只留下其中一项方案。第一篇的任务安排就是如此:共享资源给出两种先后次序,某个调度器选出一份安排,允许安排的模型则要同时保存两种次序。

取一个简单关系 R⊆U×YR\subseteq U\times Y,令 U=Y=RU=Y=\mathbb R,并规定 ∣y−u∣≤1|y-u|\le1。固定输入 uu 时,允许输出为区间 R(u)=[u−1,u+1]R(u)=[u-1,u+1]。函数 f(u)=uf(u)=u 可以从中选取一个输出,g(u)=u+1g(u)=u+1 也可以;两者不同,却同为这个关系允许的选择。若把 ff 当作 RR 的全部语义,就会把另一种允许输出误判为违例。

关系也保存了量词上的区别。∀u ∃y: ∣y−u∣≤1\forall u\,\exists y:\ |y-u|\le1 成立,可以让输出随输入而变;∃y ∀u: ∣y−u∣≤1\exists y\,\forall u:\ |y-u|\le1 不成立,一个固定输出无法接住全部实数输入。将“总能找到一个输出”说成“存在一个通用输出”,便在形式上换了问题。选取函数还可能涉及连续性、可测性或因果性,单有每点非空并没有证明这些附加要求。

组合时,关系有清楚的接法。若 R1⊆U×ZR_1\subseteq U\times Z、R2⊆Z×YR_2\subseteq Z\times Y,则

(R2∘R1)(u,y)⟺∃z: R1(u,z) ∧ R2(z,y).(R_2\circ R_1)(u,y) \quad\Longleftrightarrow\quad \exists z:\ R_1(u,z)\ \land\ R_2(z,y).

中间量由共同满足约束后再隐藏得到。两段各允许误差不超过一,组合便允许输出相对输入偏离不超过二;在这个实数区间构造中,反过来每个这样的输出也可取中点 z=(u+y)/2z=(u+y)/2 实现。这里建立的是关系上的精确等号,换成更复杂约束时,要另检查可达与保持。

存在量词还会遮住可实现的选择办法。知道有某个 zz,不表示一个只见当前信息的组件能及时选到它。若 zz 的合法性依赖未来输入,关系给出的全历史解可能存在,在线的因果实现仍可能不存在。第一篇已经用共同初始信息下的一次性选择区分这两项保证;第五篇会把它放进接口与互联。在内部语义中保留选择和历史,至少使这项问题有准确的提问对象。

约束语义可以是可行集合,也可以包含关系之间的结构。仅知道集合非空,尚未知道哪些点更好;仅知道最优点,又会丢掉其他可行选择。后面的优化例子将把这项缺口补出来。不同语义在实际问题中常相互接续,分开说明它们保存什么,使接续既能进行,又不偷换上一项对象。

动力学保存演化,运行只是其中一次#

一个动力学呈现通常把状态、时间、输入、初始条件与演化关系组织在一起。即使最终只观察一个终值,中间的轨迹仍可能决定何时越界、经历哪些状态以及怎样响应改变。将动力学只保存成终值,会丢掉这些查询;将全部轨迹只保存成某一次计算输出,又会丢掉未选初值与输入下的行为。

以 x˙=−x\dot x=-x 为例,固定 x(0)=x0x(0)=x_0 得到 x(t)=e−tx0x(t)=e^{-t}x_0。不同 x0x_0 给不同轨迹,整个家族还定义从初始状态到各时刻状态的演化映射 Φt(x0)=e−tx0\Phi_t(x_0)=e^{-t}x_0。它满足 Φt+s=Φt∘Φs\Phi_{t+s}=\Phi_t\circ\Phi_s 和 Φ0=id\Phi_0=\mathrm{id}:先走 ss 再走 tt,与走总时间相同。这个拼接关系提供了终值列表以外的结构,后续能研究时间推进、扰动与组合。

对有输入的系统,拼接还要保存输入片段怎样连接。若第二段输入是第一段状态触发的选择,内部演化与策略会互相依赖。所说的“同一模型”可以指同一被控对象,所产生的闭环轨迹却随策略改变。只比较一份预先保存的输入下的回放,直接观察的只是这份输入对应的历程;要比较所有允许输入,就须保留并量化整个输入域。

初值固定也不保证解唯一。构造 x≥0x\ge0、x˙=2x\dot x=2\sqrt x、x(0)=0x(0)=0。对任意等待时刻 c≥0c\ge0,函数

xc(t)={0,0≤t≤c,(t−c)2,t>cx_c(t)= \begin{cases} 0,&0\le t\le c,\\ (t-c)^2,&t>c \end{cases}

都是一阶连续可微的解。等待段的导数为零,增长段导数为 2(t−c)=2xc2(t-c)=2\sqrt{x_c},连接点两侧导数也同为零;全零函数还给出另一条解。同一初值允许不同后续,因而不能在这些条件下把解集无条件说成一个唯一的演化函数。

有的求解程序可能返回全零轨迹,有的附加选择可能让它立即增长。返回了哪条轨迹,需要根据算法和选取条件解释;数值输出的单值没有反过来证明原方程单值。我们可以补充选择规则,形成更细的呈现,也可以让语义保留全部解。两种组织能问的问题不同:一种研究已选演化,另一种研究所有允许解是否具有某项性质。

例如,“至少有一条解始终不超过一”在这个构造中成立;“所有解始终不超过一”不成立,立即增长的解在足够长的时间超过一。存在与全称量词改变的是保证强度。若我们关心装置的最大可能响应,丢掉其他解就会删掉原问题;若额外机制确实只允许一种选择,加入该机制才使缩小解集有根据。

动力学语义因而可以容纳演化算子、轨迹集、带输入的解关系或轨迹概率律,具体选取依实际条件。时间、初值、域、唯一性和可拼接性各有内容。把这些内容写清,也使状态坐标变换、离散近似和开放边界能够在后来建立自己的保持关系。

概率律的权重,以及历史中的依赖#

取 Bθ∈{0,1}B_\theta\in\{0,1\},以概率 θ\theta 为一,θ∈[0,1]\theta\in[0,1]。当 θ=0.2\theta=0.2 或 0.80.8 时,两种结果都有正概率,支撑同为 {0,1}\{0,1\}。若只观察“哪些结果可能出现”,便得到相同答案;若观察成功概率,二者分开。支撑保存可能性,概率律还保存各可能性的权重。

再取 N≥1N\ge1 次独立同分布结果。两个模型都允许全部二元序列,但全为一的事件分别有概率 0.2N0.2^N 和 0.8N0.8^N,概率之比为 4N4^N。这项比例随 NN 增长,绝对概率却都趋于零;不能由比例大就说事件在后一模型中越来越常见。语义中的权重和我们选择的比较量,一起决定这里究竟增长了什么。

保存每个时刻的边际律,仍可能遗失联合历史。构造两种二步过程。第一种先抽一次公平比特,两个时刻都输出它;第二种在每个时刻独立抽公平比特。每个时刻都各半地输出零和一。第一种的 (0,0)(0,0) 概率为一半,(0,1)(0,1) 概率为零;第二种两项都为四分之一。单时刻观察相同,连续两次的答案不同。

这里发生了两层不同的遗失。律到支撑,删去权重;联合律到边际律,删去时刻之间的依赖。前篇的成对测量也利用了后一种关系。若用途只问当前成功比例,边际可能够用;若用途问连续失败、等待时间或状态更新,就需要联合结构或一个能够产生它的转移机制。概率模型的语义因此经常包含核、过程或历史律,不能只把某个预测概率数字作为全部内容。

对有限状态,转移核 K(y∣x)K(y\mid x) 在每个 xx 上给出一个输出分布,满足非负和求和为一。在给定初始分布及马尔可夫条件时,初始权重与各步转移权重相乘,形成一条有限历史的概率。若状态没有保存预测所需的历史,马尔可夫条件就可能不成立;增加状态或改用历史条件核,是对对象的修订。前篇已经展示读数与信念的区别,这里从内部看见它怎样影响联合语义。

确定观察也有明确的概率接法。给定可测映射 H:X→YH:X\to Y 和 XX 上的概率律 μ\mu,观察律 H#μH_\#\mu 满足

(H#μ)(B)=μ(H−1(B)).(H_\#\mu)(B)=\mu(H^{-1}(B)).

所问事件 BB 的权重由其全部内部原像相加得到。若 HH 把两个不同状态送到同一读数,它们的权重在观察中汇合,个别身份可能无法恢复。新观察保留了所见事件的概率,而非原来每个内部状态的概率。这项映射在第四篇的网络表征分布中会再次出现,取样对象届时须另外说明。

概率对象还须与经验频率区分。网络输出一项类别概率,是当前形式实例给出的数;它与实际正确率的联系要由总体、标签、校准和测试建立。内部语义使概率计算合法,前篇的经验关系使这些概率进入实际判断。我们可以分别查出一个概率向量是否归一化、一个风险计算是否按其律正确,以及这些数是否对目标总体有支持;三项检查不互相代替。

最优点相同,优化问题为何仍不同#

优化问题至少要说明可行域和目标,或说明目标所产生的偏好排序。算法返回的一个最优点,是这套结构的一项结果。若比较的目的只问最优解位置,可以观察它;若要研究次优选择、约束变化或搜索过程,保存一个点便太少了。

在实数域取

f(x)=x2,g(x)=x2+10sin⁡2x.f(x)=x^2,\qquad g(x)=x^2+10\sin^2x.

两者在零处为零,非零处都有 x2>0x^2>0,所以唯一全局最优点都是零。现在比较 π/2\pi/2 与 π\pi:对 ff,前者的值为 π2/4\pi^2/4,小于后者的 π2\pi^2;对 gg,前者为 π2/4+10\pi^2/4+10,大于后者的 π2\pi^2,因为 10>3π2/410>3\pi^2/4。同一个最优点没有保存这两个非最优方案的次序。

若新增约束只允许 {π/2,π}\{\pi/2,\pi\},两个问题的最优选择直接分开。这使遗失信息有了可见后果:旧无约束问题的最优点一样,面对新可行域不能据此预测同一答案。保存目标或排序,才能在约束改变时重新计算;只保存旧答案,通常不够重建问题。

对于固定可行域,将目标变为 af+baf+b,其中 a>0a>0,会保持全部方案排序和最优解。若所问是满足一个绝对成本预算,预算也需相应变换;若只变目标而保留原预算数值,又换了查询。广义地,严格递增变换保持目标排序,但未必保持差值、梯度或数值条件。比较优化模型时,说清要保留哪层内容,才能判断一种变换是等价、近似还是改题。

训练算法把这项区别推进到过程。即使 ff 与 af+baf+b 的排序相同,固定学习率的梯度步分别使用 ∇f\nabla f 与 a∇fa\nabla f;要得到同样的欧氏更新,还需把学习率除以 aa。更一般的单调变换会让梯度随位置改变。例如 f=x2f=x^2 与 f3=x6f^3=x^6 有相同排序,而梯度分别为 2x2x 与 6x56x^5,靠一个固定倍率不能在全部 xx 上使更新一致。

可行域的几何也参加过程。投影梯度需要选择投影所用的距离,约束上的不同坐标或度量可能改变更新。一个目标值相同的点,可能具有不同的可行方向和边界关系;这些结构决定扰动后能怎样移动。优化语义可以根据任务保存数值目标、偏好、约束和相应几何,算法则有自己的状态与更新规则。把它们分开,才可以研究某个算法保持了哪些问题结构,又在哪些地方添加了选择。

一个优化器没有找到更好答案,也不自动表示目标所描述的对象不存在。局部停点、全局最优和算法可达各是不同关系;反过来,计算得到一个最优点,也不说明这个目标已经准确表达实际目的。前篇讨论误差怎样送到动作排序,第六篇将继续区分用途和操作判据。本篇先使内部的可行、偏好、结果和过程成为可分别比较的对象。

同一观察分布,为什么有不同干预答案#

前篇的排水例已经说明,原输入下的观察可能只辨认参数组合。现在构造两个完整的因果模型,使它们的联合观察分布也相同,干预答案仍分开。这里采用结构因果模型中的替换操作:干预某个变量时,将决定它的结构方程替换为外部给定值,其余机制保持不变。Pearl 的综述在§3.2.1明确给出了这个操作及其干预后分布。1

第一模型取

M1:X=U,Y=X+V,U,V 相互独立且均服从 N(0,1).M_1:\quad X=U,\qquad Y=X+V, \qquad U,V\ \text{相互独立且均服从 }N(0,1).

第二模型取

M2:Y=W,X=12Y+Z,W∼N(0,2),Z∼N(0,12),W⊥Z.M_2:\quad Y=W,\qquad X=\tfrac12Y+Z, \qquad W\sim N(0,2),\quad Z\sim N(0,\tfrac12),\quad W\perp Z.

此处正态分布记号的第二项表示方差;各模型使用自己的外生变量。第一模型先由 UU 决定 XX,再由 X,VX,V 决定 YY;第二模型先由 WW 决定 YY,再由 Y,ZY,Z 决定 XX。它们的生成方向不同,两个关系都在本例中明确指定。

计算第一模型可得 Var⁡(X)=1\operatorname{Var}(X)=1、Var⁡(Y)=2\operatorname{Var}(Y)=2、Cov⁡(X,Y)=1\operatorname{Cov}(X,Y)=1。第二模型中,Var⁡(X)=14⋅2+12=1\operatorname{Var}(X)=\frac14\cdot2+\frac12=1,协方差为 12⋅2=1\frac12\cdot2=1,YY 的方差为二。两者的均值都为零,都是联合高斯,因而具有相同联合律,其协方差矩阵为

(1112).\begin{pmatrix}1&1\\1&2\end{pmatrix}.

观察 (X,Y)(X,Y),即使这项分布知道得任意准确,也无法区分两个模型。所有由这份联合律计算的相关、条件分布和观察事件概率,都相同。这里使用了联合高斯由均值和协方差确定的性质;在一般分布中,仅有相同均值与协方差没有这个保证。条件决定了本构造何以证明完整观察一致。

现在实施形式干预 do⁡(X=x0)\operatorname{do}(X=x_0)。对第一模型,把 X=UX=U 换为 X=x0X=x_0,仍有 Y=x0+VY=x_0+V,于是 YY 的均值为 x0x_0、方差为一。对第二模型,替换的是 X=12Y+ZX=\tfrac12Y+Z,而 Y=WY=W 保留,故 YY 的均值为零、方差为二。取 x0≠0x_0\ne0,均值就分开;甚至取零,两项方差仍然不同。

只看原观察时,第一模型中的 Y∣X=x0Y\mid X=x_0 与第二模型的同一条件查询相同。干预改变决定 XX 的机制,条件观察则在原机制已经生成的联合律中取条件,两项操作有不同地址。分布中看见 XX 与 YY 一起变化,并没有说明主动设置 XX 后必须如何变化。生成结构使后一个问题可定义,选定这项结构又需要第二篇讨论的经验依据。

这个反例没有证明任何现实对象恰好属于某个方向。它已经证明一个内部的不可恢复关系:忘掉生成与干预结构,只保留观察分布,映射不是单射。若用途只问观察预测,二者可以相对于这项观察等价;若用途问干预,便应保留新的查询域。为了使两个模型重新“相同”而把干预删掉,改变的是比较本身,不能倒说旧干预判断已经通过。

状态型程序,为什么不能只有一次输入输出#

程序也可以有不同语义。一个纯函数把输入送到输出;一个带状态服务在本次调用以后改变内部,后续输出依赖已有历史;一个有随机选择的程序还给历史赋予概率。选择哪种语义,应看我们要保留什么操作和后果,不能只由接口写着“输入、输出”便确定。

构造两个只有“读取”调用的服务,内部计数初始为零。服务甲返回当前计数,再将计数加一;服务乙总返回零,不改变计数。两者第一次都返回零,因而一条单次测试完全一致。第二次,甲返回一,乙返回零。它们的输入格式和第一响应相同,整个交互行为却不同。

对甲可以写状态转移 n→read/nn+1n\xrightarrow{\mathrm{read}/n}n+1,对乙写 0→read/000\xrightarrow{\mathrm{read}/0}0。合法调用序列同输出序列合成历史,成为比较对象。若允许“重置”,还须写明它怎样改变状态,以及后续读取是否重新从零开始。状态更新和可用操作都是语义的一部分,测试时先重置再读取,与不重置连续读取,也已是两个不同查询。

有外部作用时,语义还要保留作用的地址。两个工具都返回“完成”,一个已写入文件,另一个尚未写入;若后续程序读取这个文件,区别就进入组合行为。只把返回字符串作为观察,确实看见相同字符串,却没有观察写入是否发生。我们可以把文件状态、作用事件或完整环境状态加入对象,也可以明确限定本次只比较响应文字。后续用途若依赖作用,须重开相应边界。

随机种子也要按语义解释。固定种子、实现和输入序列,某次运行可能可重复;这个制品或运行的身份不等于随机算法的概率律身份。若模型目标是抽样分布,改变种子通常选择另一条运行;若目标就是一项确定回放,种子则是其条件。固定种子是保存可复现信息的一种办法,并没有让单次样本证明分布正确。

时间可以使区别更明显。两个服务最后都返回同样结果,一个在截止时刻以前返回,另一个以后返回。无时间的输入输出观察把它们视作相同,有时间的历史却分开。若程序会取消、重试、读写共享对象,操作顺序也会参与结果。类型中的时间与协议,以及语义中的交互历史,需要一起说明,才有讨论替换的准确对象。

这节把“实现”与“模型”之间的一项关系打开了。程序可以作为某个理想模型的计算实现 rr,也可以自己成为要研究的形式对象,并由执行规则获得语义。前一种问题检查实现对理想对象怎样近似或保持;后一种问题直接研究程序的状态、历史与作用。它们可以递归相接;后续行为依赖的执行结构,便在相应语义和观察中保留下来。

观察映射,以及相同所覆盖的查询#

水箱、概率、优化、因果和程序中的压缩,如今可以放到共同组织中。观察规格 vv 说明要提取的内容;两个语义对象即使来自不同空间,也可经各自观察映射进入共同观察域 DvD_v。设它们为 s1∈S1s_1\in\mathcal S_1、s2∈S2s_2\in\mathcal S_2,则精确观察一致的条件是

Ωv,1(s1)=Ωv,2(s2)于共同域 Dv.\Omega_{v,1}(s_1)=\Omega_{v,2}(s_2)\quad\text{于共同域 }D_v.

共同域可能是水位轨迹空间、某个输入集上的函数、记录概率律、允许历史集合或查询答案族。映射在具体问题中定义,不能用同一个空泛“行为”把它们的类型抹平。水箱从体积回到水位的 V/AV/A 与概率律的推前,都是观察,但它们所用的运算和保存内容不同。

若比较确定预测函数 f1,f2f_1,f_2,固定输入域 UU 后,观察一致可以写成 ∀u∈U: f1(u)=f2(u)\forall u\in U:\ f_1(u)=f_2(u)。在有限样本集上相同,只证明样本查询相同;在全部输入上相同,是更强的量词。用一组共同测试判断当前差异有实际作用,测试范围仍须留下来,才知道它支持哪一项身份。

若比较概率律 μ1,μ2\mu_1,\mu_2,对全部可测观察事件给相同权重,才得到相应律相等;只比较均值是一种更小的查询域。在因果对象中,还可以把不同干预下的分布纳入查询族。两模型的均值、观察律或干预答案分别相同,强度并不相同。量词越明确,关系越容易检验,也越容易发现哪些信息没有保存。

可以把查询组成集合 Qv\mathcal Q_v,令观察为 (q(s))q∈Qv(q(s))_{q\in\mathcal Q_v}。若 Qv0⊆Qv1\mathcal Q_{v_0}\subseteq\mathcal Q_{v_1},大查询域上的一致推出小查询域上的一致;反向通常不成立。第一篇的末端乘积相同而前缀最大增益不同,便是一个构造。扩大查询域使之前看不见的差异出现,这是重新选择观察后的所得,原小查询域上的一致仍然成立。

输入限制也可产生同样方向。两个函数在 [−1,1][-1,1] 上相同,在区间外不同;扩大到全部实数就使一致失败。若当前用途确实只在原区间内,原观察判断有明确价值;如果系统可能因操作进入区间外,则要处理新的条件域。观察并非一个随意缩小就永远能宣布成功的窗口,它应保存当前问题实际需要的查询。

观察映射还有组合中的风险。分别遗忘中间状态,可能使局部允许片段产生原系统没有的拼接历史,第一篇的 0→0→10\to0\to1 伪轨迹已说明这点。把一次输出投影到边界以后,还需检查后续组合是否保持相应关系。内部观察等价让我们准确陈述“已经相同的是什么”;第五篇将继续问它在所有允许上下文中是否仍足以替换。

反过来,我们也能以观察组织新研究。若几个模型当前输出相同,却怀疑其机制不同,先选一项候选之间会分歧的查询;再看这项查询在形式上是否定义、在经验上能否取得。数学先揭示区分可能,试验和运行再建立相应联系。观察的选择与对象理解共同发展,既能缩小某次用途所需的信息,也能打开之前没有问过的问题。

身份标准之间,哪些推论成立#

说“同一个模型”,可以指同一段文本,也可以指同一结构、同一观察或同一受管理的版本。前面的构造已使几项标准分别显现。现在沿它们能够推出什么来比较,比把各种“相同”排成一条由浅到深的阶梯更准确。不同问题可以正当地选择不同标准,标准之间的联系仍须证明。

文本或令牌身份最直接:在给定编码和分词规则下,呈现完全相同。相同文本若进入不同解释,语义可以不同;不同文本经代数改写,也可以得到同一语义。空格和排版是否进入身份,由这个文本层面的规则决定。若已经比较解析后的表达树,则原文件字节不再是同一个身份对象。这两种记录都可能有用,名称应跟着实际所比对象。

结构同构要求可逆对应保持指定结构。水位和体积的转换已经逐项证明这种对应。群中的同构要保持乘法,动力学的同构要保存相应演化,带概率结构的对应还须保留权重。只有底层集合之间的双射,不能自动得到这些同构。我们也不要求每个同构都保持一项未被纳入的观察;若观察某个命名单元,它可能在结构置换中改变。

精确语义相同则是在共同语义域内要求对象相等。两个实数方程定义同一解集,两个指定域上的函数相等,两个概率律相等,各有清楚判断。若坐标空间不同,通常先经结构对应进入共同域,再谈等号。把同构和字面相等分开,使我们既能保留结构身份,也能记录表示改变的事实。

固定共同观察后,观察等价可由相同观察值定义。在同一对象类上使用同一个 Ωv\Omega_v,关系 s≡vs′s\equiv_v s' 当且仅当 Ωv(s)=Ωv(s′)\Omega_v(s)=\Omega_v(s')。等号的自反、对称和传递给出这个关系的三项性质,因而可以按它取商。换一个 vv,就可能得到另一份划分;没有固定观察的“等价”,无法说明我们将哪些差异归到同一类。

近似关系又不同。设观察域带距离 dd,固定 ϵ>0\epsilon>0,要求 d(Ωv(s),Ωv(s′))≤ϵd(\Omega_v(s),\Omega_v(s'))\le\epsilon。在实数域,三个观察值 0,0.75ϵ,1.5ϵ0,0.75\epsilon,1.5\epsilon 使相邻两对满足条件,首尾一对不满足。它自反、对称,却不传递。三角不等式只给首尾距离至多 2ϵ2\epsilon,没有保住原来的 ϵ\epsilon。称作近似一致可以,直接当作等价类则会失去这项区别。

误差还能沿链积累。若第 jj 次比较使用容限 ϵj\epsilon_j,在共同距离和对象可比的条件下,首尾界至多为各项之和。若中间改变了单位、观察或误差范数,就先建立转换关系;不能把不同类型的数直接相加。第四篇的变换与第六篇的证据链都会用到这个方向。固定容限是比较的一项条件,变换后保持多大界,是另一项推导。

行为精化通常带方向。在同一接口和历史域中,新允许行为集 B1B_1 若包含于旧集 B0B_0,新对象排除了部分原来允许的行为。旧集上每条行为都满足的性质,因包含关系在新集上继续成立。反向不成立;新集有某条好行为,也不说明旧集全部行为好。空集还会使“每条行为都好”形式上成立,故可实现性与非空不能在实际保证中略去。

概率语义又会检验这种包含是否足够。两个模型的失败和成功支撑相同,失败概率却可以从百分之一变为百分之九十九;支撑精化的空泛判断没有保存风险。若要保留风险保证,应选择包含权重的关系。若要保留时间、终止或外部作用,也要在对应行为中保存它们。精化不是一个只看集合方向便适用于全部语义的通用标签。

经验表征的共同用途不等于数学身份。同一个水箱可以由不同分辨率的形式对象服务于不同查询,也可以用两种不同机制候选回答同一个预测任务。ρ\rho 说明哪项经验关系已经有支持,不能据共同参照对象便把两个内部结构识别成同一对象。反过来,数学上同一函数移到新的装置与总体,也需要新的表征检验。形式身份与经验地址因此可以分别保存。

制品身份和管理谱系还有自己的作用。文件校验值相同,直接说明所核字节相同;两份程序若依赖不同外部数据或环境,完整运行对象仍可能不同。一个版本名称可以沿训练、修订和部署延续,期间参数与行为已经变化。谱系保存的是谁承接谁、哪些变更经过哪些程序,以及证据随哪个版本生效;它不是把变化消成数学等号。第六篇会据此追踪更新对证据的影响。

上下文替换则把量词放到组合之外:在所有允许上下文里,替换后仍良定并保持所需整体性质。当前篇的观察等价尚未建立这个判断,因为允许上下文和组合运算还没有全部指定。它已经准备了必要对象,第五篇将给这项更强关系以准确条件。身份比较到此形成一个可追踪的网络:每个箭头有保持关系,不能倒推的地方已有构造。

等价类能不能承接后续操作#

观察等价给出一种分类,后续运算能否在这些类上进行,还需新的相容性。取实数观察 Ω(x)=∣x∣\Omega(x)=|x|,正负两个代表归入同一类。若想由实数加法在类上定义加法,代表元的选择必须不影响所得类。用 1+11+1 得到绝对值二,用同类代表 −1+1-1+1 得到零;因此原加法没有这样下降到商上的单值运算。

乘法则可以:∣xy∣=∣x∣∣y∣\lvert xy\rvert=|x||y|,任意改变代表的正负号,所得绝对值相同。绝对值类上的乘法有明确的代表无关性。我们当然也可以直接在非负实数上定义普通加法,但它不等于原实数加法的下降;那是新定义的操作,保持关系须按新构造说明。取商所删去的信息,是否仍被后续操作使用,在这个小例子中有清楚答案。

对于更新 TT,要求也可直接写为:Ω(s)=Ω(s′)\Omega(s)=\Omega(s') 应推出 Ω(Ts)=Ω(Ts′)\Omega(Ts)=\Omega(Ts')。满足它,才可从当前观察类决定下一观察类。第一篇的状态闭合证明给出了这种条件的充要方向。这里只是把同一关系用于模型实例的更新;等价首先由观察定义,更新相容性没有随等价自动附送。

训练能给更细的构造。取双参数线性函数 fa,b(x)=abxf_{a,b}(x)=abx,以唯一训练样本 x=1x=1、目标值零及损失 L(a,b)=12(ab)2L(a,b)=\tfrac12(ab)^2 建立普通欧氏梯度流。记样本预测系数 F=abF=ab,链式法则给出

a˙=−bF,b˙=−aF,F˙=−(a2+b2)F.\dot a=-bF,\qquad \dot b=-aF,\qquad \dot F=-(a^2+b^2)F.

参数 (1,1)(1,1) 与 (2,12)(2,\tfrac12) 都给出全输入函数 f(x)=xf(x)=x,当前 F=1F=1。第一对的 F˙=−2\dot F=-2,第二对为 −17/4-17/4。初始函数完全相同,下一刻的变化不同;这里没有使用坐标相关的学习率。函数观察遗忘的参数结构,仍通过 a2+b2a^2+b^2 进入更新,因而函数值本身没有在这个家族中形成闭合训练状态。

缩放 (a,b)↦(ca,b/c)(a,b)\mapsto(ca,b/c) 保持函数,却通常不保持参数空间的欧氏度量。前面说明的梯度过程区别由此得到结构解释:函数不变的重参数化,未必是优化几何的对称。我们可以保留参数,或在函数演化中补入必要系数;也可以改变训练度量后重建相容性,每种办法都有自己的对象与条件。

下一节将给出另一类对称——正交的隐藏单元置换——以及它在相容损失和更新下的保持证明。失败构造和保持证明共同说明,不能只问函数是否相同,还须问采用的更新保留哪一种身份。第四篇将把这里的系数发展成网络中由参数导数形成的训练核。

神经网络的参数、函数与继续训练#

用一个全连接隐藏层检验这些身份。令输入 x∈Rdx\in\mathbb R^d,隐藏层宽度为 mm,输出在 Rk\mathbb R^k。参数为 W1∈Rm×dW_1\in\mathbb R^{m\times d}、b1∈Rmb_1\in\mathbb R^m、W2∈Rk×mW_2\in\mathbb R^{k\times m}、b2∈Rkb_2\in\mathbb R^k,共同激活函数 σ\sigma 逐坐标作用。网络表示

fθ(x)=W2σ(W1x+b1)+b2.f_\theta(x)=W_2\sigma(W_1x+b_1)+b_2.

架构规定参数类型和计算接法,θ=(W1,b1,W2,b2)\theta=(W_1,b_1,W_2,b_2) 选择一个参数实例。在理想实数计算下,实例给出输入输出函数;同一参数还可给每个输入一个隐藏表示 zθ(x)=σ(W1x+b1)z_\theta(x)=\sigma(W_1x+b_1)。函数与表示都由参数产生,彼此却不是同一个对象。

取 m×mm\times m 的置换矩阵 PP,重排隐藏单元,同时变换相邻参数:

W1′=PW1,b1′=Pb1,W2′=W2P−1,b2′=b2.W_1'=PW_1,\quad b_1'=Pb_1,\quad W_2'=W_2P^{-1},\quad b_2'=b_2.

逐坐标的共同激活满足 σ(Pa)=Pσ(a)\sigma(Pa)=P\sigma(a),代入可得

fθ′(x)=W2P−1σ(P(W1x+b1))+b2=fθ(x)∀x∈Rd.f_{\theta'}(x) =W_2P^{-1}\sigma\bigl(P(W_1x+b_1)\bigr)+b_2 =f_\theta(x)\qquad\forall x\in\mathbb R^d.

这是全输入上的精确函数相等,条件比有限测试一致更强。隐藏表示却变为 zθ′=Pzθz_{\theta'}=Pz_\theta,单个命名坐标一般改变;整个表示经可逆重排对应。参数数组也改变了。以欧氏距离衡量参数,距离可能非零,即使函数距离为零。这使参数空间到函数空间的映射明确不是单射。

所有这样的置换在复合下形成群,并作用于参数空间。按这些置换取商,可以把由重排相互转换的参数归为一类;这个商只消去已经证明的对称。它未必包含所有实现同一函数的参数,因为可能还有冗余单元和其他特殊关系。逐坐标激活支持置换,也没有由此支持任意旋转。若架构为单元指定不同激活或特殊连接,原置换的合法范围还要重新检查。

继续训练是否相同,需要把更新规则加进对象。设置换在全部参数上诱导线性映射 Φ\Phi,它是正交坐标重排。固定训练资料与只依赖网络输出的可微损失 LL,有 L(Φθ)=L(θ)L(\Phi\theta)=L(\theta)。对任意方向 vv 求导,得到 ∇L(Φθ)TΦv=∇L(θ)Tv\nabla L(\Phi\theta)^T\Phi v=\nabla L(\theta)^Tv,故

∇L(Φθ)=Φ∇L(θ).\nabla L(\Phi\theta)=\Phi\nabla L(\theta).

于是共同标量学习率 η\eta 的欧氏梯度步满足 Φθ−η∇L(Φθ)=Φ(θ−η∇L(θ))\Phi\theta-\eta\nabla L(\Phi\theta)=\Phi(\theta-\eta\nabla L(\theta))。从对应初值出发,每步仍对应,函数相同可以沿训练继续保持。可微条件若失败,所选次梯度或实现规则也须检查是否与置换相容。这项结论已经把损失、资料、坐标度量和更新条件全部接进了身份。

动量还带更新状态。例如 vt+1=γvt+∇L(θt)v_{t+1}=\gamma v_t+\nabla L(\theta_t)、θt+1=θt−ηvt+1\theta_{t+1}=\theta_t-\eta v_{t+1}。同时置换初始参数和初始动量,归纳即可使后续二者保持对应。只改参数而留下非对称动量不动,下一步就可能不同。检查点若要承接训练,保存的对象因此比函数或参数数组更大;训练状态有自己的类型和地址。

坐标相关的学习率可以给出一个明确失败。构造单输入、两个正激活隐藏单元,在 x=1x=1 处隐藏值为 (1,2)(1,2),输出权重初始为 (1,1)(1,1),所以输出为三。只用样本 x=1x=1 训练输出权重,目标为零,损失为输出平方的一半;梯度为 (3,6)(3,6)。固定第一个坐标学习率为 η>0\eta>0,第二个为 2η2\eta,更新后的输出为 3−27η3-27\eta。

现在重排隐藏值为 (2,1)(2,1),输出权重仍为 (1,1)(1,1),初始函数保持相同。梯度变为 (6,3)(6,3),若学习率仍绑定原两个坐标,不随置换移动,更新后的输出为 3−18η3-18\eta。一次更新便分开。换成共同学习率,或把学习率结构一起置换,才恢复前面所需的对应。初始函数相等没有独自决定训练过程相等。

这两个结果互相补足:对称条件下,继续训练的对应可以证明;结构未随之变换时,对应可以明确失败。要说两个训练对象相同,须选择参数、函数、表示、损失、优化器状态和更新中的哪些内容。不能把一种条件下的失败扩大为所有训练都不同,也不能把函数置换不变扩大为所有优化器自动相容。

第四篇会进一步研究参数变化怎样诱导样本预测、全输入函数和表示分布的变化。此处已经准备了准确空间与映射:参数距离、坐标表示和函数行为不是一把尺;训练时间也不等于层号或输入序列位置。先把这些对象分清,后面的核、几何与尺度才有可比较的内容。

由关系理解对象,需要什么完整条件#

“看它同别的对象有什么关系,就能理解它”可以是有用直觉,也需要具体化。只问几个问题,可能遗失结构;保存一套相容的全部结构映射,则能有更强结论。先作一个群的构造:四元循环群 Z/4Z\mathbb Z/4\mathbb Z 与 Z/2Z×Z/2Z\mathbb Z/2\mathbb Z\times\mathbb Z/2\mathbb Z 都有四个元素,底层集合存在双射;前者有阶为四的元素,后者每个非单位元的阶都为二,故群不同构。

群同构保持元素的阶,因为它保持单位元和乘法,gn=eg^n=e 当且仅当像的 nn 次幂为单位元。只保存集合基数,无法恢复这项群结构。这里“由关系理解”应问的是保持乘法的映射,而不是任意把四个点对齐。选择哪些关系,已经选择了我们看见的结构。

把对象与允许的结构映射组成一个小范畴 C\mathcal C:每个对象有恒等映射,合法映射可以在端点相合时复合,复合满足结合律。小指这里的对象和映射组成集合,避免在本节引入额外的大小问题。对象可以是选定的一批群,映射是群同态;也可以是别的已明确结构。范畴并不自动知道模型的世界或用途,它依我们指定的对象和保持关系而成。

一个函子 F:C→SetF:\mathcal C\to\mathbf{Set} 给每个对象 dd 一个集合 F(d)F(d),给每个映射 g:d→eg:d\to e 一个函数 F(g):F(d)→F(e)F(g):F(d)\to F(e),并保持恒等和复合。它说明结构变换以后,所提取的信息怎样随之变化。固定对象 cc,还有一个特殊函子 Hc(d)=Hom⁡(c,d)H_c(d)=\operatorname{Hom}(c,d),即从 cc 到 dd 的全部合法映射;gg 把 f:c→df:c\to d 送到 g∘f:c→eg\circ f:c\to e。

若要把 HcH_c 中的关系相容地读成 FF 中的信息,取每个 dd 上的函数 αd:Hc(d)→F(d)\alpha_d:H_c(d)\to F(d),并要求对每个 g:d→eg:d\to e 和 f:c→df:c\to d 都有

αe(g∘f)=F(g)(αd(f)).\alpha_e(g\circ f)=F(g)(\alpha_d(f)).

这就是这里的自然性条件:先变换关系再提取,与先提取再变换所得信息相同。它量化全部合法映射;任意给每个对象贴一份对应表,还没有满足该条件。这样的相容函数族称为自然变换 α:Hc⇒F\alpha:H_c\Rightarrow F。

Yoneda 引理的一项精确陈述是:这些自然变换与 F(c)F(c) 的元素一一对应,对应将 α\alpha 送到 αc(idc)\alpha_c(\mathrm{id}_c)。2 可以直接推导这个双射。给定 x∈F(c)x\in F(c),定义 αdx(f)=F(f)(x)\alpha^x_d(f)=F(f)(x)。对 g:d→eg:d\to e,函子保持复合给出 F(g∘f)(x)=F(g)(F(f)(x))F(g\circ f)(x)=F(g)(F(f)(x)),所以 αx\alpha^x 满足自然性,确实是一项允许的变换。

再在恒等映射上求值,得到 αcx(idc)=F(idc)(x)=x\alpha^x_c(\mathrm{id}_c)=F(\mathrm{id}_c)(x)=x。反过来,从任意自然变换 α\alpha 取 x=αc(idc)x=\alpha_c(\mathrm{id}_c),对映射 f:c→df:c\to d 使用自然性,便有 αd(f)=F(f)(x)\alpha_d(f)=F(f)(x)。因此恢复出的 αx\alpha^x 就是原变换,两个方向互为逆。这项证明把负载明确落在恒等、复合和全部映射的相容性上。

对应还随 FF 相容变化。若 β:F⇒G\beta:F\Rightarrow G,先把 α\alpha 后接 β\beta 再在恒等处求值,结果为 βc(αc(idc))\beta_c(\alpha_c(\mathrm{id}_c));先求值再用 βc\beta_c,结果相同。对象也能变化:对 h:c→dh:c\to d,从 HdH_d 到 HcH_c 的映射将 f:d→ef:d\to e 送为 f∘hf\circ h。把它前接到 α\alpha,在 idd\mathrm{id}_d 上求值,得到 αd(h)=F(h)(αc(idc))\alpha_d(h)=F(h)(\alpha_c(\mathrm{id}_c))。对象和所提取信息的变换,均沿同一相容关系组织。

现在把它用于结构身份。若 HcH_c 与 HdH_d 自然同构,取正向 α:Hc⇒Hd\alpha:H_c\Rightarrow H_d 和逆向 β:Hd⇒Hc\beta:H_d\Rightarrow H_c。前面的双射使 α\alpha 对应映射 a:d→ca:d\to c,各分量满足 αe(f)=f∘a\alpha_e(f)=f\circ a;β\beta 对应 b:c→db:c\to d,满足 βe(k)=k∘b\beta_e(k)=k\circ b。两个复合自然变换为恒等,代入恒等映射可得 a∘b=idca\circ b=\mathrm{id}_c、b∘a=iddb\circ a=\mathrm{id}_d,所以 c,dc,d 同构。

这项结果的强度有准确条件:我们先选定一个范畴,保存到所有对象的全部态射及其自然相容,再由自然同构恢复对象同构。它给“通过关系辨认结构”一种完整的数学实现。面对有限测试、部分接口或经验关系,先要说明它们提供了哪些结构映射,再建立这些映射同所需全部关系的联系。当前有限观察能恢复什么,由这项联系决定。

这个视角因而帮助我们选观察,而不是替观察取得证据。只保留群的基数会遗失乘法;保留全部结构映射并满足自然性能有更强身份结论。当前用途到底需要哪一层信息,决定我们采用哪一种构造。第三篇在这里把内部比较从结果相同推进到结构保持,后两篇还须分别处理有限变换、实际接口与工程证据。

计算实现怎样接到已经选定的对象#

有了语义与观察,计算的保持问题可以落到两个端点上。设理想语义实例为 ss,实现 rr 在给定条件下产生结果 zrz_r。若理想观察是 Ωv(s)\Omega_v(s),实现结果就要经相应解码 DvD_v 进入同一个观察域,再比较 Dv(zr)D_v(z_r) 与 Ωv(s)\Omega_v(s)。数组长度、时间网格、单位和统计权重,都是这项接法的一部分;结果格式相同,没有独自建立保持关系。

例如,连续轨迹 hh 属于函数空间,数值程序返回网格上的一列数。要比较连续区间误差,就要给出插值或其他重建;若只比较网格点,观察域则是一列数。两个比较可以各有误差界,不能只因网格点拟合很好就无条件宣称连续轨迹相同。第四篇会用离散近似继续研究它们的区别,本篇先把实现结果和理想对象的类型接准。

随机计算中,程序输出样本,理想语义可能是概率律。一个样本位于结果空间,一项律位于该空间上的概率对象域,二者没有直接相等的类型。样本均值或经验分布可以作为统计量,再按抽样条件与有限误差联系到理想观察。既要检查抽样算法实际给出什么律,也要检查有限样本的波动;打印出一个概率数字并没有自动完成这两项关系。

对于学习,优化目标、训练程序、参数检查点和最终函数也沿这样的关系相接。训练记录显示某个过程怎样生成参数,不会使函数语义与过程语义合为一项身份。改求解器、精度、初始化或训练状态,可能改变制品,也可能改变有效行为;哪些变化需要重开哪项比较,取决于对象和用途。把实现排除在所有语义之外,与把每个实现选择都当成经验模型变化,都过于粗糙。

有时算法本身就是当前模型定义。若研究的是一个离散迭代或状态型服务,执行步已经进入 pp 的解释,改变步长或更新规则就改变所研究的语义实例。若研究的是连续动力学及其数值近似,步长则首先属于实现条件,须与连续对象建立误差关系。同一数字在两种任务中有不同角色,不能由名称“步长”预先决定它的地址。

经验表征随后接回实际对象。第二篇讨论测量、总体和干预如何支持 ρ\rho,这里则说明它面对哪种形式语义和观察。内部证明可以告诉我们一项结构变换保持了理想预测;实际设备或浮点实现是否保持相关行为,还需其实现和测量关系。每项结论都有明确所得,也有明确的下一端点,三种视角因此能够互相接续。

打开内部以后,怎样继续研究#

现在看见的内部,已经包含几种无法互相压平的对象。关系保存选择,动力学保存演化与历史,概率保存权重和依赖,优化保存可行与偏好,因果保存生成和干预,程序保存状态与作用。它们可以共同参与一项系统,也可以在同一问题中相互转换;转换所得、遗失与新增,需要沿所选结构说明。取一个共同集合或函数名称,尚不足以组织这些内容。

有类型的呈现与解释,使我们知道每个角色从哪里进入。Σ\Sigma 规定材料和合法接法,pp 写下关系,τ\tau 与解释规则确定语义对象;家族和实例保存选择范围,vv 及 Ωv\Omega_v 决定当前比较,rr 与 ρ\rho 分别把计算和经验接回来。这个组织能用于一个很小的代数例子,也能打开学习系统的一层,并不要求每次都用完全部角色。

内部的精度首先改变提问。两个网络函数相同,可以继续问表示如何对应、训练状态是否随置换移动;两项概率支撑相同,可以问权重和联合历史;两个因果观察律相同,可以问指定干预;同一目标有同一个最优点,可以问新可行域和算法过程。每个追问都选定更丰富的对象或观察,旧判断则在原范围内保留。

这也使失败容易定位。若换元后初值未一起转换,应修正呈现的对应;若把有多解的方程误当作单值,应修订语义种类或补充选择机制;若有限测试被写成全部输入的一致,应收窄身份量词;若作用和时间被输出文字遮住,应重开观察边界。新的理解既可以增加结构,也可以让原来混在一起的结构分别取得位置。

完整的工程用途还会提出内部没有单独回答的问题。一个闭环要选择哪些端口、怎样接线、哪些历史相容,以及替换后整体是否保持性质;一个实际用途要检查数据、要求、实现、运行和证据是否仍对准当前对象。第五、六篇分别展开这些视角。它们可以把此处已经打开的语义实例作为部件,也可以反过来要求我们再次打开内部,查明某个保证究竟来自哪里。

下一篇先研究对象怎样改变。网络参数诱导函数和表征,尺度选择影响训练机制,离散、取商、提升和极限各有不同保持关系。第三篇已经把待比较的空间、解释与身份准备出来;变换接下来必须在这些对象之间真正工作。说清保存了什么,才可能沿它继续推理;算出哪些关系改变了,也才可能决定应修订什么问题。


「模型与工程」六篇: 数学怎样形成问题 · 模型怎样指向世界 · 模型内部是什么 · 模型怎样改变 · 模型怎样进入整体 · 从模型到工程判断。

Footnotes#

  1. Judea Pearl,Causal inference in statistics: An overview,Statistics Surveys 3,2009,96—146,§3.2.1,印刷107—108页,式(6)—(7):替换受干预变量的结构方程,保持其他机制,定义干预后分布。本文的两组线性高斯模型与协方差、干预计算为另行构造。 ↩

  2. Emily Riehl,Category Theory in Context,2016,作者公开稿,§2.2,印刷61—63页/PDF81—83,Theorem2.2.4与式(2.2.5)—(2.2.6)。本文用小范畴版本逐步给出对应与身份推论;这里只采用该模块,不涉及高阶范畴或以有限测试恢复一般对象的结论。 ↩

模型与工程·三|模型内部是什么:呈现、语义、观察与身份
https://weathour.github.io/posts/inside-the-model/
作者
Weathour
发布于
2026-08-21
许可协议
CC BY-NC-SA 4.0

评论

登录 GitHub 即可参与讨论。 在 GitHub 查看