15:29
梳理思路。
一个 agent 得知自己要做 high-level 的动作,比如说 pick tomato。agent 首先声明一个我的 subtask agent,并且做一些初始化(如意识到自己在哪里,tomato 又在哪里)。然后,while(动作没有结束) 来使用 subtask agent,输入目前的地图,输出下一步的动作。
我需要知道的事情:
agent 在哪里,tomato 在哪里,哪些是障碍物,什么时候抓到了(给出动作结束的信号)。
我该如何训练:
给出随机地图,随机 agent 位置,随机 tomato 位置。reward 函数:到达 destiny 则1,否则0。
模型的分离:
一个模型用来导航,再封装一层,给出agent位置、destiny位置、每时每刻的地图、调用模型来导航。
10:20
学长新写了 3 个 subtask,主要体现在 interact 会返回 3 个 subtask 的 reward,就是可以从 interact 的返回值上发现自己完成了哪些 subtask。
想到一个hacking,我一直扔土豆+拿土豆,岂不是两步就捡起来一次土豆,然后reward upup?hhhh
接下来要明确我的需求,我到底要做什么。是根据给定的subtask规划动作。比如导航。并且为不撞到别人,还要时时刻刻看地图。
我刚刚产生了一个想法,把整个程序重构,不采用继承的方式,把现在的env作为一个成员变量。嗯。