项目流程的认识,这个我认为也应该是所有智能体训练的一个流程。
数据结构的定义:
特征处理样本数据,满足输出需求:
回报函数,奖励机制:
算法开发:
Agent类中learn方法中实现了核心算法,主要负责消费样本进行模型训练
agent里面的save_model和load_model分别用来保存和加载模型
强化学习训练流程(在每个函数子目录train_workflow里面)
智能体通过不断的与环境交互,获取样本数据,更新并迭代模型,直到模型收敛。
这里面的walkflow函数就是主要的流程定义
开发DIY算法
评估模式
代码调试
监控
然后下面是几个算法的内容:
蒙特卡洛算法
基本思想
当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率,数学期望有关的量时,通过某种试验的方法,得出该事件发生的概率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。
当随机变量的取值仅为1或0时,它的数学期望就是某个事件的概率。或者说,某种事件的概率也是随机变量(仅取值为1或0)的数学期望。
优缺点
优点: (可以求解复杂图形的积分、定积分,多维数据也可以很快收敛)
1、能够比较逼真地描述具有随机性质的事物的特点及物理实验过程
2、受几何条件限制小
3、收敛速度与问题的维数无关
4、具有同时计算多个方案与多个未知量的能力
5、误差容易确定
6、程序结构简单,易于实现
缺点:
1、收敛速度慢
2、误差具有概率性
3、在粒子输运问题中,计算结果与系统大小有关
1.随机抽样:算法通过生成大量的随机数来进行模拟。
2.概率估计:通过随机抽样的结果来估计问题的概率分布。
3.统计分析:通过统计这些随机样本的结果,来得到问题的近似解。
4.应用广泛:蒙特卡洛方法可以用于计算积分、优化问题、系统模拟、风险分析等领域。
具体步骤如下:
1.定义问题:确定需要解决的问题,并确定其数学模型。
2.生成随机样本:根据问题的性质,生成大量的随机样本。
3.计算结果:对每个样本进行计算,得到结果。
4.统计分析:将所有样本的结果进行统计分析,如计算平均值、方差等。
5.结果估计:根据统计分析的结果,估计问题的解。
Qlearning算法
有一个q值,每次我贪婪选择动作执行,观察获得的奖励和新状态,更新1值
使用 epsilon 贪婪策略选择动作。初始时,epsilon 值较高,表示更多的探索行为。随着训练的进行,逐渐降低 epsilon 值,增加利用已知信息选择动作的比例
参数说明:
学习率:决定新信息对q值的影响程度,通常是小于1的数
折扣因子:决定未来奖励的衰减程度,r=1表示未来奖励与当前奖励同等重要r=0表示只关心当前奖励
TD算法:
TD 算法的核心思想是通过比较连续状态的预测值和实际值之间的差异来更新预测值,
原理:通过观察时间序列中的奖励和状态变化,来学习状态的值估计