自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 大语言模型结合强化学习:Cicero征战强权外交论文源码解析

总结,整体工程看下来对GPU的需求不小,需要256个GPU训练,对代码速度的需求很高,但是这么来看,对比从文本中学习,利用强化学习的方式更符合我们人类学习的方式对特定任务的识别也会更精准,自从Noam Brown大神加入了openai后twitter也宣布在数学上达到了78%的准确率,应该是利用了类似强化学习的学习方式。在网络版本的强权外交中,由于玩家之间可以私下聊天,这个博弈可以理解为结合语言沟通的多人非完美信息博弈游戏,类似德州扑克。网络的训练是通过Rl实现的,具体使用一个叫PIKL的算法实现。

2024-02-22 11:03:19 1066

原创 Pluribus cfr博弈论实战德州 (3) Solver Libratus Deepstack Rebel

pbs是自己拿所有牌的情况,s是信息集合是自己拿固定一套牌,因为我们的value net,是用cfr训练出的,cfr使用的是信息集,而我们用类似alphazero搜索时需要pbs的梯度,论文这里说他们是可以相互转化。在deep stack时我们介绍了,他的网络是随机生成range 训练的,rebel的区别主要是修改了规则游戏中玩家并不知道自己具体是什么牌,而是返回所有牌的策略,这样将非完美信息博弈转化为完美信息博弈,然后就可以使用类似alphazero的方式,抽样有价值的子节点进行搜索。

2023-12-09 11:36:54 1570

原创 Pluribus cfr博弈论实战德州(2) CFR虚拟遗憾最小化算法

对比cfr和regret matching的regret ,最大的区别是多了对手到达概率,当时思考了很久也不清楚他的物理意义,尝试去掉这个概率跑结果就错误了,后来实践后个人认为在博弈树下面自己和对手都会做出大量不同的选择,我们要将不同选择合成一个类似状态价值向上反传所以需要给不同选择的收益给予不同的权重,如果对手都不会走到这个节点,那么这个收益为上层节点的贡献也为0。上一章介绍了一下纳什均衡策略,他是用一个叫cfr的算法求得的,介绍cfr前我们先介绍下regret matching。

2023-12-07 21:32:13 975

原创 Pluribus cfr博弈论实战德州(1)如何理解纳什均衡

假设德州扑克进行到河牌阶段,公牌为四张2带一张红桃三,当前底池为2,先行动的玩家50%拿到AA 50%拿到QQ,先行动玩家可以在check(过牌) 和bet(下注)1中做出选择,当先行动的玩家check(过牌)时,后行动的玩家可以在check(过牌) 和bet 1(过牌)中进行选择,当先行动的玩家bet 1时,对手可以在fold(弃牌)和跟注(进行选择)我们就有了下面的博弈树。对于玩家1,如果拿到AA 100%下注1,如果拿到QQ 66% check 33% 下注1。我们根据纳什均衡求解器求出的结果为。

2023-12-07 13:01:23 1771 1

原创 Pluribus cfr博弈论实战德州 (6)实时搜索

论文的解决方式如下,让对手可以在四个动作中选择后续需要使用的偏移策略,而玩家还是使用默认蓝图策略,四个动作可以通过修改之前训练的蓝图策略进行偏移,实现的时候想了很久,最后才顿悟如何把选择策略加入到cfr的训练中,原理是给对手玩家修改动作,不是从fold call raise allin中选,而是选择后续游戏的策略,四套策略分别为原始蓝图,将原始蓝图弃牌的概率乘以10,将原始蓝图跟注的概率乘以10 ,将原始蓝图加注的概率乘以10。叶子节点值可以通过rollout算法获取,也可以通过伸进网络训练这四个值。

2024-02-22 11:20:17 337

原创 Pluribus cfr博弈论实战德州(4) 聚类的实现

论文中阐述的算法是先用胜率对河牌的牌进行聚类,然后计算转牌的每一套牌到河牌的不同类的概率分布,这种概率分布不能使用欧氏距离,需要使用emd距离。下图是标准的kmeans算法 关注calc_nearest_cluster_idx这个函数,他传入了每套牌的到河牌的概率分布,和每个聚类的中心,返回最近的聚类中心的id。转牌的聚类和翻牌圈的聚类存在一些区别,先介绍转牌河牌聚类我们直接使用的胜率,河牌聚类类和类之间的距离是计算好的,比如0类比1326类多强了1326套。聚类的实现参考这篇论文。

2024-02-22 11:14:06 350

原创 Pluribus cfr博弈论实战德州(7) 加速加速!(占位符草稿粗版后续再校对修改)

两种加速方式,mccfr不同迭代之间可以并行加速,结合redis可以实现多机加速。假设六人参与游戏,每个人有1326套组合,整体下来所有人组合数为1326^6,需要1326^6次方cfr才可以将所有牌型迭代一遍,如何整合程序在一个迭代中遍历所有情况。举个简单的例子,在三人情况下,如果转牌圈每个人有三个加注动作,那么整体节点数就在30万,如果多人或者每人多一些动作那么又是指数级增加。C++实现中可以采用对象池的概念,比如game的state,预先new一堆内存,然后重复利用,避免使用中new速度慢。

2023-12-08 00:33:13 327

原创 Pluribus cfr博弈论实战德州(5) mccfr和discount(占位符草稿粗版后续再校对修改)

这里列出mccfr(左边)和cfr(右边)的对比,cfr无论是自己还是对手都会遍历所有动作,计算regret时会乘对手到达概率,mccfr则对于对手会从对手动作里面抽样不会遍历全树,而且更新regret时不用乘以对手reachprob。训练出的策略对比gto wizard推荐的btn位置的策略区别,发现双方基本都游戏44%左右的牌,我们训练出的策略差在存在limp,论文也是在七天的时候limp情况才消失的,可是我们老版本已近训练了两个月,后面会专门找一章聊聊如何加速。可以对比cfr的更新公式。

2023-12-07 23:55:09 407

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除