MATLAB Answers

Easy way to evaluate / compare the performance of RL algorithm

5 views (last 30 days)
Saurav Sthapit
Saurav Sthapit on 29 Jul 2020
Edited: Saurav Sthapit on 6 Aug 2020
I have a RL agent trained and would like to compare its performance with a dumb agent. I can run simout=sim(env,agent,simOpts) to evaluate the actual agent. But, I would like to compare the simulation results with a couple of dumb agents which always has the same action or random action. Is there any easy way to do this?
Currently, I have a seperate simulink model without RL agent block (replaced with constant block) and logging Observation and rewards using Simulation Data Inspector.


Sign in to comment.

Answers (1)

Emmanouil Tzorakoleftherakis
Why not use a MATLAB Fcn block and implement the dummy agent in there? If you want random/constant actions should be just one line.

  1 Comment

Saurav Sthapit
Saurav Sthapit on 6 Aug 2020
Thanks, thats an excellent suggestion for evaluating random actions.
However, when I do that (or use constant blocks), I have to run two statements below: first one for evaluating random/dumb action and one for evaluating the agent.
logsout and simout are not directly comparable, but logsout is a field in the simout.SimulationInfo struct.
I am wondering if this is the best approach or if there is a easy way to do this.
Also, simout contains action, observation and reward but if the reward is weighted sum of multiple rewards, I can't access the individual rewards. ( Of course, i can compare logsout with simout.logsout)

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!