神经生物学研究【20260003】

ANNA 模糊运算统一学习器

写在前面的话

整个神经生物学研究的代码都将放在下面仓库中

https://gitee.com/waterruby/ANNA.git

📖 项目概述

本项目是 ANNA (自主神经生物学网络架构)的一部分,目标是用一个神经网络同时学会多种模糊运算 (模糊加法、模糊乘法、模糊逻辑等)。模型通过将"运算类型"作为输入条件,能够在输入两个隶属度 x, y ∈ [0,1] 和指定的运算类型后,输出该运算的结果。训练完成后,模型可以在极低的误差下模拟所有已学习的模糊算子。

支持的模糊运算

运算名称 数学表达式 备注
有界和 min(1, x+y) t-conorm
概率和 x + y - x*y 代数和
有界积 max(0, x+y-1) t-norm
代数积 x * y 乘积 t-norm
最大值 max(x, y) 典型 s-norm
最小值 min(x, y) 典型 t-norm
爱因斯坦和 (x+y)/(1+xy) 另一种 t-conorm

🧠 模型架构

  • 输入维度2 + NUM_OPS
    • 前2维:x, y(隶属度,0~1)
    • NUM_OPS 维:运算类型的 one‑hot 编码(当前 NUM_OPS=7
  • 隐藏层:2 层全连接,每层 128 个神经元,激活函数 ReLU
  • 输出层 :1 个神经元,激活函数 Sigmoid,保证输出在 [0,1]
  • 损失函数:均方误差(MSE)
  • 优化器 :Adam,学习率 1e-3

🗂️ 数据集与训练策略

  • 数据生成 :每轮动态生成随机 (x, y),为每个样本随机选择一种运算,计算真实输出
  • 训练数据量 :每个 epoch 生成 BATCH_SIZE × NUM_BATCHES_PER_EPOCH 个样本(默认 256 × 2000 = 512,000)
  • 噪声注入 :在训练阶段可添加高斯噪声(默认 σ=0.01),提高泛化鲁棒性
  • 训练轮数:默认 30 个 epoch
  • 断点续训:支持中断后从最近 checkpoint 恢复

🚀 如何使用

环境要求

  • Python 3.8+
  • PyTorch 2.0+
  • NumPy, Matplotlib

安装依赖

bash 复制代码
pip install torch matplotlib numpy

快速运行(默认参数)

bash 复制代码
python fuzzy_learn.py

训练过程和最终评估指标会打印到控制台,并弹出每种运算的 3D 曲面对比图。

命令行参数(可选)

若需自定义运行参数,可使用 argparse 扩展(代码中已预留,可自行取消注释)。当前硬编码参数如下:

参数 默认值 含义
CHECKPOINT_DIR './fuzzy_checkpoints' checkpoint 保存目录
SAVE_EVERY_N_EPOCHS 5 保存间隔(epoch)
BATCH_SIZE 256 批量大小
NUM_BATCHES_PER_EPOCH 2000 每 epoch 的 batch 数
EPOCHS 30 总训练轮数
NOISE_STD 0.01 训练噪声标准差
HIDDEN_UNITS 128 隐藏层神经元数量

修改方式:直接编辑脚本开头的对应变量。

断点续训与模型保存

  • 训练过程中每 SAVE_EVERY_N_EPOCHS 个 epoch 自动保存 checkpoint 到指定目录,同时保存 checkpoint_latest.pt
  • 再次运行脚本时,会自动加载最新的 checkpoint 并继续训练(若已完成则跳过)
  • 若要完全重新训练,请删除 checkpoint 目录下的所有 .pt 文件

📊 训练结果(30 轮后)

各运算的测试误差(无噪声测试集)

运算 MSE MAE MaxAE
有界和 2.992e-5 0.004419 0.015637
概率和 9.39e-6 0.002359 0.015478
有界积 1.796e-5 0.002567 0.050808
代数积 1.398e-5 0.003068 0.031652
最大值 1.931e-5 0.003211 0.020418
最小值 9.01e-6 0.001950 0.022384
爱因斯坦和 1.728e-5 0.003380 0.020421

混合运算整体性能

  • 整体 MSE1.597e-5(所有运算混合的 20,000 个测试样本)

结论 :单一神经网络成功以极高精度模拟了 7 种不同的模糊运算,最大绝对误差不超过 5%,绝大多数在 2% 以内。有界积的 MaxAE 略高(5%),推测在 x+y≈1 边界附近拟合稍差。

🖼️ 可视化

训练结束后,程序会为每种运算绘制真值曲面(左)与模型预测曲面(右)的 3D 对比图,方便直观评估拟合效果。

⚠️ 中文显示问题 :若图表中中文无法显示(显示为方框),请在 import matplotlib.pyplot as plt 后添加以下代码:

python 复制代码
plt.rcParams['font.sans-serif'] = ['SimHei']   # 或 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False

📁 文件结构

复制代码
experiments/
├── fuzzy_learn.py          # 主训练脚本
├── fuzzy_checkpoints/      # 自动生成的 checkpoint 目录
│   ├── checkpoint_epoch_5.pt
│   ├── checkpoint_epoch_10.pt
│   └── checkpoint_latest.pt
└── README.md               # 本文档

🤝 贡献

本项目为 ANNA 神经生物学研究的一部分,欢迎提出 Issues 或 Pull Requests。

https://gitee.com/waterruby/ANNA.git

📄 许可证

Apache 2.0 License

相关推荐
Bode_20023 分钟前
中台多模态异构跨库缝合与动态机理图谱自动创成方法
人工智能·智能工厂·工业大模型
哥本哈士奇8 分钟前
医疗器械行业 Salesforce Territory 完整落地实例
大数据·人工智能
念雨思18 分钟前
HarmonyOS AI 应用开发实战:猫咪行为解读 —— AI 让宠物沟通更简单
人工智能·宠物
! 冰封雪莲 !34 分钟前
地表水自动监测配套采样设备怎么选?Smart WQS2000 智能采样站介绍
人工智能·环保
zandy101135 分钟前
企业级BI平台选型指南:评估框架与核心能力矩阵
大数据·人工智能·矩阵
远铂36 分钟前
BuildAdmin:GEO优化与AI内容营销一体化解决方案
大数据·人工智能·geo·buildadmin
问商十三载1 小时前
2026大模型GEO站点结构:3个层级逻辑提收录,零成本提32%抓取权重附架构表
人工智能
雪隐1 小时前
我被 Kimi K3 榨干了 99 块,还笑出了声——一个程序员的“真香”现场
人工智能
sunneo1 小时前
S18.4AI产品留存与召回——让用户走了还回来(系列收官)
人工智能·产品运营·产品经理·用户运营·用户体验
love530love1 小时前
ComfyUI 插件发布 GitHub Release + Comfy Registry (官方节点商店)完整复盘教程(从零开始)
人工智能·windows·github·devops