第一次结对作业

问题定义

bot没一轮产生2个黄金点,黄金点在0-100之间的实数,统计没一轮所有提交,求平均并乘以0.618得到黄金点,离黄金点最近的得人数减一分,最远的得-2分,其他得0分

方法建模

使用强化学习来解决这个问题,这里使用最简单Q_table来纪录学习到的“经验”。

观测先前的比赛过程,黄金点有规律起伏,所以以趋势最为状态,也就是最近十次黄金点的升降状态。而action包括取上次黄金点,取平均等。

队友评价

队友退课了,所以都是我一个人做的

第一次比赛

本来计划好的使用BQN来做,但是没想到队友中途出了点状况,所以就没有继续下去,还是使用了Q_table来做这次实验,主要的想法其实就是对增加几个action,考虑的情况五花八门,例如滑动平均,最大值,最大最小平均,峰值等。同时考虑到将黄金点尽量往bot推测出的值这边拉,我将所有bot的两个输出数值设为一样的了。本以为这样其实会比较好,但是没想到最终得了个倒数第二。

第二次比赛

第一次结果很差,我感觉很有必要搞DQN,但是精力有限遂放弃之,反思之后觉得之所以结果如此差,应该跟我设过多的action和每次只产生相同的两个数有关系。过多的action其实让bot很难收敛,而且试错成本增加,所以这次我将action的数据减了一半,并让每个action产生两个不同的结果,并且利用第一次的结果中一些数值观测和0.618来参与到预测中。

最终的第二次比赛,得分就比第一次要好一些。

总结

这次因为队友退出,自己事情有点多,实验做的很仓促,结果不好也在预料之中,只能希望下次可以安排好时间,尽力出色完成任务。

具体的,我觉得用神经网络来代替Qlearning,并能使用第一次的比赛数据进行预训练,适当动态更新贪心策略,并使用一定随机扰动应该就回得到比较出色的成绩,后面尽量试一试。

你可能感兴趣的:(第一次结对作业)