我正在使用基于模型的单一代理强化学习方法进行自主飞行。
在这个项目中,我使用模拟器来收集训练数据(状态,动作,结束状态),以便Locally Weighted Linear Regression
算法可以学习MODEL
。
STATE
由向量[Pitch , Yaw , Roll , Acceleration]
定义,用于定义无人机在太空中的位置。
给予POLICY
时还有另外一项功能[WantedTrajectory]
ACTION
也由矢量定义:[PowerOfMotor1 , PowerOfMotor2 , PowerOfMotor3 , PowerOfMotor4]
根据所采用的轨迹的精确度计算REWARD
:给定起始空间状态,所需轨迹和结束空间状态,实际取得的轨迹越接近想要的轨迹越小负面奖励是
policy iteration
的算法如下:
start from a state S0
loop
1) select the best action according to the Policy
2) use LWLR to find the ending state
3) calculate reward
4) update generalized V function
endloop;
这样所采取的行动还取决于所需的轨迹(由用户选择),代理人自主选择4个电机的功率(试图获取想要的轨迹并获得更大,更少负面的奖励)和策略是动态的,因为它取决于更新的值函数。
唯一的问题是选择POLICY
如下(S = Pitch,Yaw,Roll,Acceleration,WantedTrajectory):
π(S) = argmax_a ( V( LWLR(S,a) ) )
(因此,在动作空间非常大的情况下,来自此状态的所有动作将导致代理处于具有最大值的状态中)在计算方面花费很多。
有没有办法根据已经推广的值函数来推广POLOCY?
答案 0 :(得分:0)
我认为使用政策梯度的演员评论方法对你有用。
在这种情况下,您使用一个paremetrized策略,该策略根据您的值函数根据目标函数进行调整。还有一些进一步的改进,例如使用优势函数等。
David Silver制作了一个很有用的视频:
https://www.youtube.com/watch?v=KHZVXao4qXs&index=7&list=PL5X3mDkKaJrL42i_jhE4N-p6E2Ol62Ofa