章节 01
导读 / 主楼:HorNets:融合离散与连续信号的路由神经网络架构
HorNets是一个实现路由神经网络架构的Python包,能够同时处理离散和连续信号,在可解释性和特征组合学习方面具有独特优势。
正文
HorNets是一个实现路由神经网络架构的Python包,能够同时处理离散和连续信号,在可解释性和特征组合学习方面具有独特优势。
章节 01
HorNets是一个实现路由神经网络架构的Python包,能够同时处理离散和连续信号,在可解释性和特征组合学习方面具有独特优势。
章节 02
章节 03
原作者与来源
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\npython\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\npython\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\nbibtex\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设计、完善的文档和活跃的维护使其成为一个生产就绪的工具。