ANNA 模糊运算统一学习器写在前面的话整个神经生物学研究的代码都将放在下面仓库中https://gitee.com/waterruby/ANNA.git 项目概述本项目是ANNA自主神经生物学网络架构的一部分目标是用一个神经网络同时学会多种模糊运算模糊加法、模糊乘法、模糊逻辑等。模型通过将“运算类型”作为输入条件能够在输入两个隶属度x, y ∈ [0,1]和指定的运算类型后输出该运算的结果。训练完成后模型可以在极低的误差下模拟所有已学习的模糊算子。支持的模糊运算运算名称数学表达式备注有界和min(1, xy)t-conorm概率和x y - x*y代数和有界积max(0, xy-1)t-norm代数积x * y乘积 t-norm最大值max(x, y)典型 s-norm最小值min(x, y)典型 t-norm爱因斯坦和(xy)/(1xy)另一种 t-conorm 模型架构输入维度2 NUM_OPS前2维x, y隶属度0~1后NUM_OPS维运算类型的 one‑hot 编码当前NUM_OPS7隐藏层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.8PyTorch 2.0NumPy, Matplotlib安装依赖pipinstalltorch matplotlib numpy快速运行默认参数python fuzzy_learn.py训练过程和最终评估指标会打印到控制台并弹出每种运算的 3D 曲面对比图。命令行参数可选若需自定义运行参数可使用argparse扩展代码中已预留可自行取消注释。当前硬编码参数如下参数默认值含义CHECKPOINT_DIR./fuzzy_checkpointscheckpoint 保存目录SAVE_EVERY_N_EPOCHS5保存间隔epochBATCH_SIZE256批量大小NUM_BATCHES_PER_EPOCH2000每 epoch 的 batch 数EPOCHS30总训练轮数NOISE_STD0.01训练噪声标准差HIDDEN_UNITS128隐藏层神经元数量修改方式直接编辑脚本开头的对应变量。断点续训与模型保存训练过程中每SAVE_EVERY_N_EPOCHS个 epoch 自动保存 checkpoint 到指定目录同时保存checkpoint_latest.pt再次运行脚本时会自动加载最新的 checkpoint 并继续训练若已完成则跳过若要完全重新训练请删除 checkpoint 目录下的所有.pt文件 训练结果30 轮后各运算的测试误差无噪声测试集运算MSEMAEMaxAE有界和2.992e-50.0044190.015637概率和9.39e-60.0023590.015478有界积1.796e-50.0025670.050808代数积1.398e-50.0030680.031652最大值1.931e-50.0032110.020418最小值9.01e-60.0019500.022384爱因斯坦和1.728e-50.0033800.020421混合运算整体性能整体 MSE1.597e-5所有运算混合的 20,000 个测试样本结论单一神经网络成功以极高精度模拟了 7 种不同的模糊运算最大绝对误差不超过 5%绝大多数在 2% 以内。有界积的 MaxAE 略高5%推测在xy≈1边界附近拟合稍差。️ 可视化训练结束后程序会为每种运算绘制真值曲面左与模型预测曲面右的 3D 对比图方便直观评估拟合效果。⚠️中文显示问题若图表中中文无法显示显示为方框请在import matplotlib.pyplot as plt后添加以下代码plt.rcParams[font.sans-serif][SimHei]# 或 Microsoft YaHeiplt.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 许可证MIT License
神经生物学研究【20260003】
ANNA 模糊运算统一学习器写在前面的话整个神经生物学研究的代码都将放在下面仓库中https://gitee.com/waterruby/ANNA.git 项目概述本项目是ANNA自主神经生物学网络架构的一部分目标是用一个神经网络同时学会多种模糊运算模糊加法、模糊乘法、模糊逻辑等。模型通过将“运算类型”作为输入条件能够在输入两个隶属度x, y ∈ [0,1]和指定的运算类型后输出该运算的结果。训练完成后模型可以在极低的误差下模拟所有已学习的模糊算子。支持的模糊运算运算名称数学表达式备注有界和min(1, xy)t-conorm概率和x y - x*y代数和有界积max(0, xy-1)t-norm代数积x * y乘积 t-norm最大值max(x, y)典型 s-norm最小值min(x, y)典型 t-norm爱因斯坦和(xy)/(1xy)另一种 t-conorm 模型架构输入维度2 NUM_OPS前2维x, y隶属度0~1后NUM_OPS维运算类型的 one‑hot 编码当前NUM_OPS7隐藏层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.8PyTorch 2.0NumPy, Matplotlib安装依赖pipinstalltorch matplotlib numpy快速运行默认参数python fuzzy_learn.py训练过程和最终评估指标会打印到控制台并弹出每种运算的 3D 曲面对比图。命令行参数可选若需自定义运行参数可使用argparse扩展代码中已预留可自行取消注释。当前硬编码参数如下参数默认值含义CHECKPOINT_DIR./fuzzy_checkpointscheckpoint 保存目录SAVE_EVERY_N_EPOCHS5保存间隔epochBATCH_SIZE256批量大小NUM_BATCHES_PER_EPOCH2000每 epoch 的 batch 数EPOCHS30总训练轮数NOISE_STD0.01训练噪声标准差HIDDEN_UNITS128隐藏层神经元数量修改方式直接编辑脚本开头的对应变量。断点续训与模型保存训练过程中每SAVE_EVERY_N_EPOCHS个 epoch 自动保存 checkpoint 到指定目录同时保存checkpoint_latest.pt再次运行脚本时会自动加载最新的 checkpoint 并继续训练若已完成则跳过若要完全重新训练请删除 checkpoint 目录下的所有.pt文件 训练结果30 轮后各运算的测试误差无噪声测试集运算MSEMAEMaxAE有界和2.992e-50.0044190.015637概率和9.39e-60.0023590.015478有界积1.796e-50.0025670.050808代数积1.398e-50.0030680.031652最大值1.931e-50.0032110.020418最小值9.01e-60.0019500.022384爱因斯坦和1.728e-50.0033800.020421混合运算整体性能整体 MSE1.597e-5所有运算混合的 20,000 个测试样本结论单一神经网络成功以极高精度模拟了 7 种不同的模糊运算最大绝对误差不超过 5%绝大多数在 2% 以内。有界积的 MaxAE 略高5%推测在xy≈1边界附近拟合稍差。️ 可视化训练结束后程序会为每种运算绘制真值曲面左与模型预测曲面右的 3D 对比图方便直观评估拟合效果。⚠️中文显示问题若图表中中文无法显示显示为方框请在import matplotlib.pyplot as plt后添加以下代码plt.rcParams[font.sans-serif][SimHei]# 或 Microsoft YaHeiplt.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 许可证MIT License