神经生物学研究【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

相关推荐
大模型最新论文速读1 小时前
StreamMA:把流式输出应用到多智能体系统
论文阅读·人工智能·深度学习·机器学习·自然语言处理
前端不太难1 小时前
大模型之后,谁在决定AI的真实速度?
人工智能·状态模式
落羽的落羽1 小时前
【项目】JsonRpc框架——开发实现2(业务层)
linux·数据结构·c++·人工智能·算法·json·动态规划
染指11101 小时前
19.LangChain框架7-LangChain1.0版本使用Agent(中间件实例)
人工智能·python·机器学习·langchain·agent·rag
孟俊宇-MJY1 小时前
CSDN AI数字营销内容创作功能测评
大数据·人工智能
网络研究院1 小时前
AI安全格局:前沿模型、智能体AI和AI编码工具如何重塑网络安全与关键基础设施韧性
网络·人工智能·安全·模型·威胁
装不满的克莱因瓶1 小时前
从梯度下降到 Adam 优化器:掌握神经网络参数优化的核心原理
人工智能·python·深度学习·神经网络·机器学习·计算机视觉·ai
maosheng11461 小时前
基于AI 文本生成的自动化Linux 运维文档系统
运维·人工智能·自动化
cxr8281 小时前
分享新疆应急决策大脑功能特性简报
人工智能·应急响应管理