用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/hiyenwong/ai_collection --skill orthoreg-hybrid-symbolic-neural-dynamics命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | orthoreg-hybrid-symbolic-neural-dynamics |
| description | Orthogonal Regularization 方法论用于混合符号-神经动力系统,防止符号结构被神经网络残余吸收,实现互补分解 |
| trigger_words | ["hybrid modeling","symbolic neural","dynamical systems","orthogonal regularization","physics-informed","symbolic discovery","L2 regularization","projection argument","sparse discovery","mechanistic model"] |
| paper_id | arXiv:2606.19145 |
| published | 2026-06-17T00:00:00.000Z |
| authors | Till Richter, Niki Kilbertus |
动力系统建模的持久困境:
混合建模的目标: 结合两者的优势,但面临关键挑战:神经网络可能重新学习符号部分。
标准 L² 正则化基于投影论证:
最小化 ||f_symbolic + f_neural||²
→ 约束 ||f_neural||²
当符号结构通过稀疏发现从数据中学习时:
失败案例:
# 传统方法
f_total = f_symbolic(discovered) + f_neural
# f_neural 可能学到 f_symbolic 已表达的部分
→ 冗余!不可解释!
# Orthogonal Regularization
loss = reconstruction_loss + λ * overlap_penalty
# overlap_penalty = ||⟨f_symbolic, f_neural⟩||²
# 直接测量两个组件的内积
OrthoReg 确保:
设符号组件为 $\phi_s(x)$,神经组件为 $\phi_n(x)$:
$$ \text{OrthoReg} = \lambda \int \phi_s(x) \cdot \phi_n(x) dx $$
$$ \min_{\theta} | \hat{y} - y |^2 + \lambda \cdot \text{Overlap}(\phi_s, \phi_n) $$
其中 Overlap 衡量符号与神经组件的重叠程度。
| 方法 | 适用场景 | 稀疏发现时表现 |
|---|---|---|
| L² 正则化 | 符号结构已知 | 失效(投影论证破坏) |
| OrthoReg | 符号结构学习 | 有效(直接惩罚重叠) |
L² 正则化:
OrthoReg:
在部分库不匹配场景下:
| 指标 | L² 正则化 | OrthoReg |
|---|---|---|
| 符号恢复 | 低 | 高 |
| OOD 行为 | 不稳定 | 稳定 |
| 可解释性 | 低 | 高 |
OrthoReg 在:
import torch
def orthoreg_loss(symbolic_output, neural_output):
"""
计算符号与神经输出的正交性损失
Args:
symbolic_output: 符号模型输出
neural_output: 神经网络残余输出
Returns:
overlap_penalty: 重叠惩罚
"""
# 内积度量重叠
overlap = torch.sum(symbolic_output * neural_output)
# L² 形式的重叠惩罚
overlap_penalty = overlap ** 2
return overlap_penalty
class HybridDynamicalModel:
def forward(self, x):
# 符号组件(稀疏发现)
symbolic = self.symbolic_library(x)
# 神经残余
residual = self.neural_net(x)
# 组合输出
return symbolic + residual
def loss(self, pred, target, lambda_ortho=0.1):
# 重构损失
recon = F.mse_loss(pred, target)
# 正交约束
symbolic = self.symbolic_library(self.x)
residual = self.neural_net(self.x)
ortho = orthoreg_loss(symbolic, residual)
return recon + lambda_ortho * ortho
$$ f_{total} = f_s + f_n $$
其中:
| 方法 | 符号发现支持 | 重叠预防 | 可解释性保证 |
|---|---|---|---|
| SINDy | ✓ | 间接 | ✓ |
| L² 正则化 | ✗(投影失效) | ✗ | 低 |
| OrthoReg | ✓ | ✓ | ✓ |
Till Richter, Niki Kilbertus. "OrthoReg: Orthogonal Regularization for Hybrid Symbolic-Neural Dynamical Systems." arXiv:2606.19145. 2026-06-17.