-
Notifications
You must be signed in to change notification settings - Fork 599
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一点想法 关于不洗牌模式的训练 #65
Comments
@FYNIXqwq 没错 更改牌库是有效果的 |
@daochenzha 目前不洗牌模式训练有一个很大的难题,当发牌风格改为不洗牌的类型(牌型整齐,而且bomb_count很高)的时候,训练的初期loss会非常高,数量级可以从10^2一路升到10^4,请教一下在这种情况下应该如何调节参数?(batch_size个人尝试过16和32,learning_rate从10^-7到10^-3都尝试过) |
@daochenzha 牌堆的生成思路是先将牌的点数(3到A,2,小王,大王)打乱,再按照打乱后的顺序,王各生成1张,3到A和2各生成4张,再将生成的牌堆进行切牌,这样就能模仿不洗牌模式的“瑕疵”,而不至于“过于整齐”,整个过程只生成一次64位随机整数作为种子,牌的点数打乱方式、切牌次数以及切牌位置都通过种子取余来解决。 |
@daochenzha 按照洗牌模式进行训练,训练初期的loss在默认情况下只有个位数,但是不洗牌模式的loss可以在几十到几万之间波动。 |
如果用胜率进行训练则不会造成十分高的loss |
受此启发,个人尝试修改了奖惩规则,减少了bomb_count对奖惩结果的影响,防止其指数扩大后数值偏差过于严重 |
这个新的奖惩机制鼓励AI在胜算很大的时候提高bomb count,同时大幅减少bomb count小于等于3时的惩罚幅度,这样AI不至于学会摆烂 |
请问这个还有什么后续的改进方式吗 |
目前这个模型的训练都是基于经典模式,也就意味着它在其他模式下的表现力很差,在不洗牌模式中会表现得异常激进,从而导致输掉。
如果在训练过程中将牌堆的生成方式改为不洗牌的风格,它将能够胜任不洗牌模式。
The text was updated successfully, but these errors were encountered: