#神经进化 #合作 #突触 #网络 #绘图 #突触 #协同进化

cosyne

CoSyNE - 通过协同共进化突触进行神经进化

3个版本

0.3.4 2021年7月14日
0.3.3 2021年3月25日
0.3.2 2021年3月24日

算法中排名1238

每月下载量26
用于gym-rs

自定义许可协议

39KB
758

CoSyNE

CoSyNE - Rust中的合作突触神经进化

演示

cart_pole_champion

pendulum_champion

运行示例

RUST_LOG=info cargo run --example cart_pole --release --features="gym-rs plot"
RUST_LOG=info cargo run --example pendulum --release --features="gym-rs plot"

特性

  • 使用ANN结构定义用户自定义神经网络拓扑
  • 高度可配置,使用Config
  • 通过Config定义用户自定义激活函数
    • 线性
    • 阈值
    • 符号
    • sigmoid
    • tanh
    • SoftSign
    • BentIdentity
    • ReLU
  • 在优化过程中更改一些配置选项(例如,以实现模拟退火)
    • set_mutation_prob(&mut self, mp: f64)
    • set_mutation_strength(&mut self, ms: f64)
    • set_perturb_prob(&mut self, pp: f64)

使用方法

要在项目中使用此crate,请将以下内容添加到Cargo.toml

[dependencies]
cosyne = "0.3.3"

网络拓扑创建

要创建用户定义的神经网络拓扑,请使用ANN结构如下

let num_input = 3;
let num_outputs = 1;
let mut nn = ANN::new(num_input, num_output, Activation::Relu);
nn.add_layer(5, Activation::Relu);
nn.add_layer(3, Activation::Relu);

绘图功能

通过传递--features="plot"或在其Cargo.toml中启用绘图功能

cosyne = { version = "0.3.2", features="plot" }

pendulum_fitness_history

待办事项

  • 用户定义的交叉类型(多点与单点)
  • 用户定义的初始网络随机化方法
    • 均匀
    • 高斯
    • 泊松盘采样
  • 允许循环权重
  • 将突变分布公开到配置
  • 使用设置器和断言保护公共配置字段
  • 绘制ANN

捐赠 💰 💸

如果您想支持此crate的开发,请随意发送捐赠

Monero (XMR) 地址

47xMvxNKsCKMt2owkDuN1Bci2KMiqGrAFCQFSLijWLs49ua67222Wu3LZryyopDVPYgYmAnYkSZSz9ZW2buaDwdyKTWGwwb

monero

许可协议

版权所有 (C) 2020 <Mathis Wellmann [email protected]>

本程序是免费软件:您可以自由重新分发和/或修改它,前提是您遵守自由软件基金会发布的GNU通用公共许可证的条款,许可证版本为3,或(根据您的选择)任何较新版本。

本程序以希望它将是有用的目的进行分发,但没有任何保证;甚至没有关于适销性或特定用途的隐含保证。有关详细信息,请参阅GNU通用公共许可证。

您应已收到随本程序一起提供的GNU通用公共许可证副本。如果没有,请参阅https://gnu.ac.cn/licenses/

依赖关系

~6–16MB
~214K SLoC