# HorNets：融合离散与连续信号的路由神经网络架构

> HorNets是一个实现路由神经网络架构的Python包，能够同时处理离散和连续信号，在可解释性和特征组合学习方面具有独特优势。

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-05-25T13:15:35.000Z
- 最近活动: 2026-05-25T13:25:07.890Z
- 热度: 114.8
- 关键词: HorNets, 路由神经网络, 可解释AI, 特征组合, 神经符号AI, Python, 机器学习, 表格数据
- 页面链接: https://www.zingnex.cn/forum/thread/hornets
- Canonical: https://www.zingnex.cn/forum/thread/hornets
- Markdown 来源: ingested_event

---

## 原作者与来源

- 原作者/维护者：bkolosk1
- 来源平台：github
- 原始标题：hornets
- 原始链接：https://github.com/bkolosk1/hornets
- 来源发布时间/更新时间：2026-05-25T13:15:35Z

## 原作者与来源\n\n- **原作者/维护者：** Boshko Koloski, Nada Lavrač, Blaž Škrlj\n- **来源平台：** GitHub\n- **原始标题：** hornets\n- **原始链接：** https://github.com/bkolosk1/hornets\n- **发布时间：** 2026-05-25\n- **论文链接：** https://arxiv.org/abs/2501.14346\n\n---\n\n## 引言：神经网络的"黑盒"困境\n\n深度学习在各类任务中取得了巨大成功，但神经网络往往被视为"黑盒"——我们知道它们有效，却难以理解其内部决策机制。这种不可解释性在医疗、金融等高风险领域构成了严重障碍。与此同时，传统机器学习模型（如决策树、规则学习器）虽然可解释性强，但在复杂模式识别任务上往往表现不佳。\n\nHorNets项目提出了一种创新的解决方案：路由神经网络（Routing Neural Networks）。这种架构试图在神经网络的表达能力和规则学习方法的可解释性之间找到平衡，为处理同时包含离散和连续特征的数据提供了新的思路。\n\n---\n\n## 项目概述：HorNets架构实现\n\nHorNets是一个Python包，实现了论文《HorNets: Learning from Discrete and Continuous Signals with Routing Neural Networks》中提出的架构。该项目的核心创新在于通过路由机制学习特征组合，使模型能够显式地学习和利用输入特征之间的交互关系。\n\n该项目已发表在《Machine Learning》期刊（2025年2月），提供了完整的PyPI安装包、Colab示例和详细的文档说明。\n\n---\n\n## 核心概念：路由神经网络\n\n### 什么是路由神经网络？\n\n传统神经网络通过多层非线性变换隐式地学习特征表示，而路由神经网络则显式地学习"规则"——即特征的组合方式。每个神经元对应一条规则，学习哪些特征应该组合在一起，以及这种组合的权重。\n\n这种设计的优势在于：\n\n1. **可解释性**：学到的规则可以直接阅读和理解\n2. **特征交互建模**：显式捕捉特征之间的交互关系\n3. **离散和连续统一**：能够同时处理两种类型的信号\n\n### HorNets的独特之处\n\nHorNets架构的关键创新包括：\n\n- **多项式裁剪激活（PolyClip Activation）**：一种专门为路由网络设计的激活函数，能够更好地处理特征组合\n- **特征组合学习**：模型自动学习哪些特征应该组合在一起\n- **注意力机制**：为不同的规则分配重要性权重\n\n---\n\n## 技术实现与使用\n\n### 安装方式\n\nHorNets提供了多种安装方式：\n\n```bash\n# 从PyPI安装\npip install hornets\n\n# 从GitHub安装最新版\npip install git+https://github.com/bkolosk1/hornets.git\n\n# 使用uv本地开发\ngit clone git@github.com:bkolosk1/hornets.git && cd hornets\nuv sync\n```\n\n### 基础使用示例\n\n```python\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import classification_report\nfrom hornets import HorNetClassifier, generate_synthetic_data\n\n# 生成合成数据\nX, y = generate_synthetic_data(\n    num_features=64,\n    num_instances=128,\n    operation=\"xor\"\n)\n\n# 划分训练集和测试集\nX_train, X_test, y_train, y_test = train_test_split(\n    X, y, test_size=0.2, random_state=42\n)\n\n# 初始化并训练分类器\nclassifier = HorNetClassifier(\n    num_rules=256,\n    exp_param=4,\n    activation=\"polyclip\",\n    order=5,\n    learning_rate=0.1,\n    batch_size=10,\n    stopping_crit=100,\n    num_epochs=500,\n    verbose=True\n)\nclassifier.fit(X_train, y_train)\n\n# 预测和评估\ny_pred = classifier.predict(X_test)\nprint(classification_report(y_test, y_pred))\n```\n\n---\n\n## 关键超参数详解\n\nHorNets提供了丰富的超参数来控制模型行为：\n\n### 核心架构参数\n\n- **num_rules**：规则数量（默认256）。更多的规则可以捕捉更复杂的模式，但也增加过拟合风险。建议范围：64, 128, 256, 512\n\n- **order**：特征组合阶数（默认5）。更高的阶数允许捕捉更复杂的关系，但计算成本显著增加。建议范围：2, 3, 5\n\n- **comb_samples_fp**：特征处理的组合样本数（默认48）。较大的值可能捕捉更多交互模式，但计算成本更高。建议范围：16, 32, 48, 64\n\n### 训练参数\n\n- **learning_rate**：学习率（默认1e-4）。较高值加速训练但可能超调，较低值收敛更稳定但更慢。建议范围：1e-5到1e-2\n\n- **batch_size**：批次大小（默认4）。建议尝试：4, 8, 16, 32\n\n- **num_epochs**：最大训练轮数（默认1000）。建议范围：100, 300, 500, 1000\n\n- **stopping_crit**：早停耐心值（默认10）。连续多少轮验证指标不改善后停止训练。\n\n### 激活函数\n\n- **activation**：激活函数类型（默认\"polyclip\"）。可选值包括\"polyclip\"、\"relu\"、\"sigmoid\"等\n\n- **exp_param**：多项式裁剪扩展参数（默认1）。主要与\"polyclip\"激活相关\n\n---\n\n## 特征提取与可视化\n\nHorNets支持提取学习到的特征表示：\n\n```python\n# 提取嵌入表示\nembeddings = classifier.transform(X_test)\n```\n\n对于二元输入，嵌入是特征规则的注意力加权组合分数；对于连续输入，它们是注意力重新加权的特征。项目提供了完整的t-SNE、UMAP和PCA可视化示例（见`examples/tox171_evaluation.py`），帮助理解模型学到的特征空间结构。\n\n---\n\n## 应用场景与优势\n\n### 适用场景\n\nHorNets特别适合以下类型的任务：\n\n1. **表格数据分类**：具有明确特征的数据集\n2. **需要可解释性的应用**：医疗诊断、金融风险评估等\n3. **特征交互重要的任务**：特征之间存在复杂非线性关系\n4. **混合类型数据**：同时包含离散和连续特征\n\n### 与传统方法的比较\n\n| 特性 | 传统神经网络 | 决策树/规则学习 | HorNets |\n|------|------------|--------------|---------|\n| 表达能力 | 高 | 中 | 高 |\n| 可解释性 | 低 | 高 | 中-高 |\n| 特征交互建模 | 隐式 | 显式（有限） | 显式（灵活） |\n| 训练稳定性 | 可能需要调参 | 通常稳定 | 较稳定 |\n\n---\n\n## 学术贡献与引用\n\nHorNets已在《Machine Learning》期刊发表，代表了神经符号人工智能（Neuro-Symbolic AI）领域的重要进展。该研究弥合了纯神经网络方法和符号规则学习方法之间的差距，为构建既强大又可解释的AI系统提供了新思路。\n\n引用格式：\n\n```bibtex\n@Article{Koloski2025,\n  author={Koloski, Boshko and Lavrač, Nada and Škrlj, Blaž},\n  title={HorNets: learning from discrete and continuous signals with routing neural networks},\n  journal={Machine Learning},\n  year={2025},\n  month={Feb},\n  day={21},\n  volume={114},\n  number={4},\n  pages={101},\n  doi={10.1007/s10994-024-06673-1}\n}\n```\n\n---\n\n## 总结与展望\n\nHorNets项目展示了如何在保持神经网络强大表达能力的同时，引入可解释性机制。通过显式学习特征组合规则，HorNets为处理复杂表格数据提供了一个有吸引力的中间方案。\n\n对于希望在实际应用中使用可解释AI的从业者，以及研究神经符号方法的研究者来说，HorNets都是一个值得深入了解的框架。其简洁的API设计、完善的文档和活跃的维护使其成为一个生产就绪的工具。
