跳到内容

karpathy/renforcej

存储库文件导航

钢筋

钢筋是一个强化学习库,它实现了几种常见的RL算法,所有算法都带有web演示。特别是,图书馆目前包括:

  • 动态编程方法
  • (表格)时间差异学习(SARSA/Q-Learning)
  • 深度Q-Learning用于神经网络函数逼近的Q学习
  • 随机/确定性政策梯度以及用于处理连续动作空间的演员-评论家架构。(非常阿尔法,可能是bug,或者至少是挑剔和不一致)

请参阅主网页更多细节、文档和演示。

代码草图

库导出两个全局变量:R(右)、和RL公司前者包含用于构建表达式图(例如LSTM)和执行自动反向传播的各种实用程序,是我另一个项目的分支递归js. TheRL公司对象包含当前实现:

  • 左后。DPAgent(DPAgent)具有环境动力学的有限状态/作用空间
  • 左后。TD代理对于有限状态/作用空间
  • 左后。DQNA代理用于连续状态功能,但用于离散动作

典型用法可能类似于:

//创建环境对象
无功功率,无功功率 环境价值 = {};
环境价值.获取状态数 = 功能() { 返回 8; }
环境价值.获取最大操作数 = 功能() { 返回 4; }

//创建DQN代理
无功功率,无功功率 规格 = { 阿尔法:0.01 } //查看DQN页面上的完整选项
代理人 = 新的 RL公司.DQNA代理(环境价值, 规格); 

设置间隔(功能(){ //启动学习循环
  无功功率,无功功率 行动 = 代理人.行为(); //s是长度为8的数组
  //... 在环境中执行行动并获得奖励
  代理人.学习(奖励); //代理改进了其Q、策略、模型等。奖励是浮动
}, 0);

完整的文档和演示位于主网页.

许可证

麻省理工学院。

关于

Javascript中的强化学习代理(动态编程、时间差异、深度Q-学习、随机/确定性策略梯度)

资源

星星

观察者

叉子

发布

未发布版本

包装

未发布包

贡献者

  •  
  •  
  •