# Neunet **Repository Path**: hujiyo/neunet ## Basic Information - **Project Name**: Neunet - **Description**: Neunet 是一个用 C++ 编写的小型神经元对象模拟库,参考了真实生物神经元的基本行为原理。目前实现了三种神经元类型(兴奋性、抑制性、调制性)的类及其主要方法,便于理解和实验神经元的基本机制,主要用于建立数字化神经元集群或者科学研究。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-31 - **Last Updated**: 2025-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Neunet Neunet 是一个用 C++ 编写的小型神经元对象模拟库,参考了真实生物神经元的基本行为原理。目前实现了三种神经元类型(兴奋性、抑制性、调制性)的类及其主要方法,便于理解和实验神经元的基本机制。主要用于建立数字化神经元集群或者科学研究。 ## 特性简介 - **全局步(global step)**:所有神经元共享统一的仿真步数,便于实现时序相关机制(如 STDP)。 - **三种神经元类型**:支持兴奋性(Excitatory)、抑制性(Inhibitory)、调制性(Modulatory)神经元对象。 - **空间分布与空间连接**:神经元对象具有三维空间坐标,连接建立受空间距离和概率影响。 - **动作电位后的不应期**:神经元激活后有不应期(refractory period),在此期间无法再次激活。 - **激活值自然衰减**:每步神经元的激活水平会自动衰减,模拟生物神经元膜电位的自然恢复。 - **突触权重可塑性(STDP)**:兴奋性神经元支持基于时序的突触权重调整,模拟生物突触可塑性。 - **突触修剪**:权重低于阈值的连接会被自动移除,模拟神经网络的自我优化。 - **调制信号机制**:调制性神经元可发出奖励、注意力、警报等信号,影响目标神经元的敏感性和学习速率。 - **参数可调**:可通过宏定义调整神经元行为参数。 - **历史记录**:神经元保存激活和输入历史,便于实现时序相关机制和统计分析。 ## 主要参数 | 参数名 | 说明 | 默认值 | |----------------------|------------------------|----------| | LEARNING_RATE | 学习率 | 0.01 | | STDP_WINDOW | STDP 时间窗口 | 20 | | MAX_WEIGHT/MIN_WEIGHT| 权重上下限 | 1.0/0.0 | | CONNECTION_RADIUS | 连接半径 | 50.0 | | CONNECTION_PROBABILITY| 连接概率 | 0.3 | | MAX_CONNECTIONS | 最大连接数 | 50 | | ACTIVATION_THRESHOLD | 兴奋性激活阈值 | 10.0 | | INHIBITORY_THRESHOLD | 抑制性激活阈值 | 8.0 | | MODULATORY_THRESHOLD | 调制性激活阈值 | 15.0 | | MODULATORY_RANGE | 调制性影响半径 | 80.0 | | HISTORY_LENGTH | 历史长度 | 100 | | PRUNE_THRESHOLD | 修剪阈值 | 0.05 | | REORGANIZE_INTERVAL | 重组间隔 | 50 | | REFRACTORY_STEPS | 不应期步数 | 3 | | DECAY_RATE | 激活值衰减率 | 0.9 | ## 代码结构简介 - **SimpleNeuron**:核心神经元类,支持三种类型,包含激活、输入、连接、权重调整等方法。 - **Connection**:突触连接结构,包含目标神经元指针和权重等信息。 - **SimpleNeuralNetwork**:简单神经元集合和仿真管理类,支持批量创建、连接、仿真推进和状态输出。 - **main()**:演示如何初始化网络、推进仿真和输出状态。 ## 输出示例 ``` === 神经网络状态 (步数: 100) === 兴奋性神经元1: 激活=0, 连接=12, 权重=0.32, 近期激活=3 抑制性神经元2: 激活=0, 连接=8, 权重=0.28, 近期激活=2 ... 网络统计: 平均连接=10.5, 总激活=25, 平均权重=0.30 神经元类型: 兴奋性=14, 抑制性=4, 调制性=2 ``` ## 许可证 MIT License